diff --git a/llvm/docs/DeveloperPolicy.rst b/llvm/docs/DeveloperPolicy.rst index eb59c4953dc2d..b54f111ed0916 100644 --- a/llvm/docs/DeveloperPolicy.rst +++ b/llvm/docs/DeveloperPolicy.rst @@ -296,54 +296,53 @@ Quality The minimum quality standards that any change must satisfy before being committed to the main development branch are: -#. Code must adhere to the `LLVM Coding Standards `_. +#. Code must adhere to the :doc:`LLVM Coding Standards `. #. Code must compile cleanly (no errors, no warnings) on at least one platform. #. Bug fixes and new features should `include a testcase`_ so we know if the fix/feature ever regresses in the future. -#. Code must pass the ``llvm/test`` test suite. - -#. The code must not cause regressions on a reasonable subset of llvm-test, - where "reasonable" depends on the contributor's judgement and the scope of - the change (more invasive changes require more testing). A reasonable subset - might be something like "``llvm-test/MultiSource/Benchmarks``". +#. Pull requests should build and pass premerge checks. For first-time + contributors, this will require an initial cursory review to run the checks. #. Ensure that links in source code and test files point to publicly available - resources and are used primarily to add additional information rather than - to supply critical context. The surrounding comments should be sufficient - to provide the context behind such links. + resources and are used primarily to add additional information rather than to + supply critical context. The surrounding comments should be sufficient to + provide the context behind such links. Additionally, the committer is responsible for addressing any problems found in the future that the change is responsible for. For example: -* The code should compile cleanly on all supported platforms. +* The code needs to compile cleanly and pass tests on all stable `LLVM + buildbots `_. -* The changes should not cause any correctness regressions in the ``llvm-test`` - suite and must not cause any major performance regressions. +* The changes should not cause any correctness regressions in the + `llvm-test-suite `_ + and must not cause any major performance regressions. * The change set should not cause performance or correctness regressions for the - LLVM tools. + LLVM tools. See `llvm-compile-time-tracker.com `_ * The changes should not cause performance or correctness regressions in code compiled by LLVM on all applicable targets. -* You are expected to address any `GitHub Issues `_ that - result from your change. +* You are expected to address any `GitHub Issues + `_ that result from your change. -We prefer for this to be handled before submission but understand that it isn't -possible to test all of this for every submission. Our build bots and nightly -testing infrastructure normally finds these problems. A good rule of thumb is -to check the nightly testers for regressions the day after your change. Build -bots will directly email you if a group of commits that included yours caused a +Our build bots and `nightly testing infrastructure +`_ find many of these issues. Build bots +will directly email you if a group of commits that included yours caused a failure. You are expected to check the build bot messages to see if they are -your fault and, if so, fix the breakage. +your fault and, if so, fix the breakage. However, keep in mind that if you +receive such an email, it is highly likely that your change is not at fault. +Changes are batched together precisely because these tests are generally too +expensive to run continuously for every change. + +Commits that violate these quality standards may be reverted (see below). This +is necessary when the change blocks other developers from making progress. The +developer is welcome to re-commit the change after the problem has been fixed. -Commits that violate these quality standards (e.g. are very broken) may be -reverted. This is necessary when the change blocks other developers from making -progress. The developer is welcome to re-commit the change after the problem has -been fixed. .. _commit messages: