Development

Pull Requests

  • Submit Pull Requests against the master branch.
  • Provide a good description of what you’re doing and why.
  • Provide tests that cover your changes and try to run the tests locally first.

Example. Assuming you set up GitHub account, forked wheel repository from https://github.com/pypa/wheel to your own page via web interface, and your fork is located at https://github.com/yourname/wheel

$ git clone git@github.com:pypa/wheel.git
$ cd wheel
# ...
$ git diff
$ git add <modified> ...
$ git status
$ git commit

You may reference relevant issues in commit messages (like #1259) to make GitHub link issues and commits together, and with phrase like “fixes #1259” you can even close relevant issues automatically. Now push the changes to your fork:

$ git push git@github.com:yourname/wheel.git

Open Pull Requests page at https://github.com/yourname/wheel/pulls and click “New pull request”. That’s it.

Automated Testing

All pull requests and merges to ‘master’ branch are tested in Travis based on our .travis.yml file.

Usually, a link to your specific travis build appears in pull requests, but if not, you can find it on our travis pull requests page.

The only way to trigger Travis to run again for a pull request is to submit another change to the pull branch.

Running Tests

Python requirements: tox or pytest

To run the tests locally:

$ tox                     # Runs the tests against all matching interpreters
$ tox -e py35             # Runs the tests against a specific environment
$ pip install -e .[test]  # Installs the test dependencies locally
$ pytest                  # Runs the tests with the current interpreter

Getting Involved

The wheel project welcomes help in the following ways:

  • Making Pull Requests for code, tests, or docs.
  • Commenting on open issues and pull requests.
  • Helping to answer questions on the mailing list.

Release Process

  1. Make sure there is a version block for this release in docs/news.rst that mentions all the new user-facing changes
  2. Add the version tag to the repository using git tag X.Y.Z (e.g. git tag 1.0.1)
  3. Push the new tag to Github using git push --tags

When a new tag is pushed to Github, Travis will pick it up and automatically build the sdist and wheel and upload them to PyPI.