on master help sign in
Add pull request checklists
58e8195Harendra Kumar
CONTRIBUTING.md+55−18
@@ -9,26 +9,53 @@ we will appreciate if you provide as much detail as possible to reproduce or
9understand the problem, but nevertheless you are encouraged to open an issue
9understand the problem, but nevertheless you are encouraged to open an issue
10for any problem that you may encounter.
10for any problem that you may encounter.
11
11
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−
19## Pull Requests (PR)
12## Pull Requests (PR)
20
13
21Please feel free to [send a pull
14Please feel free to [send a pull
22−request (PR)](https://github.com/composewell/streamly/pulls) whether it is a single
15+request (PR)](https://github.com/composewell/streamly/pulls) whether it is a
23−letter typo fix in documentation or a more complex change. If the feature makes
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+
24−significant changes to design, we encourage you to open an issue as early as
48+If the feature makes significant changes to design, we encourage you to open an
25−possible so that you do not have to redo much work because of changes in design
49+issue as early as possible so that you do not have to redo much work because of
26−decisions. However, if you are confident, you can still go ahead and take that
50+changes in design decisions. However, if you are confident, you can still go
27−risk.
51+ahead and take that risk as the maintainers are supposed to be reasonable
52+people.
28
53
29### Picking Issues to Work on
54### Picking Issues to Work on
30
55
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.
32
59
33### Changeset in a PR
60### Changeset in a PR
34
61
@@ -60,13 +87,16 @@ BRANCH.
60
87
61### Testing
88### Testing
62
89
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).
64
92
65### Documentation
93### Documentation
66
94
67For user visible APIs, it is a good idea to provide haddock documentation that
95For user visible APIs, it is a good idea to provide haddock documentation that
68is easily understood by the end programmer and does not sound highfalutin,
96is 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.
70
100
71### Performance Benchmarks
101### Performance Benchmarks
72
102
@@ -75,8 +105,8 @@ any of the existing performance benchmarks. If you introduced something new
75then you may want to add benchmarks to check if it performs as well as expected
105then you may want to add benchmarks to check if it performs as well as expected
76by the programmers to deem it usable.
106by the programmers to deem it usable.
77
107
78−See the README file in the `benchmark` directory for more details on how to run
108+See the [README](benchmark/README) file in the `benchmark` directory for more
79−the benchmarks.
109+details on how to run the benchmarks.
80
110
81### Changelog
111### Changelog
82
112
@@ -99,6 +129,13 @@ of the library please indicate that in the `Changelog` as `Breaking Changes`
99and also write short notes regarding what the programmers need to do to adapt
129and also write short notes regarding what the programmers need to do to adapt
100their existing code to the new change.
130their existing code to the new change.
101
131
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+
102## Coding
139## Coding
103
140
104### Style
141### Style
MAINTAINING.md+19−8
@@ -1,5 +1,16 @@
1# Maintainers' Guide
1# Maintainers' Guide
2
2
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+
3## Release Checklist
14## Release Checklist
4
15
5* Check if any critical pending bugs or issues are to be included
16* Check if any critical pending bugs or issues are to be included
@@ -50,11 +61,11 @@
50 * Check haddocks on Hackage, upload if not built
61 * Check haddocks on Hackage, upload if not built
51 * Announce to haskell-cafe@haskell.org
62 * Announce to haskell-cafe@haskell.org
52
63
53−## Issue Labels
64+## Managing Issues
54
65
55### User Impacting Changes
66### User Impacting Changes
56
67
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
58changelog entry OR MUST have an issue marked with one of the following labels
69changelog entry OR MUST have an issue marked with one of the following labels
59OR both. We can have more than one of these labels on the same issue e.g.
70OR both. We can have more than one of these labels on the same issue e.g.
60breaking, enhancement:
71breaking, enhancement:
@@ -78,11 +89,12 @@ changelog entry or an issue. Issues that do not have a corresponding commit
78may be left without a label but preferably should be marked with one of the
89may be left without a label but preferably should be marked with one of the
79following:
90following:
80
91
81−* invalid
82* question
92* question
83−* wontfix
93+* discussion
84* maintenance
94* maintenance
85* testing
95* testing
96+* invalid
97+* wontfix
86
98
87### Feature Labels
99### Feature Labels
88
100
@@ -93,10 +105,9 @@ group the issues together.
93
105
94* help wanted
106* help wanted
95* duplicate
107* duplicate
108+* deferred
96
109
97−## Managing Changes
110+## Correlating Changes, Issues and Releases
98−
99−### Planning and Tracking Changes
100
111
101For planning purposes, open issues may be marked with milestones or target
112For planning purposes, open issues may be marked with milestones or target
102releases. However, it may not always be known which release a fix will finally
113releases. However, it may not always be known which release a fix will finally
@@ -121,7 +132,7 @@ following:
121 release that affects the end user, especially bugs and breaking changes MUST
132 release that affects the end user, especially bugs and breaking changes MUST
122 have the target release correctly set.
133 have the target release correctly set.
123
134
124−### Changelog Management
135+## Changelog Management
125
136
126Keep the unreleased changes in the `Unreleased` section at the top of changelog
137Keep the unreleased changes in the `Unreleased` section at the top of changelog
127file. Using `Unreleased` instead of the next release number for unreleased
138file. Using `Unreleased` instead of the next release number for unreleased