Developer Information
=====================

.. _mailing-lists:

Mailing Lists
-------------

All of the communication about Libcloud development happens on our mailing
lists.

* `announce@libcloud.apache.org`_ - Moderated and low volume mailing list which
  is only used for distributing important project announcements and updates.
  (`announce-archive <https://mail-archives.apache.org/mod_mbox/libcloud-announce/>`_)
* `users@libcloud.apache.org`_ - Mailing list for general talk about Libcloud
  and other off-topic things
  (`users-archive <https://mail-archives.apache.org/mod_mbox/libcloud-users/>`_)
* `dev@libcloud.apache.org`_ - General mailing list for developers
  (`dev-archive <https://mail-archives.apache.org/mod_mbox/libcloud-dev/>`_)
* `notifications@libcloud.apache.org`_ - Commits messages and other automatically
  generated notifications go to this mailing list.
  Keep in mind that unlike the others, this mailing list is fairly noisy.
  (`notifications-archive <https://mail-archives.apache.org/mod_mbox/libcloud-notifications/>`_, `commits-archive <https://mail-archives.apache.org/mod_mbox/libcloud-commits/>`_)

Archive of old incubator mailing lists:

* `incubator-libcloud`_
* `incubator-libcloud-commits`_

.. _irc:

IRC
---

* #libcloud on Freenode

.. _issue-tracker:

Issue Tracker
-------------

For bug and issue tracking we use JIRA located at
https://issues.apache.org/jira/browse/LIBCLOUD.

Testing
-------

For information how to run the tests and how to generate the test coverage
report, please see the :doc:`Testing page </testing>`.

Continuous Integration
----------------------

For continuous integration we use Apache buildbot instance and Travis-CI. You
can find build reports on the following two links:

* https://ci.apache.org/waterfall?builder=libcloud-trunk-tox&builder=libcloud-site-staging
* https://travis-ci.org/apache/libcloud

Travis-CI builder is also integrated with Github which means that if you open a
pull request there, Travis-CI will automatically build it.

If you want to validate the build before raising the PR, Travis-CI can be enabled for personal
accounts and branches separately.

Test Coverage
-------------

Test coverage report is automatically generated after every push and can be
found at http://ci.apache.org/projects/libcloud/coverage.

.. _`announce@libcloud.apache.org`: mailto:announce-subscribe@libcloud.apache.org
.. _`users@libcloud.apache.org`: mailto:users-subscribe@libcloud.apache.org
.. _`dev@libcloud.apache.org`: mailto:dev-subscribe@libcloud.apache.org
.. _`notifications@libcloud.apache.org`: mailto:notifications-subscribe@libcloud.apache.org
.. _`incubator-libcloud`: http://mail-archives.apache.org/mod_mbox/incubator-libcloud/
.. _`incubator-libcloud-commits`: http://mail-archives.apache.org/mod_mbox/incubator-libcloud-commits/
