Skip to content
This repository has been archived by the owner on Dec 23, 2018. It is now read-only.

Latest commit

 

History

History
88 lines (55 loc) · 2.26 KB

HACKING.rst

File metadata and controls

88 lines (55 loc) · 2.26 KB

Developing Turq

Development environment

Set up:

$ virtualenv /path/to/env
$ source /path/to/env/bin/activate
$ pip install -e .
$ pip install -r tools/requirements.txt
$ pip install ...    # any extra tools you like to have

Run tests:

$ pytest

The delivery pipeline (Travis) enforces some other checks; if you want to run them locally before pushing to GitHub, see .travis.yml.

Versions of development tools (pytest, Pylint...) are pinned down to make builds/QA reproducible. From time to time, they are manually upgraded.

Releasing a new version

  1. Make sure that you're on master, it's clean and synced with GitHub, and that Travis and AppVeyor are green.

  2. If necessary, update the version number in turq/__metadata__.py (e.g. 0.12.0.dev4 → 0.12.0).

  3. If releasing a "stable" (not pre-release) version, update CHANGELOG.rst (usually just replace "Unreleased" with "<version> - <release date>", e.g. "0.12.0 - 2017-08-14").

  4. Commit as necessary, for example:

    $ git commit -am 'Version 0.12.0'
    
  5. Apply a Git tag for the version, for example:

    $ git tag -a v0.12.0 -m v0.12.0
    
  6. Push master and tags:

    $ git push --tags origin master
    
  7. Watch as Travis builds and uploads stuff to PyPI.

  8. If releasing a "stable" (not pre-release) version, check that the stable docs have been updated (you may need to force-refresh the page to see it).

  9. Bump the version number in turq/__metadata__.py (e.g. 0.12.0 → 0.13.0.dev1).

  10. Commit and push:

    $ git commit -am 'Bump version to 0.13.0.dev1'
    $ git push
    

Maintenance

  • Watch for new versions of Python and dependencies (install_requires), and make sure Turq is compatible with them.

  • Update development dependencies:

    1. Review tools/requirements.in and update if necessary.

    2. Pin down new versions:

      $ rm tools/requirements.txt
      $ pip-compile tools/requirements.in
      $ pip install -r tools/requirements.txt
      
  • Look at recent Travis and AppVeyor build logs and make sure everything there looks alright.

  • Check that the Python version trove classifiers in setup.py are up-to-date.