Skip to content

Conversation

@Ericson2314
Copy link
Collaborator

The architecture I have in mind is:

  • Harmonia: Pure Rust implementation
  • Nix: Pure C++ implementation
  • these bindings: connect the two together

This is WIP because it depends on a yet-unmerged branch of harmonia.

@Ericson2314
Copy link
Collaborator Author

Ericson2314 commented Nov 29, 2025

The biggest downside to this is that harmonia-store-core is brand new, and so likely to be less stable (as much as I'm trying to keep it "platonic"). But the upsides are great.

@roberth would sticking the harmonia stuff behind a feature flag that is documented as unstable ameliorate that risk? Or maybe it could be a separate crate? (Ideally still in this repo, though.)

@Ericson2314 Ericson2314 marked this pull request as ready for review December 1, 2025 02:53
@roberth
Copy link
Contributor

roberth commented Dec 1, 2025

Velocity can cure many ills. I think the right thing to do is give you a commit bit so we can help each other out with maintaining this thing.
Are you planning to release the core crate to crates.io?
It's something I'd like to do for the bindings crates soonish.

@Ericson2314
Copy link
Collaborator Author

I think the first crates.io release should be without this, as insurance of sorts, but we could follow up with one with this right after.

Happy to help with that first release too.

@Ericson2314
Copy link
Collaborator Author

Ericson2314 commented Dec 1, 2025

Oh and StorePath should be much stabler than Derivation, so that's another good thing to try splitting for release. (And already is split in this PR's commit history, FWIW, just an accident of the order I did things.)

@Ericson2314 Ericson2314 force-pushed the use-harmonia-store-core branch 4 times, most recently from 4615e86 to 2adfd9a Compare December 6, 2025 20:15
@roberth
Copy link
Contributor

roberth commented Dec 6, 2025

I've pushed the same commit to pr-22 to trigger a build. It's a bit ... primitive, but it works :)

@Ericson2314 Ericson2314 force-pushed the use-harmonia-store-core branch from 2adfd9a to 786fe15 Compare December 6, 2025 22:09
Creating a crate for bwd-gc highlights the fact that it would be nice to
fix 2!

The file blocklist is a lost less unmaintainable then the more
fine-grained one we had before.

Fix nixops4#9
This will come in handy later, when we integrate harmonia. It is a very
stable thing to do.
Utilize `harmonia-store-core` for higher level, well-typed, tests. If
the JSON format changes, we update that in that library instead. The
only purpose of raw JSON would be testing obselete JSON formats
versions, which we don't have (that are still supported) yet.
It makes some tests more readable.
@Ericson2314 Ericson2314 force-pushed the use-harmonia-store-core branch from 786fe15 to 1fe5dce Compare December 16, 2025 03:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants