Difference between revisions of "Steps for an official release"

From OpenEMR Project Wiki
Line 1: Line 1:
==Overview==
==Overview==
Steps detailing a release (6.0.0 is given as an example).
Steps detailing a release (6.1.0 is given as an example).


==1. Create a rel-600 branch from master in the git repo.==
==1. Create a rel-610 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-600 branch and updates daily.==
==2. Release an online development demo that uses the rel-610 branch and updates daily.==
:*Also provide links for downloading rel-600 daily builds/packages(zip and tarball) to allow testing of installation and upgrading by testers
:*Also provide links for downloading rel-610 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/common/compatibility/Checker.php#L19 set in OpenEMR].
:*Ensure have correct minimum php version [https://github.com/openemr/openemr/blob/master/common/compatibility/Checker.php#L19 set in OpenEMR].


==4. Finalize the translations in the rel-600 branch.==
==4. Finalize the translations in the rel-610 branch.==


==5. Bug fix and finalize the rel-600 branch.==
==5. Bug fix and finalize the rel-610 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-600 branch (since the last official release)==
==6. Create a list of new features in the rel-610 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-600 branch by tagging in git repo with v6_0_0.==
==8. Release rel-610 branch by tagging in git repo with v6_1_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
:::* Ensure the 'allow_debug_language' global in locale section in library/globals.inc.php is defaulted to 0
:::* 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
:::* Set version in images in the following docker-compose.yml scripts: docker/production/docker-compose.yml, docker/production-arm/docker-compose.yml
::* Login into the sourceforge shell and go to the git repo and type:
::* In git repo:
  git tag v6_0_0 rel-600
  git tag v6_1_0 rel-610


==9. Build the docker, tar.gz and zip packages from v6_0_0.==
==9. Build the docker, tar.gz and zip packages from v6_1_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


Line 51: Line 51:
:*Twitter
:*Twitter
:*Facebook
:*Facebook
:*google+
:*Diaspora
:*Diaspora
:*[[OpenEMR Mastodon Page|Mastodon]]
:*[[OpenEMR Mastodon Page|Mastodon]]
Line 63: Line 62:
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:
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:


:*Linuxmednews
:*OpenHealthNews
:*OpenHealthNews
:*HackerNews
:*HackerNews
Line 71: Line 69:
==12. Build and release the Cloud packages.==
==12. Build and release the Cloud packages.==
# AWS
# AWS
# Google
<br>
<br>
<br>
<br>


[[Category:Release]][[Category:Linux Package]][[Category:Windows Package]][[Category:Ubuntu Package]][[Category:Debian Package]][[Category:XAMPP-OpenEMR Package]][[Category:Appliance]]
[[Category:Release]][[Category:Linux Package]][[Category:Windows Package]][[Category:Ubuntu Package]][[Category:Debian Package]][[Category:XAMPP-OpenEMR Package]][[Category:Appliance]]

Revision as of 17:52, 21 February 2022

Overview

Steps detailing a release (6.1.0 is given as an example).

1. Create a rel-610 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-610 branch and updates daily.

  • Also provide links for downloading rel-610 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.

4. Finalize the translations in the rel-610 branch.

5. Bug fix and finalize the rel-610 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-610 branch (since the last official release)

7. Prepare for docker upgrade

  1. Increment docker-version file (increment number by 1) in docker /root/ (this is in the upgrade directory in the repo)
  2. Increment docker-version file (increment number by 1) in openemr base directory
  3. Increment docker-version file (increment number by 1) in openemr sites/default directory
  4. 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)
  5. 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-610 branch by tagging in git repo with v6_1_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 git repo:
git tag v6_1_0 rel-610

9. Build the docker, tar.gz and zip packages from v6_1_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.

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.

  1. AWS