Flake input.urls (plural) #459
Labels
No labels
Area/build-packaging
Area/cli
Area/evaluator
Area/fetching
Area/flakes
Area/language
Area/profiles
Area/protocol
Area/releng
Area/remote-builds
Area/repl
Area/store
bug
crash 💥
Cross Compilation
devx
docs
Downstream Dependents
E/easy
E/hard
E/help wanted
E/reproducible
E/requires rearchitecture
imported
Needs Langver
OS/Linux
OS/macOS
performance
regression
release-blocker
RFD
stability
Status
blocked
Status
invalid
Status
postponed
Status
wontfix
testing
testing/flakey
ux
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lix-project/lix#459
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Is your feature request related to a problem? Please describe.
See #444 (comment)
I want to have mirrors for inputs so I don’t have to rely on a single service being up (unlike
input.url
which allows just one mirror). Not only does this make your system more resilient, but it promotes others to put out multiple mirrors to their software (maybe even outside of proprietary code forges!).Describe the solution you'd like
Like how many fetchers like
fetchzip
haveurl
&urls
, allow Flake inputs to support a list of URLs as mirrors. Whether or not these are raced, downloaded in parallel as mirrors, or fallbacks for a downed server, I do not have a strong feeling towards.Describe alternatives you've considered
This would be an very cool feature! The main issue I see is that this will break compatibility with all other nix implementations, even the current version of lix itself:
There is also currently no versioning for flakes like there is for profile manifests.
So any flake using it would probably not be usable by most people.
@ifreilicht My perception could be wrong, but isn’t part of the hope for Lix to ‘fix’ Flakes since upstream refuses to actually touch Flake stuff? I would love to report this upstream instead, but I am afraid it would never get looked at (& I hate using MS GitHub). I feel strongly that this was a major misstep in Flake design as it was definitely accounted for in the base fetchers. Personally I wouldn’t mind making my project ‘Lix only’ if that meant I could properly have mirrors. The realest shame here, as pointed out, is that this straight-up breaks to add additional keys as invalid rather than ignoring unknown attrset keys for alternative implementations to actually use. Maybe it would at least be possible to get NixCpp to be less strict in this specific area if they don’t want to improve the UX. Might there also be the opposite effect where if a feature is good & popular in Lix that it would put pressure on Nix to adopt it as well? (This conversation is getting pretty out of scope for the specific bug, but I don’t quite understand the process).
Ah ha. This time using different keywords I did find the Nix issue https://github.com/NixOS/nix/issues/7007 on the NixCpp MS GitHub forge. It was opened in 2022 & has seen no action or response (probably since it is Flakes-related).
Well, kinda, but not necessarily by changing the basic structure of flakes. From the wiki (Why Lix? > Views on Flakes):
I don't know if that's still the current position, though, I'm not deeply immersed in the community.
Yes, I believe that is still the current position. Flakes, to me personally, are a constant liability and drain on resources but we absolutely must support them, and making them incompatible sounds like no end of pain.
Making things stricter by contrast will not break other implementations.
Ok, then I think this can be closed as won't fix.