Difference between revisions of "Steps for an official release"
Bradymiller (talk | contribs) |
Bradymiller (talk | contribs) |
||
Line 1: | Line 1: | ||
==Overview== | ==Overview== | ||
Steps detailing a release ( | Steps detailing a release (7.0.0 is given as an example). | ||
==1. Create a rel- | ==1. Create a rel-700 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. | :* 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. | ||
:* Also need to update Github Actions related stuff in .github/workflows/ and at top of main README.md | :* Also need to update Github Actions related stuff in .github/workflows/ and at top of main README.md | ||
==2. Release an online development demo that uses the rel- | ==2. Release an online development demo that uses the rel-700 branch and updates daily.== | ||
:*Also provide links for downloading rel- | :*Also provide links for downloading rel-790 daily builds/packages(zip and tarball) to allow testing of installation and upgrading by testers | ||
==3. Publish installation, upgrade, and downloading instructions. Also set minimum php version.== | ==3. Publish installation, upgrade, and downloading instructions. Also set minimum php version.== | ||
Line 15: | Line 15: | ||
:*Ensure have correct minimum php version [https://github.com/openemr/openemr/blob/master/src/Common/Compatibility/Checker.php#L19 set in OpenEMR]. | :*Ensure have correct minimum php version [https://github.com/openemr/openemr/blob/master/src/Common/Compatibility/Checker.php#L19 set in OpenEMR]. | ||
==4. Finalize the translations in the rel- | ==4. Finalize the translations in the rel-700 branch.== | ||
==5. Bug fix and finalize the rel- | ==5. Bug fix and finalize the rel-700 branch.== | ||
:* Update the copyright/acknowledgements page by copying the copyright page from [[Talk:OpenEMR_Acknowledgments|HERE]] to acknowledge_license_cert.html in openemr codebase | :* Update the copyright/acknowledgements page by copying the copyright page from [[Talk:OpenEMR_Acknowledgments|HERE]] to acknowledge_license_cert.html in openemr codebase | ||
==6. Create a list of new features in the rel- | ==6. Create a list of new features in the rel-700 branch (since the last official release)== | ||
:* [[Release_Features|Page for maintaining the new feature lists.]] | :* [[Release_Features|Page for maintaining the new feature lists.]] | ||
Line 30: | Line 30: | ||
:# Edit Dockerfile to bring in the fsupgrade-<number-incremented-to-above>.sh and docker-version file into the docker (these are in the upgrade directory in the repo) | :# Edit Dockerfile to bring in the fsupgrade-<number-incremented-to-above>.sh and docker-version file into the docker (these are in the upgrade directory in the repo) | ||
==8. Release rel- | ==8. Release rel-700 branch by tagging in git repo with v7_0_0.== | ||
::* Things to remember before tagging the release. | ::* Things to remember before tagging the release. | ||
:::* Remove -dev from $v_tag (make it blank) in the version.php file | :::* Remove -dev from $v_tag (make it blank) in the version.php file | ||
Line 37: | Line 37: | ||
:::* In _rest_routes.inc.php, set openemr version and do a api docs build | :::* In _rest_routes.inc.php, set openemr version and do a api docs build | ||
::* In git repo: | ::* In git repo: | ||
git tag | git tag v7_0_0 rel-700 | ||
==9. Build the docker, tar.gz and zip packages from | ==9. Build the docker, tar.gz and zip packages from v7_0_0.== | ||
:Use following script for the tar.gz and zip packages: https://gist.github.com/bradymiller/94409d7b6eadfd3ee34ff7b4363aac25 | :Use following script for the tar.gz and zip packages: https://gist.github.com/bradymiller/94409d7b6eadfd3ee34ff7b4363aac25 | ||
Revision as of 18:09, 24 May 2022
Overview
Steps detailing a release (7.0.0 is given as an example).
1. Create a rel-700 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.
- Also need to update Github Actions related stuff in .github/workflows/ and at top of main README.md
2. Release an online development demo that uses the rel-700 branch and updates daily.
- Also provide links for downloading rel-790 daily builds/packages(zip and tarball) to allow testing of installation and upgrading by testers
3. 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.
4. Finalize the translations in the rel-700 branch.
5. Bug fix and finalize the rel-700 branch.
- Update the copyright/acknowledgements page by copying the copyright page from HERE to acknowledge_license_cert.html in openemr codebase
6. Create a list of new features in the rel-700 branch (since the last official release)
7. Prepare for docker upgrade
- Increment docker-version file (increment number by 1) in docker /root/ (this is in the upgrade directory in the repo)
- Increment docker-version file (increment number by 1) in openemr base directory
- Increment docker-version file (increment number by 1) in openemr sites/default directory
- 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)
- Edit Dockerfile to bring in the fsupgrade-<number-incremented-to-above>.sh and docker-version file into the docker (these are in the upgrade directory in the repo)
8. Release rel-700 branch by tagging in git repo with v7_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 images in the following docker-compose.yml scripts: docker/production/docker-compose.yml, docker/production-arm/docker-compose.yml
- In _rest_routes.inc.php, set openemr version and do a api docs build
- In git repo:
git tag v7_0_0 rel-700
9. Build the docker, tar.gz and zip packages from v7_0_0.
- Use following script for the tar.gz and zip packages: https://gist.github.com/bradymiller/94409d7b6eadfd3ee34ff7b4363aac25
10. Release packages on sourceforge
- Upload via Project Admin
- Upload release and a release notes file
- Set file properties appropriately
11. 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?
12. Build and release the Cloud packages.
- AWS