New Release Procedure

The following documents the standard procedure for packaging a new release of farmOS. It is used by the maintainers to ensure that all the necessary steps are taken.


Release procedure

  • Create a "Prepare for release of farmOS [version tag]." commit that updates the farmOS version references:
    • Update the commented projects[farm][version] line in build-farm.make.
    • Update the commented FARMOS_VERSION line in docker/Dockerfile.
    • Update image in docker/docker-compose.production.yml.
  • Create a release commit "farmOS [version tag]." (with period) that does the following:
    • In build-farm.make:
      • Un-comment projects[farm][version].
      • Comment projects[farm][download][*] (3 lines).
    • In docker/Dockerfile:
      • Un-comment FARMOS_VERSION for the new tag.
      • Comment FARMOS_VERSION for the development release.
  • Tag the release commit in Git.
  • Create a git revert HEAD commit that reverts the release commit (swaps the commented lines back so that development version are used).
  • Push the tag and revert commits to and GitHub.
  • Create a release node in (e.g. 7.x-1.1) with release notes that include:
    • farmOS updates - Brief descriptions in HTML list form (copying commit messages is a good way to do this, but very minor changes can be excluded).
    • Drupal core updates - Link(s) to core release notes.
    • Contrib updates - Link(s) to project release notes.
    • Patches - List any new patches that were applied to core or contrib.
    • Docker updates - Any updates that are relevant to hosting farmOS in Docker.
    • Bug fixes - Brief descriptions of bugs that were fixed.
  • Close the roadmap for this release and open a new one. Move any outstanding issues to the new one.
  • Update farmOS project page to point to the new recommended release.
  • Edit Github release tag (eg: 7.x-1.1 tag):
    • Add a link to the release node (eg: "For full release notes, see:").
    • Upload the packaged tar.gz file generated by
  • Update Docker Hub's latest image to point to the new release tag.