@@ -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