fs-api-0.3.0.0: CHANGELOG.md
# Revision history for fs-api
## 0.3.0.0 -- 2024-08-26
### Breaking
* Remove orphan `Show` instance for `Foreign.C.Error.Errno`.
* Provide implementations for the new primitives in the `IO` implementation of
`HasFS`. As a result, `ioHasFS` now requires that `PrimState IO ~ PrimState m`.
* Rename `Util.CallStack` and `Util.Condense` to `System.FS.CallStack` and
`System.FS.Condense` respectively.
* Make modules in the `System.FS.IO.Internal` hierarchy public, inspired by
"Internal convention is a mistake". The following modules are moved/renamed:
* `System.FS.IO.Internal` is moved to `System.FS.IO.Unix` on Linux and MacOS
systems, and moved to `System.FS.IO.Windows` on Windows systems.
* `System.FS.IO.Internal.Handle` is moved to `System.FS.IO.Handle`.
### Non-breaking
* Add new primitives to the `HasFS` interface for performing file I/O with
user-supplied buffers: `hGetBufSome`, `hGetBufSomeAt`, `hPutBufSome`, and
`hPutBufSomeAt`.
* Add compound functions, built from the new primitives in `HasFS`:
`hGetBufExactly`, `hGetBufExactlyAt`, `hPutBufExactly`, and
`hPutBufExactlyAt`.
* `NFData` instances for `FsPath`, `HasFS` and `Handle`.
* Add `FsPath` combinators: `(<.>)` and `addExtension`, `(</>)` and `combine`.
### Patch
* Add a clarification in the documentation of `FsPath` that the user is
responsible for picking sensible directory/file names.
* Bump upper version bounds for `io-classes` to `1.6`
* Make it build with `ghc-9.10`.
* New `primitive ^>=0.9` dependency
* Tight dependency bounds.
## 0.2.0.1 -- 2023-10-30
### Patch
* Make it build with `ghc-9.8`.
## 0.2.0.0 -- 2023-08-01
### Breaking
* Modules that are required for `ioHasFS` should never be used by client code.
For this reason, we move the relevant modules into an `Internal` hierarchy.
* Move the `System.IO.FS` module to `System.FS.IO.Internal`.
* Move the `System.FS.Handle` module to `System.FS.IO.Internal.Handle`.
* Move strict and lazy compound definitions for reading/writing bytes into
separate modules `System.FS.API.Strict` and `System.FS.API.Lazy`. Both modules
re-export `System.FS.API`.
### Non-breaking
* Re-export `System.FS.API.Types` from `System.FS.API`.
### Patch
* Bump upper version bounds for `io-classes` to `1.3`
## 0.1.0.3 -- 2023-06-2
### Patch
* Enable building with `ghc-9.4`.
* Remove `asserts` package flag.
## 0.1.0.2 -- 2023-05-25
* Enable building with ghc-9.6
## 0.1.0.1 -- 2023-04-24
### Non-breaking
Update the code to compile with `io-sim-1.0.0.1`.
## 0.1.0.0 -- 2023-03-27
* First version. Released on an unsuspecting world.