Project Management Committee Documentation

Release Procedure

  1. Generate code signing key if you do not already have one for Apache. Refer to http://apache.org/dev/openpgp.html#generate-key on how to generate a strong code signing key.
  2. Add your public key to the KEYS file at the root of the source code tree.
  3. Create a new release branch, with version bumped to the next release version.
  4. git checkout -b release/0.9.9
  5. Replace all 0.9.9.dev0 in the code tree to 0.9.9.
  6. git commit -am "Prepare 0.9.9rc1"
  7. git tag -am "Apache PredictionIO Python SDK 0.9.9rc1" v0.9.9rc1
  8. Package a binary/source files.
  9. python setup.py sdist bdist_wheel
  10. Generate MD5 and SHA512 checksums for the release candidates in dist directory.
  11. gpg --print-md MD5 PredictionIO-0.9.9-py3-none-any.whl > PredictionIO-0.9.9-py3-none-any.whl.md5
  12. gpg --print-md SHA512 PredictionIO-0.9.9-py3-none-any.whl > PredictionIO-0.9.9-py3-none-any.whl.sha512
  13. gpg --print-md MD5 PredictionIO-0.9.9.tar.gz > PredictionIO-0.9.9.tar.gz.md5
  14. gpg --print-md SHA512 PredictionIO-0.9.9.tar.gz > PredictionIO-0.9.9.tar.gz.sha512
  15. Generate detached signature for the release candidate. (http://apache.org/dev/release-signing.html#openpgp-ascii-detach-sig)
  16. gpg --armor --output PredictionIO-0.9.9-py3-none-any.whl.asc --detach-sig PredictionIO-0.9.9-py3-none-any.whl
  17. gpg --armor --output PredictionIO-0.9.9.tar.gz.asc --detach-sig PredictionIO-0.9.9.tar.gz
  18. If you have not done so, use SVN to checkout https://dist.apache.org/repos/dist/dev/incubator/predictionio/sdk-python. This is the area for staging release candidates for voting.
  19. svn co https://dist.apache.org/repos/dist/dev/incubator/predictionio/sdk-python
  20. Create a subdirectory at the SVN staging area. The area should have a KEYS file.
  21. mkdir 0.9.9rc1
  22. cp PredictionIO-0.9.9* 0.9.9rc1
  23. If you have updated the KEYS file, also copy that to the staging area.
  24. svn commit
  25. Wait for Travis to pass build on the release branch.
  26. Tag the release branch with a rc tag, e.g. 0.9.9rc1.
  27. Send out e-mail for voting on PredictionIO dev mailing list.
Subject: [VOTE] Apache PredictionIO SDK Python 0.9.9 Release (RC1)

This is the vote for 0.9.9 of Apache PredictionIO.

The vote will run for at least 72 hours and will close on Apr 7th, 2017.

The release candidate artifacts can be downloaded here:
https://dist.apache.org/repos/dist/dev/incubator/predictionio/sdk-python/0.9.9rc1/

Test results can be found here:
https://travis-ci.org/apache/incubator-predictionio-sdk-python/builds/XXXXXX

To install this python module:
$ pip install PredictionIO-0.9.9.tar.gz
or
$ pip3 install PredictionIO-0.9.9-py3-none-any.whl

The artifacts have been signed with Key : YOUR_KEY_ID

Please vote accordingly:

[ ] +1, accept RC as the official 0.9.9 release
[ ] 0, neutral because...
[ ] -1, do not accept RC as the official 0.9.9 release because...
  1. Publish files to PyPI if the vote is passed.
  2. twine upload dist/PredictionIO-0.9.9.tar.gz dist/PredictionIO-0.9.9.tar.gz.asc \ dist/PredictionIO-0.9.9-py3-none-any.whl dist/PredictionIO-0.9.9-py3-none-any.whl.asc
  3. Create release tag
  4. git tag -am "Apache PredictionIO Python SDK 0.9.9" v0.9.9
  5. Merge release/0.9.9 into master and develop branch
  6. Bump up version in setup.py on develop branch