Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(354)

Unified Diff: tools/telemetry/third_party/coverage/doc/contributing.rst

Issue 1366913004: Add coverage Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tools/telemetry/third_party/coverage/doc/contributing.rst
diff --git a/tools/telemetry/third_party/coverage/doc/contributing.rst b/tools/telemetry/third_party/coverage/doc/contributing.rst
new file mode 100644
index 0000000000000000000000000000000000000000..dc50202c7b50b4a49bc9e8d8352ab07a299f124f
--- /dev/null
+++ b/tools/telemetry/third_party/coverage/doc/contributing.rst
@@ -0,0 +1,172 @@
+.. Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
+.. For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+
+.. _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
+ $ cd coveragepy
+
+#. Install the requirements::
+
+ $ pip install -r requirements/dev.pip
+
+#. 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
+ py27 create: /Users/ned/coverage/trunk/.tox/py27
+ py27 installdeps: nose==1.3.7, mock==1.3.0, PyContracts==1.7.6, gevent==1.0.2, eventlet==0.17.4, greenlet==0.4.7
+ py27 develop-inst: /Users/ned/coverage/trunk
+ py27 installed: -f /Users/ned/Downloads/local_pypi,-e hg+ssh://hg@bitbucket.org/ned/coveragepy@22fe9a2b7796f6498aa013c860c268ac21651226#egg=coverage-dev,decorator==4.0.2,eventlet==0.17.4,funcsigs==0.4,gevent==1.0.2,greenlet==0.4.7,mock==1.3.0,nose==1.3.7,pbr==1.6.0,PyContracts==1.7.6,pyparsing==2.0.3,six==1.9.0,wheel==0.24.0
+ py27 runtests: PYTHONHASHSEED='1294330776'
+ py27 runtests: commands[0] | python setup.py --quiet clean develop
+ py27 runtests: commands[1] | python igor.py zip_mods install_egg remove_extension
+ py27 runtests: commands[2] | python igor.py test_with_tracer py
+ === CPython 2.7.10 with Python tracer (.tox/py27/bin/python) ===
+ ............................................................................(etc)
+ ----------------------------------------------------------------------
+ Ran 592 tests in 65.524s
+
+ OK (SKIP=20)
+ py27 runtests: commands[3] | python setup.py --quiet build_ext --inplace
+ py27 runtests: commands[4] | python igor.py test_with_tracer c
+ === CPython 2.7.10 with C tracer (.tox/py27/bin/python) ===
+ ............................................................................(etc)
+ ----------------------------------------------------------------------
+ Ran 592 tests in 69.635s
+
+ OK (SKIP=4)
+ py33 create: /Users/ned/coverage/trunk/.tox/py33
+ py33 installdeps: nose==1.3.7, mock==1.3.0, PyContracts==1.7.6, greenlet==0.4.7
+ py33 develop-inst: /Users/ned/coverage/trunk
+ py33 installed: -f /Users/ned/Downloads/local_pypi,-e hg+ssh://hg@bitbucket.org/ned/coveragepy@22fe9a2b7796f6498aa013c860c268ac21651226#egg=coverage-dev,decorator==4.0.2,greenlet==0.4.7,mock==1.3.0,nose==1.3.7,pbr==1.6.0,PyContracts==1.7.6,pyparsing==2.0.3,six==1.9.0,wheel==0.24.0
+ py33 runtests: PYTHONHASHSEED='1294330776'
+ py33 runtests: commands[0] | python setup.py --quiet clean develop
+ py33 runtests: commands[1] | python igor.py zip_mods install_egg remove_extension
+ py33 runtests: commands[2] | python igor.py test_with_tracer py
+ === CPython 3.3.6 with Python tracer (.tox/py33/bin/python) ===
+ ............................................S...............................(etc)
+ ----------------------------------------------------------------------
+ Ran 592 tests in 73.007s
+
+ OK (SKIP=22)
+ py33 runtests: commands[3] | python setup.py --quiet build_ext --inplace
+ py33 runtests: commands[4] | python igor.py test_with_tracer c
+ === CPython 3.3.6 with C tracer (.tox/py33/bin/python) ===
+ ............................................S...............................(etc)
+ ----------------------------------------------------------------------
+ Ran 592 tests in 72.071s
+
+ OK (SKIP=5)
+ (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 tests.test_misc:SetupPyTest.test_metadata
+
+This looks in `tests/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 coverage setup.py tests
+ python -m tabnanny coverage setup.py tests
+ 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.
+
+Lines should be kept to a 100-character maximum length.
+
+
+Coverage testing coverage.py
+----------------------------
+
+Coverage.py can measure itself, but it's complicated. The process has been
+packaged up to make it easier::
+
+ $ make metacov metahtml
+
+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/
« no previous file with comments | « tools/telemetry/third_party/coverage/doc/config.rst ('k') | tools/telemetry/third_party/coverage/doc/dict.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698