haskell-nix / hnix

A Haskell re-implementation of the Nix expression language
https://hackage.haskell.org/package/hnix
BSD 3-Clause "New" or "Revised" License
741 stars 114 forks source link

Switch `Derivation` in `Nix.Effects.Derivation` to use `nix-derivation` package #1098

Open sorki opened 7 months ago

sorki commented 7 months ago

The type should wrap nix-derivation Derivation and extend it with

fields. Could be called e.g. HnixDerivation.

Ericson2314 commented 7 months ago

I sort of think nix-derivation perhaps should just be merged into hnix-store-core. Maybe this is a good thing to talk to @Gabriella439 about.

sorki commented 7 months ago

Well I have commit bit for nix-derivation (but not on Hackage) so I don't really care where it lives - I kind-of like our distributed nature TBH :smiley_cat:

Ericson2314 commented 7 months ago

Yeah I guess same repo (for cross-cutting refactors) is more important than same library for me. I would definitely want to give @gabriella439 commit bit to the hnix-store repo in exchange for eating her library if we do do this, that way there is no loss in number of cooks in the kitchen!

Gabriella439 commented 7 months ago

My only concern is the dependency footprint of hnix-store-core (in particular, saltine, which has a dependency on a C library)

sorki commented 7 months ago

My only concern is the dependency footprint of hnix-store-core (in particular, saltine, which has a dependency on a C library)

I would keep it as a separate package provided it is pretty much done and self-contained so it won't suffer from this - also @Ericson2314 also means it like that I think - to make it easier to do ~cross-repository~ (edit: cross-library in single repository) refactors.

Tomorrow I want to split -core into two more librariers -nar and -readonly to have -core contain mostly core types and to make dependencies easier to manage (https://github.com/haskell-nix/hnix-store/issues/233 & https://github.com/haskell-nix/hnix-store/issues/235)

sorki commented 7 months ago

provided it is pretty much done and self-contained

Maybe except for the differentiation of BaseDerivation and Derivation which differ in just a single field we need to ignore in remote store protocol but that's not a big deal and maybe not even worth having a separate type

Gabriella439 commented 7 months ago

as far as ownership goes i'm happy to transfer ownership / grant commit bits / relocate the repository as desired