Home | History | Annotate | Download | only in dateutil
      1 Release Checklist
      2 -----------------------------------------
      3 [ ] Update __version__ string
      4 [ ] Update classifiers in setup.py to include the latest supported Python
      5     versions.
      6 [ ] Update the metadata in zonefile_metadata.json to include the latest tzdata
      7     release from https://www.iana.org/time-zones.
      8 [ ] If necessary, update the tzdata mirror at https://github.com/dateutil/tzdata
      9 [ ] Update NEWS with list of changes, giving credit to contributors.
     10 [ ] Build the source distribution as, at a minimum, .tar.gz and .zip
     11 [ ] Verify that the source distribution contains all necessary components.
     12 [ ] Build the binary distribution as a wheel
     13 [ ] Verify that the binary distribution can be installed and works.
     14 [ ] Generate MD5 hashes for the source and binary distributions
     15 [ ] Sign the source and binary distributions with a GPG key (if not the one
     16     that made the release, then one signed by the one that made the last
     17     release)
     18 [ ] Commit the changes in git and make a pull request.
     19 [ ] Accept the pull request and tag the repository with the release number.
     20 [ ] Add the contents of the NEWS file to the github release notes for the
     21     release.
     22 [ ] Upload the source and binary distributions along with hashes and signatures
     23     to pypi.
     24 
     25 Optional:
     26 ----------
     27 [ ] Check that README.rst is up-to-date.
     28 [ ] Check that the documentation builds correctly (cd docs, make html)
     29 
     30 
     31 Instructions
     32 -----------------------------------------
     33 See the instructions at https://packaging.python.org/en/latest/distributing/
     34 for more details.
     35 
     36 
     37 Versioning
     38 ----------
     39 Try and keep to a semantic versioning scheme (http://semver.org/).
     40 
     41 
     42 Source releases
     43 ----------
     44 Release the sources with, at a minimum, .tar.gz and .zip. Make sure you have a
     45 relatively recent version of setuptools when making the source distribution, as
     46 earlier version will not include the tests. Other formats are
     47 optional. They can be generated using:
     48 
     49     python setup.py sdist --formats=zip,gztar
     50 
     51 To verify that a source release is correct, inspect it using whatever archive
     52 utility you have and make sure it contains all the modules and the tests. Also
     53 make sure that the zoneinfo file is included in the You
     54 may also want to generate a new clean virtualenv and run the tests from the
     55 source distribution (python setup.py test).
     56 
     57 
     58 Binary releases
     59 ----------
     60 It should always be possible to generate a universal wheel binary distribution
     61 for each release. Generally we do not generate .egg files. In order to generate
     62 a wheel, you need the wheel package (https://wheel.readthedocs.io/en/latest/)
     63 installed, which can be installed with:
     64 
     65     pip install wheel
     66 
     67 Once this is done, generate the wheel with:
     68 
     69     python setup.py bdist_wheel
     70 
     71 
     72 Signing and generate checksums
     73 ----------
     74 Since all the outputs are generated in the dist/ directory, can generate all the
     75 md5 checksums at once from the base directory by executing:
     76 
     77     md5sum dist/*
     78 
     79 Save these for when uploading the files. Following this, go into the dist
     80 directory and sign each of the results with the relevant key:
     81 
     82     gpg --armor --output <fname>.asc --detach-sig <fname>
     83 
     84 To automate this for all files, you can use the following command:
     85 
     86     for f  in dist/*; do gpg --armor --output $f.asc --detach-sig $f; done
     87 
     88 Save these .asc files for when uploading to pypi. Before uploading them, verify
     89 that they are valid signatures:
     90 
     91     gpg --verify <fname>.asc <fname>
     92 
     93 To do this in bulk, you can use the command:
     94 
     95     for f in $(find ./dist -type f | grep -v '.asc$'); do gpg --verify $f.asc $f; done
     96