Difference between revisions of "Steps for an official release"

From OpenEMR Project Wiki
Line 47: Line 47:


==9. Build the tar.gz, zip and deb packages from v4_1_1.==
==9. Build the tar.gz, zip and deb packages from v4_1_1.==
: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_1
cd ../
rm -fr openemr/.git
===Set permissions for tarball and zip===
cp -a openemr/ openemr-4.1.1/
chmod -R u+w openemr-4.1.1
chmod -R a+w openemr-4.1.1/sites/default/documents
chmod -R a+w openemr-4.1.1/sites/default/edi
chmod -R a+w openemr-4.1.1/sites/default/era
chmod -R a+w openemr-4.1.1/sites/default/letter_templates
chmod a+w openemr-4.1.1/sites/default/sqlconf.php
chmod a+w openemr-4.1.1/sites/default/config.php
chmod -R a+w openemr-4.1.1/gacl/admin/templates_c
chmod -R a+w openemr-4.1.1/interface/main/calendar/modules/PostCalendar/pntemplates/cache
chmod -R a+w openemr-4.1.1/interface/main/calendar/modules/PostCalendar/pntemplates/compiled
===Build tarball (Linux)===
tar zcpf openemr-4.1.1.tar.gz openemr-4.1.1
===Build zip (Windows)===
zip -r openemr-4.1.1.zip openemr-4.1.1
===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.1-1_all.deb
lintian openemr_4.1.1-1_all.deb


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

Revision as of 01:26, 15 June 2013

Overview

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

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

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

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

3. Publish installation, upgrade, and downloading instructions

  • Also update the INSTALL file

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

5. Bug fix and finalize the rel-411 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-411 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 (4.1.1-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-411 branch by tagging in git repo with v4_1_1.

  • 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
  • Ensure the two User Manual links point to the correct online manual
  • Login into the sourceforge shell and go to the git repo and type:
git tag v4_1_1 rel-411

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

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_1
cd ../
rm -fr openemr/.git

Set permissions for tarball and zip

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

Build tarball (Linux)

tar zcpf openemr-4.1.1.tar.gz openemr-4.1.1

Build zip (Windows)

zip -r openemr-4.1.1.zip openemr-4.1.1

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.1-1_all.deb
lintian openemr_4.1.1-1_all.deb

10. Release packages on sourceforge

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

11. Announce Release

  • Sourceforge
  • Twitter
  • Facebook
  • google+
  • Linkedin
  • Linuxmednews
  • Freecode

11. Build and release the Appliance.

12. Build and release the Windows XAMPP package.