Port contribution docs from 0.x and update for 1.0

This is mostly ported as-is from 0.x but contains updates relevant
to GitHub and removes bits about Storyboard.

Change-Id: Ib38a413a2927e3b4cfcb9dbfb24d528c99be7657
This commit is contained in:
David Moreau Simard 2019-05-29 10:02:06 -04:00
parent f946cd19a1
commit 582d03e179
No known key found for this signature in database
GPG Key ID: CBEB466764A9E621
3 changed files with 130 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

129
doc/source/contributing.rst Normal file
View File

@ -0,0 +1,129 @@
How to contribute
=================
ARA Records Ansible is an open source community project and welcomes
contributions, whether they are in the form of feedback, comments, suggestions,
bugs, documentation, code, or code reviews.
The ARA code review and CI infrastructure is hosted by `opendev.org <https://opendev.org>`_
which provides Gerrit for code review, Zuul for CI/CD as well as many other
systems.
All new patches are automatically tested with lint, unit and a variety of
integration test scenarios.
The end result is higher standards, better code, more testing, less regressions
and more stability.
.. image:: _static/code-review-ci.png
Running tests locally
---------------------
- Unit tests: ``tox -e py37``
- Linters tests (pep8/flake8/bandit/bashate/black/isort/etc): ``tox -e linters``
- Documentation tests (builds to ``docs/build/html``): ``tox -e docs``
- Integration tests: ``tox -e ansible-integration``
Issues and pull requests
------------------------
ARA has several projects that are mirrored to GitHub:
- https://opendev.org/recordsansible/ara -> https://github.com/ansible-community/ara
- https://opendev.org/recordsansible/ara-web -> https://github.com/ansible-community/ara-web
- https://opendev.org/recordsansible/ara-infra -> https://github.com/ansible-community/ara-infra
While new issues, bugs and feature requests should be filed on GitHub, we are
unable to accept pull requests on GitHub at this time.
We would appreciate the opportunity to accept them in the future by trying
`Gerritbot <https://github.com/ansible-community/ara-infra/issues/4>`_ to
synchronize pull requests to Gerrit.
In the meantime, what follows are the required steps in order to send a patch
to Gerrit.
Set up your Ubuntu Launchpad account
------------------------------------
OpenDev's Gerrit_ instance currently uses Launchpad_ for authentication.
If you do not already have a Launchpad account, you will need to create one
here_.
.. _here: https://login.launchpad.net/+login
Set up your Gerrit code review account
--------------------------------------
If you'll be contributing code or code reviews, you'll need to set up your
Gerrit code review account.
Once you have your Launchpad account, you will be able to sign in to
`review.opendev.org`_.
To be able to submit code, Gerrit needs to have your public SSH key in the
same way Github does. To do that, click on your name at the top right and go
to the settings where you will see the tab to set up your SSH key.
Note that if the username from your local machine differs from the one in Gerrit,
you might need to set it up in your local ``~/.ssh/config`` file like this:
.. code-block::
Host review.opendev.org
user foo
identityfile /home/foo/.ssh/gerrit
.. _Launchpad: https://login.launchpad.net/+login
.. _review.opendev.org: https://review.opendev.org/
Installing Git Review
---------------------
Git Review is a python module that adds a "git review" command that wraps
around the process of sending a commit for review in Gerrit. You need to
install it to be able to send patches for code reviews.
There are different ways to install git-review, `choose your favorite`_.
.. _choose your favorite: https://docs.openstack.org/infra/manual/developers.html#install-the-git-review-utility
Sending a patch for review
--------------------------
The process looks a bit like this:
.. code-block:: bash
$ git clone https://opendev.org/recordsansible/ara
# or git clone https://github.com/ansible-community/ara
$ cd ara
# Create a new local branch
$ git checkout -b super_cool_feature
# hack on super_cool_feature
$ git commit -a --message="This is my super cool feature"
$ git review
When you send a commit for review, it'll create a code review request in
Gerrit_ for you.
When that review is created, it will automatically be tested by a variety of
jobs that the ARA maintainers have set up to test every patch that is sent.
We'll check for things like code quality (pep8/flake8), run unit tests to catch
regressions and we'll also run both integration tests on different operating
systems to make sure everything really works.
The result of the tests are added as a comment in the review when all of them
are completed. If you're interested in digging into the logs for a particular
test, clicking on the results of the test will take you to console, debug
logs and a built version of ARA's web interface.
If you get a failed test result and you believe you have fixed the issue, add
the files, amend your commit (``git commit --amend``) and send it for review
once again. This will create a new patchset that will be up for review and
testing.
To be able to merge a patch, the tests have to come back successful and the
core reviewers must provide their agreement with the patch.
.. _Gerrit: https://review.opendev.org

View File

@ -18,6 +18,7 @@ Table of Contents
Setting playbook names and labels <playbook-names-and-labels>
Recording arbitrary data in playbooks <ara-record>
Architecture and workflows <architecture>
Contributing to ARA <contributing>
.. toctree::
:maxdepth: 1