added documentationo on the new pytest-dev teams on bitbucket and

github.  See https://pytest.org/latest/contributing.html (tentative)
Thanks to Anatoly for pushing and initial work on this.

--HG--
branch : docs_community
This commit is contained in:
holger krekel 2015-02-27 11:54:17 +01:00
parent e9d4853296
commit f6df3b0b97
3 changed files with 65 additions and 44 deletions

View File

@ -3,6 +3,10 @@
- add ability to set command line options by environment variable PYTEST_ADDOPTS.
- added documentationo on the new pytest-dev teams on bitbucket and
github. See https://pytest.org/latest/contributing.html .
Thanks to Anatoly for pushing and initial work on this.
- fix issue650: new option ``--docttest-ignore-import-errors`` which
will turn import errors in doctests into skips. Thanks Charles Cloud
for the complete PR.

View File

@ -1,18 +1,59 @@
============
Contributing
============
============================
Contribution getting started
============================
Contributions are highly welcomed and appreciated. Every little help counts,
so do not hesitate!
.. contents:: Contribution links
:depth: 2
Types of contributions
======================
.. _submitplugin:
Submit a plugin, co-develop pytest
----------------------------------
Pytest development of the core, some plugins and support code happens
in repositories living under:
- `the pytest-dev bitbucket team <https://bitbucket.org/pytest-dev>`_
- `the pytest-dev github organisation <https://github.com/pytest-dev>`_
All pytest-dev team members have write access to all contained
repositories. pytest core and plugins are generally developed
using `pull requests`_ to respective repositories.
You can submit your plugin by subscribing to the `pytest-dev mail list
<https://mail.python.org/mailman/listinfo/pytest-dev>`_ and writing a
mail pointing to your existing pytest plugin repository which must have
the following:
- PyPI presence with a ``setup.py`` that contains a license, ``pytest-``
prefixed, version number, authors, short and long description.
- a ``tox.ini`` for running tests using `tox <http://tox.testrun.org>`_.
- a ``README.txt`` describing how to use the plugin and on which
platforms it runs.
- an issue tracker unless you rather want to use the core ``pytest``
issue tracker.
If no contributor strongly objects and two agree, the repo will be
transferred to the ``pytest-dev`` organisation and you'll become a
member of the ``pytest-dev`` team, with commit rights to all projects.
We recommend that each plugin has at least three people who have the
right to release to pypi.
.. _reportbugs:
Report bugs
-----------
Report bugs at https://bitbucket.org/hpk42/pytest/issues.
Report bugs for pytest at https://bitbucket.org/hpk42/pytest/issues
If you are reporting a bug, please include:
@ -22,6 +63,8 @@ If you are reporting a bug, please include:
installed libraries and pytest version.
* Detailed steps to reproduce the bug.
.. _submitfeedback:
Submit feedback for developers
------------------------------
@ -37,6 +80,7 @@ We'd also like to hear about your propositions and suggestions. Feel free to
* If you have required skills and/or knowledge, we are very happy for
:ref:`pull requests <pull-requests>`.
.. _fixbugs:
Fix bugs
--------
@ -46,6 +90,8 @@ 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.
.. _writeplugins:
Implement features
------------------
@ -67,6 +113,7 @@ pytest could always use more documentation. What exactly is needed?
* Blog posts, articles and such -- they're all very appreciated.
.. _pull-requests:
.. _`pull requests`:
Preparing Pull Requests on Bitbucket
=====================================
@ -154,7 +201,7 @@ the issues there and submit your pull requests.
.. _contribution-using-git:
What about git (and so GitHub)?
Using git with bitbucket/hg
-------------------------------
There used to be the pytest GitHub mirror. It was removed in favor of the

View File

@ -120,43 +120,9 @@ You may also discover more plugins through a `pytest- pypi.python.org search`_.
.. _`pytest- pypi.python.org search`: http://pypi.python.org/pypi?%3Aaction=search&term=pytest-&submit=search
External plugin development
---------------------------
Pytest community cares about pytest users, in particular, it's crucial for the community
to keep all pieces of the pytest ecosystem well supported. External plugins are important for
pytest users, as they implement many useful, and sometimes critical features which the pytest core does
not implement.
To simplify the plugin development and/or support, it was decided to create teams(companies) on popular code hosting
services (at the moment it's github and bitbucket):
* `<https://github.com/pytest-dev>`_:
probably the most popular hosting for pytest plugins
the name ``pytest-dev`` is choosen because ``pytest`` was already taken by
some unknown person, who's not active on the github or just doesn't check the email used to register
that organization.
* `<https://bitbucket.org/pytest-dev>`_:
pytest is hosted on the bitbucket, also a lot of pytest plugins are hosted there.
More code hosting services can be added in the future.
Community encourages pytest plugin developers to move their plugins under those organizations (eg transfer ownership),
paying with a better support, faster feedback, better discoverability, etc.
Generic workflow of the ownership transfer looks like:
* If not a member already, developer asks for a membership in the `pytest plugin developers community` organizations listed above, sending an email to `<pytest-dev@python.org>`_.
* Developer transfers the ownership of his plugin repository to the organization listed above.
* Existing organization members will make sure proper write permissions are set up for developer who transfered the ownership to the organization.
Writing a plugin by looking at examples
---------------------------------------
.. _`Distribute`: http://pypi.python.org/pypi/distribute
.. _`setuptools`: http://pypi.python.org/pypi/setuptools
If you want to write a plugin, there are many real-life examples
@ -169,6 +135,10 @@ you can copy from:
All of these plugins implement the documented `well specified hooks`_
to extend and add functionality.
You can also :doc:`contribute your plugin to pytest-dev<submitplugin>`
once it has some happy users other than yourself.
.. _`setuptools entry points`:
Making your plugin installable by others
@ -177,10 +147,10 @@ Making your plugin installable by others
If you want to make your plugin externally available, you
may define a so-called entry point for your distribution so
that ``pytest`` finds your plugin module. Entry points are
a feature that is provided by `setuptools`_ or `Distribute`_.
pytest looks up the ``pytest11`` entrypoint to discover its
a feature that is provided by `setuptools`_. pytest looks up
the ``pytest11`` entrypoint to discover its
plugins and you can thus make your plugin available by defining
it in your setuptools/distribute-based setup-invocation:
it in your setuptools-invocation:
.. sourcecode:: python