|
| 1 | +--- |
| 2 | +layout: default |
| 3 | +title: Pull Request Policy |
| 4 | +--- |
| 5 | + |
| 6 | +Hi there, pull request submitter! |
| 7 | + |
| 8 | +Your pull request should: |
| 9 | + - (... have been discussed on scala-internals) |
| 10 | + - merge cleanly |
| 11 | + - consist of commits with impeccable commit messages |
| 12 | + - [conventions](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html) |
| 13 | + - for a bug fix, the title must look like "SI-NNNN - don't crash when moon is in wrong phase" |
| 14 | + - overall, think of the first line of the commit as a description of the action performed by the commit on the code base, so use the present tense -- that also makes them easy to reuse in release notes |
| 15 | + - backports should be tagged as [backport], it's also nice to mention this when a commit purely refactors and is not intended to change behaviour |
| 16 | + - come with tests (included in the same commit as the functional change), or explain in detail why it cannot be tested (discuss this on scala-internals first). The tests itself should: |
| 17 | + - be minimal, deterministic, stable (unaffected by irrelevant changes), easy to understand and review |
| 18 | + - have minimal dependencies: a compiler bug should not depend on, e.g. the Scala library |
| 19 | + - typically fail before your fix is applied (so we see that you are fixing a legitimate bug) and should obviously pass after your fix |
| 20 | + - pass the test suite (checked automatically by the build bot, run `ant test-opt` locally to verify) |
| 21 | + - if the build fails, the request will be closed without further ado |
| 22 | + you may not push new commits to fix the problem |
| 23 | + a commit is considered a unit of useful change and must thus pass the test suite |
| 24 | + (this way we stand a chance running git bisect later) |
| 25 | + - be assigned to one or more reviewers (if you're not sure, see the list below or contact scala-internals) |
| 26 | + - get the green light from the reviewer ("LGTM" -- looks good to me) |
| 27 | + - review feedback may be addressed by pushing new commits to the request, |
| 28 | + if these commits stand on their own |
| 29 | + |
| 30 | +Once all these conditions are met, and we agree with the change |
| 31 | +(we are available on scala-internals to discuss this beforehand), |
| 32 | +we will merge your changes. |
| 33 | + |
| 34 | +Please note: you are responsible for meeting these criteria (reminding your reviewer, for example). |
| 35 | + |
| 36 | +### Pull request bot mechanics |
| 37 | +* most of this will be automated, but in the mean time, please consider the following: |
| 38 | + * when you push new commits, please delete the comments with the old build results to avoid confusion (this will also trigger a new build, even though the bot detects this automatically) |
| 39 | + * label the issue corresponding to your pull request (if you have permission) as 'tested' when the bot has reported on a successful build, 'reviewed' when everyone has LGTM'd |
| 40 | + * 'PLS REBUILD ALL' will force the bot to rebuild (handy for spurious failures) |
| 41 | + |
| 42 | +### List of reviewers by area: |
| 43 | + |
| 44 | +* library: @phaller (Philipp Haller), @axel22 (Aleksander Prokopec -- concurrent & collection) |
| 45 | +* specialisation: @axel22 (Aleksander Prokopec), @vladureche (Vlad Ureche), @dragos (Iulian Dragos) |
| 46 | +* named / default args, annotations, plugins: @lrytz (Lukas Rytz) |
| 47 | +* macros, reflection, manifests, string interpolation: @xeno-by (Eugene Burmako), @cvogt (Christopher Vogt) |
| 48 | +* type checker, inference: @odersky (Martin Odersky), @adriaanm (Adriaan Moors) |
| 49 | +* Language specification, value classes: @odersky (Martin Odersky) |
| 50 | +* new pattern matcher, implicit search: @adriaanm (Adriaan Moors) |
| 51 | +* partest, Continuations Plugin: @phaller (Philipp Haller) |
| 52 | +* error handling, lazy vals: @hubertp (Hubert Plociniczak) |
| 53 | +* backend: @magarciaEPFL (Miguel Garcia), @gkossakowski (Grzegorz Kossakowski), @dragos (Iulian Dragos) |
| 54 | +* repl, compiler performance: @paulp (Paul Phillips) |
| 55 | +* swing: @ingoem (Ingo Maier) |
| 56 | +* scaladoc: @vladureche (Vlad Ureche) |
| 57 | +* optimizer: @vladureche (Vlad Ureche), @magarciaEPFL (Miguel Garcia) |
| 58 | +* build: @jsuereth (Josh Suereth) |
| 59 | +* random compiler bugs: @lrytz, @adriaanm, @hubertp |
| 60 | +* documentation: @heathermiller (Heather Miller) |
| 61 | +* cps: @TiarkRompf (Tiark Rompf) |
0 commit comments