xref: /aosp_15_r20/external/igt-gpu-tools/CONTRIBUTING.md (revision d83cc019efdc2edc6c4b16e9034a3ceb8d35d77c)
1*d83cc019SAndroid Build Coastguard WorkerCONTRIBUTING
2*d83cc019SAndroid Build Coastguard Worker============
3*d83cc019SAndroid Build Coastguard Worker
4*d83cc019SAndroid Build Coastguard WorkerPatches to igt-gpu-tools are very much welcome, we really want this to be the
5*d83cc019SAndroid Build Coastguard Workeruniversal set of low-level tools and testcases for kernel graphics drivers
6*d83cc019SAndroid Build Coastguard Workeron Linux and similar platforms. So please bring on porting patches, bugfixes,
7*d83cc019SAndroid Build Coastguard Workerimprovements for documentation and new tools and testcases.
8*d83cc019SAndroid Build Coastguard Worker
9*d83cc019SAndroid Build Coastguard Worker
10*d83cc019SAndroid Build Coastguard WorkerThe Code
11*d83cc019SAndroid Build Coastguard Worker--------
12*d83cc019SAndroid Build Coastguard Worker
13*d83cc019SAndroid Build Coastguard Worker- The code should follow kernel coding style:
14*d83cc019SAndroid Build Coastguard Worker  https://www.kernel.org/doc/html/latest/process/coding-style.html
15*d83cc019SAndroid Build Coastguard Worker
16*d83cc019SAndroid Build Coastguard Worker- Testcases (subtests) have to use minus signs (-) as a word separator.
17*d83cc019SAndroid Build Coastguard Worker  The generated documentation contains glossary of commonly used terms.
18*d83cc019SAndroid Build Coastguard Worker
19*d83cc019SAndroid Build Coastguard Worker- All new test have to be described using `igt_describe()` family of
20*d83cc019SAndroid Build Coastguard Worker  functions. The description should contain the spirit of the test (what is
21*d83cc019SAndroid Build Coastguard Worker  the general idea behind the test) and *not* the letter (C to English
22*d83cc019SAndroid Build Coastguard Worker  translation of the test). Refer to [`igt_describe()`
23*d83cc019SAndroid Build Coastguard Worker  documentation][igt-describe] for more details.
24*d83cc019SAndroid Build Coastguard Worker
25*d83cc019SAndroid Build Coastguard Worker- The generated documentation contains explanation of magic control blocks like
26*d83cc019SAndroid Build Coastguard Worker  `igt_subtest` and `igt_fixture`. Please make sure that you understand their
27*d83cc019SAndroid Build Coastguard Worker  roles and limitation before using/altering them.
28*d83cc019SAndroid Build Coastguard Worker
29*d83cc019SAndroid Build Coastguard Worker- Also please make full use of all the helpers and convenience macros
30*d83cc019SAndroid Build Coastguard Worker  provided by the igt library. The semantic patch lib/igt.cocci can help with
31*d83cc019SAndroid Build Coastguard Worker  more automatic conversions.
32*d83cc019SAndroid Build Coastguard Worker
33*d83cc019SAndroid Build Coastguard Worker[igt-describe]: https://drm.pages.freedesktop.org/igt-gpu-tools/igt-gpu-tools-Core.html#igt-describe
34*d83cc019SAndroid Build Coastguard Worker
35*d83cc019SAndroid Build Coastguard Worker
36*d83cc019SAndroid Build Coastguard WorkerSending Patches
37*d83cc019SAndroid Build Coastguard Worker---------------
38*d83cc019SAndroid Build Coastguard Worker
39*d83cc019SAndroid Build Coastguard Worker- igt-gpu-tools is MIT licensed and we require contributions to follow the
40*d83cc019SAndroid Build Coastguard Worker  developer's certificate of origin: http://developercertificate.org/
41*d83cc019SAndroid Build Coastguard Worker
42*d83cc019SAndroid Build Coastguard Worker- Please submit patches formatted with git send-email/git format-patch or
43*d83cc019SAndroid Build Coastguard Worker  equivalent to:
44*d83cc019SAndroid Build Coastguard Worker
45*d83cc019SAndroid Build Coastguard Worker      Development mailing list for IGT GPU Tools <[email protected]>
46*d83cc019SAndroid Build Coastguard Worker
47*d83cc019SAndroid Build Coastguard Worker  For patches affecting the driver directly please "cc" the appropriate driver
48*d83cc019SAndroid Build Coastguard Worker  mailing list and make sure you are using:
49*d83cc019SAndroid Build Coastguard Worker
50*d83cc019SAndroid Build Coastguard Worker      --subject-prefix="PATCH i-g-t"
51*d83cc019SAndroid Build Coastguard Worker
52*d83cc019SAndroid Build Coastguard Worker  so IGT patches are easily identified in the massive amount mails on driver's
53*d83cc019SAndroid Build Coastguard Worker  mailing list. To ensure this is always done, meson.sh (and autogen.sh) will
54*d83cc019SAndroid Build Coastguard Worker  run:
55*d83cc019SAndroid Build Coastguard Worker
56*d83cc019SAndroid Build Coastguard Worker      git config format.subjectprefix "PATCH i-g-t"
57*d83cc019SAndroid Build Coastguard Worker
58*d83cc019SAndroid Build Coastguard Worker  on its first invocation.
59*d83cc019SAndroid Build Coastguard Worker
60*d83cc019SAndroid Build Coastguard Worker- Patches need to be reviewed on the mailing list. Exceptions only apply for
61*d83cc019SAndroid Build Coastguard Worker  testcases and tooling for drivers with just a single contributor (e.g. vc4).
62*d83cc019SAndroid Build Coastguard Worker  In this case patches must still be submitted to the mailing list first.
63*d83cc019SAndroid Build Coastguard Worker  Testcase should preferably be cross-reviewed by the same people who write and
64*d83cc019SAndroid Build Coastguard Worker  review the kernel feature itself.
65*d83cc019SAndroid Build Coastguard Worker
66*d83cc019SAndroid Build Coastguard Worker- When patches from new contributors (without commit access) are stuck, for
67*d83cc019SAndroid Build Coastguard Worker  anything related to the regular releases, issues with packaging and
68*d83cc019SAndroid Build Coastguard Worker  integrating platform support or any other igt-gpu-tools issues, please
69*d83cc019SAndroid Build Coastguard Worker  contact one of the maintainers (listed in the MAINTAINERS file) and cc the
70*d83cc019SAndroid Build Coastguard Worker  igt-dev mailing list.
71*d83cc019SAndroid Build Coastguard Worker
72*d83cc019SAndroid Build Coastguard Worker- Changes to the testcases are automatically tested. Take the results into
73*d83cc019SAndroid Build Coastguard Worker  account before merging.
74*d83cc019SAndroid Build Coastguard Worker
75*d83cc019SAndroid Build Coastguard Worker
76*d83cc019SAndroid Build Coastguard WorkerCommit Rights
77*d83cc019SAndroid Build Coastguard Worker-------------
78*d83cc019SAndroid Build Coastguard Worker
79*d83cc019SAndroid Build Coastguard WorkerCommit rights will be granted to anyone who requests them and fulfills the
80*d83cc019SAndroid Build Coastguard Workerbelow criteria:
81*d83cc019SAndroid Build Coastguard Worker
82*d83cc019SAndroid Build Coastguard Worker- Submitted a few (5-10 as a rule of thumb) non-trivial (not just simple
83*d83cc019SAndroid Build Coastguard Worker  spelling fixes and whitespace adjustment) patches that have been merged
84*d83cc019SAndroid Build Coastguard Worker  already.
85*d83cc019SAndroid Build Coastguard Worker
86*d83cc019SAndroid Build Coastguard Worker- Are actively participating on discussions about their work (on the mailing
87*d83cc019SAndroid Build Coastguard Worker  list or IRC). This should not be interpreted as a requirement to review other
88*d83cc019SAndroid Build Coastguard Worker  peoples patches but just make sure that patch submission isn't one-way
89*d83cc019SAndroid Build Coastguard Worker  communication. Cross-review is still highly encouraged.
90*d83cc019SAndroid Build Coastguard Worker
91*d83cc019SAndroid Build Coastguard Worker- Will be regularly contributing further patches. This includes regular
92*d83cc019SAndroid Build Coastguard Worker  contributors to other parts of the open source graphics stack who only
93*d83cc019SAndroid Build Coastguard Worker  do the oddball rare patch within igt itself.
94*d83cc019SAndroid Build Coastguard Worker
95*d83cc019SAndroid Build Coastguard Worker- Agrees to use their commit rights in accordance with the documented merge
96*d83cc019SAndroid Build Coastguard Worker  criteria, tools, and processes.
97*d83cc019SAndroid Build Coastguard Worker
98*d83cc019SAndroid Build Coastguard WorkerCreate a gitlab account at https://gitlab.freedesktop.org/ and apply
99*d83cc019SAndroid Build Coastguard Workerfor access to the IGT gitlab project,
100*d83cc019SAndroid Build Coastguard Workerhttp://gitlab.freedesktop.org/drm/igt-gpu-tools and please ping the
101*d83cc019SAndroid Build Coastguard Workermaintainers if your request is stuck.
102*d83cc019SAndroid Build Coastguard Worker
103*d83cc019SAndroid Build Coastguard WorkerCommitters are encouraged to request their commit rights get removed when they
104*d83cc019SAndroid Build Coastguard Workerno longer contribute to the project. Commit rights will be reinstated when they
105*d83cc019SAndroid Build Coastguard Workercome back to the project.
106*d83cc019SAndroid Build Coastguard Worker
107*d83cc019SAndroid Build Coastguard WorkerMaintainers and committers should encourage contributors to request commit
108*d83cc019SAndroid Build Coastguard Workerrights, especially junior contributors tend to underestimate their skills.
109*d83cc019SAndroid Build Coastguard Worker
110*d83cc019SAndroid Build Coastguard Worker
111*d83cc019SAndroid Build Coastguard WorkerCode of Conduct
112*d83cc019SAndroid Build Coastguard Worker---------------
113*d83cc019SAndroid Build Coastguard Worker
114*d83cc019SAndroid Build Coastguard WorkerPlease be aware the fd.o Code of Conduct also applies to igt:
115*d83cc019SAndroid Build Coastguard Worker
116*d83cc019SAndroid Build Coastguard Workerhttps://www.freedesktop.org/wiki/CodeOfConduct/
117*d83cc019SAndroid Build Coastguard Worker
118*d83cc019SAndroid Build Coastguard WorkerSee the MAINTAINERS file for contact details of the igt maintainers.
119*d83cc019SAndroid Build Coastguard Worker
120*d83cc019SAndroid Build Coastguard WorkerAbuse of commit rights, like engaging in commit fights or willfully pushing
121*d83cc019SAndroid Build Coastguard Workerpatches that violate the documented merge criteria, will also be handled through
122*d83cc019SAndroid Build Coastguard Workerthe Code of Conduct enforcement process.
123*d83cc019SAndroid Build Coastguard Worker
124*d83cc019SAndroid Build Coastguard WorkerHappy hacking!
125