Skip to content

Commit

Permalink
Merge pull request #285 from haskell-nix/srk/release/core08etAl
Browse files Browse the repository at this point in the history
Release `core 0.8`, remote `0.7` and new packages
  • Loading branch information
sorki authored Jul 31, 2024
2 parents de88b65 + a7bb4a6 commit 247be71
Show file tree
Hide file tree
Showing 17 changed files with 118 additions and 45 deletions.
48 changes: 44 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# hnix-store

[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/haskell-nix/hnix-store/ci.yaml?branch=master)](https://github.com/haskell-nix/hnix-store/actions/workflows/ci.yaml)

A Haskell interface to the [Nix] store.

[Nix]: https://nixos.org/nix
Expand Down Expand Up @@ -44,12 +46,11 @@ several Haskell packages.

### [hnix-store-core]

[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/haskell-nix/hnix-store/ci.yaml?branch=master)](https://github.com/haskell-nix/hnix-store/actions/workflows/ci.yaml)
[![Hackage version](https://img.shields.io/hackage/v/hnix-store-core.svg?color=success)](https://hackage.haskell.org/package/hnix-store-core)
[![Dependencies](https://img.shields.io/hackage-deps/v/hnix-store-core?label=Dependencies)](https://packdeps.haskellers.com/feed?needle=hnix-store-core)

Contains the core effect types and
fundamental operations combining them, agnostic to any particular
Contains the core types and
fundamental operations, 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.

Expand All @@ -58,14 +59,53 @@ 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-db]

[![Hackage version](https://img.shields.io/hackage/v/hnix-store-db.svg?color=success)](https://hackage.haskell.org/package/hnix-store-db)
[![Dependencies](https://img.shields.io/hackage-deps/v/hnix-store-db?label=Dependencies)](https://packdeps.haskellers.com/feed?needle=hnix-store-db)

Implementation of the `Nix` store SQLite database.

### [hnix-store-json]

[![Hackage version](https://img.shields.io/hackage/v/hnix-store-json.svg?color=success)](https://hackage.haskell.org/package/hnix-store-json)
[![Dependencies](https://img.shields.io/hackage-deps/v/hnix-store-json?label=Dependencies)](https://packdeps.haskellers.com/feed?needle=hnix-store-json)

`Aeson` instances for core types, required for remote store protocol.

### [hnix-store-nar]

[![Hackage version](https://img.shields.io/hackage/v/hnix-store-nar.svg?color=success)](https://hackage.haskell.org/package/hnix-store-nar)
[![Dependencies](https://img.shields.io/hackage-deps/v/hnix-store-nar?label=Dependencies)](https://packdeps.haskellers.com/feed?needle=hnix-store-nar)

Packing and unpacking for NAR file format used by Nix.

### [hnix-store-readonly]

[![Hackage version](https://img.shields.io/hackage/v/hnix-store-readonly.svg?color=success)](https://hackage.haskell.org/package/hnix-store-readonly)
[![Dependencies](https://img.shields.io/hackage-deps/v/hnix-store-readonly?label=Dependencies)](https://packdeps.haskellers.com/feed?needle=hnix-store-readonly)

Path computation without interaction with the actual `Nix` store

### [hnix-store-remote]

[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/haskell-nix/hnix-store/ci.yaml?branch=master)](https://github.com/haskell-nix/hnix-store/actions/workflows/ci.yaml)
[![Hackage version](https://img.shields.io/hackage/v/hnix-store-remote.svg?color=success)](https://hackage.haskell.org/package/hnix-store-remote)
[![Dependencies](https://img.shields.io/hackage-deps/v/hnix-store-remote?label=Dependencies)](https://packdeps.haskellers.com/feed?needle=hnix-store-remote)

[Nix] worker protocol implementation for interacting with remote Nix store
via `nix-daemon`.

### [hnix-store-tests]

[![Hackage version](https://img.shields.io/hackage/v/hnix-store-tests.svg?color=success)](https://hackage.haskell.org/package/hnix-store-tests)
[![Dependencies](https://img.shields.io/hackage-deps/v/hnix-store-tests?label=Dependencies)](https://packdeps.haskellers.com/feed?needle=hnix-store-tests)

Aribtrary instances and utilities for testing.

[hnix-store-core]: ./hnix-store-core
[hnix-store-db]: ./hnix-store-db
[hnix-store-json]: ./hnix-store-json
[hnix-store-nar]: ./hnix-store-nar
[hnix-store-readonly]: ./hnix-store-readonly
[hnix-store-remote]: ./hnix-store-remote
[hnix-store-tests]: ./hnix-store-tests
10 changes: 8 additions & 2 deletions hnix-store-core/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# Next
# [0.8.0.0](https://github.com/haskell-nix/hnix-store/compare/core-0.7.0.0...core-0.8.0.0) 2024-07-31

* Changes:
* `System.Nix.StorePath.makeStorePathName` renamed to `System.Nix.StorePath.mkStorePathName`
* `System.Nix.ReadOnlyStore` moved to `hnix-store-readonly` package
and renamed to `System.Nix.Store.ReadOnly` [#247](https://github.com/haskell-nix/hnix-store/pull/247)
* `System.Nix.Nar*` moved to `hnix-store-nar` package [#247](https://github.com/haskell-nix/hnix-store/pull/247)
* `Arbitrary` instances moved to `hnix-store-tests` package [#241](https://github.com/haskell-nix/hnix-store/pull/241)
* `System.Nix.Internal` namespaces was removed [#236](https://github.com/haskell-nix/hnix-store/pull/236)
* `System.Nix.Internal` namespace was removed [#236](https://github.com/haskell-nix/hnix-store/pull/236)
* `StorePathMetadata` converted to `Metadata a` [#231](https://github.com/haskell-nix/hnix-store/pull/231)
* Moved to `System.Nix.StorePath.Metadata` [#236](https://github.com/haskell-nix/hnix-store/pull/236)
* Constructors of `StorePathName` and `StorePathHashPart` are no longer
Expand Down Expand Up @@ -159,3 +159,9 @@ exist and we can tell what common effects they should share.
# 0.1.0.0 -- 2019-03-18

* First version.

---

`hnix-store-core` uses [PVP Versioning][1].

[1]: https://pvp.haskell.org
5 changes: 3 additions & 2 deletions hnix-store-core/hnix-store-core.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,10 @@ maintainer: [email protected]
copyright: 2018 Shea Levy
category: Nix
build-type: Simple
extra-source-files:
extra-doc-files:
CHANGELOG.md
, README.md
extra-source-files:
README.md
, tests/samples/example0.drv
, tests/samples/example1.drv

Expand Down
10 changes: 8 additions & 2 deletions hnix-store-db/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
# Unreleased 202y-mm-dd
# 0.1.0.0 2024-07-31

* First version.
* Initial release

---

`hnix-store-db` uses [PVP Versioning][1].

[1]: https://pvp.haskell.org
11 changes: 6 additions & 5 deletions hnix-store-db/hnix-store-db.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,19 @@ cabal-version: 2.2
name: hnix-store-db
version: 0.1.0.0
synopsis: Nix store database support
description: Implementation of the nix store database
description: Implementation of the Nix store database
homepage: https://github.com/haskell-nix/hnix-store
license: Apache-2.0
license-file: LICENSE
author: Richard Marko
author: Sorki
maintainer: [email protected]
copyright: 2023 Richard Marko
copyright: 2023 Sorki
category: Nix
build-type: Simple
extra-source-files:
extra-doc-files:
CHANGELOG.md
, README.md
extra-source-files:
README.md
, README.lhs

flag build-bench
Expand Down
3 changes: 1 addition & 2 deletions hnix-store-json/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Version [0.1.0.0](https://github.com/haskell-nix/hnix-store/compare/json-0.1.0.0...json-0.1.1.0) (2023-11-27)
# 0.1.0.0 2024-07-31

* Initial release

Expand All @@ -7,4 +7,3 @@
`hnix-store-json` uses [PVP Versioning][1].

[1]: https://pvp.haskell.org

11 changes: 6 additions & 5 deletions hnix-store-json/hnix-store-json.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,19 @@ name: hnix-store-json
version: 0.1.0.0
synopsis: JSON serialization for core types
description:
Aeson instances for core types
Aeson instances for core types, required for remote store protocol
homepage: https://github.com/haskell-nix/hnix-store
license: Apache-2.0
license-file: LICENSE
author: Richard Marko
author: Sorki
maintainer: [email protected]
copyright: 2023 Richard Marko
copyright: 2023 Sorki
category: Nix
build-type: Simple
extra-source-files:
extra-doc-files:
CHANGELOG.md
, README.md
extra-source-files:
README.md

common commons
ghc-options: -Wall
Expand Down
5 changes: 2 additions & 3 deletions hnix-store-nar/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
# Version [0.1.0.0](https://github.com/haskell-nix/hnix-store/compare/nar-0.1.0.0...nar-0.1.1.0) (2023-11-27)
# 0.1.0.0 2024-07-31

* Initial release
* Initial release after a split from `hnix-store-core`

---

`hnix-store-nar` uses [PVP Versioning][1].

[1]: https://pvp.haskell.org

6 changes: 4 additions & 2 deletions hnix-store-nar/hnix-store-nar.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,16 @@ maintainer: [email protected]
copyright: 2018 Shea Levy
category: Nix
build-type: Simple
extra-source-files:
extra-doc-files:
CHANGELOG.md
, README.md
extra-source-files:
README.md
, tests/fixtures/case-conflict.nar

flag bounded_memory
description: Run tests of constant memory use (requires +RTS -T)
default: False
manual: True

common commons
ghc-options: -Wall
Expand Down
3 changes: 1 addition & 2 deletions hnix-store-readonly/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Version [0.1.0.0](https://github.com/haskell-nix/hnix-store/compare/readonly-0.1.0.0...readonly-0.1.1.0) (2023-11-27)
# 0.1.0.0 2024-07-31

* Initial release

Expand All @@ -7,4 +7,3 @@
`hnix-store-readonly` uses [PVP Versioning][1].

[1]: https://pvp.haskell.org

5 changes: 3 additions & 2 deletions hnix-store-readonly/hnix-store-readonly.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,10 @@ maintainer: [email protected]
copyright: 2018 Shea Levy
category: Nix
build-type: Simple
extra-source-files:
extra-doc-files:
CHANGELOG.md
, README.md
extra-source-files:
README.md

common commons
ghc-options: -Wall
Expand Down
19 changes: 18 additions & 1 deletion hnix-store-remote/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,21 @@
# Unreleased 202y-mm-dd
# [0.7.0.0](https://github.com/haskell-nix/hnix-store/compare/remote-0.6.0.0...remote-0.7.0.0) 2024-07-31

* Changes:
* `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.
Fore `-remote`, this affects `runStoreOpts` and its variants [#216](https://github.com/haskell-nix/hnix-store/pull/216)
* The old `MonadStore` is now deprecated and aliased to `RemoteStoreT IO`
* All store operations now use `MonadRemoteStore` typeclass, which `RemoteStoreT` is an instance of
* Couple of `Bool` parameters switched to enums

* Additions
* `addToStoreNAR` store operation [#277](https://github.com/haskell-nix/hnix-store/pull/277)
* `narFromPath` store operation [#279](https://github.com/haskell-nix/hnix-store/pull/279)
* Initial server-side support with proxy daemon acting as MITM proxy,
which allows for testing of both sides of the remote store protocol

The library stability is not quite there yet and should be considered experimental.

# [0.6.0.0](https://github.com/haskell-nix/hnix-store/compare/remote-0.5.0.0...remote-0.6.0.0) 2021-06-06

Expand Down Expand Up @@ -52,3 +63,9 @@ Nothing (it is tandem `hnix-store-core` fix release)
# 0.1.0.0 -- 2019-03-18

* First version.

---

`hnix-store-remote` uses [PVP Versioning][1].

[1]: https://pvp.haskell.org
11 changes: 6 additions & 5 deletions hnix-store-remote/hnix-store-remote.cabal
Original file line number Diff line number Diff line change
@@ -1,19 +1,20 @@
cabal-version: 2.2
name: hnix-store-remote
version: 0.6.0.0
version: 0.7.0.0
synopsis: Remote hnix store
description: Implementation of the nix store using the daemon protocol.
homepage: https://github.com/haskell-nix/hnix-store
license: Apache-2.0
license-file: LICENSE
author: Richard Marko
author: Sorki
maintainer: [email protected]
copyright: 2018 Richard Marko
copyright: 2018 Sorki
category: Nix
build-type: Simple
extra-source-files:
extra-doc-files:
CHANGELOG.md
, README.md
extra-source-files:
README.md
, README.lhs

common commons
Expand Down
2 changes: 1 addition & 1 deletion hnix-store-remote/src/Data/Serializer.hs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
{-|
Description : Serializer data type
Copyright : (c) John Ericson, 2023
Richard Marko, 2023
Sorki, 2023
Stability : experimental
@Serializer@ ties @Get@ and @PutM@ monads
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
{-|
Description : NixSerializer
Copyright : (c) John Ericson, 2023
Richard Marko, 2023
Sorki, 2023
|-}

module System.Nix.Store.Remote.Serializer
Expand Down
3 changes: 1 addition & 2 deletions hnix-store-tests/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Version [0.1.0.0](https://github.com/haskell-nix/hnix-store/compare/tests-0.1.0.0...tests-0.1.1.0) (2023-11-27)
# 0.1.0.0 2024-07-31

* Initial release

Expand All @@ -7,4 +7,3 @@
`hnix-store-tests` uses [PVP Versioning][1].

[1]: https://pvp.haskell.org

9 changes: 5 additions & 4 deletions hnix-store-tests/hnix-store-tests.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,15 @@ description:
homepage: https://github.com/haskell-nix/hnix-store
license: Apache-2.0
license-file: LICENSE
author: Richard Marko
author: Sorki
maintainer: [email protected]
copyright: 2023 Richard Marko
copyright: 2023 Sorki
category: Nix
build-type: Simple
extra-source-files:
extra-doc-files:
CHANGELOG.md
, README.md
extra-source-files:
README.md

common commons
ghc-options: -Wall
Expand Down

0 comments on commit 247be71

Please sign in to comment.