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:
parent
e9d4853296
commit
f6df3b0b97
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in New Issue