Skip to content

Commit d65010e

Browse files
committed
CHANGELOG: update for 0.10
1 parent db48893 commit d65010e

File tree

1 file changed

+118
-13
lines changed

1 file changed

+118
-13
lines changed

CHANGELOG.md

+118-13
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)