Skip to content

Commit d5b7b2e

Browse files
committed
CHANGELOG: add 0.9 release
1 parent 78a693e commit d5b7b2e

File tree

1 file changed

+141
-14
lines changed

1 file changed

+141
-14
lines changed

CHANGELOG.md

Lines changed: 141 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,103 @@ All notable changes to this project will be documented in this file.
44

55
The format is based on [Keep a Changelog](https://keepachangelog.com/).
66

7-
## [Unreleased]
8-
9-
* The minimum supported Bazel version is now v0.22.
10-
* Mark `haskell_cc_import` as deprecated.
11-
* Don't reexport `haskell_register_ghc_bindists` from
12-
`//haskell/haskell.bzl`. You must now load that macro from
13-
`//haskell:nixpkgs.bzl`. rules_nixpkgs is now no longer a dependency
14-
of rules_haskell.
15-
* The default outputs of `haskell_library` are now the static and/or
16-
shared library files, not the package database config and cache
17-
files.
18-
* `cc_haskell_import` and `haskell_cc_import` are now no longer
19-
necessary and are deprecated. A `haskell_library` can be used nearly
20-
anywhere a `cc_library` can.
7+
## [0.9] - 2019-05-07
8+
9+
### Highlights
10+
11+
* The minimum supported Bazel version is now v0.24.
12+
13+
The version is available from [`nixpkgs
14+
unstable`](https://github.com/NixOS/nixpkgs/pull/58147) and via
15+
[`official
16+
releases`](https://docs.bazel.build/versions/master/install.html).
17+
18+
* Initial Windows support
19+
20+
A non-trivial subset of `rules_haskell` is now working on Windows.
21+
See the [`project
22+
tracker`](https://github.com/tweag/rules_haskell/issues?q=is%3Aopen+is%3Aissue+project%3Atweag%2Frules_haskell%2F2)
23+
for finished and ongoing work.
24+
25+
* Improved OSX support
26+
27+
Due to the `mach-o` header size limit, we took extra measures to
28+
make sure generated library paths are as short as possible, so
29+
linking haskell binaries works even for large dependency graphs.
30+
31+
* Better Bindist support
32+
33+
The default [`start` script](http://haskell.build/start) sets up a
34+
bindist-based project by default.
35+
36+
`rules_nixpkgs` is no longer a required dependency of
37+
`rules_haskell` (but can still be used as backend).
38+
39+
* Full Haskell–C–Haskell Sandwich
40+
41+
A `haskell_library` can be now be used nearly anywhere a
42+
`cc_library` can.
43+
44+
The old `cc_haskell_import` and `haskell_cc_import` wrapper rules
45+
are no longer necessary and have been deprecated.
46+
47+
* Greatly improved REPL support
48+
49+
A new `haskell_repl` rule allows to load multiple source targets by
50+
source, or compiled, as needed. Example usage:
51+
52+
```
53+
haskell_repl(
54+
name = "my-repl",
55+
# Collect all transitive Haskell dependencies from these targets.
56+
deps = [
57+
"//package-a:target-1",
58+
"//package-b:target-2",
59+
],
60+
# Load targets by source that match these patterns.
61+
include = [
62+
"//package-a/...",
63+
"//packaga-b/...",
64+
"//common/...",
65+
],
66+
# Don't load targets by source that match these patterns.
67+
exclude = [
68+
"//package-a/vendored/...",
69+
],
70+
)
71+
```
72+
73+
* Support for GHC plugins
74+
75+
Each `haskell_*` rule now has a `plugins` attribute. It takes a
76+
list of bazel targets, which should be `haskell_library`s that
77+
implement the [GHC plugin
78+
specification](https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/extending_ghc.html#compiler-plugins).
79+
80+
* Initial Code Coverage support
81+
82+
Measure coverage of your Haskell code. See the [“Checking Code
83+
Coverage”](https://rules-haskell.readthedocs.io/en/latest/haskell-use-cases.html#checking-code-coverage)
84+
section in the manual.
85+
86+
### Compatibility Notice
87+
88+
[`hazel`](https://github.com/FormationAI/hazel) was [merged into
89+
`rules_haskell`](https://github.com/tweag/rules_haskell/pull/733), but
90+
we are not yet certain about the exact interface we want to expose.
91+
`hazel` is therefore not included in this release, and we can’t
92+
guarantee the original, unmerged version is compatible with this
93+
release. If you depend on `hazel`, please use a recent `master` commit
94+
of `rules_haskell`.
95+
96+
### Changed
97+
98+
* `haskell_register_ghc_bindists` is no longer re-exported from
99+
`//haskell/haskell.bzl`.
100+
You must now load that macro from `//haskell:nixpkgs.bzl`.
101+
102+
* `rules_nixpkgs` is no longer a dependency of `rules_haskell`.
103+
21104
* `haskell_import` has been renamed to `haskell_toolchain_library`.
22105
This is a substantial breaking change. But adapting to it should be
23106
as simple as
@@ -27,6 +110,50 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).
27110
sed -i 's/"haskell_import"/"haskell_toolchain_library"/' **/BUILD{,.bazel}
28111
```
29112

113+
See [#843](https://github.com/tweag/rules_haskell/pull/843).
114+
115+
* `haskell_toolchain`’s tools attribute is now a list of labels.
116+
Earlier entries take precendence. To migrate, add `[]` around your
117+
argument.
118+
See [#854](https://github.com/tweag/rules_haskell/pull/854).
119+
120+
* The default outputs of `haskell_library` are now the static and/or
121+
shared library files, not the package database config and cache
122+
files.
123+
124+
### Added
125+
126+
* `haskell_repl` rule that constructs a ghci wrapper that loads
127+
multiple targets by source.
128+
See [#736](https://github.com/tweag/rules_haskell/pull/736).
129+
* `plugins` attribute to `haskell_*` rules to load GHC plugins.
130+
See [#799](https://github.com/tweag/rules_haskell/pull/799).
131+
* The `HaskellInfo` and `HaskellLibraryInfo` providers are now
132+
exported and thus accessible by downstream rules.
133+
See [#844](https://github.com/tweag/rules_haskell/pull/844).
134+
* Generate version macros for preprocessors (`c2hs`, `hsc2hs`).
135+
See [#847](https://github.com/tweag/rules_haskell/pull/847).
136+
* `bindist_toolchain` rule gets `haddock_flags` and `repl_ghci_args`
137+
attributes.
138+
* `@repl` targets write json file with build information, usable by
139+
IDE tools.
140+
See [#695](https://github.com/tweag/rules_haskell/pull/695).
141+
142+
### Deprecated
143+
144+
* `haskell_cc_import`; use `cc_library` instead.
145+
See [#831](https://github.com/tweag/rules_haskell/pull/831).
146+
* `cc_haskell_import`; just use `haskell_library` like a `cc_library`.
147+
See [#831](https://github.com/tweag/rules_haskell/pull/831).
148+
149+
### Fixed
150+
151+
* Support protobuf roots in `haskell_proto_library`.
152+
See [#722](https://github.com/tweag/rules_haskell/pull/722).
153+
* Made GHC bindist relocatable on *nix.
154+
See [#853](https://github.com/tweag/rules_haskell/pull/853).
155+
* Various other fixes
156+
30157
## [0.8] - 2019-01-28
31158

32159
* The minimum supported Bazel version is now v0.21.

0 commit comments

Comments
 (0)