|
|
|
|
|
by adisbladis
796 days ago
|
|
Tvix explicitly targets stable Nix features, so supporting Flakes is a non-goal. Many users have a poor understanding of what Flakes _actually_ are: They are a bit of UX glue on top of existing Nix features: - Input/output schemas for `flake.nix` - A lock file format - CLI features to work with the two above It's entirely feasible to build out a Flake user interface & evaluation support on top of Tvix without making it a first-class evaluator feature.
See https://github.com/edolstra/flake-compat for prior art. The key point of Tvix _not_ having support for Flakes is to not make special snowflake evaluator features that are tied in with it. |
|
Except that it rolls its own CA store[1], which is also not a stable Nix feature. One could argue that it has to roll its own store because Nix wants to own the store, but implementing a shadow version of an experimental feature makes the "they're just targeting stable features" part ring rather hollow.
> The key point of Tvix _not_ having support for Flakes is to not make special snowflake evaluator features that are tied in with it.
That's not really how I read the authors' defense of this choice. It seems like they made it because they disagree with the design decision, and I consider that more defensible than the position you offer. I just wish they would make this information more central, and I will keep posting it in news items about Tvix because no one else is going to. There is no indication that the "Nix" they implement is many years old now, and when they do[2] indicate it, they are vague about why.
[1] https://cs.tvl.fyi/depot/-/blob/tvix/castore/docs/data-model...
[2] https://cs.tvl.fyi/depot/-/blob/tvix/README.md#compatibility