@@ -6,19 +6,90 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).
66
77## Upcoming release
88
9+ nothing yet
10+
11+ ## [ 0.10.0] - 2019-09-03
12+
913### Highlights
1014
1115* The minimum supported Bazel version is now 0.27.
16+
1217 ` rules_haskell ` supports Bazel up to 0.28.
1318 0.27 is a LTS release, which means upstream guarantees all new
1419 releases are backwards-compatible to it for 3 months. See the [ Bazel
1520 Stability] ( https://blog.bazel.build/2019/06/06/Bazel-Semantic-Versioning.html )
1621 blog post for more information.
22+
1723* The repository name has changed, to follow the
1824 new [ Bazel rule guidelines] [ bazel-rule-guidelines ] . It was
1925 previously called ` @io_tweag_rules_haskell ` . It is now called
2026 ` @rules_haskell ` . You should adapt your ` WORKSPACE ` file to match
2127 this, as well as your ` .bazelrc.local ` file, if any.
28+
29+ * ` haskell_cabal_library ` /` haskell_cabal_binary ` : Both use ` cabal ` to
30+ build Haskell package dependencies.
31+
32+ * ` stack_snapshot ` : Uses stack’s dependency resolving algorithm to
33+ generate ` haskell_cabal_library ` targets automatically.
34+ Requires ` stack ` > 2.1, which it will download if cannot be found in
35+ ` PATH ` .
36+
37+ * It is now possible to statically link Haskell libraries in CC
38+ binaries.
39+
40+ * A new example has been added.
41+
42+ [ ** cat_hs:** ] ( ./examples/cat_hs/ ) is an example of a non-trivial application
43+ with multiple third-party dependencies downloaded from Hackage,
44+ C library dependencies and split up into multiple libraries and
45+ a binary. We use a rule wrapping Cabal to build the Hackage
46+ dependencies. This example requires Nix installed. It is used to
47+ build (or download from a binary cache) the C library dependencies.
48+
49+ * Improved coverage reports.
50+
51+ * Haddock links to prebuilt libraries.
52+
53+ * Various improvements to reduce header size limits and command line
54+ argument length, in order to better support macOS and Windows.
55+
56+ [ bazel-rule-guidelines ] : https://docs.bazel.build/versions/master/skylark/deploying.html
57+
58+ ### Added
59+
60+ * ` haskell_cabal_library ` /` haskell_cabal_binary ` .
61+ See [ #879 ] ( https://github.com/tweag/rules_haskell/pull/879 ) ,
62+ [ #898 ] ( https://github.com/tweag/rules_haskell/pull/898 ) and
63+ [ #904 ] ( https://github.com/tweag/rules_haskell/pull/904 ) .
64+ * ` stack_snapshot ` .
65+ See [ #887 ] ( https://github.com/tweag/rules_haskell/pull/887 ) (name
66+ changed to ` stack_snapshot ` after this PR).
67+ See also [ #1011 ] ( https://github.com/tweag/rules_haskell/pull/1011 ) .
68+ * ` tools ` arguments for stack and cabal rules.
69+ See [ #907 ] ( https://github.com/tweag/rules_haskell/pull/907 ) .
70+ They can be arbitrary tools,
71+ see [ #987 ] ( https://github.com/tweag/rules_haskell/pull/987 ) .
72+ * ` tools ` attribute to core ` haskell_* ` rules. This attribute can be
73+ used to expose GHC preprocessors.
74+ See [ #911 ] ( https://github.com/tweag/rules_haskell/pull/911 ) .
75+ * Static GHC RTS can be specified in the toolchain.
76+ See [ #970 ] ( https://github.com/tweag/rules_haskell/pull/970 ) .
77+ * ` runfiles ` library: manifest file support (for Windows).
78+ See [ #992 ] ( https://github.com/tweag/rules_haskell/pull/992 ) .
79+ * Prototype implementation of bazel worker mode (not production-ready
80+ yet).
81+ See [ #1024 ] ( https://github.com/tweag/rules_haskell/pull/1024 )
82+ and [ #1055 ] ( https://github.com/tweag/rules_haskell/pull/1055 )
83+
84+ ### Changed
85+
86+ * The ` haskell_toolchain ` macro now no longer adds a ` toolchain `
87+ definition. You must now define yourself a ` haskell_toolchain ` and
88+ a ` toolchain ` separately. This should be a mostly transparent
89+ change, because nearly no one uses these functions directly. They
90+ are normally only used transitively via
91+ ` haskell_register_toolchains ` and related functions.
92+ See [ #843 ] ( https://github.com/tweag/rules_haskell/pull/843 ) .
2293* The ` haskell/haskell.bzl ` entrypoint is deprecated. use
2394 ` haskell/defs.bzl ` instead.
2495* The ` haskell_repositories() ` macro is deprecated. Use
@@ -27,10 +98,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).
2798* The ` haskell_register_toolchains() ` macro is deprecated. Use
2899 ` rules_haskell_toolchains() ` from ` haskell/repositories.bzl `
29100 instead.
30- - The ` exports ` attribute has been renamed to ` reexported_modules `
31- - A new ` exports ` attribtue allows to re-export other libraries
101+ * The ` exports ` attribute’s semantics are changed:
32102
33- [ bazel-rule-guidelines ] : https://docs.bazel.build/versions/master/skylark/deploying.html
103+ ‘A list of other haskell libraries that will be transparently added
104+ as a dependency to every downstream rule.’
105+
106+ The original ` exports ` is available under the new name
107+ ` reexported_modules ` .
108+ See [ #1008 ] ( https://github.com/tweag/rules_haskell/pull/1008 ) .
109+ * ` @ ` is allowed in Haskell binary names.
110+ * ` haskell_library ` may be empty (no files in ` srcs ` ).
111+ See [ #1035 ] ( https://github.com/tweag/rules_haskell/pull/1035 ) .
34112
35113### Removed
36114
@@ -57,6 +135,43 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).
57135 haskell_library(name = "haskell-lib", deps = [":so-lib"], ...)
58136 ```
59137
138+ ### Fixed
139+
140+ * ` haskell_register_ghc_nixpkgs ` : Forward all arguments to wrapped
141+ rules. See [ #886 ] ( https://github.com/tweag/rules_haskell/pull/886 ) .
142+ Also support ` repository ` argument and ` nixopts ` .
143+ * Haddock links to prebuilt libraries.
144+ See [ #928 ] ( https://github.com/tweag/rules_haskell/pull/928 )
145+ and [ #934 ] ( https://github.com/tweag/rules_haskell/pull/934 ) .
146+ * Documentation for GHC plugin targets is now included in
147+ the API documentation.
148+ * The Multi-REPL recognizes ` haskell_toolchain_library ` dependencies.
149+ * Various imrovements to linking. See
150+ [ #930 ] ( https://github.com/tweag/rules_haskell/pull/930 ) .
151+ * ` $(location) ` expansion for “expression is not a declared
152+ prerequisite of this rule”.
153+ See [ #990 ] ( https://github.com/tweag/rules_haskell/pull/990 ) .
154+ * Better error if the compiler version doesn’t match the one specified
155+ in the toolchain.
156+ See [ #1014 ] ( https://github.com/tweag/rules_haskell/pull/1014 ) .
157+ * macOS bindists correctly find ` ar ` and ` sed ` invocation was broken.
158+ See [ #1022 ] ( https://github.com/tweag/rules_haskell/pull/1022 )
159+ and [ #1017 ] ( https://github.com/tweag/rules_haskell/pull/1017 ) .
160+ * Allow arbitrary name for ` haskell_cabal_library ` . See
161+ [ #1034 ] ( https://github.com/tweag/rules_haskell/pull/1034 ) .
162+ * Various fixes for ` c2hs ` on Windows
163+ See [ #1046 ] ( https://github.com/tweag/rules_haskell/pull/1046 )
164+ and [ #1052 ] ( https://github.com/tweag/rules_haskell/pull/1052 ) .
165+ * ` :load ` command in ` ghci `
166+ See [ #1046 ] ( https://github.com/tweag/rules_haskell/pull/1046 ) .
167+
168+ ### Improved
169+
170+ * Profiling mode (` --compilation_mode="dbg" ` ).
171+ See [ #896 ] ( https://github.com/tweag/rules_haskell/pull/896 ) .
172+ * GHC errors won’t be swallowed anymore.
173+ See [ #1050 ] ( https://github.com/tweag/rules_haskell/pull/1050 ) .
174+
60175## [ 0.9.1] - 2019-06-03
61176
62177### Fixed
@@ -168,16 +283,6 @@ of `rules_haskell`.
168283 sed -i 's/^haskell_import/haskell_toolchain_library/' **/BUILD{,.bazel}
169284 sed -i 's/"haskell_import"/"haskell_toolchain_library"/' **/BUILD{,.bazel}
170285 ```
171- * The ` haskell_toolchain ` macro now no longer adds a ` toolchain `
172- definition. You must now define yourself a ` haskell_toolchain ` and
173- a ` toolchain ` separately. This should be a mostly transparent
174- change, because nearly no one uses these functions directly. They
175- are normally only used transitively via
176- ` haskell_register_toolchains ` and related functions.
177- * It is now possible to statically link Haskell libraries in CC
178- binaries.
179-
180- See [ #843 ] ( https://github.com/tweag/rules_haskell/pull/843 ) .
181286
182287* ` haskell_toolchain ` ’s tools attribute is now a list of labels.
183288 Earlier entries take precendence. To migrate, add ` [] ` around your
0 commit comments