.. _Developer Mailing List: http://groups.google.com/group/circuits-dev
.. _Issue Tracker: https://github.com/circuits/circuits/issues
.. _Libera.Chat IRC Network: https://libera.chat
.. _IRC Channel: https://web.libera.chat/#circuits


Development Introduction
========================


Here's how we do things in circuits...


Communication
-------------

- `IRC Channel`_ on the `Libera.Chat IRC Network`_
- `Developer Mailing List`_
- `Issue Tracker`_


.. note:: If you are familiar with `IRC <http://en.wikipedia.org/wiki/Internet_Relay_Chat>`_
          and use your own IRC Client then connect to the Libera.Chat Network and ``/join #circuits``.


Standards
---------

We use the following coding standard:

- `PEP-008 <http://www.python.org/dev/peps/pep-0008/>`_

We also lint our codebase with the following tools:

- `pyflakes <https://pypi.python.org/pypi/pyflakes>`_
- `pep8 <https://pypi.python.org/pypi/pep8>`_
- `mccabe <https://pypi.python.org/pypi/mccabe/0.2.1>`_

Please ensure your Development IDE or Editor has the above
linters and checkers in place and enabled.

Alternatively you can use the following command line tool:

- `flake8 <https://pypi.python.org/pypi/flake8>`_


Tools
-----

We use the following tools to develop circuits and share code:

- **Code Sharing:**
  `Git <https://git-scm.com/>`_
- **Code Hosting and Bug Reporting:**
  `GitHub <https://github.com/circuits/circuits>`_
- **Issue Tracker:**
  `Issue Tracker <https://github.com/circuits/circuits/issues>`_
- **Documentation Hosting:**
  `Read the Docs <http://circuits.readthedocs.org>`_
- **Package Hosting:**
  `Python Package Index (PyPi) <http://pypi.python.org/pypi/circuits>`_
- **Continuous Integration:**
  `Github Actions <https://github.com/circuits/circuits/actions>`_
