Fetching contributors…
Cannot retrieve contributors at this time
129 lines (78 sloc) 3.25 KB
Distributing a new release
- For clarity, we define releases as follows.
- Alpha, beta, dev and similar statuses do not qualify whether a release is
major or minor. The term "pre-release" means alpha, beta, or dev.
- A release is final when it is no longer pre-release.
- A *major* release is where the first number either before or after the
first dot increases. Examples: 0.9.0 to 2.0.
- A *minor* or *bug fix* release is where the number after the second dot
increases. Example: 2.0 to 2.0.1.
Prepare new release branch
- Create a new release branch, incrementing the version number.
- Do any necessary branch merges (e.g., master to branch, branch to master).
- On release branch:
$ git pull
- Do platform test via tox:
- Make sure your Python has ``setuptools-git``, ``twine``, and ``wheel``
$ $VENV/bin/easy_install setuptools-git twine wheel
- Do a platform test:
$ tox -r
- Ensure all features of the release are documented (audit CHANGES.txt or
communicate with contributors).
- Change CHANGES.txt heading to reflect the new version number.
- Update README.rst to use correct versions of badges and URLs according to
each branch and context, i.e., RTD "latest" == GitHub/Travis "2.0-branch".
- Update whatsnew-X.X.rst in docs to point at change log entries for
individual releases if applicable.
- For major version releases, in, update branch descriptions.
- For major version releases, in docs/, update values under
html_theme_options for in_progress and outdated across master, releasing
branch, and previously released branch. Also in the previously released
branch only, uncomment the sections to enable pylons_sphinx_latesturl.
- Change version to the release version number.
- Make sure PyPI long description renders (requires ``collective.dist``
installed into your Python)::
$ $VENV/bin/python check -r
- Build an sdist and a wheel:
$ $VENV/bin/python sdist bdist_wheel
- Release the wheels to PyPI:
$ $VENV/bin/twine upload dist/deform-X.Y*
- Upload a git tag for the release:
$ git tag X.Y
$ git push origin X.Y
- Update RTD to render a new version of the docs at that tag X.Y and set X.Y
as the default branch such that /latest/ points to it.
- Publish new version of docs.
- Update deform demo site
- Announce to Twitter.
Deform 2.x released.
=== One time only for new version, first pre-release ===
What's New
=== For all subsequent pre-releases ===
- Announce to maillist.
Deform 2.X.X has been released.
Here are the changes:
- Widget demos
- Documentation
- Github
- PyPi
Enjoy, and please report any issues you find to the issue tracker at
- Deform developers