| Index: third_party/coverage-3.6/doc/contributing.rst
|
| diff --git a/third_party/coverage-3.6/doc/contributing.rst b/third_party/coverage-3.6/doc/contributing.rst
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..90b9ba1bafb3b1563dd6951be929c25689c45342
|
| --- /dev/null
|
| +++ b/third_party/coverage-3.6/doc/contributing.rst
|
| @@ -0,0 +1,164 @@
|
| +.. _contributing:
|
| +
|
| +===========================
|
| +Contributing to coverage.py
|
| +===========================
|
| +
|
| +:history: 20121112T154100, brand new docs.
|
| +
|
| +.. highlight:: console
|
| +
|
| +I welcome contributions to coverage.py. Over the years, dozens of people have
|
| +provided patches of various sizes to add features or fix bugs. This page
|
| +should have all the information you need to make a contribution.
|
| +
|
| +One source of history or ideas are the `bug reports`_ against coverage.py.
|
| +There you can find ideas for requested features, or the remains of rejected
|
| +ideas.
|
| +
|
| +.. _bug reports: https://bitbucket.org/ned/coveragepy/issues?status=new&status=open
|
| +
|
| +
|
| +Before you begin
|
| +----------------
|
| +
|
| +If you have an idea for coverage.py, run it by me before you begin writing
|
| +code. This way, I can get you going in the right direction, or point you to
|
| +previous work in the area. Things are not always as straightforward as they
|
| +seem, and having the benefit of lessons learned by those before you can save
|
| +you frustration.
|
| +
|
| +
|
| +Getting the code
|
| +----------------
|
| +
|
| +The coverage.py code is hosted on a `Mercurial`_ repository at
|
| +https://bitbucket.org/ned/coveragepy. To get a working environment, follow
|
| +these steps:
|
| +
|
| +#. (Optional, but recommended) Create a virtualenv to work in, and activate
|
| + it.
|
| +
|
| +#. Clone the repo::
|
| +
|
| + $ hg clone https://bitbucket.org/ned/coveragepy
|
| +
|
| +#. Install the requirements::
|
| +
|
| + $ pip install -r requirements.txt
|
| +
|
| +#. Install a number of versions of Python. Coverage.py supports a wide range
|
| + of Python versions. The more you can test with, the more easily your code
|
| + can be used as-is. If you only have one version, that's OK too, but may
|
| + mean more work integrating your contribution.
|
| +
|
| +
|
| +Running the tests
|
| +-----------------
|
| +
|
| +The tests are written as standard unittest-style tests, and are run with
|
| +`tox`_::
|
| +
|
| + $ tox
|
| + GLOB sdist-make: /home/ned/coverage/setup.py
|
| + py25 sdist-reinst: /home/ned/coverage/tox/dist/coverage-3.6b1.zip
|
| + py25 runtests: commands[0]
|
| + py25 runtests: commands[1]
|
| + py25 runtests: commands[2]
|
| + py25 runtests: commands[3]
|
| + py25 runtests: commands[4]
|
| + === Python 2.5.5 with Python tracer (/home/ned/coverage/tox/py25/bin/python) ===
|
| + ...........................................................................................(etc)
|
| + ----------------------------------------------------------------------
|
| + Ran 360 tests in 10.836s
|
| +
|
| + OK
|
| + py25 runtests: commands[5]
|
| + py25 runtests: commands[6]
|
| + === Python 2.5.5 with C tracer (/home/ned/coverage/tox/py25/bin/python) ===
|
| + ...........................................................................................(etc)
|
| + ----------------------------------------------------------------------
|
| + Ran 360 tests in 10.044s
|
| +
|
| + OK
|
| + py26 sdist-reinst: /home/ned/coverage/trunk/.tox/dist/coverage-3.6b1.zip
|
| + py26 runtests: commands[0]
|
| + py26 runtests: commands[1]
|
| + py26 runtests: commands[2]
|
| + py26 runtests: commands[3]
|
| + py26 runtests: commands[4]
|
| + === CPython 2.6.6 with Python tracer (/home/ned/coverage/tox/py26/bin/python) ===
|
| + ...........................................................................................(etc)
|
| + ----------------------------------------------------------------------
|
| + Ran 364 tests in 12.572s
|
| +
|
| + OK
|
| + py26 runtests: commands[5]
|
| + py26 runtests: commands[6]
|
| + === CPython 2.6.6 with C tracer (/home/ned/coverage/tox/py26/bin/python) ===
|
| + ...........................................................................................(etc)
|
| + ----------------------------------------------------------------------
|
| + Ran 364 tests in 11.458s
|
| +
|
| + OK
|
| + (and so on...)
|
| +
|
| +Tox runs the complete test suite twice for each version of Python you have
|
| +installed. The first run uses the Python implementation of the trace
|
| +function, the second uses the C implementation.
|
| +
|
| +To limit tox to just a few versions of Python, use the ``-e`` switch::
|
| +
|
| + $ tox -e py27,py33
|
| +
|
| +To run just a few tests, you can use nose test selector syntax::
|
| +
|
| + $ tox test.test_misc:SetupPyTest.test_metadata
|
| +
|
| +This looks in `test/test_misc.py` to find the `SetupPyTest` class, and runs the
|
| +`test_metadata` test method.
|
| +
|
| +Of course, run all the tests on every version of Python you have, before
|
| +submitting a change.
|
| +
|
| +
|
| +Lint, etc
|
| +---------
|
| +
|
| +I try to keep the coverage.py as clean as possible. I use pylint to alert me
|
| +to possible problems::
|
| +
|
| + $ make lint
|
| + pylint --rcfile=.pylintrc coverage setup.py test
|
| + python -m tabnanny coverage setup.py test
|
| + python igor.py check_eol
|
| +
|
| +The source is pylint-clean, even if it's because there are pragmas quieting
|
| +some warnings. Please try to keep it that way, but don't let pylint warnings
|
| +keep you from sending patches. I can clean them up.
|
| +
|
| +
|
| +Coverage testing coverage.py
|
| +----------------------------
|
| +
|
| +Coverage.py can measure itself, but it's complicated. The process has been
|
| +packaged up to make it easier::
|
| +
|
| + $ COVERAGE_COVERAGE=yes tox
|
| + $ python igor.py combine_html
|
| +
|
| +Then look at htmlcov/index.html. Note that due to the recursive nature of
|
| +coverage.py measuring itself, there are some parts of the code that will never
|
| +appear as covered, even though they are executed.
|
| +
|
| +
|
| +Contributing
|
| +------------
|
| +
|
| +When you are ready to contribute a change, any way you can get it to me is
|
| +probably fine. A pull request on Bitbucket is great, but a simple diff or
|
| +patch is great too.
|
| +
|
| +
|
| +.. _Mercurial: http://mercurial.selenic.com/
|
| +.. _tox: http://tox.testrun.org/
|
|
|