Release process#

One-time setup

pip install --upgrade build twine
  1. All tests pass on continuous integration

  2. The changelog is up-to-date and dated

  3. The version number is correct in:


    • docs/

    • csvkit/

  4. Check for new authors:

    git log --perl-regexp --author='^((?!James McKinney).*)$'
  5. Tag the release:

    git tag -a x.y.z -m 'x.y.z release.'
    git push --follow-tags
  6. Upload to PyPI:

    rm -rf dist
    python -m build --sdist --wheel
    twine upload dist/*
  7. Build the documentation on ReadTheDocs manually