Steps for an official release
Overview
Steps detailing a release (8.0.0 is given as an example). Good to do these in order listed above.
Create a rel-800 branch from master in the git repo.
- Create this in github (very straightforward) and protect the branch to not allow force pushing and also only allow integrator group to write to it.
Release an online development demo that uses the rel-800 branch and updates daily.
- Also provide links for downloading rel-800 daily builds/packages(zip and tarball) to allow testing of installation and upgrading by testers
Publish installation, upgrade, and downloading instructions. Also set minimum php version.
- Installation documention
- Upgrade documentation
- Also update the Documentation/INSTALL file
- Ensure have correct minimum php version set in OpenEMR.
- Ensure ONC documentation (per QA_and_Release_Process)
Finalize the translations in the rel-800 branch.
Bug fix and finalize the rel-800 branch.
- Update the copyright/acknowledgements page by copying the copyright page from HERE to acknowledge_license_cert.html in openemr codebase
Create a list of new features in the rel-800 branch (since the last official release)
Prepare for docker upgrade
- Increment docker-version file (increment number by 1) in openemr base directory (in both master and rel-800 branch)
- Increment docker-version file (increment number by 1) in openemr sites/default directory (in both master and rel-800 branch)
- Increment docker-version file (increment number by 1) in docker /root/ (this is in the upgrade directory in the repo) (do this for both 8.0.0 and future 8.0.1 dockers)
- Create fsupgrade-<number-incremented-to-above>.sh in docker /root/ and at least set priorOpenemrVersion and do the database upgrade (this is in the upgrade directory in the repo) (do this for both 8.0.0 and future 8.0.1 dockers)
- Edit Dockerfile to bring in the fsupgrade-<number-incremented-to-above>.sh file into the docker (this is in the upgrade directory in the repo) (do this for both 8.0.0 and future 8.0.1 dockers)
Release rel-800 branch by tagging in git repo with v8_0_0.
- Things to remember before tagging the release.
- Remove -dev from $v_tag (make it blank) in the version.php file
- Ensure the 'allow_debug_language' global in locale section in library/globals.inc.php is defaulted to 0
- Set version in image in the following docker-compose.yml script: docker/production/docker-compose.yml
- In _rest_routes.inc.php, set openemr version and do a api docs build
- In git repo:
git tag v8_0_0 rel-800
Build the docker, tar.gz and zip packages from v8_0_0.
- Use following script for the tar.gz and zip packages: https://gist.github.com/bradymiller/94409d7b6eadfd3ee34ff7b4363aac25
- Build the docker via the github action for the docker (and ensure it gets the `latest` tag)
Release packages on sourceforge
- Upload via Project Admin
- Upload release and a release notes file
- Set file properties appropriately
Announce Release
Use the follow social channels to announce the release in ~140 characters or less with a link to the formal release marketing piece or, if the release is a minor or patch release, a link to the wiki release changelog.
- Sourceforge
- Diaspora
- Mastodon
- https://www.reddit.com/r/OpenEMR
- Announce to registered users
Update the OpenEMR Wikipedia entry:
- Wikipedia
If the release is a major release (as opposed to minor or patch releases), it is best to put together a nice marketing piece describing the release changes (screenshots are encouraged with new features!). Use https://www.prnewswire.com/news-releases/openemr-achieves-complete-meaningful-use-certification-with-release-50-300415752.html as inspiration. This release announcement should be posted on the following sites:
- OpenHealthNews
- HackerNews
TODO: are there any other OSS sites that would be interested in having OpenEMR releases pop up in their feeds?
Build and release the Cloud packages.
- AWS