diff options
Diffstat (limited to 'third_party/bazel/rules_haskell/CHANGELOG.md')
-rw-r--r-- | third_party/bazel/rules_haskell/CHANGELOG.md | 461 |
1 files changed, 0 insertions, 461 deletions
diff --git a/third_party/bazel/rules_haskell/CHANGELOG.md b/third_party/bazel/rules_haskell/CHANGELOG.md deleted file mode 100644 index af0fe7ddc581..000000000000 --- a/third_party/bazel/rules_haskell/CHANGELOG.md +++ /dev/null @@ -1,461 +0,0 @@ -# Change Log - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/). - -## [0.9.1] - 2019-06-03 - -### Fixed - -- Bindists were broken on MacOS. - See [884](https://github.com/tweag/rules_haskell/issues/884). - -## [0.9] - 2019-05-07 - -### Highlights - -* The minimum supported Bazel version is now v0.24. - - The version is available from [`nixpkgs - unstable`](https://github.com/NixOS/nixpkgs/pull/58147) and via - [`official - releases`](https://docs.bazel.build/versions/master/install.html). - -* Initial Windows support - - A non-trivial subset of `rules_haskell` is now working on Windows. - See the [`project - tracker`](https://github.com/tweag/rules_haskell/issues?q=is%3Aopen+is%3Aissue+project%3Atweag%2Frules_haskell%2F2) - for finished and ongoing work. - -* Improved OSX support - - Due to the `mach-o` header size limit, we took extra measures to - make sure generated library paths are as short as possible, so - linking haskell binaries works even for large dependency graphs. - -* Better Bindist support - - The default [`start` script](http://haskell.build/start) sets up a - bindist-based project by default. - - `rules_nixpkgs` is no longer a required dependency of - `rules_haskell` (but can still be used as backend). - -* Full Haskell–C–Haskell Sandwich - - A `haskell_library` can be now be used nearly anywhere a - `cc_library` can. - - The old `cc_haskell_import` and `haskell_cc_import` wrapper rules - are no longer necessary and have been deprecated. - -* Greatly improved REPL support - - A new `haskell_repl` rule allows to load multiple source targets by - source, or compiled, as needed. Example usage: - - ``` - haskell_repl( - name = "my-repl", - # Collect all transitive Haskell dependencies from these targets. - deps = [ - "//package-a:target-1", - "//package-b:target-2", - ], - # Load targets by source that match these patterns. - include = [ - "//package-a/...", - "//packaga-b/...", - "//common/...", - ], - # Don't load targets by source that match these patterns. - exclude = [ - "//package-a/vendored/...", - ], - ) - ``` - -* Support for GHC plugins - - Each `haskell_*` rule now has a `plugins` attribute. It takes a - list of bazel targets, which should be `haskell_library`s that - implement the [GHC plugin - specification](https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/extending_ghc.html#compiler-plugins). - -* Initial Code Coverage support - - Measure coverage of your Haskell code. See the [“Checking Code - Coverage”](https://rules-haskell.readthedocs.io/en/latest/haskell-use-cases.html#checking-code-coverage) - section in the manual. - -### Compatibility Notice - -[`hazel`](https://github.com/FormationAI/hazel) was [merged into -`rules_haskell`](https://github.com/tweag/rules_haskell/pull/733), but -we are not yet certain about the exact interface we want to expose. -`hazel` is therefore not included in this release, and we can’t -guarantee the original, unmerged version is compatible with this -release. If you depend on `hazel`, please use a recent `master` commit -of `rules_haskell`. - -### Changed - -* `haskell_register_ghc_bindists` is no longer re-exported from - `//haskell/haskell.bzl`. - You must now load that macro from `//haskell:nixpkgs.bzl`. - -* `rules_nixpkgs` is no longer a dependency of `rules_haskell`. - -* `haskell_import` has been renamed to `haskell_toolchain_library`. - This is a substantial breaking change. But adapting to it should be - as simple as - - ``` - sed -i 's/^haskell_import/haskell_toolchain_library/' **/BUILD{,.bazel} - sed -i 's/"haskell_import"/"haskell_toolchain_library"/' **/BUILD{,.bazel} - ``` - - See [#843](https://github.com/tweag/rules_haskell/pull/843). - -* `haskell_toolchain`’s tools attribute is now a list of labels. - Earlier entries take precendence. To migrate, add `[]` around your - argument. - See [#854](https://github.com/tweag/rules_haskell/pull/854). - -* The default outputs of `haskell_library` are now the static and/or - shared library files, not the package database config and cache - files. - -### Added - -* `haskell_repl` rule that constructs a ghci wrapper that loads - multiple targets by source. - See [#736](https://github.com/tweag/rules_haskell/pull/736). -* `plugins` attribute to `haskell_*` rules to load GHC plugins. - See [#799](https://github.com/tweag/rules_haskell/pull/799). -* The `HaskellInfo` and `HaskellLibraryInfo` providers are now - exported and thus accessible by downstream rules. - See [#844](https://github.com/tweag/rules_haskell/pull/844). -* Generate version macros for preprocessors (`c2hs`, `hsc2hs`). - See [#847](https://github.com/tweag/rules_haskell/pull/847). -* `bindist_toolchain` rule gets `haddock_flags` and `repl_ghci_args` - attributes. -* `@repl` targets write json file with build information, usable by - IDE tools. - See [#695](https://github.com/tweag/rules_haskell/pull/695). - -### Deprecated - -* `haskell_cc_import`; use `cc_library` instead. - See [#831](https://github.com/tweag/rules_haskell/pull/831). -* `cc_haskell_import`; just use `haskell_library` like a `cc_library`. - See [#831](https://github.com/tweag/rules_haskell/pull/831). - -### Fixed - -* Support protobuf roots in `haskell_proto_library`. - See [#722](https://github.com/tweag/rules_haskell/pull/722). -* Made GHC bindist relocatable on *nix. - See [#853](https://github.com/tweag/rules_haskell/pull/853). -* Various other fixes - -## [0.8] - 2019-01-28 - -* The minimum supported Bazel version is now v0.21. - -### Added - -* `haskell_register_toolchains`, `haskell_register_ghc_bindists` and - `haskell_register_ghc_nixpkgs` to register multiple toolchains for - multiple platforms at once. Toolchains from binary distributions can - now coexist with toolchains from Nixpkgs, even on the same platform. - On nixpkgs you need to provide a toolchain. See - [the `README`](./README.md#Nixpkgs) for instructions. - See [#597](https://github.com/tweag/rules_haskell/pull/597) - and [#610](https://github.com/tweag/rules_haskell/pull/610). -* Instructions on how to reference a local checkout of `rules_haskell`. -* `rules_haskell` is forward-compatible with the next breaking changes - in `bazel` versions, via the `--all_incompatible_changes` flag. - See [#613](https://github.com/tweag/rules_haskell/pull/613). - -### Removed - -* The `generate_so` attribute of `haskell_binary` and `haskell_test` - has been completely superseded by `linkstatic` in the last release - and became a no-op, so it is removed. -* The `main_file` attribute of `haskell_binary` and `haskell_test` - had been deprecated because it was a no-op, so it is removed. -* The `prebuilt_dependencies` attribute of all haskell rules - had been deprecated two versions ago and is removed. - Use `haskell_import` instead (see docs for usage). -* The `extra_binaries` field is now no longer supported. - -### Changed - -* `ghc_bindist` now requires a `target` argument. Use - `haskell_register_ghc_nixpkgs` to call `ghc_bindist` once per known - target. - See [#610](https://github.com/tweag/rules_haskell/pull/610). -* `ghc_bindist` now registers itself as a toolchain. We no longer - require a separate toolchain definition and registration in addition - to `ghc_bindist`. - See [#610](https://github.com/tweag/rules_haskell/pull/610). -* `c2hs` support is now provided in a separate toolchain called - `c2hs_toolchain`, rather than an optional extra to the - `haskell_toolchain`. - See [#590](https://github.com/tweag/rules_haskell/pull/590). -* Rename bindist arch names so they are the same as in - `rules_go/nodejs`. - -### Fixed - -* Prevent duplicate installs of bazel_skylib - See [#536](https://github.com/tweag/rules_haskell/pull/536). -* Test suite now executes all binaries, various runtime errors were - uncovered. - See [#551](https://github.com/tweag/rules_haskell/pull/551). -* Repl targets that have indirect cc_library dependencies. - See [#576](https://github.com/tweag/rules_haskell/pull/576). -* `linkstatic` for haskell binaries that have an indirect dependency - on a prebuilt haskell package. - See [#569](https://github.com/tweag/rules_haskell/pull/569). -* … and an indirect dependency on a C library. - See [#567](https://github.com/tweag/rules_haskell/pull/567). -* Prefer linking agains static C libraries with `linkstatic`. - See [#587](https://github.com/tweag/rules_haskell/pull/587). -* Haddock flags take precedence over GHC compiler flags. - See [#572](https://github.com/tweag/rules_haskell/pull/572). -* User-defined GHC flags now override default flags. - See [#607](https://github.com/tweag/rules_haskell/pull/607). -* Dynamic transitive C(++) libraries work. - See [#627](https://github.com/tweag/rules_haskell/pull/627). - -## [0.7] - 2018-12-24 - -### Added - -* Support for Bazel 0.20.0. This is now also the lower bound for the - supported version. -* Supported reexported modules, via the - new - [`exports` attribute](http://api.haskell.build/haskell/haskell.html#haskell_library.exports). - See [#357](https://github.com/tweag/rules_haskell/issues/357). -* Support `linkstatic` attribute, for building mostly static binaries. - This is now the default for binaries, to match the C/C++ rules - defaults. - See [#378](https://github.com/tweag/rules_haskell/issues/378). -* It is now possible to set default Haddock flags in the toolchain - definition. - See [#425](https://github.com/tweag/rules_haskell/pull/425). -* Support wrapping Haskell libraries as shared objects callable from - Python. - See [#370](https://github.com/tweag/rules_haskell/issues/370). - -### Changed - -* REPL targets have changed name. If you have a library target `foo`, - then the corresponding REPL target is now called `foo@repl`. It was - previously called `foo-repl`. The old name is still supported but is - deprecated. -* Don't set a default version number anymore in libraries and - binaries. Version numbers, and CPP version macros, are now only used - for packages imported from Hackage. Don't use them otherwise. - See - [#386](https://github.com/tweag/rules_haskell/pull/386), - [#414](https://github.com/tweag/rules_haskell/pull/414) - and [#446](https://github.com/tweag/rules_haskell/pull/446). -* On macOS, we use `ar` for linking, not Libtool. - See [#392](https://github.com/tweag/rules_haskell/pull/392). -* The `runfiles` Haskell library has been broken out into a Cabal - library and published on Hackage. - -### Fixed - -* Make REPL force building of dependencies. - See [#363](https://github.com/tweag/rules_haskell/pull/363). -* Don’t crash on inputs missing `.haddock` interface files. See - [#362](https://github.com/tweag/rules_haskell/pull/362) -* Fix handling of non-unique package names. - See [#403](https://github.com/tweag/rules_haskell/pull/403). - -## [0.6] - 2018-07-21 - -### Added - -* Protocol buffers integration using `proto-lens`. See - [#239](https://github.com/tweag/rules_haskell/pull/239). - -* `strip_include_prefix` attribute to the `haskell_cc_import` rule. See - [#241](https://github.com/tweag/rules_haskell/pull/241). - -* Support for `c2hs` files. See - [#351](https://github.com/tweag/rules_haskell/pull/351). - -* The `extra_srcs` attribute that allows to list non-Haskell source files - that should be visible during compilation and linking (usually useful with - TH). See [#292](https://github.com/tweag/rules_haskell/pull/292). - -* The `extra_binaries` attribute to the `haskell_toolchain` rule. See - [#282](https://github.com/tweag/rules_haskell/issues/282). - -* A Haskell library for looking up runfiles. See - [#302](https://github.com/tweag/rules_haskell/pull/302). - -* A separate toolchain for `doctest`—`haskell_doctest_toolchain`. See - [#310](https://github.com/tweag/rules_haskell/pull/310). - -* The `compiler_flags` attribute to the `haskell_toolchain` rule allowing to - specify default compiler flags. See - [#315](https://github.com/tweag/rules_haskell/issues/315). - -* The ability to set locale to be used during compilation by adding the - `locale` and `locale_archive` attributes to `haskell_toolchain`. See - [#328](https://github.com/tweag/rules_haskell/pull/328). - -* Proper support for profiling. See - [#332](https://github.com/tweag/rules_haskell/pull/332). - -* The `repl_ghci_args` attribute to the `haskell_toolchain` rule. See - [#334](https://github.com/tweag/rules_haskell/pull/334). - -* The `haskell_import` rule allowing us to make specifying dependencies more - uniform and to deprecate the `prebuilt_dependencies` attribute. See - [#337](https://github.com/tweag/rules_haskell/pull/337). - -### Fixed - -* Template Haskell linking against `cc_library`. See - [#218](https://github.com/tweag/rules_haskell/pull/218). - -* Linking issues on MacOS. See - [#221](https://github.com/tweag/rules_haskell/pull/221). - -* GHC packages that correspond to targets with the same name but in - different Bazel packages no longer clash. See - [#219](https://github.com/tweag/rules_haskell/issues/219). - -* Build breakage on MacOS when XCode is not installed. See - [#223](https://github.com/tweag/rules_haskell/pull/223). - -* Bug preventing Haddock generation because of missing dynamic shared - libraries when targets have TH in them. See - [#226](https://github.com/tweag/rules_haskell/pull/226). - -* Hyperlinks between targets contained in different Bazel packages - (Haddocks). See [#231](https://github.com/tweag/rules_haskell/issues/231). - -* Generated source files do not cause issues now. See - [#211](https://github.com/tweag/rules_haskell/pull/211). - -* `data` attributes now allow files in them. See - [#236](https://github.com/tweag/rules_haskell/issues/236). - -* Bug when headers and hsc2hs-produced files were not visible to Haddock. - See [#254](https://github.com/tweag/rules_haskell/pull/254). - -* Bug preventing using genrule-produced headers via `haskell_cc_import`. See - [#268](https://github.com/tweag/rules_haskell/pull/268). - -* Bug that allowed us avoid specifying certain `prebuilt_dependencies` if - they were already specified for transitive dependencies. See - [#286](https://github.com/tweag/rules_haskell/issues/286). - -* Bug that was making modules generated from `.hsc` and `.chs` files and - generated modules in general not available in the REPLs. See - [#323](https://github.com/tweag/rules_haskell/pull/323). - -### Changed - -* Added `-Wnoncanonical-monad-instances` to default warnings in - `haskell_lint`. - -* How REPLs work. Now there is an optional output per binary/library. Its - name is the name of target with `-repl` added. Users can then build and - run such a REPL for any defined target. See - [#220](https://github.com/tweag/rules_haskell/issues/220) and - [#225](https://github.com/tweag/rules_haskell/pull/225). - -* The `haskell_doc` rule now produces self-contained documentation bundle - with unified index. See - [#249](https://github.com/tweag/rules_haskell/pull/249). - -* `haskell_lint` now only lints direct dependencies. See - [#293](https://github.com/tweag/rules_haskell/pull/293). - -* `haskell_doctest` has been re-designed. It's now a normal rule that works - only on direct dependencies and allows to specify modules which should be - tested, pass custom flags to `doctest` executable. See - [#342](https://github.com/tweag/rules_haskell/pull/342). - -* The `prebuilt_dependencies` attribute of `haskell_binary` and - `haskell_library` has been deprecated. See - [#355](https://github.com/tweag/rules_haskell/pull/355). - -## [0.5] - 2018-04-15 - -### Added - -* Support for MacOS, courtesy of Judah Jacobson. See - [#165](https://github.com/tweag/rules_haskell/issues/165). - -* Support for `data` attributes in `haskell_binary` and `haskell_library` - rules. See [#167](https://github.com/tweag/rules_haskell/issues/167). - -* Output on building of GHC bindists so it's clearer what went wrong in case - of a failure. - -* `haskell_repl` rule allowing to interact with GHCi. See - [#82](https://github.com/tweag/rules_haskell/issues/82). - -* Support for GHC 8.4.1 bindist. See - [#175](https://github.com/tweag/rules_haskell/issues/175). - -* `haskell_lint` rule. See - [#181](https://github.com/tweag/rules_haskell/issues/181). - -* `haskell_doctest` rule. See - [#194](https://github.com/tweag/rules_haskell/issues/194). - -### Changed - -* Improved hermeticity of builds. See - [#180](https://github.com/tweag/rules_haskell/pull/180). - -* `cc_haskell_import` now works with `haskell_binary` targets as well. See - [#179](https://github.com/tweag/rules_haskell/issues/179). - -## [0.4] - 2018-02-27 - -### Added - -* `hidden_modules` attribute of the `haskell_library` rule. This allows to - selectively hide modules in a library. See - [#152](https://github.com/tweag/rules_haskell/issues/152). - -### Fixed - -* Test executables now find shared libraries correctly at runtime. See - [#151](https://github.com/tweag/rules_haskell/issues/151). - -* Building of certain modules does not fail with the “file name does not - match module name” message anymore. See - [#139](https://github.com/tweag/rules_haskell/issues/139). - -* Linking issues that resulted in unresolved symbols due to incorrect order - in which static libraries are passed to linker are not resolved. See - [#140](https://github.com/tweag/rules_haskell/issues/140). - -* The “grep not found” error is fixed. See - [#141](https://github.com/tweag/rules_haskell/pull/141). - -* System-level shared libraries introduced by `haskell_cc_import` are now - found correctly during compilation. See - [#142](https://github.com/tweag/rules_haskell/issues/142). - -## [0.3] - 2018-02-13 - -## [0.2] - 2018-01-07 - -## [0.1] - 2018-01-02 |