xref: /aosp_15_r20/external/elfutils/CONTRIBUTING (revision 7304104da70ce23c86437a01be71edd1a2d7f37e)
1*7304104dSAndroid Build Coastguard WorkerThe project home is http://elfutils.org/
2*7304104dSAndroid Build Coastguard Worker
3*7304104dSAndroid Build Coastguard WorkerThe current elfutils source code can be checked out with
4*7304104dSAndroid Build Coastguard Workergit clone git://sourceware.org/git/elfutils.git
5*7304104dSAndroid Build Coastguard Worker
6*7304104dSAndroid Build Coastguard WorkerThe developer mailinglist to send patches to is
7*7304104dSAndroid Build Coastguard Worker[email protected].
8*7304104dSAndroid Build Coastguard Workerhttps://sourceware.org/ml/elfutils-devel/
9*7304104dSAndroid Build Coastguard Worker
10*7304104dSAndroid Build Coastguard WorkerTo subscribe send an email to [email protected]
11*7304104dSAndroid Build Coastguard WorkerOr use the form at https://sourceware.org/mailman/listinfo/elfutils-devel
12*7304104dSAndroid Build Coastguard Worker
13*7304104dSAndroid Build Coastguard WorkerPlease supply patches using git format-patch or using git send-email.
14*7304104dSAndroid Build Coastguard Worker
15*7304104dSAndroid Build Coastguard WorkerSign your work
16*7304104dSAndroid Build Coastguard Worker
17*7304104dSAndroid Build Coastguard WorkerTo facilitate tracking of who did what, we've adopted a "sign-off"
18*7304104dSAndroid Build Coastguard Workerprocedure for patches based on the procedure used by the Linux kernel
19*7304104dSAndroid Build Coastguard Workerproject.
20*7304104dSAndroid Build Coastguard Worker
21*7304104dSAndroid Build Coastguard WorkerThe sign-off is a simple line at the end of the explanation for the
22*7304104dSAndroid Build Coastguard Workerpatch, which certifies that you wrote it or otherwise have the right
23*7304104dSAndroid Build Coastguard Workerto pass it on as a patch under an appropriate license. The rules are
24*7304104dSAndroid Build Coastguard Workerpretty simple: if you can certify the below:
25*7304104dSAndroid Build Coastguard Worker
26*7304104dSAndroid Build Coastguard Worker        Developer's Certificate of Origin
27*7304104dSAndroid Build Coastguard Worker
28*7304104dSAndroid Build Coastguard Worker        By making a contribution to this project, I certify that:
29*7304104dSAndroid Build Coastguard Worker
30*7304104dSAndroid Build Coastguard Worker	(a) The contribution was created in whole or in part by me,
31*7304104dSAndroid Build Coastguard Worker	    and I have the right to submit the contribution under each
32*7304104dSAndroid Build Coastguard Worker	    license indicated in, or otherwise designated as being
33*7304104dSAndroid Build Coastguard Worker	    applicable to, the file.
34*7304104dSAndroid Build Coastguard Worker
35*7304104dSAndroid Build Coastguard Worker        (b) The contribution was provided directly to me by some other
36*7304104dSAndroid Build Coastguard Worker            person who certified (a), and I have not modified it.
37*7304104dSAndroid Build Coastguard Worker
38*7304104dSAndroid Build Coastguard Worker        (c) I understand and agree that the project and the
39*7304104dSAndroid Build Coastguard Worker            contribution are public and that a record of the
40*7304104dSAndroid Build Coastguard Worker            contribution (including all personal information I submit
41*7304104dSAndroid Build Coastguard Worker            with it, including my sign-off) is maintained indefinitely
42*7304104dSAndroid Build Coastguard Worker            and may be redistributed.
43*7304104dSAndroid Build Coastguard Worker
44*7304104dSAndroid Build Coastguard Workerthen you just add a line saying
45*7304104dSAndroid Build Coastguard Worker
46*7304104dSAndroid Build Coastguard WorkerSigned-off-by: Random J Developer <[email protected]>
47*7304104dSAndroid Build Coastguard Worker
48*7304104dSAndroid Build Coastguard Workerusing a known identity (sorry, no anonymous contributions.)
49*7304104dSAndroid Build Coastguard WorkerThe name you use as your identity should not be an anonymous id
50*7304104dSAndroid Build Coastguard Workeror false name that misrepresents who you are.
51*7304104dSAndroid Build Coastguard Worker
52*7304104dSAndroid Build Coastguard Workergit commit --signoff will add such a Signed-off-by line at the end of
53*7304104dSAndroid Build Coastguard Workerthe commit log message for you.
54*7304104dSAndroid Build Coastguard Worker
55*7304104dSAndroid Build Coastguard WorkerThe ideal patch contains a ChangeLog entry for the commit message and
56*7304104dSAndroid Build Coastguard Workera test case for the bug fixed or feature added.
57*7304104dSAndroid Build Coastguard Worker
58*7304104dSAndroid Build Coastguard WorkerThe commit message is expected to start with a one line summary of
59*7304104dSAndroid Build Coastguard Workerwhat the patch does, prefixed with the main subdir the patch applies
60*7304104dSAndroid Build Coastguard Workerto. e.g libelf: Rewind the elf_frob function bar definitions.
61*7304104dSAndroid Build Coastguard Worker
62*7304104dSAndroid Build Coastguard WorkerFinally please include an ChangeLog entry explicitly listing the files
63*7304104dSAndroid Build Coastguard Workerand what changed in each of them in the commit message. This will help
64*7304104dSAndroid Build Coastguard Workera reviewer understand which changes are expected (and which might be
65*7304104dSAndroid Build Coastguard Workeraccidential). Try to follow the GNU Change Log style:
66*7304104dSAndroid Build Coastguard Workerhttps://www.gnu.org/prep/standards/html_node/Style-of-Change-Logs.html
67*7304104dSAndroid Build Coastguard WorkerNote that elfutils previously maintained separate ChangeLog
68*7304104dSAndroid Build Coastguard Workerfiles. These are no longer used. All changes should be documented in
69*7304104dSAndroid Build Coastguard Workerthe git commit message.
70*7304104dSAndroid Build Coastguard Worker
71*7304104dSAndroid Build Coastguard WorkerThe testsuite (make check) is expected to have zero failing tests.
72*7304104dSAndroid Build Coastguard WorkerDo not knowingly add tests that FAIL. If there are architectures or
73*7304104dSAndroid Build Coastguard Workerconfigurations where a tests is not supported make sure they are
74*7304104dSAndroid Build Coastguard Workerskipped instead of failing. Adding "exit 77" in the test shell wrapper
75*7304104dSAndroid Build Coastguard Workerindicates that a test was SKIPPED.
76*7304104dSAndroid Build Coastguard Worker
77*7304104dSAndroid Build Coastguard WorkerWe do allow binaries in the testsuite for tests that only need to
78*7304104dSAndroid Build Coastguard Workerread ELF or DWARF data and if generating the data in the testcase
79*7304104dSAndroid Build Coastguard Workeritself is difficult or would be architecture specific.
80*7304104dSAndroid Build Coastguard WorkerThe binaries should be bzip2 compressed. Add a note in the test
81*7304104dSAndroid Build Coastguard Workerwrapper run-<testcase>.sh script how to regenerate the binary.
82*7304104dSAndroid Build Coastguard Worker
83*7304104dSAndroid Build Coastguard WorkerAfter sending your patch to the mailinglist one of the committers
84*7304104dSAndroid Build Coastguard Workerto the project will review it, give feedback, and if perfect they
85*7304104dSAndroid Build Coastguard Workerwill commit it for you.
86*7304104dSAndroid Build Coastguard Worker
87*7304104dSAndroid Build Coastguard WorkerAll patches sent to the mailing list are tracked at
88*7304104dSAndroid Build Coastguard Workerhttps://patchwork.sourceware.org/project/elfutils/list/
89*7304104dSAndroid Build Coastguard Worker
90*7304104dSAndroid Build Coastguard WorkerTo use this from the command line you can use git-pw
91*7304104dSAndroid Build Coastguard Workerhttps://patchwork.readthedocs.io/projects/git-pw/en/latest/
92*7304104dSAndroid Build Coastguard Worker
93*7304104dSAndroid Build Coastguard WorkerFor using it with git-pw use these .git/config settings:
94*7304104dSAndroid Build Coastguard Worker  [pw]
95*7304104dSAndroid Build Coastguard Worker    server = https://patchwork.sourceware.org/api/1.2/
96*7304104dSAndroid Build Coastguard Worker    project = elfutils
97*7304104dSAndroid Build Coastguard Worker    token = <hex-token>
98*7304104dSAndroid Build Coastguard Worker    states = committed,accepted,superseded,deferred,rejected,under-review
99*7304104dSAndroid Build Coastguard Worker
100*7304104dSAndroid Build Coastguard WorkerIf you would like to help maintain the pending patch list your
101*7304104dSAndroid Build Coastguard Workerpatchwork account can be added as maintainer for the elfutils project.
102*7304104dSAndroid Build Coastguard Worker
103*7304104dSAndroid Build Coastguard WorkerYou can become a maintainer/committer yourself after you have provided
104*7304104dSAndroid Build Coastguard Workerat least a handful of accepted patches and agree to the guidelines in
105*7304104dSAndroid Build Coastguard Workerthis document for creating, reviewing, accepting and committing patches.
106*7304104dSAndroid Build Coastguard Worker
107*7304104dSAndroid Build Coastguard WorkerTo become a committer you need a sourceware account:
108*7304104dSAndroid Build Coastguard Workerhttps://sourceware.org/cgi-bin/pdw/ps_form.cgi
109*7304104dSAndroid Build Coastguard WorkerUpload a SSH public key and have an existing maintainer sponsor you
110*7304104dSAndroid Build Coastguard Workerfor the elfutils group.
111*7304104dSAndroid Build Coastguard Worker
112*7304104dSAndroid Build Coastguard Workercommitters can push patches through:
113*7304104dSAndroid Build Coastguard Workerssh://<user>@sourceware.org/git/elfutils.git
114*7304104dSAndroid Build Coastguard Worker
115*7304104dSAndroid Build Coastguard WorkerThe current webpages published at https://sourceware.org/elfutils/
116*7304104dSAndroid Build Coastguard Workercan be checked out with:
117*7304104dSAndroid Build Coastguard Workergit clone ssh://<user>@sourceware.org/git/elfutils-htdocs.git
118*7304104dSAndroid Build Coastguard WorkerPatches should also be posted to the mailinglist.
119*7304104dSAndroid Build Coastguard Worker
120*7304104dSAndroid Build Coastguard WorkerAs a maintainer/committer you should still post patches as described
121*7304104dSAndroid Build Coastguard Workerabove. And ideally they are reviewed and approved as above. If no
122*7304104dSAndroid Build Coastguard Workerother committer has reviewed or objected to your patch for a week
123*7304104dSAndroid Build Coastguard Workeryou may use your own judgement whether you ping your patch or push
124*7304104dSAndroid Build Coastguard Workerit after "self-review". If you do, you should post a message to the
125*7304104dSAndroid Build Coastguard Workermailinglist that the patch has been pushed.
126*7304104dSAndroid Build Coastguard Worker
127*7304104dSAndroid Build Coastguard Workercommitters may also create git branches starting with <nickname>/...
128*7304104dSAndroid Build Coastguard Workerpatches on these branches are works in progress, so might not be perfect
129*7304104dSAndroid Build Coastguard Workeryet, but should follow the above guidelines as much as possible and should
130*7304104dSAndroid Build Coastguard Workerbe aimed at integration into main. For merging a branch into main
131*7304104dSAndroid Build Coastguard Workerthe same process as above should be followed by posting the patches
132*7304104dSAndroid Build Coastguard Workerto the list first.
133*7304104dSAndroid Build Coastguard Worker
134*7304104dSAndroid Build Coastguard WorkerNote that a branch starting with <nickname>/try... will be picked up
135*7304104dSAndroid Build Coastguard Workerby the Sourceware buildbot and can be used to test your patches before
136*7304104dSAndroid Build Coastguard Workermerging into the main branch:
137*7304104dSAndroid Build Coastguard Workerhttps://builder.sourceware.org/buildbot/#/builders?tags=elfutils-try
138*7304104dSAndroid Build Coastguard Worker
139*7304104dSAndroid Build Coastguard Workercommitters/maintainers who repeatedly ignore the above guidelines,
140*7304104dSAndroid Build Coastguard Workerare hostile or offensive towards other committers or contributors,
141*7304104dSAndroid Build Coastguard Workerand don't correct their behavior after being asked by other committers
142*7304104dSAndroid Build Coastguard Workerwill be removed as maintainer/committer.
143