summaryrefslogtreecommitdiff
path: root/release-howto.rst
diff options
context:
space:
mode:
authorRoland Hedberg <roland.hedberg@adm.umu.se>2012-05-23 18:56:51 +0200
committerRoland Hedberg <roland.hedberg@adm.umu.se>2012-05-23 18:56:51 +0200
commit1d7b2964d16b5c4443a3e7037d1bffe281726fc6 (patch)
treef191828115e6f89419cb8c2b34652546bab37889 /release-howto.rst
downloadpysaml2-1d7b2964d16b5c4443a3e7037d1bffe281726fc6.tar.gz
Initial add0.4.2
Diffstat (limited to 'release-howto.rst')
-rw-r--r--release-howto.rst69
1 files changed, 69 insertions, 0 deletions
diff --git a/release-howto.rst b/release-howto.rst
new file mode 100644
index 00000000..b3cfb3b3
--- /dev/null
+++ b/release-howto.rst
@@ -0,0 +1,69 @@
+Releasing software
+-------------------
+
+When releasing a new version, the following steps should be taken:
+
+1. Make sure all automated tests pass.
+
+2. Fill in the release date in ``CHANGES``. Make sure the changelog is
+ complete. Commit this change.
+
+3. Make sure the package metadata in ``setup.py`` is up-to-date. You can
+ verify the information by re-generating the egg info::
+
+ python setup.py egg_info
+
+ and inspecting ``src/pysaml2.egg-info/PKG-INFO``. You should also make sure
+ that the long description renders as valid reStructuredText. You can
+ do this by using the ``rst2html.py`` utility from docutils_::
+
+ python setup.py --long-description | rst2html > test.html
+
+ If this will produce warning or errors, PyPI will be unable to render
+ the long description nicely. It will treat it as plain text instead.
+
+4. Update the version in the setup.py file and the doc conf.py file. Commit
+ these changes.
+
+5. Create a release tag::
+
+ bzr tag X.Y.Z
+
+6. Push these changes to Launchpad::
+
+ bzr push
+
+7. Create a source distribution and upload it to PyPI using the following
+ command::
+
+ python setup.py register sdist upload
+
+8. Upload the documentation to PyPI. First you need to generate the html
+ version of the documentation::
+
+ cd doc
+ make clean
+ make html
+ cd _build/html
+ zip -r pysaml2-docs.zip *
+
+ now go to http://pypi.python.org/pypi?%3Aaction=pkg_edit&name=pysaml2 and
+ submit the pysaml2-docs.zip file in the form at the bottom of that page.
+
+9. Create a new release at Launchpad. If no milestone was created for this
+ release in the past, create it now at https://launchpad.net/pysaml2/main
+ Then create a release for that milestone. You can copy the section of
+ the CHANGES file that matches this release in the appropiate field of
+ the Launchpad form. Finally, add a download file for that release.
+
+10. Send an email to the pysaml2 list announcing this release
+
+
+**Important:** Once released to PyPI or any other public download location,
+a released egg may *never* be removed, even if it has proven to be a faulty
+release ("brown bag release"). In such a case it should simply be superseded
+immediately by a new, improved release.
+
+.. _docutils: http://docutils.sourceforge.net/
+
+This document is based on http://svn.zope.org/*checkout*/Sandbox/philikon/foundation/releasing-software.txt