Skip to content

How to Package a New RMG Release

Kehang Han edited this page Sep 16, 2016 · 26 revisions

Release Numbering

RMG-Py and RMG-database releases can be different versions, and a new database release does not have to coincide with an RMG-Py release. Release numbering should be updated based on how much the code has shifted. We currently use a naming system like so

RMG-Py vX.Y.Z  

For the next major release (post parallelization), I recommend updating both RMG-Py and RMG-database to version number to 2.0.0.

Steps

  1. Update all version numbers first, because a lot of the other files and functions queries these version numbers.
  • For RMG-Py: RMG-Py/rmgpy/version.py, RMG-Py/README.md
  • For RMG-database: RMG-database/meta.yaml, RMG-database/setup.py
  • For PyDQED: PyDQED/setup.py, PyDQED/pydqed.pyx
  • For PyDAS: PyDAS/pydas/version.py
  1. Create new release notes in the documentation for the version: RMG-Py/documentation/source/users/rmg/releaseNotes.rst
  2. Make sure main copyright stamps to reflect year change: RMG-Py/COPYING.txt
  3. Compile new PDF documentation from source for the release by going into documentation folder and using the command make latexpdf. Replace the previous documentation pdfs in the RMG-Py/documentation folder. Create a commit that states that PDF documentation for release X.Y.Z has been updated. (Note that RMG-Py, PyDAS, and PyDQED repos all have documentation. RMG-database does not.)
  4. Update the online documentation too (see the wiki page for details: https://github.com/ReactionMechanismGenerator/RMG-Py/wiki/Updating-Documentation) and update latest version number at http://reactionmechanismgenerator.github.io/.
  5. Test that everything works correctly. You may want to test that the Anaconda binary for the repo compiles correctly at this point in time and that the packages run properly on a clean anaconda environment.

Typical testing procedure in Mac and Linux can follow:

conda create --name rmg_test -c rmg rmg=X.Y.Z
source activate rmg_test
rmg.py input.py
  1. (Testing and checks before this step is VERY CRITICAL. All future references to this release will point to this tagged commit, so you must be absolutely sure that the release is ready.) Create a new empty commit on the repository of the release titled i.e. git commit --allow-empty -m "RMG-Py vX.Y.Z release" (see https://github.com/ReactionMechanismGenerator/RMG-Py/commit/643719b76c846031f64ddf3c74346af9591329d6)
  2. Go to the releases tab of the repository and click the 'Draft a new release' button. Tag the version with the string X.Y.Z and create the release title RMG-Py vX.Y.Z
  3. Package all new anaconda binaries for the repos that have been released and upload them onto the http://anaconda.org/rmg channel.
  4. Now update any relevant version numbers in the repo https://github.com/ReactionMechanismGenerator/ReactionMechanismGenerator.github.io, which generates the homepage http://reactionmechanismgenerator.github.io
  5. Update the version number on the Green Group website: http://cheme.scripts.mit.edu/green-group/rmg/
  6. Update any relevant version information in RMG-tests repo such as RMG-tests/install.sh New models may also need to be generated and saved into this repo for the integration test comparisons to work correctly.
  7. If the release had substantial updates, email this news to the relevant RMG userbase along with the release notes and links for how to install. Reference older release emails for details. (Key groups: sourceforge mailing list, rmg_dev@mit.edu, Green Group, Comocheng Group, any users who have been emailing us in recent history).