Developer Documentation

Generating distribution archives

See: https://packaging.python.org/tutorials/packaging-projects/

Update setuptools and wheel:

python3 -m pip install --user --upgrade setuptools wheel

Generate distribution packages for the imagedata:

make all

Uploading the distribution archives

The first thing you’ll need to do is register an account on Test PyPI. Test PyPI is a separate instance of the package index intended for testing and experimentation.

Update twine:

python3 -m pip install --user --upgrade twine

Run Twine to upload all of the archives under dist:

make test_upload

You will be prompted for a username and password. For the username, use __token__. For the password, use the token value, including the pypi- prefix.

Once uploaded your package should be viewable on TestPyPI, for example, https://test.pypi.org/project/imagedata

Installing your newly uploaded package

You can use pip to install your package and verify that it works. Create a new virtualenv (see Installing Packages for detailed instructions) and install your package from TestPyPI:

python3 -m pip install --upgrade --index-url https://test.pypi.org/simple/ imagedata

You can test that it was installed correctly by importing the package. Run the Python interpreter (make sure you’re still in your virtualenv):

python3
import imagedata

Note that the import package is imagedata regardless of what name you gave your distribution package in setup.py (in this case, example-pkg-YOUR-USERNAME-HERE).

Build the documentation

From the package directory:

make html

Version numbers

Bump patch number:

Edit VERSION.txt.

Use version number 1.2.9dev0, ..dev1, etc., for development work.

Use version number 1.2.9rc0, etc., for release candidates.

Use version number 1.2.9 for official release.

To label the github storage with VERSION.txt version:

make git

Uploading official release

Make sure VERSION.txt has a valid version number.

make all
make git
make upload

Then go to https://readthedocs.org/projects/imagedata/ and build documentation.