-
-
Notifications
You must be signed in to change notification settings - Fork 14.2k
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
treewide: Deprecate platform aliases #45717
treewide: Deprecate platform aliases #45717
Conversation
Nah, I don't think there's a need to deprecate anything. |
I'm probably getting confused by build/host/target again, but shouldn't the source tarball conditions use |
Current state of this PR's changes is confusing:
|
Hehe that's me hoping the first PR is more palatable than the second. It would be nice to at least get the whole suite of "top-level depreciations" if they both really would like |
Yes, this is a real use-case: NixOps has to support multiple NixOS versions. So deprecation warnings are annoying because either we get warnings on newer NixOS versions, or we fix the warnings and break support for the older versions. |
What versions of NixOS does NixOPS currently attempt to support? Is this documented anywhere? |
Also, I offer to personally backport |
These system strings are what I and other people know, this other stuff I have no idea even existed. (And given these sort of checks are needed only in ultra rare situations, probably shouldn't since to me they seem to raise more questions than they answer, e.g what's this
Same thing, if there is no real practical difference, the interface that people know is better.
Both Buildroot and OpenWRT seem to have e.g. |
So what? The deprecation warning brings awareness to the new interface. It's absurd to argue against advertising the new interface and then complain it's not well known.
5
The field is only present for ARM, as it's not clear what it should be elsewhere when we don't have multiple versions anyways.
iOS. I do use Nix and nixpkgs to build iOS apps for work, so this is not at all hypothetical. But that to me is besides the point. Except for things like prebuilt binaries, it's usually clear when some change is because of the OS or because of the CPU. If say, we're supporting
It is not unlikely one would want to use Clang for these things. compiler-rt provides atomics too, but either library can be used.
As an aside, I'm not even sure it is a better known interface. Outside of Nix I probably see But yes, I do concede that at the moment prebuilt binaries tend do only bother with one ABI per CPU+OS. |
IMHO, we should really reconsider whether these gratuitous deprecations/removals/renames are a good idea. They all add a little bit of friction to each NixOS upgrade, which, given enough of them, adds up to a lot of friction. Ideally you should be able to try out a newer NixOS version without having to make lots of little changes to your configuration modules / Nix packages, and to use those in multiple NixOS versions without having to put in lots of version conditionals. |
I guess this won't make it into 18.09 or 19.03 ;-) I updated the PR title. I think we should come to a consensus about deprecations. Could somebody revive RFC 0033? |
Yes this is blocked on that RFC, which I do mean to get back to. (I am technically coauthor but haven't done anything yet!! 😲). |
Thank you for your contributions.
|
rfc33 was closed. Should we keep this one open? |
As stated by @Ericson2314 in #45717 (comment), this is blocked on an RFC, which is yet to be revived. I propose closing it for now - as the PR doesn't apply cleanly either and is not actionable atm. |
Find with me |
For more information about *why* this is desirable, see NixOS#45717 and NixOS#27069
The first commit is succinct and does the depredations. You can just read it, but they are:
The rest make Nixpkgs itself comply. If this is accepted, sometime after 18.09 is forked I'll merge another PR to actually remove them.
Motivation for this change
See #27069. This makes there be only one non-deprecated way to inspect the build/host/target platform in most cases.
stdenv.is*
is kept, unlike as in in the issue, since it is the most popular and already a shorthand.The
configureFlags
change is unrelated except I earlier did the work of making nixpkgs obey it. It would be nice to deprecate that too so the work doesn't just bit-rot away.Things done
No hashes should be changed.
sandbox
innix.conf
on non-NixOS)nix-shell -p nox --run "nox-review wip"
./result/bin/
)nix path-info -S
before and after)