on master help sign in
Update maintainer's guide
commit1bfdbc9bef4094fbe70c081250a7a87b57dfe258 authorHarendra Kumar <harendra@composewell.com> dateFri 4 Jun 2021, 18:31 (5 years ago) parent21af2be
1 file changed+57−13
dev/MAINTAINING.md+57−13
dev/MAINTAINING.md+57−13
@@ -26,71 +26,98 @@
2626* If this is a major release check if any previously deprecated features are to
2727 be removed in this release.
2828* Check pre-release APIs to be exposed, especially from streamly-examples
29−* PVP is ahered to, do not change pre-release APIs in a minor release
29+* PVP is adhered to, additionally do not change pre-release APIs in a
30+ minor release
3031
3132* _Documentation_:
3233
33− * README is updated
34+ * README is updated, links in README are stable. Run `rg '/blob/'`
35+ and `rg '/tree/'` to search for github links, replace `master` ref
36+ with release tag where possible (e.g. streamly-examples). Ideally,
37+ the distribution process should automatically replace these with
38+ current stable references.
3439 * Haddock docs are consistent with the changes in the release
3540 * Tutorial has been updated for new changes
3641 * Documents in the `docs` directory are consistent with new changes
3742 * All combinators have time and space complexity annotations
3843 * All combinators have `since` annotation
44+ * Modules that were renamed or APIs that moved to other modules should be
45+ marked as "since" the current release.
46+ * Check all released modules to ensure that they do not have any leftover
47+ `Internal` or `Pre-release` annotations.
3948 * Unreleased combinators should be marked with `Pre-release` or
4049 `Internal` annotations
50+ * Streamly homepage is updated with the release docs
51+ * FileSystem.Event.Windows/Darwin modules require special handling
4152
4253* _Build and Test_:
4354
4455 * All CIs are green
56+ * Run tests using bin/test.sh to test with memory restrictions
4557 * Manually build and test for all flags (esp. `dev` flag) not covered by CIs
46− * Test latest GHC version with -O0 and -O1
58+ * Test prime GHC version with -O0 and -O1
4759
4860* _Benchmarks_:
4961
5062 * Check regressions from previous release
51− * Run benchmarks with large stream size (`bench.sh -- long`) to
63+ * Run benchmarks with large stream size (`bench.sh --long`) to
5264 check for space leaks and to ensure constant memory usage for streaming
5365 operations.
5466 * Run benchmarks with `dev` flag on. Some `fileio` benchmarks are disabled
5567 in regular runs.
5668 * Check comparative benchmarks using streaming-benchmarks
5769
58−* _Examples_:
70+* _Dependencies_:
71+
72+ * Make sure all dependency bounds can use latest versions
73+ * Update `stack.yaml` to latest stable resolver, cleanup extra-deps
74+ * Make sure fusion-plugin is up to date and uploaded
75+ * Check the dependency footprint of the library. See
76+ [Generating Dependency Graph](#generating-dependency-graph) section.
77+
78+* _Dependent Packages_:
5979
6080 * Update
6181 [streamly-examples](https://github.com/composewell/streamly-examples)
6282 to make sure it runs with the latest release.
6383 * Check the performance of examples where applicable
84+ * Update streamly-bytestring
85+ * Consider updating other packages e.g. streamly-process, streamly-lz4
6486
6587* _Update Package Metadata:_
6688
67− * Update `stack.yaml` to latest stable resolver, cleanup extra-deps
6889 * Make sure the description in cabal file is in sync with README and other docs
6990 * Make sure CI configs include last three major releases of GHC in CI testing.
70− * Update `tested-with` field
71− * Make sure all dependency bounds can use latest versions
91+ * Update GHC `tested-with` field
92+ * Update `docs/building.md` with the distributions tested with
7293 * Make sure any additional files are added to `extra-source-files` in cabal
73− file
94+ file. Artifacts required for build, test, benchmarks, docs, licenses
95+ should be packaged. Build environment customization may or may not be
96+ packaged.
7497
75−* Copyrights and Contibutors
98+* _Copyrights and Contibutors_
7699
77100 * Make sure contributors to the release are listed in
78101 `credits/CONTRIBUTORS.md`.
79102 * Bump the release version in `credits/CONTRIBUTORS.md`.
80103 * Make sure any third party code included in the release has been listed in
81104 `credits/COPYRIGHTS.md` and the license is added to the repo.
82− * Change the `Unreleased` section, if exists, at the top of
83− `credits/COPYRIGHTS.md` to the new release version number.
105+ * Bump the release version in `credits/COPYRIGHTS.md`.
84106
85107* _Update changelog & Version_:
86108
109+ * Find API changes using `cabal-diff streamly 0.8.0 .` and record
110+ them in docs/API-changelog.txt.
87111 * Make sure all the bug fixes being included in this release are marked
88112 with a target release on github. So that users can search by release if
89113 they want.
114+ * Bump the package version in configure.ac and run autoreconf
90115 * Change the `Unreleased` section at the top of changelog file to the new
91116 release version number.
92117 * Bump the package version in cabal file or package.yaml
93− * Bump the package version in configure.ac and run autoreconf
118+ * Bump the package version in any docs/links, use something like
119+ `rg '0\.7\.'|grep -v -i since` to find any remaining occurrences of the
120+ old release. Check `rg -i unreleased` for any remaining todos.
94121
95122* _Upload_:
96123
@@ -262,3 +289,20 @@ cannot know whether the release number on top is unreleased or released.
262289## TODO
263290
264291* GPG signed releases and tags
292+
293+## Generating Dependency Graph
294+
295+Ways to get the dependencies. In the streamly package top dir:
296+
297+```
298+# Keep only streamly in the packages section of stack.yaml
299+$ stack --system-ghc dot . --external|dot -Tpdf > streamly.pdf
300+```
301+
302+Using nix, remove the test and benchmark components from
303+`shellFor/packages` in `default.nix` to get library only
304+dependencies. May show additional ghc boot libraries.
305+
306+```
307+$ nix-shell --run "ghc-pkg dot | dot -Tpdf > streamly.pdf"
308+```