Development, Testing and Release Workflow¶
First, create an isolated Python environment for this project with virtualenv, virtualenvwrapper or pyvenv. You can develop in Python 2.7 or Python 3.4+.
Then install LTD Mason and its dependencies with:
git clone https://git.com/lsst-sqre/ltd-mason.git # or a fork cd ltd-mason pip install -r requirements.txt python setup.py develop
Tests are written for, and run through, py.test.
py.test --flake8 --cov=ltdmason
Performs unit tests, runs Flake8, and produces a unit test coverage report.
These tests are also run under Travis CI. On Travis some additional integration tests against AWS S3 are also run.
Python Version Compatibility¶
This project is targeted for both Python 2.7 and Python 3.4+ version. We use the future package to achieve compatibility.
Generally speaking, you should write code for Python 3 and then achieve backwards compatibility by including the following imports:
from __future__ import (division, absolute_import, print_function, unicode_literals) from builtins import * # NOQA from future.standard_library import install_aliases install_aliases() # NOQA
Ensure that the build is passing on Travis before preparing a release.
Bump the version in
setup.py, update the CHANGELOG (see http://keepachangelog.com) and commit the change.
For version numbering, see PEP 386. E.g.
git tag -s -m "Verson 0.1.0rc0" v0.1.0rc0
rm -R dist python setup.py sdist bdist_wheel
twine upload dist/* git push --tags