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