Difference between revisions of "Steps for an official release"

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


==1. Create a rel-400 branch from master in the git repo.==
==1. Create a rel-410 branch from master in the git repo.==
==2. Release an online development demo that uses the rel-400 branch and updates daily.==
==2. Release an online development demo that uses the rel-410 branch and updates daily.==
:*Also provide links for downloading rel-400 daily builds/packages(zip and tarball) to allow testing of installation and upgrading by testers
:*Also provide links for downloading rel-410 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==
==3. Finalize the translations in the rel-400 branch.==
==3. Finalize the translations in the rel-410 branch.==
==4. Bug fix and finalize the rel-400 branch.==
==4. Bug fix and finalize the rel-410 branch.==
==5. Create a list of new features in the rel-400 branch (since the last official release)==
==5. Create a list of new features in the rel-410 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 18: Line 18:
::::*Update Version
::::*Update Version
::::*Update Installed-Size (just estimate it, doesn't need to be accurate)
::::*Update Installed-Size (just estimate it, doesn't need to be accurate)
::::*Add new package dependencies (if pertinent, for example in 4.0.0, added php5-curl and php5-mcrypt)
::::*Add new package dependencies (if pertinent, for example in 4.1.0, adding php5-soap and also a Pre-Depends:debconf)
:::*README.Debian
:::*README.Debian
::::*Change the dates at bottom of file to release date (use date -R to get correctly formatted date).
::::*Change the dates at bottom of file to release date (use date -R to get correctly formatted date).
:::*changelog.Debian
:::*changelog.Debian
::::* Add entry for new version:
::::* Add entry for new version:
<pre>openemr (4.0.0-1) stable; urgency=low
<pre>openemr (4.1.0-1) stable; urgency=low


   * New upstream version
   * New upstream version
Line 32: Line 32:
::::*Modify the copyright years (two of them), if needed
::::*Modify the copyright years (two of them), if needed
:::*preinst
:::*preinst
::::*Update the algorithm to upgrade the previous version correctly (note that the release after 4.0.0 will need to add some code for the differences in where the version is stored in pre vs post 4.0)
::::*Update the algorithm to upgrade the previous version correctly (note that the release after 4.0.0 will need to add some code for the differences in where the version is stored in pre vs post 4.1)


==7. Release rel-400 branch by tagging in git repo with v4_0_0.==
==7. Release rel-410 branch by tagging in git repo with v4_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
::* 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_0_0 rel-400
  git tag v4_1_0 rel-410


==8. Build the tar.gz, zip and deb packages from v4_0_0.==
==8. Build the tar.gz, zip and deb packages from v4_1_0.==


:Here is a script that automates the below release builds below: http://gist.github.com/884734
:Here is a script that automates the below release builds below: http://gist.github.com/884734
Line 48: Line 48:
  git clone git://openemr.git.sourceforge.net/gitroot/openemr/openemr
  git clone git://openemr.git.sourceforge.net/gitroot/openemr/openemr
  cd openemr
  cd openemr
  git checkout v4_0_0
  git checkout v4_1_0
  cd ../
  cd ../
  rm -fr openemr/.git
  rm -fr openemr/.git


===Set permissions for tarball and zip===
===Set permissions for tarball and zip===
  cp -a openemr/ openemr-4.0.0/
  cp -a openemr/ openemr-4.1.0/
  chmod -R u+w openemr-4.0.0
  chmod -R u+w openemr-4.1.0
  chmod -R a+w openemr-4.0.0/sites/default/documents
  chmod -R a+w openemr-4.1.0/sites/default/documents
  chmod -R a+w openemr-4.0.0/sites/default/edi
  chmod -R a+w openemr-4.1.0/sites/default/edi
  chmod -R a+w openemr-4.0.0/sites/default/era
  chmod -R a+w openemr-4.1.0/sites/default/era
  chmod -R a+w openemr-4.0.0/sites/default/letter_templates
  chmod -R a+w openemr-4.1.0/sites/default/letter_templates
  chmod a+w openemr-4.0.0/sites/default/sqlconf.php
  chmod a+w openemr-4.1.0/sites/default/sqlconf.php
  chmod a+w openemr-4.0.0/sites/default/config.php
  chmod a+w openemr-4.1.0/sites/default/config.php
  chmod -R a+w openemr-4.0.0/gacl/admin/templates_c
  chmod -R a+w openemr-4.1.0/gacl/admin/templates_c
  chmod -R a+w openemr-4.0.0/interface/main/calendar/modules/PostCalendar/pntemplates/cache
  chmod -R a+w openemr-4.1.0/interface/main/calendar/modules/PostCalendar/pntemplates/cache
  chmod -R a+w openemr-4.0.0/interface/main/calendar/modules/PostCalendar/pntemplates/compiled
  chmod -R a+w openemr-4.1.0/interface/main/calendar/modules/PostCalendar/pntemplates/compiled


===Build tarball (Linux)===
===Build tarball (Linux)===
  tar zcpf openemr-4.0.0.tar.gz openemr-4.0.0
  tar zcpf openemr-4.1.0.tar.gz openemr-4.1.0


===Build zip (Windows)===
===Build zip (Windows)===
  zip -r openemr-4.0.0.zip openemr-4.0.0
  zip -r openemr-4.1.0.zip openemr-4.1.0


===Build deb (Debian/Ubuntu package)===
===Build deb (Debian/Ubuntu package)===
Line 82: Line 82:
  cp openemr/contrib/util/ubuntu_package_scripts/production/prerm debian/DEBIAN/
  cp openemr/contrib/util/ubuntu_package_scripts/production/prerm debian/DEBIAN/
  cp openemr/contrib/util/ubuntu_package_scripts/production/postrm debian/DEBIAN/
  cp openemr/contrib/util/ubuntu_package_scripts/production/postrm debian/DEBIAN/
cp openemr/contrib/util/ubuntu_package_scripts/production/config debian/DEBIAN/
cp openemr/contrib/util/ubuntu_package_scripts/production/templates debian/DEBIAN/
  chmod +x debian/DEBIAN/preinst
  chmod +x debian/DEBIAN/preinst
  chmod +x debian/DEBIAN/postinst
  chmod +x debian/DEBIAN/postinst
  chmod +x debian/DEBIAN/prerm
  chmod +x debian/DEBIAN/prerm
  chmod +x debian/DEBIAN/postrm
  chmod +x debian/DEBIAN/postrm
chmod +x debian/DEBIAN/config
  cp openemr/contrib/util/ubuntu_package_scripts/production/openemr.desktop debian/usr/share/applications/
  cp openemr/contrib/util/ubuntu_package_scripts/production/openemr.desktop debian/usr/share/applications/
  cp openemr/contrib/util/ubuntu_package_scripts/production/changelog.Debian debian/usr/share/doc/openemr/
  cp openemr/contrib/util/ubuntu_package_scripts/production/changelog.Debian debian/usr/share/doc/openemr/
Line 95: Line 98:
  cp -a openemr/ debian/var/www/openemr/
  cp -a openemr/ debian/var/www/openemr/
  fakeroot dpkg-deb --build debian
  fakeroot dpkg-deb --build debian
  mv debian.deb openemr_4.0.0-1_all.deb
  mv debian.deb openemr_4.1.0-1_all.deb
  lintian openemr_4.0.0-1_all.deb
  lintian openemr_4.1.0-1_all.deb


==9. Release packages on sourceforge==
==9. Release packages on sourceforge==

Revision as of 06:28, 27 July 2011

Overview

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

1. Create a rel-410 branch from master in the git repo.

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

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

3. Publish installation, upgrade, and downloading instructions

3. Finalize the translations in the rel-410 branch.

4. Bug fix and finalize the rel-410 branch.

5. Create a list of new features in the rel-410 branch (since the last official release)

6. Prepare files for the Ubuntu/debian package

  • (NOTE there will be a large refactoring of this package in 4.1 release to ensure it works well with ubuntu 11.04)
  • 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 (4.1.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 (note that the release after 4.0.0 will need to add some code for the differences in where the version is stored in pre vs post 4.1)

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

8. Build the tar.gz, zip and deb packages from v4_1_0.

Here is a script that automates the below release builds below: http://gist.github.com/884734

Download release from sourceforge git repository

git clone git://openemr.git.sourceforge.net/gitroot/openemr/openemr
cd openemr
git checkout v4_1_0
cd ../
rm -fr openemr/.git

Set permissions for tarball and zip

cp -a openemr/ openemr-4.1.0/
chmod -R u+w openemr-4.1.0
chmod -R a+w openemr-4.1.0/sites/default/documents
chmod -R a+w openemr-4.1.0/sites/default/edi
chmod -R a+w openemr-4.1.0/sites/default/era
chmod -R a+w openemr-4.1.0/sites/default/letter_templates
chmod a+w openemr-4.1.0/sites/default/sqlconf.php
chmod a+w openemr-4.1.0/sites/default/config.php
chmod -R a+w openemr-4.1.0/gacl/admin/templates_c
chmod -R a+w openemr-4.1.0/interface/main/calendar/modules/PostCalendar/pntemplates/cache
chmod -R a+w openemr-4.1.0/interface/main/calendar/modules/PostCalendar/pntemplates/compiled

Build tarball (Linux)

tar zcpf openemr-4.1.0.tar.gz openemr-4.1.0

Build zip (Windows)

zip -r openemr-4.1.0.zip openemr-4.1.0

Build deb (Debian/Ubuntu package)

mkdir -p debian/DEBIAN
mkdir -p debian/usr/share/applications
mkdir -p debian/usr/share/doc/openemr/
mkdir -p debian/usr/share/man/man8
mkdir -p debian/var/www
cp openemr/contrib/util/ubuntu_package_scripts/production/control debian/DEBIAN/
cp openemr/contrib/util/ubuntu_package_scripts/production/preinst debian/DEBIAN/
cp openemr/contrib/util/ubuntu_package_scripts/production/postinst debian/DEBIAN/
cp openemr/contrib/util/ubuntu_package_scripts/production/prerm debian/DEBIAN/
cp openemr/contrib/util/ubuntu_package_scripts/production/postrm debian/DEBIAN/
cp openemr/contrib/util/ubuntu_package_scripts/production/config debian/DEBIAN/
cp openemr/contrib/util/ubuntu_package_scripts/production/templates debian/DEBIAN/
chmod +x debian/DEBIAN/preinst
chmod +x debian/DEBIAN/postinst
chmod +x debian/DEBIAN/prerm
chmod +x debian/DEBIAN/postrm
chmod +x debian/DEBIAN/config
cp openemr/contrib/util/ubuntu_package_scripts/production/openemr.desktop debian/usr/share/applications/
cp openemr/contrib/util/ubuntu_package_scripts/production/changelog.Debian debian/usr/share/doc/openemr/
gzip --best debian/usr/share/doc/openemr/changelog.Debian
cp openemr/contrib/util/ubuntu_package_scripts/production/copyright debian/usr/share/doc/openemr/
cp openemr/contrib/util/ubuntu_package_scripts/production/README.Debian debian/usr/share/doc/openemr/
cp openemr/contrib/util/ubuntu_package_scripts/production/openemr.8 debian/usr/share/man/man8/
gzip --best debian/usr/share/man/man8/openemr.8
cp -a openemr/ debian/var/www/openemr/
fakeroot dpkg-deb --build debian
mv debian.deb openemr_4.1.0-1_all.deb
lintian openemr_4.1.0-1_all.deb

9. Release packages on sourceforge

  • Upload via Project Admin
  • Upload release and a release notes file
  • Set file properties appropriately

10. Build and release the Appliance.

11. Build and release the Windows XAMPP package.