@@ -26,71 +26,98 @@
26* If this is a major release check if any previously deprecated features are to
26* If this is a major release check if any previously deprecated features are to
27 be removed in this release.
27 be removed in this release.
28* Check pre-release APIs to be exposed, especially from streamly-examples
28* 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
31* _Documentation_:
32* _Documentation_:
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.
34 * Haddock docs are consistent with the changes in the release
39 * Haddock docs are consistent with the changes in the release
35 * Tutorial has been updated for new changes
40 * Tutorial has been updated for new changes
36 * Documents in the `docs` directory are consistent with new changes
41 * Documents in the `docs` directory are consistent with new changes
37 * All combinators have time and space complexity annotations
42 * All combinators have time and space complexity annotations
38 * All combinators have `since` annotation
43 * 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.
39 * Unreleased combinators should be marked with `Pre-release` or
48 * Unreleased combinators should be marked with `Pre-release` or
40 `Internal` annotations
49 `Internal` annotations
50+ * Streamly homepage is updated with the release docs
51+ * FileSystem.Event.Windows/Darwin modules require special handling
42* _Build and Test_:
53* _Build and Test_:
44 * All CIs are green
55 * All CIs are green
56+ * Run tests using bin/test.sh to test with memory restrictions
45 * Manually build and test for all flags (esp. `dev` flag) not covered by CIs
57 * 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
48* _Benchmarks_:
60* _Benchmarks_:
50 * Check regressions from previous release
62 * 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
52 check for space leaks and to ensure constant memory usage for streaming
64 check for space leaks and to ensure constant memory usage for streaming
53 operations.
65 operations.
54 * Run benchmarks with `dev` flag on. Some `fileio` benchmarks are disabled
66 * Run benchmarks with `dev` flag on. Some `fileio` benchmarks are disabled
55 in regular runs.
67 in regular runs.
56 * Check comparative benchmarks using streaming-benchmarks
68 * Check comparative benchmarks using streaming-benchmarks
58−* _Examples_:
70+* _Dependencies_:
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.
78+* _Dependent Packages_:
61 [streamly-examples](https://github.com/composewell/streamly-examples)
81 [streamly-examples](https://github.com/composewell/streamly-examples)
62 to make sure it runs with the latest release.
82 to make sure it runs with the latest release.
63 * Check the performance of examples where applicable
83 * Check the performance of examples where applicable
84+ * Update streamly-bytestring
85+ * Consider updating other packages e.g. streamly-process, streamly-lz4
65* _Update Package Metadata:_
87* _Update Package Metadata:_
67− * Update `stack.yaml` to latest stable resolver, cleanup extra-deps
68 * Make sure the description in cabal file is in sync with README and other docs
89 * Make sure the description in cabal file is in sync with README and other docs
69 * Make sure CI configs include last three major releases of GHC in CI testing.
90 * Make sure CI configs include last three major releases of GHC in CI testing.
70− * Update `tested-with` field
91+ * Update GHC `tested-with` field
71− * Make sure all dependency bounds can use latest versions
92+ * Update `docs/building.md` with the distributions tested with
72 * Make sure any additional files are added to `extra-source-files` in cabal
93 * 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
75−* Copyrights and Contibutors
98+* _Copyrights and Contibutors_
77 * Make sure contributors to the release are listed in
100 * Make sure contributors to the release are listed in
78 `credits/CONTRIBUTORS.md`.
101 `credits/CONTRIBUTORS.md`.
79 * Bump the release version in `credits/CONTRIBUTORS.md`.
102 * Bump the release version in `credits/CONTRIBUTORS.md`.
80 * Make sure any third party code included in the release has been listed in
103 * Make sure any third party code included in the release has been listed in
81 `credits/COPYRIGHTS.md` and the license is added to the repo.
104 `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`.
85* _Update changelog & Version_:
107* _Update changelog & Version_:
109+ * Find API changes using `cabal-diff streamly 0.8.0 .` and record
110+ them in docs/API-changelog.txt.
87 * Make sure all the bug fixes being included in this release are marked
111 * Make sure all the bug fixes being included in this release are marked
88 with a target release on github. So that users can search by release if
112 with a target release on github. So that users can search by release if
89 they want.
113 they want.
114+ * Bump the package version in configure.ac and run autoreconf
90 * Change the `Unreleased` section at the top of changelog file to the new
115 * Change the `Unreleased` section at the top of changelog file to the new
91 release version number.
116 release version number.
92 * Bump the package version in cabal file or package.yaml
117 * 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.
95* _Upload_:
122* _Upload_:
@@ -262,3 +289,20 @@ cannot know whether the release number on top is unreleased or released.
264* GPG signed releases and tags
291* GPG signed releases and tags
293+## Generating Dependency Graph
295+Ways to get the dependencies. In the streamly package top dir:
298+# Keep only streamly in the packages section of stack.yaml
299+$ stack --system-ghc dot . --external|dot -Tpdf > streamly.pdf
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.
307+$ nix-shell --run "ghc-pkg dot | dot -Tpdf > streamly.pdf"