# ChangeLog hie-bios

## 2024-04-22 - 0.14.0

* Add Loading Style option to 'runAction' [#433](https://github.com/haskell/hie-bios/pull/433)
* Cleanup CPP for GHCs < 9.2, fix most GHC warnings [#429](https://github.com/haskell/hie-bios/pull/429)
* Update GHC versions in CI, drop ghcs not supported by hls [#428](https://github.com/haskell/hie-bios/pull/428)

## 2023-11-14 - 0.13.1

* Add CI support for GHC 9.8.1 [#419](https://github.com/haskell/hie-bios/pull/419)
* 9.8 support [#417](https://github.com/haskell/hie-bios/pull/417)
* Avoid deadlocks in multi-component support [#416](https://github.com/haskell/hie-bios/pull/416)
* Accept directories in 'findCradle' [#415](https://github.com/haskell/hie-bios/pull/415)
* Drop old GHC version support [#414](https://github.com/haskell/hie-bios/pull/414)

## 2023-08-22 - 0.13.0

* Multi Component cabal support [#409](https://github.com/haskell/hie-bios/pull/409)
* Make sure cabal caches can be found [#408](https://github.com/haskell/hie-bios/pull/408)
* Rename project-file to cabalProject in hie.yaml [#407](https://github.com/haskell/hie-bios/pull/407)
* Update README for new project-file key [#403](https://github.com/haskell/hie-bios/pull/403)
* Add more informative log messages for cradle running [#406](https://github.com/haskell/hie-bios/pull/406)
* Add cabal.project support for cabal cradles [#357](https://github.com/haskell/hie-bios/pull/357)

## 2023-11-13 - 0.12.1

* 9.8 support [#417](https://github.com/haskell/hie-bios/pull/417)

## 2023-03-13 - 0.12.0

* 9.6 support [#392](https://github.com/haskell/hie-bios/pull/392)
* Better support for multi component projects [#387](https://github.com/haskell/hie-bios/pull/387)
* Remove unused dependencies from hie-bios [#381](https://github.com/haskell/hie-bios/pull/381)
* Add logs over commands [#375](https://github.com/haskell/hie-bios/pull/375)

## 2022-09-13 - 0.11.0

* Compatibility with aeson 1.5 [#368](https://github.com/haskell/hie-bios/pull/368)
* Add GHC 9.4 support [#366](https://github.com/haskell/hie-bios/pull/366)
* Actually run the bios-tests when tool-deps are ignored [#365](https://github.com/haskell/hie-bios/pull/365)
  * They have been accidentally disabled since 0.9.0.
* Completely overhaul test-suite [#356](https://github.com/haskell/hie-bios/pull/356)

## 2022-07-26 - 0.10.0

* Apply Hlint suggestions [#354](https://github.com/haskell/hie-bios/pull/354)
* Cabal cradle: change error message on failure [#353](https://github.com/haskell/hie-bios/pull/353)
* Refactor parsing of hie.yaml files [#329](https://github.com/haskell/hie-bios/pull/329)
* Make sure we test the same versions as HLS [#346](https://github.com/haskell/hie-bios/pull/346)
* Move logging from hslogger to co-log  [#347](https://github.com/haskell/hie-bios/pull/347)
  * Demote process output to Debug severity [#348](https://github.com/haskell/hie-bios/pull/348)
* Fix typos [#342](https://github.com/haskell/hie-bios/pull/342)

## 2022-03-07 - 0.9.1

* Ignore .ghci files while querying project GHC [#337](https://github.com/haskell/hie-bios/pull/337)
  * Fixes a bug where hie-bios fails to load cabal cradles with `.ghci` files
* Improve error messages if cabal invocation fails [#338](https://github.com/haskell/hie-bios/pull/338)
* Allow text-2.0 [#335](https://github.com/haskell/hie-bios/pull/335)

## 2022-02-25 - 0.9.0

* Use the proper GHC version given by cabal [#282](https://github.com/haskell/hie-bios/pull/282)
  * In particular, honour the `with-compiler` field in `cabal.project`
* Drop support for GHC 8.4 [#331](https://github.com/haskell/hie-bios/pull/331)

## 2022-01-06 - 0.8.1

* Add support for GHC 9.0.2 [#322](https://github.com/haskell/hie-bios/pull/322)

## 2021-11-29 - 0.8.0

* Support aeson >= 2.0. [#313](https://github.com/haskell/hie-bios/pull/313)
* Remove CradleOpt Type [#293](https://github.com/haskell/hie-bios/pull/293)

## 2021-08-30 - 0.7.6

* Don't look for NIX_GHC_LIBDIR as it is redundant [#294](https://github.com/mpickering/hie-bios/pull/294)
* Add compatibility for GHC 9.0 and 9.2 [#300](https://github.com/mpickering/hie-bios/pull/300)
  * Add CPP statements for IncludeSpecs [#307](https://github.com/mpickering/hie-bios/pull/307)
* Refactor implicit config discovery [#291](https://github.com/mpickering/hie-bios/pull/291)
* Log stderr of stack to display more informative error messages to users. [#254](https://github.com/mpickering/hie-bios/pull/254)

## 2021-03-21 - 0.7.5

### Bug Fixes

* Improve out-of-the-box support for dynamically linked GHC. [#286](https://github.com/mpickering/hie-bios/pull/286), [#287](https://github.com/mpickering/hie-bios/pull/287)

## 2021-02-19 - 0.7.4

### Bug Fixes

* Create the cache directory on linux if it is missing [#283](https://github.com/mpickering/hie-bios/pull/283)

## 2021-01-29 - 0.7.3

* Set builddir for cabal [#264](https://github.com/mpickering/hie-bios/pull/264)
  * Essentially, change the build directory for cabal to the [`XDG_CACHE_HOME`](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html)
    directory (e.g. `~/.cache/hie-bios/...`). This way, user
    invocations of cabal will no longer trigger a `configure` step, improving
    the overall developer experience.
* Optparse-applicative CLI [#276](https://github.com/mpickering/hie-bios/pull/276)

## 2020-12-16 - 0.7.2

* Faster Bios protocol [#271](https://github.com/mpickering/hie-bios/pull/271)
* Modify unreachable cabal website links [#259](https://github.com/mpickering/hie-bios/pull/259)
* Only take the last line of output in getRuntimeGhcX [#256](https://github.com/mpickering/hie-bios/pull/256)

## 2020-09-01 - 0.7.1

* Add explicit type for stack.yaml location [#243](https://github.com/mpickering/hie-bios/pull/243)
  * In particular, fixes a regression with `hie.yaml` and standalone-files for stack
* Reduce noise in Extra-Source-File field [#239](https://github.com/mpickering/hie-bios/pull/239)

## 2020-08-27 - 0.7.0

### New Features

* Allow specifying a stack.yaml for stack configurations [#230](https://github.com/mpickering/hie-bios/pull/230)
* Pass HIE_BIOS_ARG to the dependencies program [#235](https://github.com/mpickering/hie-bios/pull/235)

### API Changes

* Change Config CradleType

## 2020-08-08 - 0.6.3

### API Addition

* Expose yamlConfig [#237](https://github.com/mpickering/hie-bios/pull/237)

## 2020-08-08 - 0.6.2

### New Features

* Add optional ghc-path field in bios cradles [#231](https://github.com/mpickering/hie-bios/pull/231)

## 2020-07-12 - 0.6.1

### Bug Fixes

* Expose 'readProcessWithCwd' [#227](https://github.com/mpickering/hie-bios/pull/227)
* Fix mistakes in the ChangeLog [#228](https://github.com/mpickering/hie-bios/pull/228)

## 2020-07-12 - 0.6.0

### New Features

* Add getRuntimeGhcLibDir and getRuntimeGhcVersion functions through a new runGhcCmd API [#207](https://github.com/mpickering/hie-bios/pull/207) [#224](https://github.com/mpickering/hie-bios/pull/224)
* Add shell and dependency-shell attributes to bios cradle type [#188](https://github.com/mpickering/hie-bios/pull/188)
* Store dependencies in CradleError [#186](https://github.com/mpickering/hie-bios/pull/186)

### Bug Fixes

* Improve the README [#225](https://github.com/mpickering/hie-bios/pull/225)
* Detect implicit cabal cradle in the absence of cabal.project [#221](https://github.com/mpickering/hie-bios/pull/221)
* Dont resolve symlinks in cradle discovery [#219](https://github.com/mpickering/hie-bios/pull/219)
* Make Cradle dependencies for stack and cabal more reasonable [#209](https://github.com/mpickering/hie-bios/pull/209)
  * This ships with a known bug: `stack` lists cradle dependencies from
	sub-directories incorrectly.
* Fix absolute mains [#205](https://github.com/mpickering/hie-bios/pull/205)
* Improve filtering of rts arguments from stack and cabal cradles [#197](https://github.com/mpickering/hie-bios/pull/197)
* Make package db paths absolute [#193](https://github.com/mpickering/hie-bios/pull/193)
* Add cabal.project.local to cabal cradle dependencies [#184](https://github.com/mpickering/hie-bios/pull/184)
* Remove outdated reference to $HIE_BIOS_GHC[_ARGS]

## 2020-06-26 - 0.5.1

* Fix printing of current directory in wrapper script [#206](https://github.com/mpickering/hie-bios/pull/206)
* Export Cradle utilizes [#189](https://github.com/mpickering/hie-bios/pull/189)

## 2020-05-08 - 0.5.0

* Add cabal.project.local to cabal cradle dependencies [#184](https://github.com/mpickering/hie-bios/pull/184)
* Remove unused environment variables to simplify code. [#182](https://github.com/mpickering/hie-bios/pull/182)
* Clean up hie-bios wrapper scripts after they are used. [#179](https://github.com/mpickering/hie-bios/pull/179)
* Avoid error in windows due to temp file being locked. [#175](https://github.com/mpickering/hie-bios/pull/175)
* Get building with ghc-8.10. [#173](https://github.com/mpickering/hie-bios/pull/173)
* Add getCompilerOptionsWithLogger convenience function.
* Add componentRoot to ComponentOptions. [#166](https://github.com/mpickering/hie-bios/pull/166)
Options may be relative to the componentRoot.
* Add makeDynFlagsAbsolute to fix mangling of ghc options starting with "-i". [#166](https://github.com/mpickering/hie-bios/pull/166)
Breaks backwards-compatibility, because ComponentOptions now may contain
filepaths relative to the component root directory.
This function needs to be invoked on the parsed 'DynFlags' to normalise the filepaths.
* Fix Ghci Script parses space in Filepath as Module (#162)
* Correct path to .hie-bios example in readme (#159)
* Relax upper bound for 'extra' (#161)

## 2020-01-29 - 0.4.0

* Return CompilerOptions in initialization (#130)
* Implement hook into config parser (#131)
* Enable GHC 8.8.1 windows ci (#128)
* Catch permission errors in cradle discovery (#127)
* Add explicit cradle predicates and multi cradle depend on its cradles (#119)
* Fix outdated direct cradle in README (#124)
* Pass filepath to cabal v2-repl when getting flags (#123)
* CPP for GHC 8.10 compatibility (#134)
* Derive Ord for ComponentOptions (#133)
* Lower the required version of the GHC dependency (#138)
* Add tests for implicit cradles (#135)
* Add Functor instance for Cradle and ActionName (#140)
* Remove Show instance from public API (#146)
* Add Show instance for CradleLoadResult (#145)
* Typo in debug message (#144)
* Add lower bound for aeson and clean-up API (#142)

## 2019-12-19 - 0.3.2

* Compile windows wrapper script in a a more appropiate directory. (#109)
* Fix situation in wrapper script when environmental variable wasn't set. (#109)

## 2019-12-18 - 0.3.1

* Fix bug in the windows wrapper script (#108)

## 2019-12-15 - 0.3.0

* Add multi cradle, cabal multi cradle and none cradle
* Remove obelisk, bazel and default cradle types
* bios program now expects arguments to be separated by newlines rather than
spaces. (#80)
* Only try to use stack cradle if `stack` is executable.
* Filter out `-w -v0` from cabal output when using cabal cradle.
* Initialise plugins when loading a module.
* Interface file cache persists between loads -- this greatly speeds up
reloading a project if the options don't change.
* Reuse wrapper executable on windows if one already exists.
* Make stack cradle work more like the cabal cradle
- Syntax for specifying a specific component
- Targets are read from the ghci script file
* Cradles now use a temporary file to communicate arguments to hie-bios.
bios cradles should consult the HIE_BIOS_OUTPUT envvar for the filepath to
write the arguments seperated by newlines.

## 2019-09-19 - 0.2.1

* Make stack cradle use the same wrappers as cabal cradle. Fixes some issues
on windows.

## 2019-09-18 - 0.2.0

* Compat with 8.2 and 8.8
* Add support for explicitly specifying dependencies for a cradle
* Separate arguments by null bytes, so arguments can contain spaces
(cabal/stack wrapper)
* Add --help to CLI
* Fix the directories that certain processes run in

## 2019-09-07 - 0.1.1

* Compat with GHC 8.4
* Fix long paths issue on windows
* Handle projects with .o files

## 2019-09-06 - 0.1.0

* First release
