wiki:ReleaseProcess

Version 13 (modified by dread, 3 years ago) (diff)

--

About CKAN Releases

The OKF aims to make releases CKAN regularly - minor points every two months. Find releases at: PyPI. See the changes at on the Changelog.

See also: VersioningPolicy

Approaching CKAN release - alpha release

  1. Change the version number to the next version alpha in ckan/init.py e.g. 1.2a
  2. Commit and push this change.
  3. Bring metastable branch in line with default:
    $ hg up -C metastable
    $ hg merge -r default
    $ nosetests ckan/tests
    $ hg ci -m '[merge] from release 1.1a.'
    $ hg push
    

Doing a CKAN release

  1. Test the code satisfactorily.
  2. Summarise the tickets going in this release in the ckan/doc/CHANGELOG.rst
  3. Remove the pre-release letter in the version number in ckan/init.py e.g. 1.1c -> 1.1
  4. Commit this change.
  5. Update the internationalization POT file and commit it:
    $ python setup.py extract_messages
    $ hg ci -m '[i18n]: Updated POT ready for release.' ckan/i18n/ckan.pot
    
  6. Compile the docs:
    $ python setup.py build_sphinx
    
  7. Upload docs to PyPI. If this is the first time you'll want sphinx-pypi-upload installed:
    $ easy_install sphinx-pypi-upload
    
    then do the upload:
    $ python setup.py upload_sphinx
    
    Check it is displayed at: http://packages.python.org/ckan/
  8. Tag the repo with the version number (commits change). (add -f to the tag if you want to overwrite a previous tag with this release) e.g.
    $ hg tag ckan-1.1 -m 'Release 1.1'
    $ hg push
    
  9. Upload the release to PyPI (If you make a mistake, you can always go into PyPI, remove the release file and then reupload it.)
    python setup.py sdist upload
    
  10. Bring metastable branch in line with default:
    $ hg up -C metastable
    $ hg merge -r default
    $ nosetests ckan/tests
    $ hg ci -m '[merge] from release 1.1.'
    $ hg push
    
  11. If there have been any unreleased changes to OKF dependencies like vdm, ckanclient, swiss etc. make sure you release them too.

ckanclient releases

  1. Increase version number in ckanclient/init.py
  2. Add a changelog for this new version in ckanclient/init.py
  3. Check-in the changes
  4. Tag the version:
     $ hg tag "ckanclient-v0.5"
    
  5. Create a PYPI config file (~/.pypirc) if necessary:
    [distutils]
    index-servers =
      pypi
    
    [pypi]
    #repository: http://www.python.org/pypi
    username: joebloggs
    password: mypassword
    
  6. Produce the distribution and upload to PYPI
    $ python setup.py sdist upload
    
  7. See the upload here: http://www.python.org/pypi/ckanclient
  8. Check that the setup.py for various branches of CKAN have the new version in their range (as appropriate).
  9. Check that the various pip-requirements.txt files also match the new version (as appropriate).

vdm releases

  1. Increase version number in vdm/init.py
  2. Add a changelog for this new version in vdm/CHANGELOG.txt
  3. Check-in the changes
  4. Tag the version:
     $ hg tag "vdm-0.8"
    
  5. Create a PYPI config file (~/.pypirc) if necessary:
    [distutils]
    index-servers =
      pypi
    
    [pypi]
    #repository: http://www.python.org/pypi
    username: joebloggs
    password: mypassword
    
  6. Produce the distribution and upload to PYPI
    $ python setup.py sdist upload
    
  7. See the upload here: http://www.python.org/pypi/vdm
  8. Check that the setup.py for various branches of CKAN have the new version in their range (as appropriate).
  9. Check that the various pip-requirements.txt files also match the new version (as appropriate).