1
- # Contributing to Aya
1
+ # Contributing Guide
2
2
3
- Thanks for your help improving the project!
3
+ * [ New Contributor Guide] ( #contributing-guide )
4
+ * [ Ways to Contribute] ( #ways-to-contribute )
5
+ * [ Find an Issue] ( #find-an-issue )
6
+ * [ Ask for Help] ( #ask-for-help )
7
+ * [ Pull Request Lifecycle] ( #pull-request-lifecycle )
8
+ * [ Pull Request Checklist] ( #pull-request-checklist )
9
+ * [ Documentation Style] ( #documentation-style )
4
10
5
- ## Reporting issues
11
+ Welcome! We are glad that you want to contribute to our project! 💖
6
12
7
- If you believe you've discovered a bug in aya, please check if the bug is
8
- already known or [ create an issue] ( https://github.com/aya-rs/aya/issues ) on
9
- github. Please also report an issue if you find documentation that you think is
10
- confusing or could be improved.
13
+ As you get started, you are in the best position to give us feedback on areas of
14
+ our project that we need help with including:
11
15
12
- When creating a new issue, make sure to include as many details as possible to
13
- help us understand the problem. When reporting a bug, always specify which
14
- version of aya you're using and which version of the linux kernel.
16
+ * Problems found during setting up a new developer environment
17
+ * Gaps in our Quickstart Guide or documentation
18
+ * Bugs in our automation scripts
15
19
16
- ## Documentation
20
+ If anything doesn't make sense, or doesn't work when you run it, please open a
21
+ bug report and let us know!
17
22
18
- If you find an API that is not documented, unclear or missing examples, please
19
- file an issue. If you make changes to the documentation, please read
20
- [ How To Write Documentation] and make sure your changes conform to the
21
- format outlined in [ Documenting Components] .
23
+ ## Ways to Contribute
22
24
23
- [ How To Write Documentation ] : https://doc.rust-lang.org/rustdoc/how-to-write-documentation.html
24
- [ Documenting Components ] : https://doc.rust-lang.org/rustdoc/how-to-write-documentation.html#documenting-components
25
+ We welcome many different types of contributions including:
25
26
26
- If you want to make changes to the Aya Book, see the readme in the
27
- [ book repository] .
27
+ * New features
28
+ * Builds, CI/CD
29
+ * Bug fixes
30
+ * Documentation
31
+ * Issue Triage
32
+ * Answering questions on [ Discord]
33
+ * Web design
34
+ * Communications / Social Media / Blog Posts
35
+ * Release management
36
+ * Community management
28
37
29
- [ book repository ] : https://github.com/aya-rs/book
38
+ Not everything happens through a GitHub pull request. Please come to our
39
+ [ Discord] and let's discuss how we can work together.
30
40
31
- ## Fixing bugs and implementing new features
41
+ ## Find an Issue
32
42
33
- Make sure that your work is tracked by an issue or a (draft) pull request, this
34
- helps us avoid duplicating work. If your work includes publicly visible changes,
35
- make sure those are properly documented as explained in the section above .
43
+ Issues labelled as [ "good first issue" ] are suitable for new
44
+ contributors. They provide extra information to help you make your first
45
+ contribution .
36
46
37
- ### Running tests
47
+ Issues labelled as [ "help wanted"] are usually more difficult. We
48
+ recommend them for people who aren't core maintainers, but have either made some
49
+ contributions already or feel comfortable with starting from more demanding
50
+ tasks.
38
51
39
- Run the unit tests with ` cargo test ` . See [ Aya Integration Tests] regarding
40
- running the integration tests.
52
+ Sometimes there won’t be any issues with these labels. That’s ok! There is
53
+ likely still something for you to work on. If you want to contribute but you
54
+ don’t know where to start or can't find a suitable issue, you can reach out to
55
+ us on [ Discord] and we will be happy to help.
41
56
42
- [ Aya Integration Tests ] : https://github.com/aya-rs/aya/blob/main/test/README.md
57
+ Once you see an issue that you'd like to work on, please post a comment saying
58
+ that you want to work on it. Something like "I want to work on this" is fine.
59
+
60
+ ## Ask for Help
61
+
62
+ The best way to reach us with a question when contributing is to ask on:
63
+
64
+ * The original GitHub issue
65
+ * Our [ Discord]
66
+
67
+ ## Pull Request Lifecycle
68
+
69
+ Pull requests are managed by Mergify.
70
+
71
+ Our process is currently as follows:
72
+
73
+ 1 . When you open a PR a maintainer will automatically be assigned for review
74
+ 1 . Make sure that your PR is passing CI - if you need help with failing checks
75
+ please feel free to ask!
76
+ 1 . Once it is passing all CI checks, a maintainer will review your PR and you
77
+ may be asked to make changes.
78
+ 1 . When you have received an approval from at least one maintainer, your PR will
79
+ be merged.
80
+
81
+ In some cases, other changes may conflict with your PR. If this happens, you
82
+ will get notified by a comment in the issue that your PR requires a rebase, and
83
+ the ` needs-rebase ` label will be applied. Once a rebase has been performed, this
84
+ label will be automatically removed.
43
85
44
- ### Commits
86
+ ## Logical Grouping of Commits
45
87
46
88
It is a recommended best practice to keep your changes as logically grouped as
47
89
possible within individual commits. If while you're developing you prefer doing
48
90
a number of commits that are "checkpoints" and don't represent a single logical
49
91
change, please squash those together before asking for a review.
92
+ When addressing review comments, please perform an interactive rebase and edit
93
+ commits directly rather than adding new commits with messages like
94
+ "Fix review comments".
50
95
51
- #### Commit message guidelines
96
+ ## Commit message guidelines
52
97
53
98
A good commit message should describe what changed and why.
54
99
55
100
1 . The first line should:
56
- - Contain a short description of the change (preferably 50 characters or less,
101
+ * Contain a short description of the change (preferably 50 characters or less,
57
102
and no more than 72 characters)
58
- - Be entirely in lowercase with the exception of proper nouns, acronyms, and
103
+ * Be entirely in lowercase with the exception of proper nouns, acronyms, and
59
104
the words that refer to code, like function/variable names
60
- - Be prefixed with the name of the sub crate being changed
105
+ * Be prefixed with the name of the sub crate being changed
61
106
62
107
Examples:
63
- - ` aya: handle reordered functions `
64
- - ` aya-bpf: SkSkbContext: add ::l3_csum_replace `
108
+ * ` aya: handle reordered functions `
109
+ * ` aya-bpf: SkSkbContext: add ::l3_csum_replace `
65
110
66
111
1 . Keep the second line blank.
67
112
1 . Wrap all other lines at 72 columns (except for long URLs).
@@ -72,8 +117,8 @@ A good commit message should describe what changed and why.
72
117
73
118
Examples:
74
119
75
- - ` Fixes: #1337 `
76
- - ` Refs: #1234 `
120
+ * ` Fixes: #1337 `
121
+ * ` Refs: #1234 `
77
122
78
123
Sample complete commit message:
79
124
@@ -92,3 +137,32 @@ nicely even when it is indented.
92
137
Fixes: #1337
93
138
Refs: #453, #154
94
139
```
140
+
141
+ ## Pull Request Checklist
142
+
143
+ When you submit your pull request, or you push new commits to it, our automated
144
+ systems will run some checks on your new code. We require that your pull request
145
+ passes these checks, but we also have more criteria than just that before we can
146
+ accept and merge it. Theses requirements are described in the
147
+ [ Pull Request Template] .
148
+
149
+ It is recommended that you run the integration tests locally before submitting
150
+ your Pull Request. Please see [ Aya Integration Tests] for more information.
151
+
152
+ ## Documentation Style
153
+
154
+ If you find an API that is not documented, unclear or missing examples, please
155
+ file an issue. If you make changes to the documentation, please read
156
+ [ How To Write Documentation] and make sure your changes conform to the
157
+ format outlined in [ Documenting Components] .
158
+
159
+ If you want to make changes to the Aya Book, see the README in the
160
+ [ book repository] .
161
+
162
+ [ "good first issue" ] : https://github.com/aya-rs/aya/labels/good%20first%20issue
163
+ [ "help wanted" ] : https://github.com/aya-rs/aya/labels/help%20wanted
164
+ [ Aya Integration Tests ] : https://github.com/aya-rs/aya/blob/main/test/README.md
165
+ [ How To Write Documentation ] : https://doc.rust-lang.org/rustdoc/how-to-write-documentation.html
166
+ [ Documenting Components ] : https://doc.rust-lang.org/rustdoc/how-to-write-documentation.html#documenting-components
167
+ [ book repository ] : https://github.com/aya-rs/book
168
+ [ Discord ] : https://discord.gg/xHW2cb2N6G
0 commit comments