96 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| Release Checklist
 | |
| -----------------------------------------
 | |
| [ ] Update __version__ string
 | |
| [ ] Update classifiers in setup.py 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, 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)
 | |
| [ ] 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/).
 | |
| 
 | |
| 
 | |
| Source releases
 | |
| ----------
 | |
| Release the sources with, at a minimum, .tar.gz and .zip. Make sure you have a
 | |
| relatively recent version of setuptools when making the source distribution, as
 | |
| earlier version will not include the tests. Other formats are
 | |
| optional. They can be generated using:
 | |
| 
 | |
|     python setup.py sdist --formats=zip,gztar
 | |
| 
 | |
| To verify that a source release is correct, inspect it using whatever archive
 | |
| utility you have and make sure it contains all the modules and the tests. Also
 | |
| make sure that the zoneinfo file is included in the You
 | |
| may also want to generate a new clean virtualenv and run the tests from the
 | |
| source distribution (python setup.py test).
 | |
| 
 | |
| 
 | |
| Binary releases
 | |
| ----------
 | |
| It should always be possible to generate a universal wheel binary distribution
 | |
| for each release. Generally we do not generate .egg files. In order to generate
 | |
| a wheel, you need the wheel package (https://wheel.readthedocs.io/en/latest/)
 | |
| installed, which can be installed with:
 | |
| 
 | |
|     pip install wheel
 | |
| 
 | |
| Once this is done, generate the wheel with:
 | |
| 
 | |
|     python setup.py bdist_wheel
 | |
| 
 | |
| 
 | |
| Signing and generate checksums
 | |
| ----------
 | |
| Since all the outputs are generated in the dist/ directory, can generate all the
 | |
| md5 checksums at once from the base directory by executing:
 | |
| 
 | |
|     md5sum dist/*
 | |
| 
 | |
| Save these for when uploading the files. Following this, go into the dist
 | |
| directory and sign each of the results with the relevant key:
 | |
| 
 | |
|     gpg --armor --output <fname>.asc --detach-sig <fname>
 | |
| 
 | |
| To automate this for all files, you can use the following command:
 | |
| 
 | |
|     for f  in dist/*; do gpg --armor --output $f.asc --detach-sig $f; done
 | |
| 
 | |
| Save these .asc files for when uploading to pypi. Before uploading them, verify
 | |
| that they are valid signatures:
 | |
| 
 | |
|     gpg --verify <fname>.asc <fname>
 | |
| 
 | |
| To do this in bulk, you can use the command:
 | |
| 
 | |
|     for f in $(find ./dist -type f | grep -v '.asc$'); do gpg --verify $f.asc $f; done
 |