xref: /aosp_15_r20/external/curl/docs/CONTRIBUTE.md (revision 6236dae45794135f37c4eb022389c904c8b0090d)
1*6236dae4SAndroid Build Coastguard Worker<!--
2*6236dae4SAndroid Build Coastguard WorkerCopyright (C) Daniel Stenberg, <[email protected]>, et al.
3*6236dae4SAndroid Build Coastguard Worker
4*6236dae4SAndroid Build Coastguard WorkerSPDX-License-Identifier: curl
5*6236dae4SAndroid Build Coastguard Worker-->
6*6236dae4SAndroid Build Coastguard Worker
7*6236dae4SAndroid Build Coastguard Worker# Contributing to the curl project
8*6236dae4SAndroid Build Coastguard Worker
9*6236dae4SAndroid Build Coastguard WorkerThis document is intended to offer guidelines on how to best contribute to the
10*6236dae4SAndroid Build Coastguard Workercurl project. This concerns new features as well as corrections to existing
11*6236dae4SAndroid Build Coastguard Workerflaws or bugs.
12*6236dae4SAndroid Build Coastguard Worker
13*6236dae4SAndroid Build Coastguard Worker## Join the Community
14*6236dae4SAndroid Build Coastguard Worker
15*6236dae4SAndroid Build Coastguard WorkerSkip over to [https://curl.se/mail/](https://curl.se/mail/) and join
16*6236dae4SAndroid Build Coastguard Workerthe appropriate mailing list(s). Read up on details before you post
17*6236dae4SAndroid Build Coastguard Workerquestions. Read this file before you start sending patches. We prefer
18*6236dae4SAndroid Build Coastguard Workerquestions sent to and discussions being held on the mailing list(s), not sent
19*6236dae4SAndroid Build Coastguard Workerto individuals.
20*6236dae4SAndroid Build Coastguard Worker
21*6236dae4SAndroid Build Coastguard WorkerBefore posting to one of the curl mailing lists, please read up on the
22*6236dae4SAndroid Build Coastguard Worker[mailing list etiquette](https://curl.se/mail/etiquette.html).
23*6236dae4SAndroid Build Coastguard Worker
24*6236dae4SAndroid Build Coastguard WorkerWe also hang out on IRC in #curl on libera.chat
25*6236dae4SAndroid Build Coastguard Worker
26*6236dae4SAndroid Build Coastguard WorkerIf you are at all interested in the code side of things, consider clicking
27*6236dae4SAndroid Build Coastguard Worker'watch' on the [curl repository on GitHub](https://github.com/curl/curl) to be
28*6236dae4SAndroid Build Coastguard Workernotified of pull requests and new issues posted there.
29*6236dae4SAndroid Build Coastguard Worker
30*6236dae4SAndroid Build Coastguard Worker## License and copyright
31*6236dae4SAndroid Build Coastguard Worker
32*6236dae4SAndroid Build Coastguard WorkerWhen contributing with code, you agree to put your changes and new code under
33*6236dae4SAndroid Build Coastguard Workerthe same license curl and libcurl is already using unless stated and agreed
34*6236dae4SAndroid Build Coastguard Workerotherwise.
35*6236dae4SAndroid Build Coastguard Worker
36*6236dae4SAndroid Build Coastguard WorkerIf you add a larger piece of code, you can opt to make that file or set of
37*6236dae4SAndroid Build Coastguard Workerfiles to use a different license as long as they do not enforce any changes to
38*6236dae4SAndroid Build Coastguard Workerthe rest of the package and they make sense. Such "separate parts" can not be
39*6236dae4SAndroid Build Coastguard WorkerGPL licensed (as we do not want copyleft to affect users of libcurl) but they
40*6236dae4SAndroid Build Coastguard Workermust use "GPL compatible" licenses (as we want to allow users to use libcurl
41*6236dae4SAndroid Build Coastguard Workerproperly in GPL licensed environments).
42*6236dae4SAndroid Build Coastguard Worker
43*6236dae4SAndroid Build Coastguard WorkerWhen changing existing source code, you do not alter the copyright of the
44*6236dae4SAndroid Build Coastguard Workeroriginal file(s). The copyright is still owned by the original creator(s) or
45*6236dae4SAndroid Build Coastguard Workerthose who have been assigned copyright by the original author(s).
46*6236dae4SAndroid Build Coastguard Worker
47*6236dae4SAndroid Build Coastguard WorkerBy submitting a patch to the curl project, you are assumed to have the right
48*6236dae4SAndroid Build Coastguard Workerto the code and to be allowed by your employer or whatever to hand over that
49*6236dae4SAndroid Build Coastguard Workerpatch/code to us. We credit you for your changes as far as possible, to give
50*6236dae4SAndroid Build Coastguard Workercredit but also to keep a trace back to who made what changes. Please always
51*6236dae4SAndroid Build Coastguard Workerprovide us with your full real name when contributing,
52*6236dae4SAndroid Build Coastguard Worker
53*6236dae4SAndroid Build Coastguard Worker## What To Read
54*6236dae4SAndroid Build Coastguard Worker
55*6236dae4SAndroid Build Coastguard WorkerSource code, the man pages, the [INTERNALS
56*6236dae4SAndroid Build Coastguard Workerdocument](https://curl.se/dev/internals.html),
57*6236dae4SAndroid Build Coastguard Worker[TODO](https://curl.se/docs/todo.html),
58*6236dae4SAndroid Build Coastguard Worker[KNOWN_BUGS](https://curl.se/docs/knownbugs.html) and the [most recent
59*6236dae4SAndroid Build Coastguard Workerchanges](https://curl.se/dev/sourceactivity.html) in git. Just lurking on the
60*6236dae4SAndroid Build Coastguard Worker[curl-library mailing list](https://curl.se/mail/list.cgi?list=curl-library)
61*6236dae4SAndroid Build Coastguard Workergives you a lot of insights on what's going on right now. Asking there is a
62*6236dae4SAndroid Build Coastguard Workergood idea too.
63*6236dae4SAndroid Build Coastguard Worker
64*6236dae4SAndroid Build Coastguard Worker## Write a good patch
65*6236dae4SAndroid Build Coastguard Worker
66*6236dae4SAndroid Build Coastguard Worker### Follow code style
67*6236dae4SAndroid Build Coastguard Worker
68*6236dae4SAndroid Build Coastguard WorkerWhen writing C code, follow the
69*6236dae4SAndroid Build Coastguard Worker[CODE_STYLE](https://curl.se/dev/code-style.html) already established in
70*6236dae4SAndroid Build Coastguard Workerthe project. Consistent style makes code easier to read and mistakes less
71*6236dae4SAndroid Build Coastguard Workerlikely to happen. Run `make checksrc` before you submit anything, to make sure
72*6236dae4SAndroid Build Coastguard Workeryou follow the basic style. That script does not verify everything, but if it
73*6236dae4SAndroid Build Coastguard Workercomplains you know you have work to do.
74*6236dae4SAndroid Build Coastguard Worker
75*6236dae4SAndroid Build Coastguard Worker### Non-clobbering All Over
76*6236dae4SAndroid Build Coastguard Worker
77*6236dae4SAndroid Build Coastguard WorkerWhen you write new functionality or fix bugs, it is important that you do not
78*6236dae4SAndroid Build Coastguard Workerfiddle all over the source files and functions. Remember that it is likely
79*6236dae4SAndroid Build Coastguard Workerthat other people have done changes in the same source files as you have and
80*6236dae4SAndroid Build Coastguard Workerpossibly even in the same functions. If you bring completely new
81*6236dae4SAndroid Build Coastguard Workerfunctionality, try writing it in a new source file. If you fix bugs, try to
82*6236dae4SAndroid Build Coastguard Workerfix one bug at a time and send them as separate patches.
83*6236dae4SAndroid Build Coastguard Worker
84*6236dae4SAndroid Build Coastguard Worker### Write Separate Changes
85*6236dae4SAndroid Build Coastguard Worker
86*6236dae4SAndroid Build Coastguard WorkerIt is annoying when you get a huge patch from someone that is said to fix 11
87*6236dae4SAndroid Build Coastguard Workerodd problems, but discussions and opinions do not agree with 10 of them - or 9
88*6236dae4SAndroid Build Coastguard Workerof them were already fixed in a different way. Then the person merging this
89*6236dae4SAndroid Build Coastguard Workerchange needs to extract the single interesting patch from somewhere within the
90*6236dae4SAndroid Build Coastguard Workerhuge pile of source, and that creates a lot of extra work.
91*6236dae4SAndroid Build Coastguard Worker
92*6236dae4SAndroid Build Coastguard WorkerPreferably, each fix that corrects a problem should be in its own patch/commit
93*6236dae4SAndroid Build Coastguard Workerwith its own description/commit message stating exactly what they correct so
94*6236dae4SAndroid Build Coastguard Workerthat all changes can be selectively applied by the maintainer or other
95*6236dae4SAndroid Build Coastguard Workerinterested parties.
96*6236dae4SAndroid Build Coastguard Worker
97*6236dae4SAndroid Build Coastguard WorkerAlso, separate changes enable bisecting much better for tracking problems
98*6236dae4SAndroid Build Coastguard Workerand regression in the future.
99*6236dae4SAndroid Build Coastguard Worker
100*6236dae4SAndroid Build Coastguard Worker### Patch Against Recent Sources
101*6236dae4SAndroid Build Coastguard Worker
102*6236dae4SAndroid Build Coastguard WorkerPlease try to get the latest available sources to make your patches against.
103*6236dae4SAndroid Build Coastguard WorkerIt makes the lives of the developers so much easier. The best is if you get
104*6236dae4SAndroid Build Coastguard Workerthe most up-to-date sources from the git repository, but the latest release
105*6236dae4SAndroid Build Coastguard Workerarchive is quite OK as well.
106*6236dae4SAndroid Build Coastguard Worker
107*6236dae4SAndroid Build Coastguard Worker### Documentation
108*6236dae4SAndroid Build Coastguard Worker
109*6236dae4SAndroid Build Coastguard WorkerWriting docs is dead boring and one of the big problems with many open source
110*6236dae4SAndroid Build Coastguard Workerprojects but someone's gotta do it. It makes things a lot easier if you submit
111*6236dae4SAndroid Build Coastguard Workera small description of your fix or your new features with every contribution
112*6236dae4SAndroid Build Coastguard Workerso that it can be swiftly added to the package documentation.
113*6236dae4SAndroid Build Coastguard Worker
114*6236dae4SAndroid Build Coastguard WorkerDocumentation is mostly provided as manpages or plain ASCII files. The
115*6236dae4SAndroid Build Coastguard Workermanpages are rendered from their source files that are usually written using
116*6236dae4SAndroid Build Coastguard Workermarkdown. Most HTML files on the website and in the release archives are
117*6236dae4SAndroid Build Coastguard Workergenerated from corresponding markdown and ASCII files.
118*6236dae4SAndroid Build Coastguard Worker
119*6236dae4SAndroid Build Coastguard Worker### Test Cases
120*6236dae4SAndroid Build Coastguard Worker
121*6236dae4SAndroid Build Coastguard WorkerSince the introduction of the test suite, we can quickly verify that the main
122*6236dae4SAndroid Build Coastguard Workerfeatures are working as they are supposed to. To maintain this situation and
123*6236dae4SAndroid Build Coastguard Workerimprove it, all new features and functions that are added need to be tested in
124*6236dae4SAndroid Build Coastguard Workerthe test suite. Every feature that is added should get at least one valid test
125*6236dae4SAndroid Build Coastguard Workercase that verifies that it works as documented. If every submitter also posts
126*6236dae4SAndroid Build Coastguard Workera few test cases, it does not end up a heavy burden on a single person.
127*6236dae4SAndroid Build Coastguard Worker
128*6236dae4SAndroid Build Coastguard WorkerIf you do not have test cases or perhaps you have done something that is hard
129*6236dae4SAndroid Build Coastguard Workerto write tests for, do explain exactly how you have otherwise tested and
130*6236dae4SAndroid Build Coastguard Workerverified your changes.
131*6236dae4SAndroid Build Coastguard Worker
132*6236dae4SAndroid Build Coastguard Worker# Submit Your Changes
133*6236dae4SAndroid Build Coastguard Worker
134*6236dae4SAndroid Build Coastguard Worker## Get your changes merged
135*6236dae4SAndroid Build Coastguard Worker
136*6236dae4SAndroid Build Coastguard WorkerIdeally you file a [pull request on
137*6236dae4SAndroid Build Coastguard WorkerGitHub](https://github.com/curl/curl/pulls), but you can also send your plain
138*6236dae4SAndroid Build Coastguard Workerpatch to [the curl-library mailing
139*6236dae4SAndroid Build Coastguard Workerlist](https://curl.se/mail/list.cgi?list=curl-library).
140*6236dae4SAndroid Build Coastguard Worker
141*6236dae4SAndroid Build Coastguard WorkerIf you opt to post a patch on the mailing list, chances are someone converts
142*6236dae4SAndroid Build Coastguard Workerit into a pull request for you, to have the CI jobs verify it proper before it
143*6236dae4SAndroid Build Coastguard Workercan be merged. Be prepared that some feedback on the proposed change might
144*6236dae4SAndroid Build Coastguard Workerthen come on GitHub.
145*6236dae4SAndroid Build Coastguard Worker
146*6236dae4SAndroid Build Coastguard WorkerYour changes be reviewed and discussed and you are expected to correct flaws
147*6236dae4SAndroid Build Coastguard Workerpointed out and update accordingly, or the change risks stalling and
148*6236dae4SAndroid Build Coastguard Workereventually just getting deleted without action. As a submitter of a change,
149*6236dae4SAndroid Build Coastguard Workeryou are the owner of that change until it has been merged.
150*6236dae4SAndroid Build Coastguard Worker
151*6236dae4SAndroid Build Coastguard WorkerRespond on the list or on GitHub about the change and answer questions and/or
152*6236dae4SAndroid Build Coastguard Workerfix nits/flaws. This is important. We take lack of replies as a sign that you
153*6236dae4SAndroid Build Coastguard Workerare not anxious to get your patch accepted and we tend to simply drop such
154*6236dae4SAndroid Build Coastguard Workerchanges.
155*6236dae4SAndroid Build Coastguard Worker
156*6236dae4SAndroid Build Coastguard Worker## About pull requests
157*6236dae4SAndroid Build Coastguard Worker
158*6236dae4SAndroid Build Coastguard WorkerWith GitHub it is easy to send a [pull
159*6236dae4SAndroid Build Coastguard Workerrequest](https://github.com/curl/curl/pulls) to the curl project to have
160*6236dae4SAndroid Build Coastguard Workerchanges merged.
161*6236dae4SAndroid Build Coastguard Worker
162*6236dae4SAndroid Build Coastguard WorkerWe strongly prefer pull requests to mailed patches, as it makes it a proper
163*6236dae4SAndroid Build Coastguard Workergit commit that is easy to merge and they are easy to track and not that easy
164*6236dae4SAndroid Build Coastguard Workerto lose in the flood of many emails, like they sometimes do on the mailing
165*6236dae4SAndroid Build Coastguard Workerlists.
166*6236dae4SAndroid Build Coastguard Worker
167*6236dae4SAndroid Build Coastguard WorkerEvery pull request submitted is automatically tested in several different
168*6236dae4SAndroid Build Coastguard Workerways. [See the CI document for more
169*6236dae4SAndroid Build Coastguard Workerinformation](https://github.com/curl/curl/blob/master/tests/CI.md).
170*6236dae4SAndroid Build Coastguard Worker
171*6236dae4SAndroid Build Coastguard WorkerSometimes the tests fail due to a dependency service temporarily being offline
172*6236dae4SAndroid Build Coastguard Workeror otherwise unavailable, e.g. package downloads. In this case you can just
173*6236dae4SAndroid Build Coastguard Workertry to update your pull requests to rerun the tests later as described below.
174*6236dae4SAndroid Build Coastguard Worker
175*6236dae4SAndroid Build Coastguard WorkerYou can update your pull requests by pushing new commits or force-pushing
176*6236dae4SAndroid Build Coastguard Workerchanges to existing commits. Force-pushing an amended commit without any
177*6236dae4SAndroid Build Coastguard Workeractual content changed also allows you to retrigger the tests for that commit.
178*6236dae4SAndroid Build Coastguard Worker
179*6236dae4SAndroid Build Coastguard WorkerWhen you adjust your pull requests after review, consider squashing the
180*6236dae4SAndroid Build Coastguard Workercommits so that we can review the full updated version more easily.
181*6236dae4SAndroid Build Coastguard Worker
182*6236dae4SAndroid Build Coastguard WorkerA pull request sent to the project might get labeled `needs-votes` by a
183*6236dae4SAndroid Build Coastguard Workerproject maintainer. This label means that in addition to meeting all other
184*6236dae4SAndroid Build Coastguard Workerchecks and qualifications this pull request must also receive more "votes" of
185*6236dae4SAndroid Build Coastguard Workeruser support. More signs that people want this to happen. It could be in the
186*6236dae4SAndroid Build Coastguard Workerform of messages saying so, or thumbs-up reactions on GitHub.
187*6236dae4SAndroid Build Coastguard Worker
188*6236dae4SAndroid Build Coastguard Worker## When the pull request is approved
189*6236dae4SAndroid Build Coastguard Worker
190*6236dae4SAndroid Build Coastguard WorkerIf it does not seem to get approved when you think it is ready - feel free to
191*6236dae4SAndroid Build Coastguard Workerask for approval.
192*6236dae4SAndroid Build Coastguard Worker
193*6236dae4SAndroid Build Coastguard WorkerOnce your pull request has been approved it can be merged by a maintainer.
194*6236dae4SAndroid Build Coastguard Worker
195*6236dae4SAndroid Build Coastguard WorkerFor new features, or changes, we require that the *feature window* is open for
196*6236dae4SAndroid Build Coastguard Workerthe pull request to be merged. This is typically a three week period that
197*6236dae4SAndroid Build Coastguard Workerstarts ten days after a previous release. New features submitted as pull
198*6236dae4SAndroid Build Coastguard Workerrequests while the window is closed simply have to wait until it opens to get
199*6236dae4SAndroid Build Coastguard Workermerged.
200*6236dae4SAndroid Build Coastguard Worker
201*6236dae4SAndroid Build Coastguard WorkerIf time passes without your approved pull request gets merged: feel free to
202*6236dae4SAndroid Build Coastguard Workerask what more you can do to make it happen.
203*6236dae4SAndroid Build Coastguard Worker
204*6236dae4SAndroid Build Coastguard Worker## Making quality changes
205*6236dae4SAndroid Build Coastguard Worker
206*6236dae4SAndroid Build Coastguard WorkerMake the patch against as recent source versions as possible.
207*6236dae4SAndroid Build Coastguard Worker
208*6236dae4SAndroid Build Coastguard WorkerIf you have followed the tips in this document and your patch still has not
209*6236dae4SAndroid Build Coastguard Workerbeen incorporated or responded to after some weeks, consider resubmitting it
210*6236dae4SAndroid Build Coastguard Workerto the list or better yet: change it to a pull request.
211*6236dae4SAndroid Build Coastguard Worker
212*6236dae4SAndroid Build Coastguard Worker## Commit messages
213*6236dae4SAndroid Build Coastguard Worker
214*6236dae4SAndroid Build Coastguard WorkerHow to write git commit messages in the curl project.
215*6236dae4SAndroid Build Coastguard Worker
216*6236dae4SAndroid Build Coastguard Worker    ---- start ----
217*6236dae4SAndroid Build Coastguard Worker    [area]: [short line describing the main effect]
218*6236dae4SAndroid Build Coastguard Worker           -- empty line --
219*6236dae4SAndroid Build Coastguard Worker    [full description, no wider than 72 columns that describes as much as
220*6236dae4SAndroid Build Coastguard Worker    possible as to why this change is made, and possibly what things
221*6236dae4SAndroid Build Coastguard Worker    it fixes and everything else that is related,
222*6236dae4SAndroid Build Coastguard Worker    -- end --
223*6236dae4SAndroid Build Coastguard Worker
224*6236dae4SAndroid Build Coastguard WorkerThe first line is a succinct description of the change and should ideally work
225*6236dae4SAndroid Build Coastguard Workeras a single line in the RELEASE NOTES.
226*6236dae4SAndroid Build Coastguard Worker
227*6236dae4SAndroid Build Coastguard Worker - use the imperative, present tense: **change** not "changed" nor "changes"
228*6236dae4SAndroid Build Coastguard Worker - do not capitalize the first letter
229*6236dae4SAndroid Build Coastguard Worker - no period (.) at the end
230*6236dae4SAndroid Build Coastguard Worker
231*6236dae4SAndroid Build Coastguard WorkerThe `[area]` in the first line can be `http2`, `cookies`, `openssl` or
232*6236dae4SAndroid Build Coastguard Workersimilar. There is no fixed list to select from but using the same "area" as
233*6236dae4SAndroid Build Coastguard Workerother related changes could make sense.
234*6236dae4SAndroid Build Coastguard Worker
235*6236dae4SAndroid Build Coastguard Worker## Commit message keywords
236*6236dae4SAndroid Build Coastguard Worker
237*6236dae4SAndroid Build Coastguard WorkerUse the following ways to improve the message and provide pointers to related
238*6236dae4SAndroid Build Coastguard Workerwork.
239*6236dae4SAndroid Build Coastguard Worker
240*6236dae4SAndroid Build Coastguard Worker- `Follow-up to {shorthash}` - if this fixes or continues a previous commit;
241*6236dae4SAndroid Build Coastguard Workeradd a `Ref:` that commit's PR or issue if it is not a small, obvious fix;
242*6236dae4SAndroid Build Coastguard Workerfollowed by an empty line
243*6236dae4SAndroid Build Coastguard Worker
244*6236dae4SAndroid Build Coastguard Worker- `Bug: URL` to the source of the report or more related discussion; use
245*6236dae4SAndroid Build Coastguard Worker`Fixes` for GitHub issues instead when that is appropriate.
246*6236dae4SAndroid Build Coastguard Worker
247*6236dae4SAndroid Build Coastguard Worker- `Approved-by: John Doe` - credit someone who approved the PR.
248*6236dae4SAndroid Build Coastguard Worker
249*6236dae4SAndroid Build Coastguard Worker- `Authored-by: John Doe` - credit the original author of the code; only use
250*6236dae4SAndroid Build Coastguard Workerthis if you cannot use `git commit --author=...`.
251*6236dae4SAndroid Build Coastguard Worker
252*6236dae4SAndroid Build Coastguard Worker- `Signed-off-by: John Doe` - we do not use this, but do not bother removing
253*6236dae4SAndroid Build Coastguard Worker  it.
254*6236dae4SAndroid Build Coastguard Worker
255*6236dae4SAndroid Build Coastguard Worker- `whatever-else-by:` credit all helpers, finders, doers; try to use one of
256*6236dae4SAndroid Build Coastguard Workerthe following keywords if at all possible, for consistency: `Acked-by:`,
257*6236dae4SAndroid Build Coastguard Worker`Assisted-by:`, `Co-authored-by:`, `Found-by:`, `Reported-by:`,
258*6236dae4SAndroid Build Coastguard Worker`Reviewed-by:`, `Suggested-by:`, `Tested-by:`.
259*6236dae4SAndroid Build Coastguard Worker
260*6236dae4SAndroid Build Coastguard Worker- `Ref: #1234` - if this is related to a GitHub issue or PR, possibly one that
261*6236dae4SAndroid Build Coastguard Workerhas already been closed.
262*6236dae4SAndroid Build Coastguard Worker
263*6236dae4SAndroid Build Coastguard Worker- `Ref: URL` to more information about the commit; use `Bug:` instead for a
264*6236dae4SAndroid Build Coastguard Workerreference to a bug on another bug tracker]
265*6236dae4SAndroid Build Coastguard Worker
266*6236dae4SAndroid Build Coastguard Worker- `Fixes #1234` - if this fixes a GitHub issue; GitHub closes the issue once
267*6236dae4SAndroid Build Coastguard Workerthis commit is merged.
268*6236dae4SAndroid Build Coastguard Worker
269*6236dae4SAndroid Build Coastguard Worker- `Closes #1234` - if this merges a GitHub PR; GitHub closes the PR once this
270*6236dae4SAndroid Build Coastguard Workercommit is merged.
271*6236dae4SAndroid Build Coastguard Worker
272*6236dae4SAndroid Build Coastguard WorkerDo not forget to use commit with `--author` if you commit someone else's work,
273*6236dae4SAndroid Build Coastguard Workerand make sure that you have your own user and email setup correctly in git
274*6236dae4SAndroid Build Coastguard Workerbefore you commit.
275*6236dae4SAndroid Build Coastguard Worker
276*6236dae4SAndroid Build Coastguard WorkerAdd whichever header lines as appropriate, with one line per person if more
277*6236dae4SAndroid Build Coastguard Workerthan one person was involved. There is no need to credit yourself unless you
278*6236dae4SAndroid Build Coastguard Workerare using `--author` which hides your identity. Do not include people's email
279*6236dae4SAndroid Build Coastguard Workeraddresses in headers to avoid spam, unless they are already public from a
280*6236dae4SAndroid Build Coastguard Workerprevious commit; saying `{userid} on github` is OK.
281*6236dae4SAndroid Build Coastguard Worker
282*6236dae4SAndroid Build Coastguard Worker## Push Access
283*6236dae4SAndroid Build Coastguard Worker
284*6236dae4SAndroid Build Coastguard WorkerIf you are a frequent contributor, you may be given push access to the git
285*6236dae4SAndroid Build Coastguard Workerrepository and then you are able to push your changes straight into the git
286*6236dae4SAndroid Build Coastguard Workerrepository instead of sending changes as pull requests or by mail as patches.
287*6236dae4SAndroid Build Coastguard Worker
288*6236dae4SAndroid Build Coastguard WorkerJust ask if this is what you would want. You are required to have posted
289*6236dae4SAndroid Build Coastguard Workerseveral high quality patches first, before you can be granted push access.
290*6236dae4SAndroid Build Coastguard Worker
291*6236dae4SAndroid Build Coastguard Worker## Useful resources
292*6236dae4SAndroid Build Coastguard Worker - [Webinar on getting code into cURL](https://www.youtube.com/watch?v=QmZ3W1d6LQI)
293*6236dae4SAndroid Build Coastguard Worker
294*6236dae4SAndroid Build Coastguard Worker# Update copyright and license information
295*6236dae4SAndroid Build Coastguard Worker
296*6236dae4SAndroid Build Coastguard WorkerThere is a CI job called **REUSE compliance / check** that runs on every pull
297*6236dae4SAndroid Build Coastguard Workerrequest and commit to verify that the *REUSE state* of all files are still
298*6236dae4SAndroid Build Coastguard Workerfine.
299*6236dae4SAndroid Build Coastguard Worker
300*6236dae4SAndroid Build Coastguard WorkerThis means that all files need to have their license and copyright information
301*6236dae4SAndroid Build Coastguard Workerclearly stated. Ideally by having the standard curl source code header, with
302*6236dae4SAndroid Build Coastguard Workerthe `SPDX-License-Identifier` included. If the header does not work, you can
303*6236dae4SAndroid Build Coastguard Workeruse a smaller header or add the information for a specific file to the
304*6236dae4SAndroid Build Coastguard Worker`REUSE.toml` file.
305*6236dae4SAndroid Build Coastguard Worker
306*6236dae4SAndroid Build Coastguard WorkerYou can manually verify the copyright and compliance status by running the
307*6236dae4SAndroid Build Coastguard Worker[REUSE helper tool](https://github.com/fsfe/reuse-tool): `reuse lint`
308