- Submit Pull Requests against the develop 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.
$ git clone firstname.lastname@example.org:pypa/pip.git $ cd pip # ... $ 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 email@example.com:yourname/pip.git
Open Pull Requests page at https://github.com/yourname/pip/pulls and click “New pull request”. That’s it.
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.
We also have Jenkins CI that runs regularly for certain python versions on windows and centos.
OS Requirements: subversion, bazaar, git, and mercurial.
Python Requirements: tox or pytest, virtualenv, scripttest, and mock
Ways to run the tests locally:
$ tox -e py33 # The preferred way to run the tests, can use pyNN to # run for a particular version or leave off the -e to # run for all versions. $ python setup.py test # Using the setuptools test plugin $ py.test # Using py.test directly $ tox # Using tox against pip's tox.ini
The pip 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.
If you want to become an official maintainer, start by helping out.
Later, when you think you’re ready, get in touch with one of the maintainers, and they will initiate a vote.
This process includes virtualenv, since pip releases necessitate a virtualenv release.
As an example, the instructions assume we’re releasing pip-1.4, and virtualenv-1.10.
- Upgrade setuptools, if needed:
- Upgrade setuptools in virtualenv/develop using the Refresh virtualenv process.
- Create a pull request against pip/develop with a modified .travis.yml file that installs virtualenv from virtualenv/develop, to confirm the travis builds are still passing.
- Create Release branches:
- Create pip/release-1.4 branch.
- In pip/develop, change pip.version to ‘1.5.dev1’.
- Create virtualenv/release-1.10 branch.
- In virtualenv/develop, change virtualenv.version to ‘1.11.dev1’.
- Prepare “rcX”:
- In pip/release-1.4, change pip.version to ‘1.4rcX’, and tag with ‘1.4rcX’.
- Build a pip sdist from pip/release-1.4, and build it into virtualenv/release-1.10 using the Refresh virtualenv process.
- In virtualenv/release-1.10, change virtualenv.version to ‘1.10rcX’, and tag with ‘1.10rcX’.
- Announce pip-1.4rcX and virtualenv-1.10rcX with the RC Install Instructions and elicit feedback.
- Apply fixes to ‘rcX’:
- Apply fixes to pip/release-1.4 and virtualenv/release-1.10
- Periodically merge fixes to pip/develop and virtualenv/develop
- Repeat #4 thru #6 if needed.
- Final Release:
- In pip/release-1.4, change pip.version to ‘1.4’, and tag with ‘1.4’.
- Merge pip/release-1.4 to pip/master.
- Build a pip sdist from pip/release-1.4, and load it into virtualenv/release-1.10 using the Refresh virtualenv process.
- Merge vitualenv/release-1.10 to virtualenv/develop.
- In virtualenv/release-1.10, change virtualenv.version to ‘1.10’, and tag with ‘1.10’.
- Merge virtualenv/release-1.10 to virtualenv/master
- Build and upload pip and virtualenv sdists to PyPI.
- Update the embedded versions of pip and setuptools in virtualenv_support.
- Run bin/rebuild-script.py to rebuild virtualenv based on the latest versions.
RC Install Instructions¶
$ curl -L -O https://github.com/pypa/virtualenv/archive/1.10rc1.tar.gz $ echo "<md5sum value> 1.10rc1.tar.gz" | md5sum -c 1.10rc1.tar.gz: OK $ tar zxf 1.10rc1.tar.gz $ python virtualenv-1.10rc1/virtualenv.py myVE $ myVE/bin/pip install SomePackage