.. _developers: Developing `smif` ================= *smif* is under active development at `github.com/nismod/smif`_ Testing ------- We use `pytest`_ for testing, with tests under :code:`tests/` matching the module and class structure of :code:`smif/`. Install requirements for testing:: pip install -r test-requirements.txt Run tests:: python setup.py test Versioning ---------- :code:`smif` is currently pre-1.0, so API and usage are liable to change. After releasing a first major version, we intend to follow `semantic versioning`_, with major versions for any incompatible changes to the public API. Releases -------- `smif`_ is deployed as a package on the Python Package Index, PyPI. A full guide to packaging and distributing projects is `available online ` To make a release, first register with `PyPI`_ and contact a project owner (currently Will Usher or Tom Russell) to be made a maintainer. Set up a `.pypirc` file in your home directory with your access details:: [distutils] index-servers = pypi [pypi] repository: https://pypi.python.org/pypi username: password: Create an annotated tag for release:: git tag -a v0.2.0 # create annotated tag (will need a message) git describe # show current commit in relation to tags git push origin v0.2.0 # push the tag to the origin remote repository Create a source distribution (this creates a gzipped package in `dist`):: python setup.py sdist ls dist/ Use twine to upload the distribution:: pip install twine twine upload dist/smif-0.2.0.tar.gz Conventions ----------- The `numpydoc`_ docstring conventions are used for inline documentation, which is used to generate the module reference documentation visible at `readthedocs`_ and which can also be generated by running ``python setup.py docs`` Linting is handled by `pre-commit`_ hooks, which can be installed from the root of the repository using:: pre-commit install .. _github.com/nismod/smif: https://github.com/nismod/smif .. _pytest: http://doc.pytest.org/en/latest/ .. _semantic versioning: http://semver.org/ .. _numpydoc: https://github.com/numpy/numpy/blob/master/doc/HOWTO_DOCUMENT.rst.txt .. _readthedocs: http://smif.readthedocs.io/en/latest/ .. _pre-commit: http://pre-commit.com/ .. _PyPI: https://pypi.python.org/pypi .. _smif: https://pypi.python.org/pypi/smif