Skip to content

Code Contributors

vectorwing edited this page Feb 24, 2026 · 2 revisions

This page contains information about the current state of development for Farmer's Delight.

Please refer to this page when planning contributions to the codebase, such as pull requests to fix bugs or propose additions/updates.

If you are a translator, the following page may contain more useful information: (link)

Minecraft Versions

Farmer's Delight is currently being maintained for the following versions:

  • 1.20: Minecraft 1.20.1
  • 1.21: Minecraft 1.21.1

Any versions before the ones listed above have been discontinued, and will no longer receive updates.

Mod Versions

Farmer's Delight utilizes a rough form of semantic versioning:

X.Y.Za

  • Major (X): Full rewrites of relevant parts of the mod, and/or major content removals/changes.
    • Major releases are not backwards compatible, and will break saves without expectation of fallback.
    • Players are expected to begin new instances when updating to a new major version, or risk losing blocks, items, builds and other types of gameplay progress. However, it should not crash or softlock worlds.
    • Add-ons will need to update to support a new major version.
  • Minor (Y): New features, code refactors with fallback implementations and changes which may break add-ons or mod integrations.
    • Minor releases are usually backwards compatible, but may break saves in recoverable ways.
    • Add-ons will likely need to update to support a new minor release.
  • Patch (Z): Non-breaking updates and fixes. No new content (such as block and item registries) is added.
    • Patches are safe to update to and rollback from, and won't break saves in any way if possible. Add-ons will still work with them.
  • Hotfix (a): Emergency patches released to fix a major game-breaking bug present in the latest version.

Update Cycle

Branches

The repository contains a few types of branches:

  • Main branches hold the current working code for each respective Minecraft version, and are named after them.
    • Examples: 1.19.2, 1.20, 1.21
  • Update branches are prefixed with dev/[update-version] or dev-[mc-version]/[update-version].
    • Examples: dev/1.3, dev-1.21/1.3
    • Ideally, there is only ever one of these at any given time per version.
    • Patch versions are committed directly to the main branch, and do not contain their own update branch.
  • Feature branches are prefixed with feature-[mc-version]/, and end with the new feature's name. Assume they are meant for the active dev branch.
    • Examples: feature-1.20/new-workstation

Version Order

When making updates, I first write code to the earliest supported version, then I port it over to later supported versions.

For example: if the current supported versions are 1.20.1 and 1.21.1, new features and fixes will be first implemented in 1.20.1, and then ported over to 1.21.1 once they're complete. Mod versions tend to be under numerical parity across Minecraft versions.

In the case where an issue or feature can only exist in one Minecraft version, I'll do either of the following:

  • Release an update for both versions with the same number, and list version-specific changes on their respective changelogs;
  • Release a hotfix for one version only, suffixed with a letter (example: 1.2.10a).

Clone this wiki locally