on master help sign in
Add pull request checklists
commit58e81952e37c80fe7c0a5db6750d7079e1017bbf authorHarendra Kumar <harendra.kumar@gmail.com> dateThu 1 Nov 2018, 01:24 (8 years ago) parentbb56f17
2 files changed+74−26
CONTRIBUTING.md+55−18 MAINTAINING.md+19−8
CONTRIBUTING.md+55−18
@@ -9,26 +9,53 @@ we will appreciate if you provide as much detail as possible to reproduce or
99understand the problem, but nevertheless you are encouraged to open an issue
1010for any problem that you may encounter.
1111
12−## Developer documentation
13−
14−Build haddock with the `--show-all` option to see the documentation for all
15−modules including the ones not exposed to users of the library.
16−For example,
17−`stack haddock --haddock-arguments "--show-all" --no-haddock-deps`.
18−
1912## Pull Requests (PR)
2013
2114Please feel free to [send a pull
22−request (PR)](https://github.com/composewell/streamly/pulls) whether it is a single
23−letter typo fix in documentation or a more complex change. If the feature makes
24−significant changes to design, we encourage you to open an issue as early as
25−possible so that you do not have to redo much work because of changes in design
26−decisions. However, if you are confident, you can still go ahead and take that
27−risk.
15+request (PR)](https://github.com/composewell/streamly/pulls) whether it is a
16+single letter typo fix or a complex change. We will accept any PR that makes a
17+net positive change to the package. We encourage you to provide a complete,
18+consistent change with test, documentation and benchmarks. You can contact the
19+[maintainers](https://gitter.im/composewell/streamly) for any help or
20+collaboration needed in that regard. However, if due to lack of time you are
21+not able to complete the PR, you are still welcome to submit it, maintainers
22+will try their best to actively contribute and pick up your change as long as
23+the change is approved.
24+
25+## Pull Request (PR) Checklist
26+
27+Here is a quick checklist for a PR, for details please see the next section:
28+
29+* PR contains one logical changeset
30+* Each commit in the PR consists of a logical change
31+* Commits are rebased/squashed/fixup/reordered as needed
32+* Stylistic changes to irrelevant parts of the code are separated in
33+ independent commits.
34+* Code is formatted as per the style of the file or that of other files
35+* Compiler warnings are fixed
36+* Reasonable hlint suggestions are accepted
37+* Tests are added to cover the changed parts
38+* All [tests](test) pass
39+* [Performance benchmarks](benchmark) are added, where applicable
40+* No significant regressions are reported by [performance benchmarks](benchmark/README.md)
41+* Haddock documentation is added to user visible APIs and data types
42+* Tutorial module, [README](README.md), and [guides](docs) are updated if
43+ necessary.
44+* [Changelog](Changelog.md) is updated if needed
45+
46+## Contributing A Change
47+
48+If the feature makes significant changes to design, we encourage you to open an
49+issue as early as possible so that you do not have to redo much work because of
50+changes in design decisions. However, if you are confident, you can still go
51+ahead and take that risk as the maintainers are supposed to be reasonable
52+people.
2853
2954### Picking Issues to Work on
3055
31−Beginners are encouraged to pick up issues that are marked `help wanted`.
56+Beginners are encouraged to pick up issues that are marked `help wanted`. It is
57+a good idea to update the issue expressing your intent so that others do not
58+duplicate the effort and people with a background on the issue can help.
3259
3360### Changeset in a PR
3461
@@ -60,13 +87,16 @@ BRANCH.
6087
6188### Testing
6289
63−It is a good idea to include tests for the changes where applicable.
90+It is a good idea to include tests for the changes where applicable. See the
91+existing tests [here](test).
6492
6593### Documentation
6694
6795For user visible APIs, it is a good idea to provide haddock documentation that
6896is easily understood by the end programmer and does not sound highfalutin,
69−and preferably with examples.
97+and preferably with examples. If your change affects the tutorial or needs to
98+be mentioned in the tutorial then please update the tutorial. Check if the
99+additional [guides](docs) are affected or need to updated.
70100
71101### Performance Benchmarks
72102
@@ -75,8 +105,8 @@ any of the existing performance benchmarks. If you introduced something new
75105then you may want to add benchmarks to check if it performs as well as expected
76106by the programmers to deem it usable.
77107
78−See the README file in the `benchmark` directory for more details on how to run
79−the benchmarks.
108+See the [README](benchmark/README) file in the `benchmark` directory for more
109+details on how to run the benchmarks.
80110
81111### Changelog
82112
@@ -99,6 +129,13 @@ of the library please indicate that in the `Changelog` as `Breaking Changes`
99129and also write short notes regarding what the programmers need to do to adapt
100130their existing code to the new change.
101131
132+## Developer documentation
133+
134+Build haddock with the `--show-all` option to see the documentation for all
135+modules including the ones not exposed to users of the library.
136+For example,
137+`stack haddock --haddock-arguments "--show-all" --no-haddock-deps`.
138+
102139## Coding
103140
104141### Style
MAINTAINING.md+19−8
@@ -1,5 +1,16 @@
11# Maintainers' Guide
22
3+## PR Merge Checklist
4+
5+* All the CI tests pass
6+* New tests are added where applicable
7+* Benchmarks are added where applicable
8+* hlint
9+* Run benchmarks locally if you suspect any regressions
10+* If the PR is by someone other than you yourself then merge with a merge
11+ commit, otherwise merge by rebasing on master without a separate merge
12+ commit.
13+
314## Release Checklist
415
516* Check if any critical pending bugs or issues are to be included
@@ -50,11 +61,11 @@
5061 * Check haddocks on Hackage, upload if not built
5162 * Announce to haskell-cafe@haskell.org
5263
53−## Issue Labels
64+## Managing Issues
5465
5566### User Impacting Changes
5667
57−__RULE__ Any commit that may affect the end user in some way MUST have either a
68+__RULE__: Any commit that may affect the end user in some way MUST have either a
5869changelog entry OR MUST have an issue marked with one of the following labels
5970OR both. We can have more than one of these labels on the same issue e.g.
6071breaking, enhancement:
@@ -78,11 +89,12 @@ changelog entry or an issue. Issues that do not have a corresponding commit
7889may be left without a label but preferably should be marked with one of the
7990following:
8091
81−* invalid
8292* question
83−* wontfix
93+* discussion
8494* maintenance
8595* testing
96+* invalid
97+* wontfix
8698
8799### Feature Labels
88100
@@ -93,10 +105,9 @@ group the issues together.
93105
94106* help wanted
95107* duplicate
108+* deferred
96109
97−## Managing Changes
98−
99−### Planning and Tracking Changes
110+## Correlating Changes, Issues and Releases
100111
101112For planning purposes, open issues may be marked with milestones or target
102113releases. However, it may not always be known which release a fix will finally
@@ -121,7 +132,7 @@ following:
121132 release that affects the end user, especially bugs and breaking changes MUST
122133 have the target release correctly set.
123134
124−### Changelog Management
135+## Changelog Management
125136
126137Keep the unreleased changes in the `Unreleased` section at the top of changelog
127138file. Using `Unreleased` instead of the next release number for unreleased