Skip to content

Commit c6fa65d

Browse files
committed
update contributor guide
Signed-off-by: Larry Peterson <[email protected]>
1 parent 858d65c commit c6fa65d

File tree

1 file changed

+68
-94
lines changed

1 file changed

+68
-94
lines changed

developer/contributing.rst

Lines changed: 68 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -7,23 +7,19 @@ Aether Project. There are just a few guidelines you need to follow.
77
Contributor License Agreement
88
-----------------------------
99

10-
Contributions to this project must be accompanied by a Contributor License
11-
Agreement. You (or your employer) retain the copyright to your contribution,
12-
this simply gives us permission to use and redistribute your contributions as
13-
part of the project. Head over to the `ONF CLA <https://cla.opennetworking.org/>`_ to see
14-
your current agreements on file or to sign a new one.
15-
16-
You generally only need to submit a CLA once, so if you've already submitted one
17-
(even if it was for a different project), you probably don't need to do it
18-
again.
10+
Contributors sign a `Developer Certificate of Origin (DCO)
11+
<https://wiki.linuxfoundation.org/dco>`__ on each commit, stating that
12+
you agree to the terms published at
13+
https://developercertificate.org/. Aether no longer requires a CLA.
1914

2015
Guides, Rules and Best Practices
2116
--------------------------------
2217

23-
Aether follows `Google's Engineering Practices <https://google.github.io/eng-practices/>`_,
24-
`Golang Formatting Guide <https://go.dev/doc/effective_go#formatting>`_. Use these documents as a guide when
25-
writing, submitting or reviewing code.
26-
Aether uses Github and gerrit to submit, review, tests and finally merge patches.
18+
Aether follows `Google's Engineering Practices
19+
<https://google.github.io/eng-practices/>`_, `Golang Formatting Guide
20+
<https://go.dev/doc/effective_go#formatting>`__. Use these documents
21+
as a guide when writing, submitting or reviewing code. Aether uses
22+
GitHub to submit, review, test and merge patches.
2723

2824
Submit Code
2925
"""""""""""""""
@@ -33,79 +29,57 @@ Some additional points for developers:
3329
- Submit your changes early and often. Input and
3430
corrections early in the process prevent huge changes later.
3531

36-
- Please open a ticket in the Aether Jira describing the issue/feature. During the patch please
37-
preface the commit message with `[AETHER-<jira_number]` e.g. `[AETHER-3400]` so it gets
38-
automatically linked to the Jira ticket. This keeps code review and design discussions clean.
32+
- It is good practice to open a ticket in the `Aether Jira
33+
<https://lf-aether.atlassian.net/jira/your-work>`__ describing the
34+
issue/feature. Select the ``Aether (AET)`` Project and the
35+
appropriate component (e.g., ``OnRamp``, ``SD-Core``, ``SD-RAN``).
36+
During the patch please preface the commit message with
37+
``[AET-<jira_number>]`` so it gets automatically linked to the Jira
38+
ticket. This keeps code review and design discussions clean.
3939

40-
- Note that Aether makes use of both gerrit based workflows and Github workflows, depending on
41-
the component that is being worked on. Follow the section below that is appropriate.
40+
- Note that Aether now exclusively uses Github workflows; Gerrit is no
41+
longer used.
4242

43-
Steps to Successful PRs (gerrit workflows)
44-
""""""""""""""""""""""""""""""""""""""""""
45-
46-
1. Checkout the code and prepare your patch. The workflow to make changes to the Aether code through gerrit is identical
47-
to the one from `onos-classic` and is described in the
48-
`Sample Gerrit Workflow page <https://wiki.onosproject.org/display/ONOS/Sample+Gerrit+Workflow>`_
49-
50-
2. Before submitting the patch via `git review` please execute Aether specific tests:
51-
`make test` and `make linters`. These commands run unit test, linting and other elements
52-
to assure the quality of your patch.
53-
54-
3. Wait for Jenkins sanity checks to pass.
55-
If the tests fail please fix your patch and then repeat 2 and 3, as necessary.
56-
**Passing CI verification is mandatory.** If the CI check does not start or fails but you think the issue
57-
is unrelated you can re-trigger by commenting on to the patch with `recheck`.
58-
59-
4. When comments are made to your patch please make the appropriate fixes and then
60-
amend your commit with `git commit --amend` and re-upload to gerrit with `git review`.
61-
62-
5. Await review. Everyone can comment on code changes, but only Collaborators
63-
and Core contributors can give final review approval. **All changes must get at least one
64-
approval**.
65-
66-
Steps to Successful PRs (Github workflows)
43+
Steps to Successful PRs (Github)
6744
""""""""""""""""""""""""""""""""""""""""""
6845

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

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

73-
3. Before submitting the patch via pull request, please execute any Aether specific tests:
74-
`make test` and `make linters`. These commands run unit test, linting and other elements
75-
to assure the quality of your patch.
50+
3. Before submitting the patch via a Pull Request, please execute any
51+
Aether specific tests: `make test` and `make linters`. These
52+
commands run unit test, linting and other elements to assure the
53+
quality of your patch.
7654

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

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

86-
6. When comments are made to your patch please make the appropriate fixes and then
87-
amend your commit with `git commit --amend` and re-upload to gerrit with `git push --force`.
88-
Alternatively, you may commit your changes as an additional separate commit. Git will usually
89-
merge subsequent commits into your PR.
62+
6. When comments are made to your patch, please make the appropriate
63+
fixes and then commit your changes as an additional separate
64+
commit. Git usually merges subsequent commits into your original
65+
PR.
9066

91-
7. Await review. Everyone can comment on code changes, but only Collaborators
92-
and Core contributors can give final review approval. **All changes must get at least one
93-
approval**.
67+
7. Await review. Everyone can comment on code changes, but only
68+
Collaborators and Core contributors can give final review approval.
9469

9570
Core Contributors
9671
-----------------
9772

98-
Anyone with a Gerrit account can open new issues, comment on existing issues, or
99-
contribute code by opening a review.
100-
101-
A **“core contributor”** is someone who can manage, approve and
102-
merge patches, and create new branches in the main repository.
73+
Anyone with a GitHub account can open new issues, comment on existing
74+
issues, or contribute code by opening a review. A **core contributor**
75+
is someone who can manage, approve and merge patches, and create new
76+
branches in the main repository.
10377

104-
Core contributors are responsible for maintaining the quality of contributions
105-
to the codebase. The goal of this program is to have a diverse group of
106-
individuals whose expertise in aggregate covers the entire project.
78+
Core contributors are responsible for maintaining the quality of
79+
contributions to the codebase. The goal of this program is to have a
80+
diverse group of individuals whose expertise in aggregate covers the
81+
entire project. The benefits of being a core contributor include:
10782

108-
The benefits of being a core contributor include:
10983
- Increased influence of the direction of the project,
11084
- The ability to create branches in the main repository and merge your own code,
11185
- Community recognition and visibility for their contributions and expertise.
@@ -117,35 +91,37 @@ Core contributor candidates need to have a demonstrated proficiency with the
11791
Aether codebase and a track record of code reviews. Members of the Technical
11892
Steering Team (TST) and existing core contributors will regularly invite people
11993
to become new core contributors. Nominations can also be made (including
120-
self-nominations) to the Aether TST (`[email protected]`) at any time.
121-
122-
A good nomination will include details about who the person is (including their email
123-
and Github and/or Gerrit username) and outline their experience with the Aether codebase
124-
and project at large.
125-
Nominations are intended to start a conversation that results in a decision to
126-
make the person a core contributor – anyone whose nomination is not initially
127-
approved is encouraged to gain more experience with code submission and code
128-
review in order to gain further mastery over the codebase. Partial approval is
129-
also possible (e.g. a person may be granted the ability to handles patches only
130-
on a certain repository), and full approval may be granted after the contributor
131-
has gained more experience.
132-
133-
New core contributors will be assigned a mentor that is either a TST member or
134-
existing core contributor. The mentor will serve as the primary point of contact
135-
to help onboard the new core contributors and answer any questions they have
136-
with their new responsibilities. The mentor is not the only point of contact,
137-
and core contributors should feel free to reach out to others if and when they
138-
have questions or concerns.
94+
self-nominations) to the Aether TST (`[email protected]`) at any time.
95+
96+
A good nomination will include details about who the person is
97+
(including their email and Github username) and outline their
98+
experience with the Aether codebase and project at large. Nominations
99+
are intended to start a conversation that results in a decision to
100+
make the person a core contributor – anyone whose nomination is not
101+
initially approved is encouraged to gain more experience with code
102+
submission and code review in order to gain further mastery over the
103+
codebase. Partial approval is also possible (e.g. a person may be
104+
granted the ability to handles patches only on a certain repository),
105+
and full approval may be granted after the contributor has gained more
106+
experience.
107+
108+
New core contributors will be assigned a mentor that is either a TST
109+
member or existing core contributor. The mentor will serve as the
110+
primary point of contact to help onboard the new core contributors and
111+
answer any questions they have with their new responsibilities. The
112+
mentor is not the only point of contact, and core contributors should
113+
feel free to reach out to others if and when they have questions or
114+
concerns.
139115

140116
Tips for Core Contributors
141117
""""""""""""""""""""""""""
142118

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

150126
Aether follows `Google’s best practices for code review
151127
<https://google.github.io/eng-practices/review/reviewer/>`_.
@@ -160,7 +136,5 @@ have a discussion.
160136
Community Guidelines
161137
--------------------
162138

163-
This project follows `Google's Open Source Community Guidelines
164-
<https://opensource.google.com/conduct/>`_
165-
and ONF's
166-
`Code of Conduct <https://docs.opennetworking.org/policies/conduct.html>`.
139+
This project follows the Linux Foundation's `Code of Conduct
140+
<https://docs.linuxfoundation.org/lfx/mentorship/mentor-guide/code-of-conduct>`__.

0 commit comments

Comments
 (0)