@@ -6,19 +6,90 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).
6
6
7
7
## Upcoming release
8
8
9
+ nothing yet
10
+
11
+ ## [ 0.10.0] - 2019-09-03
12
+
9
13
### Highlights
10
14
11
15
* The minimum supported Bazel version is now 0.27.
16
+
12
17
` rules_haskell ` supports Bazel up to 0.28.
13
18
0.27 is a LTS release, which means upstream guarantees all new
14
19
releases are backwards-compatible to it for 3 months. See the [ Bazel
15
20
Stability] ( https://blog.bazel.build/2019/06/06/Bazel-Semantic-Versioning.html )
16
21
blog post for more information.
22
+
17
23
* The repository name has changed, to follow the
18
24
new [ Bazel rule guidelines] [ bazel-rule-guidelines ] . It was
19
25
previously called ` @io_tweag_rules_haskell ` . It is now called
20
26
` @rules_haskell ` . You should adapt your ` WORKSPACE ` file to match
21
27
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 ) .
22
93
* The ` haskell/haskell.bzl ` entrypoint is deprecated. use
23
94
` haskell/defs.bzl ` instead.
24
95
* The ` haskell_repositories() ` macro is deprecated. Use
@@ -27,10 +98,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).
27
98
* The ` haskell_register_toolchains() ` macro is deprecated. Use
28
99
` rules_haskell_toolchains() ` from ` haskell/repositories.bzl `
29
100
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:
32
102
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 ) .
34
112
35
113
### Removed
36
114
@@ -57,6 +135,43 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).
57
135
haskell_library(name = "haskell-lib", deps = [":so-lib"], ...)
58
136
```
59
137
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
+
60
175
## [ 0.9.1] - 2019-06-03
61
176
62
177
### Fixed
@@ -168,16 +283,6 @@ of `rules_haskell`.
168
283
sed -i 's/^haskell_import/haskell_toolchain_library/' **/BUILD{,.bazel}
169
284
sed -i 's/"haskell_import"/"haskell_toolchain_library"/' **/BUILD{,.bazel}
170
285
```
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 ) .
181
286
182
287
* ` haskell_toolchain ` ’s tools attribute is now a list of labels.
183
288
Earlier entries take precendence. To migrate, add ` [] ` around your
0 commit comments