Difference between revisions of "Steps for an official release"

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


==1. Create a rel-422 branch from master in the git repo.==
==1. Create a rel-500 branch from master in the git repo.==
::* Login into the sourceforge shell and go to the git repo and type:
::* 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.
git branch rel-422 master


==2. Release an online development demo that uses the rel-422 branch and updates daily.==
==2. Release an online development demo that uses the rel-500 branch and updates daily.==
:*Also provide links for downloading rel-422 daily builds/packages(zip and tarball) to allow testing of installation and upgrading by testers
:*Also provide links for downloading rel-500 daily builds/packages(zip and tarball) to allow testing of installation and upgrading by testers


==3. Publish installation, upgrade, and downloading instructions==
==3. Publish installation, upgrade, and downloading instructions==
Line 14: Line 13:
:*Also update the Documentation/INSTALL file
:*Also update the Documentation/INSTALL file


==4. Finalize the translations in the rel-422 branch.==
==4. Finalize the translations in the rel-500 branch.==


==5. Bug fix and finalize the rel-422 branch.==
==5. Bug fix and finalize the rel-500 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-422 branch (since the last official release)==
==6. Create a list of new features in the rel-500 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 32: Line 31:
:::*changelog.Debian
:::*changelog.Debian
::::* Add entry for new version:
::::* Add entry for new version:
<pre>openemr (4.2.2-1) stable; urgency=low
<pre>openemr (5.0.0-1) stable; urgency=low


   * New upstream version
   * New upstream version
Line 43: Line 42:
::::*Update the algorithm to upgrade the previous version correctly
::::*Update the algorithm to upgrade the previous version correctly


==8. Release rel-422 branch by tagging in git repo with v4_2_2.==
==8. Release rel-500 branch by tagging in git repo with v5_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
:::* 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
::* Login into the sourceforge shell and go to the git repo and type:
::* Login into the sourceforge shell and go to the git repo and type:
  git tag v4_2_2 rel-422
  git tag v5_0_0 rel-500


==9. Build the tar.gz, zip and deb packages from v4_2_2.==
==9. Build the tar.gz, zip and deb packages from v5_0_0.==
:Use script.
:Use a script.


==10. Release packages on sourceforge==
==10. Release packages on sourceforge==

Revision as of 22:07, 3 September 2016

Overview

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

1. Create a rel-500 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.

2. Release an online development demo that uses the rel-500 branch and updates daily.

  • Also provide links for downloading rel-500 daily builds/packages(zip and tarball) to allow testing of installation and upgrading by testers

3. Publish installation, upgrade, and downloading instructions

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

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

7. Prepare files for the Ubuntu/debian package

  • Ensure following files are updated at openemr/contrib/util/ubuntu_package_scripts/production/ in codebase:
  • control
  • Update Version
  • Update Installed-Size (just estimate it, doesn't need to be accurate)
  • Add new package dependencies (if pertinent, for example in 4.1.0, adding php5-soap and also a Pre-Depends:debconf)
  • README.Debian
  • Change the dates at bottom of file to release date (use date -R to get correctly formatted date).
  • changelog.Debian
  • Add entry for new version:
openemr (5.0.0-1) stable; urgency=low

  * New upstream version

 -- Brady Miller <brady@sparmy.com>  Fri, 25 Mar 2011 22:46:08 -0700
  • copyright
  • Add current date near top (use date -R to get correctly formatted date)
  • Modify the copyright years (two of them), if needed
  • preinst
  • Update the algorithm to upgrade the previous version correctly

8. Release rel-500 branch by tagging in git repo with v5_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
  • Login into the sourceforge shell and go to the git repo and type:
git tag v5_0_0 rel-500

9. Build the tar.gz, zip and deb packages from v5_0_0.

Use a script.

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
  • Twitter
  • Facebook
  • google+
  • Diaspora
  • Linkedin

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 http://www.openhealthnews.com/hotnews/openemr-v412-planned-release as inspiration. This release announcement should be posted on the following sites:

  • Linuxmednews
  • 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 Windows XAMPP package.