You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+83-8Lines changed: 83 additions & 8 deletions
Original file line number
Diff line number
Diff line change
@@ -38,18 +38,93 @@ Please make sure the JIRA ticket's fix version corresponds to the upcoming miles
38
38
39
39
#### Enhancement or New Feature
40
40
41
-
For longer-running development, likely required for this category of code contributions, we suggest you include "topic" or "wip" in your branch name, to indicate that this is work in progress, and that others should be prepared to rebase if they branch off your branch.
41
+
For longer-running development, likely required for this category of code contributions, we suggest you include "topic/" or "wip/" in your branch name, to indicate that this is work in progress, and that others should be prepared to rebase if they branch off your branch.
42
42
43
43
Any language change (including bug fixes) must be accompanied by the relevant updates to the spec, which lives in the same repository for this reason.
44
44
45
45
A new language feature requires a SIP (Scala Improvement Process) proposal. For more details on submitting SIPs, see [how to submit a SIP](http://docs.scala-lang.org/sips/sip-submission.html).
46
46
47
-
#### Summary
47
+
##Guidelines
48
48
49
-
1. We require regression tests for bug fixes. New features and enhancements must be supported by a respectable test suite.
50
-
2. Documentation. Yep! Also required :-)
51
-
3. Please follow these standard code standards, though in moderation (scouts quickly learn to let sleeping dogs lie):
52
-
- Not violate [DRY](http://programmer.97things.oreilly.com/wiki/index.php/Don%27t_Repeat_Yourself).
53
-
-[Boy Scout Rule](http://programmer.97things.oreilly.com/wiki/index.php/The_Boy_Scout_Rule) should be applied.
49
+
Here is some advice on how to craft a pull request with the best possible
50
+
chance of being accepted.
54
51
55
-
Please also have a look at our [Pull Request Policy](https://github.com/scala/scala/wiki/Pull-Request-Policy), as well as the [Scala Hacker Guide](http://www.scala-lang.org/contribute/hacker-guide.html) by @xeno-by.
52
+
### Tests
53
+
54
+
Bug fixes should include regression tests -- in the same commit as the fix.
55
+
56
+
If testing isn't feasible, the commit message should explain why.
57
+
58
+
New features and enhancements must be supported by a respectable test suite.
59
+
60
+
Some characteristics of good tests:
61
+
62
+
* includes comments: what is being tested and why?
63
+
* be minimal, deterministic, stable (unaffected by irrelevant changes), easy to understand and review
64
+
* have minimal dependencies: a compiler bug test should not depend on, e.g., the Scala library
65
+
66
+
### Documentation
67
+
68
+
This is of course required for new features and enhancements.
69
+
70
+
Any API additions should include Scaladoc.
71
+
72
+
Consider updating the package-level doc (in the package object), if appropriate.
73
+
74
+
### Coding standards
75
+
76
+
Please follow these standard code standards, though in moderation (scouts quickly learn to let sleeping dogs lie):
Our pull request bot, Scabot, automatically builds all the commits in a PR individually. (All, so we can `git bisect` later.)
113
+
114
+
Click on the little x next to a commit sha to go to the overview of the PR validation job. To diagnose a failure, consult the console output of the job that failed.
115
+
116
+
See the [scala-jenkins-infra repo](https://github.com/scala/scala-jenkins-infra) and [Scabot repo](https://github.com/scala/scabot) for full details on PR validation. One tip you should know is that commenting `/rebuild` on a PR asks validation to be run again on the same commits. This is only necessary when a spurious failure occurred.
117
+
118
+
### Pass code review
119
+
120
+
Your PR will need to be assigned to one or more reviewers. You can suggest reviewers yourself; if you're not sure, see the list in [README.md](README.md) or ask on scala-internals.
121
+
122
+
To assign a reviewer, add a "review by @reviewer" to your PR description.
123
+
124
+
NOTE: it's best not to @mention in commit messages, as github pings you every time a commit with your @name on it shuffles through the system (even in other repos, on merges,...).
125
+
126
+
A reviewer gives the green light by commenting "LGTM" (looks good to me).
127
+
128
+
A review feedback may be addressed by pushing new commits to the request, if these commits stand on their own.
129
+
130
+
Once all these conditions are met, and we agree with the change (we are available on scala-internals to discuss this beforehand, before you put in the coding work!), we will merge your changes.
0 commit comments