Updated release instructions to account for website automation.

This commit is contained in:
Aymeric Augustin 2013-03-14 14:59:15 +01:00
parent 9883551d50
commit b492e59074
1 changed files with 17 additions and 37 deletions

View File

@ -17,7 +17,7 @@ There are three types of releases that you might need to make
* Security releases, disclosing and fixing a vulnerability. This'll * Security releases, disclosing and fixing a vulnerability. This'll
generally involve two or three simultaneous releases -- e.g. generally involve two or three simultaneous releases -- e.g.
1.5.X, 1.6.X, and, depending on timing, perhaps a 1.7 alpha/beta/rc. 1.5.x, 1.6.x, and, depending on timing, perhaps a 1.7 alpha/beta/rc.
* Regular version releases, either a final release (e.g. 1.5) or a * Regular version releases, either a final release (e.g. 1.5) or a
bugfix update (e.g. 1.5.1). bugfix update (e.g. 1.5.1).
@ -36,12 +36,11 @@ differences noted. The short version is:
#. Update version numbers and create the release package(s)! #. Update version numbers and create the release package(s)!
#. Upload the package(s) to the the ``djangoproject.com`` server and create #. Upload the package(s) to the ``djangoproject.com`` server.
some redirects for download/checksum links.
#. Unless this is a pre-release, add the new version(s) to PyPI. #. Unless this is a pre-release, add the new version(s) to PyPI.
#. Update the home page and download page to link to the new version(s). #. Declare the new version in the admin on ``djangoproject.com``.
#. Post the blog entry and send out the email announcements. #. Post the blog entry and send out the email announcements.
@ -62,7 +61,7 @@ You'll need a few things hooked up to make this work:
* Access to the ``djangoproject.com`` server to upload files and trigger a * Access to the ``djangoproject.com`` server to upload files and trigger a
deploy. deploy.
* Access to the admin on ``djangoproject.com``. * Access to the admin on ``djangoproject.com`` as a "Site maintainer".
* Access to post to ``django-announce``. * Access to post to ``django-announce``.
@ -104,31 +103,15 @@ any time leading up to the actual release:
Preparing for release Preparing for release
===================== =====================
Next, everything needs to be made ready for actually rolling the
release. The following things should be done a few days to a few hours
before release:
#. Update the djangoproject home page and download page templates to Write the announcement blog post for the release. You can enter it into the
reflect the new release. There are two templates to change: admin at any time and mark it as inactive. Here are a few examples: `example
``flatpages/download.html`` and ``homepage.html``; here's security release announcement`__, `example regular release announcement`__,
`one example commit for the 1.4.5 / 1.3.7 releases`__ `example pre-release announcement`__.
__ https://github.com/django/djangoproject.com/commit/772edbc6ac5a2b8e718606b3338f2bcc429fb9b6 __ https://www.djangoproject.com/weblog/2013/feb/19/security/
__ https://www.djangoproject.com/weblog/2012/mar/23/14/
#. Write the announcement blog post for the release. You can enter it into __ https://www.djangoproject.com/weblog/2012/nov/27/15-beta-1/
the admin at any time and mark it as inactive. Here are a few examples:
`example security release announcement`__, `example regular release
announcement`__, `example pre-release announcement`__.
__ https://www.djangoproject.com/weblog/2013/feb/19/security/
__ https://www.djangoproject.com/weblog/2012/mar/23/14/
__ https://www.djangoproject.com/weblog/2012/nov/27/15-beta-1/
#. Create redirects in the admin for the new downloads. For each release,
we create two redirects that look like::
/download/<version>/tarball/ -> /m/releases/<version>/Django-<version>.tar.gz
/download/<version>/checksum/ -> /m/pgp/Django-<version>.checksum.txt
Actually rolling the release Actually rolling the release
============================ ============================
@ -144,7 +127,6 @@ OK, this is the fun part, where we actually push out a release!
stable/<release>`` (e.g. checkout ``stable/1.5.x`` to issue a release in the stable/<release>`` (e.g. checkout ``stable/1.5.x`` to issue a release in the
1.5 series) and then ``git pull`` to make sure you're up-to-date. 1.5 series) and then ``git pull`` to make sure you're up-to-date.
#. If this is a security release, merge the appropriate patches from #. If this is a security release, merge the appropriate patches from
``django-private``. Rebase these patches as necessary to make each one a ``django-private``. Rebase these patches as necessary to make each one a
simple commit on the release branch rather than a merge commit. To ensure simple commit on the release branch rather than a merge commit. To ensure
@ -209,7 +191,7 @@ Now you're ready to actually put the release out there. To do this:
#. Upload the release package(s) to the djangoproject server; releases go #. Upload the release package(s) to the djangoproject server; releases go
in ``/home/www/djangoproject.com/src/media/releases``, under a in ``/home/www/djangoproject.com/src/media/releases``, under a
directory for the appropriate version number (e.g. directory for the appropriate version number (e.g.
``/home/www/djangoproject.com/src/media/releases/1.5`` for a ``1.5.X`` ``/home/www/djangoproject.com/src/media/releases/1.5`` for a ``1.5.x``
release.). release.).
#. Upload the checksum file(s); these go in #. Upload the checksum file(s); these go in
@ -245,13 +227,10 @@ Now you're ready to actually put the release out there. To do this:
work. *FIXME: Is there any reason to pull this file out manually rather than work. *FIXME: Is there any reason to pull this file out manually rather than
using "python setup.py register"?* using "python setup.py register"?*
#. Deploy the template changes you made a while back by running `fab deploy` #. Go to the `Add release page in the admin`__, enter the new release number
from the ``djangoproject.com`` repo. exactly as it appears in the name of the tarball (Django-<version>.tar.gz).
#. Update the ``/download/`` flat page in the djangoproject.com __ https://www.djangoproject.com/admin/releases/release/add/
admin. For alpha/beta/RC releases, we add a temporary third section
to that page listing the preview package; otherwise, just update
the "Get the latest official version" section.
#. Make the blog post announcing the release live. #. Make the blog post announcing the release live.
@ -283,7 +262,8 @@ You're almost done! All that's left to do now is:
the new version's docs, and update the ``docs/fixtures/doc_releases.json`` the new version's docs, and update the ``docs/fixtures/doc_releases.json``
JSON fixture. *FIXME: what is the purpose of maintaining this fixture?* JSON fixture. *FIXME: what is the purpose of maintaining this fixture?*
#. Add the release in `Trac's versions list`_. #. Add the release in `Trac's versions list`_ if necessary. Not all versions
are declared; take example on previous releases.
.. _Trac's versions list: https://code.djangoproject.com/admin/ticket/versions .. _Trac's versions list: https://code.djangoproject.com/admin/ticket/versions