Skip to content

Commit

Permalink
Update RELEASING documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
pganssle committed Nov 2, 2019
1 parent 16c0a0b commit 70f18f0
Showing 1 changed file with 35 additions and 10 deletions.
45 changes: 35 additions & 10 deletions RELEASING
Expand Up @@ -5,15 +5,10 @@ Release Checklist
[ ] Update the metadata in zonefile_metadata.json to include the latest tzdata
release from https://www.iana.org/time-zones.
[ ] If necessary, update the tzdata mirror at https://github.com/dateutil/tzdata
[ ] Update NEWS with list of changes, giving credit to contributors.
[ ] Build the source distribution as, at a minimum, .tar.gz and .zip
[ ] Verify that the source distribution contains all necessary components.
[ ] Build the binary distribution as a wheel
[ ] Verify that the binary distribution can be installed and works.
[ ] Generate MD5 hashes for the source and binary distributions
[ ] Sign the source and binary distributions with a GPG key (if not the one
that made the release, then one signed by the one that made the last
release)
[ ] Update NEWS with list of changes:
[ ] Invoke `tox -e towncrier -- --version <NEXT_VERSION>`
[ ] Make sure that only `template.rst` remains in changelog.d/
[ ] Manually clean up the new NEWS file and then check it in.
[ ] Commit the changes in git and make a pull request.
[ ] Accept the pull request and tag the repository with the release number.
[ ] Add the contents of the NEWS file to the github release notes for the
Expand All @@ -35,4 +30,34 @@ for more details.

Versioning
----------
Try and keep to a semantic versioning scheme (http://semver.org/).
Try and keep to a semantic versioning scheme (http://semver.org/). The versions
are managed with setuptools_scm, so to update the version, simply tag the
relevant commit with the new version number.


Building and Releasing
----------------------
Building and releasing can be done using the `release.py` script, which
automates building, signing and uploading. Since it uses GPG for signing and
for decrypting a stored token, it requires that `gpg` be installed on your
system. Because it has python dependencies, the best way to use the
`release.py` script is to invoke it using `tox`. To build the source and binary
distributions, use:

tox -e build

This will build and sign the distributions and put them in `dist/`. Once that
is done, you can release them with:

tox -e release

If you have the token stored in your `~/.pypirc` file. If you have stored the
relevant token in an encrypted file, use the `--passfile` argument:

tox -e release -- --passfile token.gpg

The `release` command defaults to uploading to test.pypi.org. To upload to
pypi.org, use the `--release` flag, so putting it all together, we have:

tox -e build
tox -e release -- --passfile token.gpg --release

0 comments on commit 70f18f0

Please sign in to comment.