release-howto.rst 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. Releasing software
  2. -------------------
  3. When releasing a new version, the following steps should be taken:
  4. 1. Make sure all automated tests pass.
  5. 2. Fill in the release date in ``CHANGES``. Make sure the changelog is
  6. complete. Commit this change.
  7. 3. Make sure the package metadata in ``setup.py`` is up-to-date. You can
  8. verify the information by re-generating the egg info::
  9. python setup.py egg_info
  10. and inspecting ``src/pysaml2.egg-info/PKG-INFO``. You should also make sure
  11. that the long description renders as valid reStructuredText. You can
  12. do this by using the ``rst2html.py`` utility from docutils_::
  13. python setup.py --long-description | rst2html > test.html
  14. If this will produce warning or errors, PyPI will be unable to render
  15. the long description nicely. It will treat it as plain text instead.
  16. 4. Update the version in the setup.py file and the doc conf.py file. Commit
  17. these changes.
  18. 5. Create a release tag::
  19. bzr tag X.Y.Z
  20. 6. Push these changes to Launchpad::
  21. bzr push
  22. 7. Create a source distribution and upload it to PyPI using the following
  23. command::
  24. python setup.py register sdist upload
  25. 8. Upload the documentation to PyPI. First you need to generate the html
  26. version of the documentation::
  27. cd doc
  28. make clean
  29. make html
  30. cd _build/html
  31. zip -r pysaml2-docs.zip *
  32. now go to http://pypi.python.org/pypi?%3Aaction=pkg_edit&name=pysaml2 and
  33. submit the pysaml2-docs.zip file in the form at the bottom of that page.
  34. 9. Create a new release at Launchpad. If no milestone was created for this
  35. release in the past, create it now at https://launchpad.net/pysaml2/main
  36. Then create a release for that milestone. You can copy the section of
  37. the CHANGES file that matches this release in the appropiate field of
  38. the Launchpad form. Finally, add a download file for that release.
  39. 10. Send an email to the pysaml2 list announcing this release
  40. **Important:** Once released to PyPI or any other public download location,
  41. a released egg may *never* be removed, even if it has proven to be a faulty
  42. release ("brown bag release"). In such a case it should simply be superseded
  43. immediately by a new, improved release.
  44. .. _docutils: http://docutils.sourceforge.net/
  45. This document is based on http://svn.zope.org/*checkout*/Sandbox/philikon/foundation/releasing-software.txt