Contributing to Aether
======================

We'd love to accept your patches and contributions to the Aether project. There are
just a few small guidelines you need to follow.

Contributor License Agreement
-----------------------------

Contributions to this project must be accompanied by a Contributor License
Agreement. You (or your employer) retain the copyright to your contribution,
this simply gives us permission to use and redistribute your contributions as
part of the project. Head over to the `ONF CLA <https://cla.opennetworking.org/>`_ to see
your current agreements on file or to sign a new one.

You generally only need to submit a CLA once, so if you've already submitted one
(even if it was for a different project), you probably don't need to do it
again.

Guides, Rules and Best Practices
--------------------------------

Aether follows `Google's Engineering Practices <https://google.github.io/eng-practices/>`_,
`Golang Formatting Guide <https://go.dev/doc/effective_go#formatting>`_. Use these documents as a guide when
writing, submitting or reviewing code.
Aether uses Github and gerrit to submit, review, tests and finally merge patches.

Submitting Code
"""""""""""""""

Some additional points for developers:

 - Submit your changes early and often. Input and
   corrections early in the process prevent huge changes later.

 - Please open a ticket in the Aether Jira describing the issue/feature. During the patch please
   preface the commit message with `[AETHER-<jira_number]` e.g. `[AETHER-3400]` so it gets
   automatically linked to the Jira ticket. This keeps code review and design discussions clean.

 - Note that Aether makes use of both gerrit based workflows and Github workflows, depending on
   the component that is being worked on. Follow the section below that is appropriate.

Steps to successful PRs (gerrit workflows)
""""""""""""""""""""""""""""""""""""""""""

 1. Checkout the code and prepare your patch. The workflow to make changes to the Aether code through gerrit is identical
    to the one from `onos-classic` and is described in the
    `Sample Gerrit Workflow page <https://wiki.onosproject.org/display/ONOS/Sample+Gerrit+Workflow>`_

 2. Before submitting the patch via `git review` please execute Aether specific tests:
    `make test` and `make linters`. These commands run unit test, linting and other elements
    to assure the quality of your patch.

 3. Wait for Jenkins sanity checks to pass.
    If the tests fail please fix your patch and then repeat 2 and 3, as necessary.
    **Passing CI verification is mandatory.** If the CI check does not start or fails but you think the issue
    is unrelated you can re-trigger by commenting on to the patch with `recheck`.

 4. When comments are made to your patch please make the appropriate fixes and then
    amend your commit with `git commit --amend` and re-upload to gerrit with `git review`.

 5. Await review. Everyone can comment on code changes, but only Collaborators
    and Core contributors can give final review approval. **All changes must get at least one
    approval**.

Steps to successful PRs (Github workflows)
""""""""""""""""""""""""""""""""""""""""""

 1. Fork the repository to your company or personal Github account.

 2. Checkout the code from your fork of the repo and prepare your patch.

 3. Before submitting the patch via pull request, please execute any Aether specific tests:
    `make test` and `make linters`. These commands run unit test, linting and other elements
    to assure the quality of your patch.

 4. Using the Github user interface on your fork, open a pull request. Add a reviewer from
    the core contributor list whom you believe will be qualified to review your patch. Often
    it helps to be involved in informal conversation with a reviewer.

 5. Wait for Jenkins sanity checks to pass.
    If the tests fail please fix your patch and then repeat 3 through 5, as necessary.
    **Passing CI verification is mandatory.** If the CI check does not start or fails but you think the issue
    is unrelated you can re-trigger by commenting on to the patch with `recheck`.

 6. When comments are made to your patch please make the appropriate fixes and then
    amend your commit with `git commit --amend` and re-upload to gerrit with `git push --force`.
    Alternatively, you may commit your changes as an additional separate commit. Git will usually
    merge subsequent commits into your PR.

 7. Await review. Everyone can comment on code changes, but only Collaborators
    and Core contributors can give final review approval. **All changes must get at least one
    approval**.

Core Contributors
-----------------

Anyone with a Gerrit account can open new issues, comment on existing issues, or
contribute code by opening a review.

A **“core contributor”** is someone who can manage, approve and
merge patches, and create new branches in the main repository.

Core contributors are responsible for maintaining the quality of contributions
to the codebase. The goal of this program is to have a diverse group of
individuals whose expertise in aggregate covers the entire project.

The benefits of being a core contributor include:
- Increased influence of the direction of the project,
- The ability to create branches in the main repository and merge your own code,
- Community recognition and visibility for their contributions and expertise.

Becoming a Core Contributor
"""""""""""""""""""""""""""

Core contributor candidates need to have a demonstrated proficiency with the
Aether codebase and a track record of code reviews.  Members of the Technical
Steering Team (TST) and existing core contributors will regularly invite people
to become new core contributors. Nominations can also be made (including
self-nominations) to the Aether TST (`aether-tst@opennetworking.org`) at any time.

A good nomination will include details about who the person is (including their email
and Github and/or Gerrit username) and outline their experience with the Aether codebase
and project at large.
Nominations are intended to start a conversation that results in a decision to
make the person a core contributor – anyone whose nomination is not initially
approved is encouraged to gain more experience with code submission and code
review in order to gain further mastery over the codebase. Partial approval is
also possible (e.g. a person may be granted the ability to handles patches only
on a certain repository), and full approval may be granted after the contributor
has gained more experience.

New core contributors will be assigned a mentor that is either a TST member or
existing core contributor. The mentor will serve as the primary point of contact
to help onboard the new core contributors and answer any questions they have
with their new responsibilities. The mentor is not the only point of contact,
and core contributors should feel free to reach out to others if and when they
have questions or concerns.

Tips for Core Contributors
""""""""""""""""""""""""""

For your own contributions, you now have the ability to approve and merge your
own code. For larger or potentially controversial reviews, please give the
community an opportunity (at least a few business days) to review your
contribution. Please always ask for comments on the #aether-dev Slack channel.
**With great power comes great responsibility; please don't abuse
this privilege.**

Aether follows `Google’s best practices for code review
<https://google.github.io/eng-practices/review/reviewer/>`_.
You should apply these guidelines strictly and with confidence when reviewing
submissions.

If you are unsure about something in an issue or a review, leave a comment
that outlines your concerns. If a resolution is difficult to reach in the
comments section, the TST meetings are a good place to raise your concerns and
have a discussion.

Current Core Contributors
"""""""""""""""""""""""""

All of the codebase:

* Name...

Community Guidelines
--------------------

This project follows `Google's Open Source Community Guidelines
<https://opensource.google.com/conduct/>`_
and ONF's
`Code of Conduct <https://docs.opennetworking.org/policies/conduct.html>`.
