mirror of
https://github.com/haskell-nix/hnix-store.git
synced 2024-12-12 08:07:39 +03:00
Merge #103: Release 0.4
Rendered core ChangeLog https://github.com/sorki/hnix-store/blob/release0.4/ChangeLog.md
This commit is contained in:
commit
fd09d29b8b
35
README.md
35
README.md
@ -1,12 +1,10 @@
|
||||
hnix-store
|
||||
===========
|
||||
# hnix-store
|
||||
|
||||
A Haskell interface to the [Nix] store.
|
||||
|
||||
[Nix]: https://nixos.org/nix
|
||||
|
||||
Rationale
|
||||
-----------
|
||||
## Rationale
|
||||
|
||||
`Nix` can conceptually be broken up into two layers, both (perhaps
|
||||
unfortunately) named "Nix": The expression language and the store.
|
||||
@ -33,36 +31,33 @@ implementations planned:
|
||||
store, or reading a file) but performs mutating effects in-memory
|
||||
only (for example, computing the store path a given directory would
|
||||
live at if added to the store, without actually modifying anything).
|
||||
* A `daemon` store, which implements the client side of the `Nix`
|
||||
* A `remote` store, which implements the client side of the `Nix`
|
||||
daemon Unix domain socket protocol, allowing full interaction with
|
||||
the store on a system with the C++ daemon installed.
|
||||
|
||||
While this project is in the early stages of development, the `daemon`
|
||||
store can be seen as something of a road map: We want to express and
|
||||
implement all of (and only) the useful functionality available to a
|
||||
client of the existing daemon protocol.
|
||||
|
||||
Note that there are currently no plans for hnix-store to include an
|
||||
implementation which directly mutates the filesystem and database of
|
||||
the `Nix` store.
|
||||
|
||||
[hnix]: https://github.com/haskell-nix/hnix
|
||||
|
||||
Packages
|
||||
----------
|
||||
## Packages
|
||||
|
||||
In the interest of separating concerns, this project is split into
|
||||
several Haskell packages. The current expectation is at least one
|
||||
package, [hnix-store-core], containing the core effect types and
|
||||
several Haskell packages.
|
||||
|
||||
### [hnix-store-core]
|
||||
|
||||
Contains the core effect types and
|
||||
fundamental operations combining them, agnostic to any particular
|
||||
effectful implementation (e.g. in-memory, talking to the Nix daemon in
|
||||
IO, etc.), with the actual implementations in a different package.
|
||||
Whether each implementation gets its own package or not remains to be
|
||||
seen.
|
||||
|
||||
The intent is that core business logic for a project that needs to
|
||||
interact with the `Nix` store can simply depend on `hnix-store-core`,
|
||||
and only at the very edges of the system would it be necessary to
|
||||
bring in a specific implementation.
|
||||
|
||||
### [hnix-store-remote]
|
||||
|
||||
[Nix] worker protocol implementation for interacting with remote Nix store
|
||||
via `nix-daemon`.
|
||||
|
||||
[hnix-store-core]: ./hnix-store-core
|
||||
[hnix-store-remote]: ./hnix-store-remote
|
||||
|
@ -1,5 +1,5 @@
|
||||
{ pkgs ? import <nixpkgs> {} }: let
|
||||
overlay = import ./overlay.nix pkgs.haskell.lib;
|
||||
overlay = import ./overlay.nix pkgs pkgs.haskell.lib;
|
||||
overrideHaskellPackages = orig: {
|
||||
buildHaskellPackages =
|
||||
orig.buildHaskellPackages.override overrideHaskellPackages;
|
||||
|
@ -1,5 +1,16 @@
|
||||
# Revision history for hnix-store-core
|
||||
|
||||
## [next](https://github.com/haskell-nix/hnix-store/compare/0.4.0.0...master) 2021-MM-DD
|
||||
|
||||
* No changes yet
|
||||
|
||||
## [0.4.0.0](https://github.com/haskell-nix/hnix-store/compare/0.3.0.0...0.4.0.0) 2020-12-30
|
||||
|
||||
* `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](https://github.com/haskell-nix/hnix-store/pull/87)
|
||||
* Support `base16-bytestring >= 1` [#86](https://github.com/haskell-nix/hnix-store/pull/86) [#100](https://github.com/haskell-nix/hnix-store/pull/100)
|
||||
|
||||
## 0.3.0.0 -- 2020-11-29
|
||||
|
||||
* `System.Nix.Nar` changes API to support NAR format streaming:
|
||||
|
@ -1,5 +1,4 @@
|
||||
hnix-store-core
|
||||
=================
|
||||
# hnix-store-core
|
||||
|
||||
Core effects for interacting with the Nix store.
|
||||
|
||||
@ -10,7 +9,6 @@ on the store.
|
||||
[System.Nix.StorePath]: ./src/System/Nix/StorePath.hs
|
||||
|
||||
|
||||
Tests
|
||||
======
|
||||
# Tests
|
||||
|
||||
- `ghcid --command "cabal repl test-suite:format-tests" --test="Main.main"`
|
||||
|
@ -1,5 +1,5 @@
|
||||
name: hnix-store-core
|
||||
version: 0.3.0.1
|
||||
version: 0.4.0.0
|
||||
synopsis: Core effects for interacting with the Nix store.
|
||||
description:
|
||||
This package contains types and functions needed to describe
|
||||
|
@ -1,5 +1,13 @@
|
||||
# Revision history for hnix-store-remote
|
||||
|
||||
## [next](https://github.com/haskell-nix/hnix-store/compare/0.4.0.0...master) 2021-MM-DD
|
||||
|
||||
* No changes yet
|
||||
|
||||
## [0.4.0.0](https://github.com/haskell-nix/hnix-store/compare/0.3.0.0...0.4.0.0) 2020-12-30
|
||||
|
||||
* `hnix-store-core` compatibility
|
||||
|
||||
## 0.3.0.0 -- 2020-11-29
|
||||
|
||||
* Restored most store API functions except `addToStoreNar`
|
||||
|
@ -1,9 +1,10 @@
|
||||
hnix-store-remote
|
||||
=================
|
||||
# hnix-store-remote
|
||||
|
||||
Nix worker protocol implementation for interacting with remote Nix store
|
||||
[Nix] worker protocol implementation for interacting with remote Nix store
|
||||
via `nix-daemon`.
|
||||
|
||||
[Nix]: https://nixos.org/nix
|
||||
|
||||
## API
|
||||
|
||||
[System.Nix.Store.Remote]: ./src/System/Nix/Store/Remote.hs
|
||||
|
@ -1,5 +1,5 @@
|
||||
name: hnix-store-remote
|
||||
version: 0.3.0.0
|
||||
version: 0.4.0.0
|
||||
synopsis: Remote hnix store
|
||||
description: Implementation of the nix store using the daemon protocol.
|
||||
homepage: https://github.com/haskell-nix/hnix-store
|
||||
@ -45,7 +45,7 @@ library
|
||||
, unordered-containers
|
||||
, filepath
|
||||
, time
|
||||
, hnix-store-core
|
||||
, hnix-store-core >= 0.4 && <0.5
|
||||
, vector
|
||||
hs-source-dirs: src
|
||||
default-language: Haskell2010
|
||||
|
11
overlay.nix
11
overlay.nix
@ -1,8 +1,15 @@
|
||||
hlib: helf: huper: {
|
||||
pkgs: hlib: helf: huper: {
|
||||
hnix-store-core =
|
||||
helf.callCabal2nix "hnix-store-core" ./hnix-store-core {};
|
||||
hnix-store-remote =
|
||||
helf.callCabal2nixWithOptions "hnix-store-remote" ./hnix-store-remote "-fio-testsuite" {};
|
||||
(helf.callCabal2nixWithOptions
|
||||
"hnix-store-remote"
|
||||
./hnix-store-remote
|
||||
"-fio-testsuite"
|
||||
{}
|
||||
).overrideAttrs (attrs: {
|
||||
buildInputs = attrs.buildInputs ++ [ pkgs.nix pkgs.which ];
|
||||
});
|
||||
# 2020-12-30: NOTE: Remove after switch from cryptohash
|
||||
cryptohash-sha512 =
|
||||
hlib.unmarkBroken ( hlib.doJailbreak huper.cryptohash-sha512 );
|
||||
|
Loading…
Reference in New Issue
Block a user