@@ -4,20 +4,103 @@ All notable changes to this project will be documented in this file.
44
55The 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