bazel-coverage-report-renderer v0.14.0 Release Notes

Release Date: 2021-12-21 // 11 months ago
  • Highlights

    • ๐Ÿšš Moved to exclusive support of Bazel 4
    • ๐Ÿ‘Œ Support for GHC 8.8, 8.10, 9.0 and 9.2
    • ๐Ÿ‘ Asterius support (experimental)
    • ๐Ÿ‘ Cross-compilation support
    • haskell_module rule (experimental)

    โž• Added

    • ๐Ÿ‘Œ Support for Bazel 4.1.0 and 4.2.1
    • ๐Ÿ‘Œ Support for GHC 8.8.4, 8.10.3, 8.10.4, 8.10.7, 9.0.1 and 9.2.1.
    • ๐Ÿ“ฆ Blacklisted empty ghc-byteorder package.
    • ๐ŸŽ More reproducible GHC bindist on macOS. See #1462.
    • Track GHC's lib/settings as an action input by exposing a files attribute in the haskell_toolchain rule, which is used in downstream actions. See #1478.
    • โž• Added ghc-bignum to the list of core packages (since GHC 9.0.1).
    • Provided a Bazel-compatible version of ghc-paths. See #1508.
    • ๐Ÿ‘ Allow different repository names when registering Haskell toolchains for cross-compiling.
    • โž• Added hsc2hs into the inputs of cabal_wrapper so it can be found when cross-compiling.
    • ๐Ÿ‘Œ Support for platform constraints for GHCs in Nixpkgs.
    • Added hie_bios_path_prefix to the haskell_repl rule to allow hie-bios to output paths relative to a directory besides the workspace root.
    • ๐Ÿ”Œ Experimental haskell_module rule, with profiling, hs-boot, plugin, preprocessor, package database, dynamic build and Template Haskell support. See #1553.
    • ๐Ÿ‘Œ Support for Cabal sublibraries, using the sublibrary_name attribute of the haskell_cabal_library rule.
    • Added generates_path_module attribute to haskell_cabal_library, such that its data files are accessible to haskell_binary rules. See #1575.
    • 0๏ธโƒฃ Added non_default_plugins attribute to haskell_library and haskell_binary rules to avoid setting -fplugin for every module.
    • ๐Ÿ‘Œ Support for using Template Haskell and FFI with static C dependencies. See #1582.
    • ๐Ÿ‘Œ Support for Asterius. See #1614, #1618, #1619, #1621, #1643 and #1660.
    • ๐Ÿ‘Œ Support for sublibraries in the stack_snapshot rule. #1638.
    • Support for the --incompatible_override_toolchain_transition flag.

    โœ‚ Removed

    • ๐Ÿ‘Œ Support for Bazel pre-4.0.0

    ๐Ÿ”„ Changed

    • Source file names are explicitly mapped to module names and corresponding object and interface files in Starlark. The main module is determined heuristically, but can be overridden with the main_file attribute. See #1281.
    • ๐Ÿ“ฆ stack unpack now uses versioned packages. See #1455.
    • cabal_wrapper now takes its arguments as JSON.
    • ๐Ÿ“Œ Use GitHub API token in stack_snapshot pinning, if available, to avoid rate limiting. See #1494.
    • Invoke a runghc for the execution platform in cabal_wrapper.
    • compiler_flags options have been renamed to ghcopts in macros and rules, for consistency. The old name will still work, but has been deprecated.
    • Automatic visibility of stack_snapshot dependencies to vendored packages. See #1583.
    • All REPL targets are tagged as manual, so are only built on-demand.
    • Use a more deterministic distdir path in haskell_cabal_* rules to improve reproducibility. See #1648.

    ๐Ÿ›  Fixed

    • ๐Ÿ“Œ stack_snapshot pinning with archives containing Cabal files located deeper down the tree.
    • A regression whereby dynamically linked binaries were missing their libraries in the runfiles.
    • ๐ŸŽ Compatibility issue with macOS Big Sur. See #1442.

Previous changes from v0.13.0

  • โž• Added

    • ๐Ÿ‘Œ Support for GHC 8.10.
    • ๐Ÿ‘Œ Support for building fully-static binaries. These binaries have fewer dependencies and are more portable across systems.
    • ๐Ÿ‘Œ Support Cabal setup script dependencies. See #1347.
    • ๐Ÿ‘Œ Support ghcide.
    • ๐Ÿ‘Œ Support building Stackage binaries in stack_snapshot, not just libraries. See #1304.
    • ๐Ÿ‘ Better compatibility with --remote_download_minimal.
    • ๐Ÿ‘Œ Support Stack snapshot pinning. In the common case, users don't even need to run Stack to resolve a snapshot to a set of package tarballs. The tarballs can be cached in the Bazel repository cache. See #1376.

    ๐Ÿ”„ Changed

    • The platform name for Nix users has changed. The platforms in @//haskell/platforms/... are still supported, but are deprecated. Use @io_tweag_rules_nixpkgs//nixpkgs/platforms:host instead.
    • ๐Ÿ Avoid unnecessary recompilation on Windows. See #1280.
    • ๐Ÿ‘‰ Use Stack >= 2.3.1 in the implementation of stack_snapshot. This enables better sdist caching, better performance, and makes bazel fetch more effective.
    • More aggressive shortening of library names to avoid exceeding MACH-O header size limits on macOS.
    • ๐Ÿ‘‰ Make variables are now expanded in compiler and REPL flags. See #1381.

    ๐Ÿ›  Fixed

    • ๐Ÿ”— Linking shared libraries and binaries on Linux distributions that have PIE enabled by default, like Ubuntu from at least 18.04 onwards. See #1388.