Difference between revisions of "Steps for an official release"

From OpenEMR Project Wiki
Line 85: Line 85:
  cp openemr/contrib/util/ubuntu_package_scripts/production/openemr.8 debian/usr/share/man/man8/
  cp openemr/contrib/util/ubuntu_package_scripts/production/openemr.8 debian/usr/share/man/man8/
  gzip --best debian/usr/share/man/man8/openemr.8
  gzip --best debian/usr/share/man/man8/openemr.8
  cp -r 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.0.0-1_all.deb

Revision as of 06:42, 26 March 2011

Overview

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

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

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

3. Publish installation, upgrade, and downloading instructions

  • Also provide links for downloading rel-400 daily builds/packages to allow testing of installation and upgrading by testers

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

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

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

6. Release rel-400 branch by tagging in git repo with v4_0_0.

  • Things to remember before tagging the release.
  • Remove dev (make it blank) from the version.php file
  • Ensure the debug language global in locale in library/globals.inc.php is defaulted to 0
  • Prepare the ubuntu/debian package
  • Ensure following files are updated:
  • 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.0.0, added php5-curl and php5-mcrypt)
  • 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.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 (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)
  • Now ready to tag the release. Login into the sourceforge shell and go to the git repo and type:

7. Build the tar.gz, zip and deb packages from v4_0_0.

Script that automates the below release builds outlined below is here: 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 origin/v4_0_0
cd ../
rm -fr openemr/.git

Set permissions for tarball and zip

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

Build tarball (Linux)

tar zcpf openemr-4.0.0.tar.gz openemr-4.0.0

Build zip (Windows)

zip -r openemr-4.0.0.zip openemr-4.0.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/
chmod +x debian/DEBIAN/preinst
chmod +x debian/DEBIAN/postinst
chmod +x debian/DEBIAN/prerm
chmod +x debian/DEBIAN/postrm
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.0.0-1_all.deb
lintian openemr_4.0.0-1_all.deb

8. Release packages on sourceforge

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

9. Build and release the Appliance.

10. Build and release the Windows XAMPP package.