forked from dateutil/dateutil
-
Notifications
You must be signed in to change notification settings - Fork 0
/
RELEASING
63 lines (49 loc) · 2.36 KB
/
RELEASING
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
Release Checklist
-----------------------------------------
[ ] Update classifiers in setup.cfg to include the latest supported Python
versions.
[ ] 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:
[ ] 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
release.
[ ] Upload the source and binary distributions along with hashes and signatures
to pypi.
Optional:
----------
[ ] Check that README.rst is up-to-date.
[ ] Check that the documentation builds correctly (cd docs, make html)
Instructions
-----------------------------------------
See the instructions at https://packaging.python.org/en/latest/distributing/
for more details.
Versioning
----------
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