-
-
Notifications
You must be signed in to change notification settings - Fork 13.7k
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
Thoughts on isInOldestRelease
#291939
Comments
You're suggesting a slower deprecation cycle of up to 14 months.
They have implement the changes at some point.
I'd be excited to have a better name for it. Probably part of the problem is talking about EOL while passing the release in which it's implemented instead. I've tried to make it do too much, trying to bake policy instead of just mechanism into the function. |
Or we could make a proper high-level interface: |
Ohh I was missing a crucial part: Lines 175 to 177 in 273e190
I thought that So this means that there's a nice step ladder of:
And during release 23.11, third-party projects will get reports of the warning from unstable users, prompting them to switch to the new feature ahead of release 24.05. So this is looking good to me after all :) |
Something like that would be much better imo. This very much reminds me of my old RFC 33, though I'm not sure if it took this into account. I don't think this is high-priority issue, but let's leave it open to track |
I suppose that's easy to miss. Certainly the name didn't help. A good name would probably be 80 characters... or like 3 so that everyone must read the docs... |
This
isInOldestRelease
function is super confusing, but I'm pretty sure it's meant to be used when you introduce a new feature (substitutions
here) to deprecate a feature (replacements
here).So the "is in oldest release" terminology refers to the new feature being in the oldest supported release.
If the warning was unconditional, the problem is that third-party projects that aim to support all stable NixOS releases will struggle during the 1 month period in which there's two stable releases, because:
So the third-party project could either:
By using
isInOldestRelease
here, there's no warning for the old feature during the 1 month period where both releases are stable. Therefore no users will be upset.Though this does push the problem around a bit, because as soon as the previous release isn't supported anymore, the warning will start appearing. So in order to actually avoid warnings for users, the third-party project has to synchronise releases to NixOS, which doesn't seem ideal.
It might be better to have a version of
isInOldestRelease
that is delayed by one more release, such that third-party projects have an entire release cycle to start using the new feature.Originally posted by @infinisil in #287364 (comment)
Ping @roberth
The text was updated successfully, but these errors were encountered: