(link)StorePath no longer carries storePathRoot field and we
have a stand-alone StoreDir type instead to be used instead of FilePath
when store root directory is needed as a context.
Additional:
(link) NAR encoding and decoding now supports case-insensitive filesystems.
The “case hack” replicates the behavior of the use-case-hack option in Nix, which adds a suffix to conflicting filenames.
This feature is enabled by default on macOS (darwin).
data NarOptions has been added to configure NAR encoding and decoding. The optUseCaseHack field can be used to enable or disable the case hack.
New streamNarIOWithOptions and runParserWithOptions functions have been added to System.Nix.Nar to support the new configurable options.
(link) Migration from packages cryptohash- -> cryptonite:
rm newtype Digest in favour of cryptonite: newtype Digest
rm data HashAlgorithm in favour of cryptonite: class HashAlgorithm
rm class ValidAlgo in favour of cryptonite: class HashAlgorithm.
class NamedAlgo removed hashSize in favour of cryptonite: class HashAlgorithm: hashDigestSize. Former became a subclass of the latter.
rm hash in favour of cryptonite: hash
rm hashLazy in favour of cryptonite: hashlazy
(link) Base encoding/decoding function for hashes (digests) changed (due to changes in type system & separation of specially truncated Nix Store hasing):
Nix store (which are specially truncated) hashes are now handled separately from other hashes:
add mkStorePathHash - a function to create a content into Nix storepath-style hash:
mkStorePathHash :: HashAlgorithm a => ByteString -> ByteString
but recommend to at once use mkStorePathHashPart.
System.Nix.Hash no longer exports encodeBase16, decodeBase16 and their Base32 counterparts.
These were replaced by encodeInBase and decodeBase functions
accepting BaseEncoding data type #87