New enthusiastic contribution guide based on Audreyr's cookiecutter-pypackage

Audrey's code is BSD, so there should be no problem with licensing.

I've covered:
* contribution types (with hints)
* steps to start with pytest development
* testing pytest
* basics of hg

--HG--
branch : contributiondocs
This commit is contained in:
Piotr Banaszkiewicz 2014-01-22 11:24:58 +01:00
parent 2539e5a352
commit 5240252164
2 changed files with 123 additions and 1 deletions

View File

@ -16,7 +16,7 @@ Full pytest documentation
plugins
example/index
talks
develop
contribute
funcarg_compare.txt
announce/index

122
doc/en/contribute.txt Normal file
View File

@ -0,0 +1,122 @@
.. _contributing:
============
Contributing
============
Contributions are highly welcomed and appreciated. Every little help counts,
so do not hesitate!
Types of contributions
======================
Submit feedback for developers
------------------------------
Do you like py.test? Share some love on Twitter or in your blog posts!
We'd also like to hear about your propositions and suggestions. Feel free to
submit them as issues `here <https://bitbucket.org/hpk42/pytest/issues>`__ and:
* Set the "kind" to "enhancement" or "proposal" so that we can quickly find
about them.
* Explain in detail how they should work.
* Keep the scope as narrow as possible. This will make it easier to implement.
* If you have required skills and/or knowledge, you can always contribute to
these issues!
Report bugs
-----------
Report bugs at https://bitbucket.org/hpk42/pytest/issues.
If you are reporting a bug, please include:
* Your operating system name and version.
* Any details about your local setup that might be helpful in troubleshooting,
specifically Python interpreter version,
installed libraries and py.test version.
* Detailed steps to reproduce the bug.
Fix bugs
--------
Look through the BitBucket issues for bugs. Here is sample filter you can use:
https://bitbucket.org/hpk42/pytest/issues?status=new&status=open&kind=bug
:ref:'Talk <contact>' to developers to find out how you can fix specific bugs.
Implement features
------------------
Look through the BitBucket issues for enhancements. Here is sample filter you
can use:
https://bitbucket.org/hpk42/pytest/issues?status=new&status=open&kind=enhancement
:ref:'Talk <contact>' to developers to find out how you can implement specific
features.
Write documentation
-------------------
py.test could always use more documentation. What exactly is needed?
* More complementary documentation. Have you perhaps found something unclear?
* Documentation translations. We currently have English and Japanese versions.
* Docstrings. There's never too much of them.
* Blog posts, articles and such -- they're all very appreciated.
Getting started for contributing
================================
1. Fork the py.test repository on BitBucket.
.. _checkout:
2. Clone your fork locally::
$ hg clone ssh://hg@bitbucket.org/your_name_here/pytest
3. Install your local copy into a virtualenv. Assuming you have
``virtualenvwrapper`` (http://virtualenvwrapper.readthedocs.org) installed::
$ mkvirtualenv pytest
$ cd pytest/
$ python setup.py develop
If that last command complains about not finding the required version
of "py" then you need to use the development pypi repository::
$ python setup.py develop -i http://pypi.testrun.org
4. Create a branch for local development::
$ hg branch name-of-your-bugfix-or-feature
Now you can make your changes locally.
5. When you're done making changes, check that all of them pass all the tests
(including PEP8 and different Python interpreter versions). It's as simple
as issuing this one command::
$ tox
The least minimum of required Python tests to pass is Python 2.7 and
Python 3.3::
$ tox -e py27,py33
If you don't seem to have ``tox`` installed, issue this from inside your
virtualenv::
$ pip install tox
You also need to have Python 3.3 and 2.7 available in your system.
6. Commit your changes and push your branch to BitBucket::
$ hg add .
$ hg commit
$ hg push --new-branch -r .
7. Submit a pull request through the BitBucket website.
.. include:: links.inc