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
rustc: add QA documentation #73296
rustc: add QA documentation #73296
Conversation
@@ -1,3 +1,8 @@ | |||
# After updating check ... | |||
# 1. if rustc can produce rust binaries on x86_64-linux, aarch64-linux and x86_64-darwin: |
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.
Don't really agree with this. For example, I have no ability to test on aarch64 or macOS.
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.
@GrahamcOfBorg usually can build this in time. For aarch64 we have a beefy community builder: https://github.com/nix-community/aarch64-build-box
which I have access to and usually try to build upgrades there and post the result back to the pr thread. For macOS alternatively I have a bunch of nixpkgs maintainer that I can ping instead. We followed this pattern for a while until you started merging rust upgrades without testing.
@@ -1,3 +1,8 @@ | |||
# After updating check ... | |||
# 1. if rustc can produce rust binaries on x86_64-linux, aarch64-linux and x86_64-darwin: | |||
# i.e. nix build -f . fd or @GrahamcOfBorg build fd on github |
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.
What does fd
mean? And to what directory does -f .
refer?
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.
fd
is just a simple rust example that should build on all platforms.
# 1. if rustc can produce rust binaries on x86_64-linux, aarch64-linux and x86_64-darwin: | ||
# i.e. nix build -f . fd or @GrahamcOfBorg build fd on github | ||
# 2. if our LLVM version matches with rust upstream | ||
# 3. if firefox or thunderbird still build on x86_64-linux |
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.
What are the implications of this? E.g. if firefox fails to build, should we simply refrain from updating Rust?
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.
Yes. Because this is a channel blocker. A way to fix it in that case is to to pin rust to an older version for firefox. However breaking firefox in unstable is undesired.
Other usual suspects in rust land: cc @symphorien @jD91mZM2 @zimbatm |
Is there any particular reason why rustc updates have been merged to master? |
Yeah. Maybe I should add this as well, we usually prefer to merge rustc updates to staging. |
Thanks, we should be doing this always. I can recall at least two occasions where this has taken up my time because there were urgent failures on master because of a rustc update. When it's on staging it isn't as urgent and we can fix it during its workflow. |
It now mentions, that rust updates should go to staging first and that one can ask other people for help to test rust on other platforms. In my experience this testing takes less than a week depending on how fast people respond but it is worth it to avoid unnecessary breakages in master. |
Oh, I know this my be rather nitpicky, but maybe just having a |
I think it makes sense to have it inline, as you can't possibly avoid opening that file when updating rust. I'm normally somewhat of an expert at failing to read documentation ;) |
Until recently we've only kept a single version of rust around. With 2 or more versions we could keep the default on a version compatible with firefox as well as make introducing versions much less intrusive. Similar to what we do for most other compilers/interpreters. |
Motivation for this change
Things done
sandbox
innix.conf
on non-NixOS linux)nix-shell -p nix-review --run "nix-review wip"
./result/bin/
)nix path-info -S
before and after)Notify maintainers
cc @