-
-
Notifications
You must be signed in to change notification settings - Fork 160
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[RFC 184] versioned flakes references #184
base: master
Are you sure you want to change the base?
Conversation
--- | ||
## Summary | ||
|
||
Introduce a standardized versioning schema for Nix flakes using [SemVer](https://semver.org/), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is a problem in semver:
how can we prove two packages are semantically same, even if their versions are different?.
It is more reliable if: any package update will trigger "full-rebuilds" for those dependent on it.
I just feel a little bit strange about introducing "SemVer" here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm confused, isn't this RFC about versioning flakes, not packages?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm confused, isn't this RFC about versioning flakes, not packages?
That's the interesting paradox: if we don't use semantic versioning (SemVer) for packages, why should we use SemVer for flakes?
If there are valid reasons for using SemVer with 'flake' dependencies, why wouldn't those same reasons apply to packages as well?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How will you apply semver to nixpkgs flake?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's the interesting paradox: if we don't use semantic versioning (SemVer) for packages, why should we use SemVer for flakes?
If there are valid reasons for using SemVer with 'flake' dependencies, why wouldn't those same reasons apply to packages as well?
- Flake version is about the flake's API surface, while package version is about the package's API surface or whatever upstream wants to do, they are orthogonal to each other
- You can't and shouldn't force developers to use a certain version format for their software, so package versions should be as flexible as possible (nixpkgs of course has no restrictions at all really)
- Flake versions could be automatically resolved, it's well known where to search for versions and how to load them, while neither really applies to packages
I don't have an opinion on this RFC either way but the two situations are certainly very different.
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: https://discourse.nixos.org/t/rfcsc-meeting-2024-11-25/56591/1 |
rendered