Skip to content

Commit b1c9e74

Browse files
committed
Create pull-request-policy.md
1 parent 662baa5 commit b1c9e74

File tree

1 file changed

+61
-0
lines changed

1 file changed

+61
-0
lines changed

pull-request-policy.md

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
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

Comments
 (0)