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.
Preparation¶
- Make sure Drupal core version is up-to-date (eg: farmOS/farmOS@d682318).
- Evaluate whether or not any core patches are still necessary, and remove them if not (eg: farmOS/farmOS@028dc18).
- Make sure all contrib modules are up-to-date (e.g. farmOS/farmOS@d831fef)
- If any updated contrib modules are patched in farmOS, evaluate whether or not the patch is still necessary (e.g. farmOS/farmOS@7d2e30a)
- Ensure that the 7.x-1.x Build Test GitHub Action is building successfully.
- Ensure that the 7.x-1.x Docker Hub image is building successfully.
- Test all update hooks
- Test fresh Drush make build and installation
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 inbuild-farm.make
. - Update the commented
FARMOS_VERSION
line indocker/Dockerfile
. - Update
image
indocker/docker-compose.production.yml
.
- Update the commented
- 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).
- Un-comment
- In
docker/Dockerfile
:- Un-comment
FARMOS_VERSION
for the new tag. - Comment
FARMOS_VERSION
for the development release.
- Un-comment
- In
- 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 drupal.org and GitHub.
- Create a release node in drupal.org (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 Drupal.org 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 drupal.org release node (eg: "For full release notes, see: https://www.drupal.org/project/farm/releases/7.x-1.1").
- Upload the packaged tar.gz file generated by drupal.org.
- Update Docker Hub's
latest
image to point to the new release tag.