
.. _`contact channels`:
.. _`contact`:

Contact channels
===================================

- `pytest issue tracker`_ to report bugs or suggest features (for version
  2.0 and above).

- `pytest on stackoverflow.com <http://stackoverflow.com/search?q=pytest>`_ 
  to post questions with the tag ``pytest``.  New Questions will usually 
  be seen by pytest users or developers and answered quickly. 

- `Testing In Python`_: a mailing list for Python testing tools and discussion.

- `pytest-dev at python.org (mailing list)`_ pytest specific announcements and discussions.

- `pytest-commit at python.org (mailing list)`_: for commits and new issues

- :doc:`contribution guide <contributing>` for help on submitting pull
  requests to bitbucket (including using git via gitifyhg).

- #pylib on irc.freenode.net IRC channel for random questions.

- private mail to Holger.Krekel at gmail com if you want to communicate sensitive issues


- `merlinux.eu`_ offers pytest and tox-related professional teaching and
  consulting.

.. _`pytest issue tracker`: https://github.com/pytest-dev/pytest/issues
.. _`old issue tracker`: http://bitbucket.org/hpk42/py-trunk/issues/

.. _`merlinux.eu`: http://merlinux.eu

.. _`get an account`:

.. _tetamap: http://tetamap.wordpress.com

.. _`@pylibcommit`: http://twitter.com/pylibcommit


.. _`Testing in Python`: http://lists.idyll.org/listinfo/testing-in-python
.. _FOAF: http://en.wikipedia.org/wiki/FOAF
.. _`py-dev`:
.. _`development mailing list`:
.. _`pytest-dev at python.org (mailing list)`: http://mail.python.org/mailman/listinfo/pytest-dev
.. _`py-svn`:
.. _`pytest-commit at python.org (mailing list)`: http://mail.python.org/mailman/listinfo/pytest-commit

