-
Notifications
You must be signed in to change notification settings - Fork 12
Switch L2 images to use Debian Backports instead of Rustup #52
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
Open
alexhulbert
wants to merge
3
commits into
trunk/l2
Choose a base branch
from
dyn-backports-l2
base: trunk/l2
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+24
−12
Open
Changes from all commits
Commits
Show all changes
3 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,18 @@ | ||
| #!/bin/bash | ||
|
|
||
| # The mkosi sandbox environment should have a debian backports source list | ||
| # that matches the archive timestamp of the main release. | ||
| # See https://github.com/systemd/mkosi/issues/1755 | ||
| MIRROR=$(jq -r .Mirror /work/config.json) | ||
| if [ "$MIRROR" = "null" ]; then | ||
| MIRROR="http://deb.debian.org/debian" | ||
| fi | ||
|
|
||
| cat > "$SRCDIR/mkosi.builddir/debian-backports.sources" <<EOF | ||
| Types: deb deb-src | ||
| URIs: $MIRROR | ||
| Suites: ${RELEASE}-backports | ||
| Components: main | ||
| Enabled: yes | ||
| Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg | ||
| EOF |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,6 +1,3 @@ | ||
| rust: | ||
| version: 1.91.1 | ||
|
|
||
| node_healthchecker: | ||
| git_reference: v0.1.11 | ||
|
|
||
|
|
||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
questoin:
how can we control which version of rust is being used for builds?
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.
to update rustc/cargo to the latest version, you can update the timestamp in l2/_op_rbuilder/mkosi.conf
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.
not necessarily to the latest, but to an arbitrary one. preferably not via some timestamp, but by just specifying the version itself
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.
why is this necessary?
Uh oh!
There was an error while loading. Please reload this page.
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.
rust is significantly better than other languages when it comes to backwards compatibility. for example, when i worked at repl.it, we had to upgrade the machines that hundreds of thousands of active, paying users were using to compile their software without breaking anything. so, we had complex mechanisms to pin compiler toolchains to specific versions for every language except rust, since with rust, the latest version always has better compatibility than some specific version. they have maintained the strict invariant in their compiler than anything that works on some version of rust will always work on subsequent versions, and they gone through great lengths to have not ever have broken that rule.
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.
rust might be absolutely best at backwards compatibility, but that won't rule out people factor.
in situations when something doesn't work quite as expected inside one or another of our rust dependencies, I don't want to end up in discussions with the maintainers of said dependency that go along the lines of: "our official build uses rust XXX but you guys use version XXX+N, maybe that's why. can you try using XXX and then report back to us?"
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 can guarantee you no competent rust engineer would say this
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.
if you're curious why i'm so confident in my opinion on this, you can read the following blog post by one of the leaders of Rust, specifically the section on stability: https://blog.m-ou.se/rust-standard/
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.
with all due respect, I don't think anyone on this planet can speak for all 100% of the competent rust engineers population.
but apart from the subjectivities above, what exactly are we winning with the presented change?