Skip to content
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

rust: Use stable Rust #18839

Merged
merged 2 commits into from
Nov 24, 2022
Merged

Conversation

chrysn
Copy link
Member

@chrysn chrysn commented Nov 3, 2022

Contribution description

Since Rust 1.65, we don't depend on anything nightly any more. This changes the examples and documentation to use stable.

Testing procedure

  • Green CI with tests enabled
  • Look at changed documentation (rendered)

Note that these will not pass yet: This needs a CI update (no PR associated: Any CI image built from now on will do).

Issues/PRs references

A follow-up will simplify things a bit further, but that will depend on CI to have made stable the default, which is a later step in what is a bit of a lock-step game:

@chrysn chrysn added Area: build system Area: Build system Area: Rust Area: Rust wrapper labels Nov 3, 2022
@github-actions github-actions bot added Area: doc Area: Documentation Area: examples Area: Example Applications and removed Area: build system Area: Build system labels Nov 3, 2022
@chrysn chrysn added the State: waiting for CI update State: The PR requires an Update to CI to be performed first label Nov 3, 2022
@chrysn chrysn added the CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR label Nov 3, 2022
@riot-ci
Copy link

riot-ci commented Nov 3, 2022

Murdock results

✔️ PASSED

7583626 doc/rust: Nightly is not needed any more

Success Failures Total Runtime
379 0 379 08m:00s

Artifacts

This only reflects a subset of all builds from https://ci-prod.riot-os.org. Please refer to https://ci.riot-os.org for a complete build for now.

@chrysn chrysn removed the CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR label Nov 3, 2022
@chrysn chrysn added CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR CI: run tests If set, CI server will run tests on hardware for the labeled PR and removed State: waiting for CI update State: The PR requires an Update to CI to be performed first CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR labels Nov 24, 2022
@chrysn
Copy link
Member Author

chrysn commented Nov 24, 2022

Fixed one more obsolete comment and punctuation error in the docs (insta-squashed). This should now be ready.

(If we were in a hurry with getting rid of nightly, it might even be proposed for backporting into any 2022.10.1, but given that nightly just "sits there" after this commit, I don't think we are in a hurry)

@maribu
Copy link
Member

maribu commented Nov 24, 2022

We could still backport it to the 2022.10 branch. I'm not qualified to truly understand the consequences, but to me it looks mostly like a convenience update.

I'd say we can make an exception and backport it (especially on the grounds that I do not think that switching from a nightly toolchain to a stable toolchain branch is scary). But IMO we need to have some solid reasoning for why this cannot just wait for the next release. Would it fix any issues?

@chrysn
Copy link
Member Author

chrysn commented Nov 24, 2022 via email

@maribu
Copy link
Member

maribu commented Nov 24, 2022

Did you say this speeds up the CI times? We need to backport this!!!!!one one eleven

@chrysn
Copy link
Member Author

chrysn commented Nov 24, 2022

The speedup is only in procedures: If this is backported, it'll take us one fewer release to achieve full nightly-freeness through the lockstepping between main git and the CI image. I don't expect any change in build times through the process, except if you count image obtaining times, which will be a few percent faster after RIOT-OS/riotdocker#214.

But anyway, it could need an ACK fish fish before it is backported (or, rather not)

@maribu maribu enabled auto-merge November 24, 2022 19:41
@maribu maribu merged commit 26d5b7c into RIOT-OS:master Nov 24, 2022
@chrysn chrysn deleted the rust-use-stable branch November 28, 2022 16:11
@maribu
Copy link
Member

maribu commented Dec 16, 2022

Let's backport this :)

@maribu
Copy link
Member

maribu commented Dec 16, 2022

Backport provided in #19058

bors bot added a commit that referenced this pull request Jan 12, 2023
19058: rust: Use stable Rust [backport 2022.10] r=maribu a=maribu

# Backport of #18839

### Contribution description

Since Rust 1.65, we don't depend on anything nightly any more. This changes the examples and documentation to use stable.

### Testing procedure

* Green CI with tests enabled
* Look at changed documentation ([rendered](https://ci.riot-os.org/results/2923b30a4ba04dbface1ed38fb6aae12/doc-preview/using-rust.html#toolchain))

<del>Note that these will *not* pass yet: This needs a CI update (no PR associated: Any CI image built from now on will do).</del>

### Issues/PRs references

A follow-up will simplify things a bit further, but that will depend on CI to have made stable the default, which is a later step in what is a bit of a lock-step game:

* [x] CI rebuilds riotdocker -- no PR, then stable=1.65
* [ ] Use stable in examples -- this PR, then examples use stable
* [ ] CI removes nightly and makes stable the default -- RIOT-OS/riotdocker#214, then default=stable
* [ ] Use the new default to simplify makefiles -- #18840

Co-authored-by: chrysn <chrysn@fsfe.org>
bors bot added a commit that referenced this pull request Jan 12, 2023
19058: rust: Use stable Rust [backport 2022.10] r=maribu a=maribu

# Backport of #18839

### Contribution description

Since Rust 1.65, we don't depend on anything nightly any more. This changes the examples and documentation to use stable.

### Testing procedure

* Green CI with tests enabled
* Look at changed documentation ([rendered](https://ci.riot-os.org/results/2923b30a4ba04dbface1ed38fb6aae12/doc-preview/using-rust.html#toolchain))

<del>Note that these will *not* pass yet: This needs a CI update (no PR associated: Any CI image built from now on will do).</del>

### Issues/PRs references

A follow-up will simplify things a bit further, but that will depend on CI to have made stable the default, which is a later step in what is a bit of a lock-step game:

* [x] CI rebuilds riotdocker -- no PR, then stable=1.65
* [ ] Use stable in examples -- this PR, then examples use stable
* [ ] CI removes nightly and makes stable the default -- RIOT-OS/riotdocker#214, then default=stable
* [ ] Use the new default to simplify makefiles -- #18840

Co-authored-by: chrysn <chrysn@fsfe.org>
bors bot added a commit that referenced this pull request Jan 12, 2023
19058: rust: Use stable Rust [backport 2022.10] r=miri64 a=maribu

# Backport of #18839

### Contribution description

Since Rust 1.65, we don't depend on anything nightly any more. This changes the examples and documentation to use stable.

### Testing procedure

* Green CI with tests enabled
* Look at changed documentation ([rendered](https://ci.riot-os.org/results/2923b30a4ba04dbface1ed38fb6aae12/doc-preview/using-rust.html#toolchain))

<del>Note that these will *not* pass yet: This needs a CI update (no PR associated: Any CI image built from now on will do).</del>

### Issues/PRs references

A follow-up will simplify things a bit further, but that will depend on CI to have made stable the default, which is a later step in what is a bit of a lock-step game:

* [x] CI rebuilds riotdocker -- no PR, then stable=1.65
* [ ] Use stable in examples -- this PR, then examples use stable
* [ ] CI removes nightly and makes stable the default -- RIOT-OS/riotdocker#214, then default=stable
* [ ] Use the new default to simplify makefiles -- #18840

Co-authored-by: chrysn <chrysn@fsfe.org>
bors bot added a commit that referenced this pull request Jan 12, 2023
19058: rust: Use stable Rust [backport 2022.10] r=miri64 a=maribu

# Backport of #18839

### Contribution description

Since Rust 1.65, we don't depend on anything nightly any more. This changes the examples and documentation to use stable.

### Testing procedure

* Green CI with tests enabled
* Look at changed documentation ([rendered](https://ci.riot-os.org/results/2923b30a4ba04dbface1ed38fb6aae12/doc-preview/using-rust.html#toolchain))

<del>Note that these will *not* pass yet: This needs a CI update (no PR associated: Any CI image built from now on will do).</del>

### Issues/PRs references

A follow-up will simplify things a bit further, but that will depend on CI to have made stable the default, which is a later step in what is a bit of a lock-step game:

* [x] CI rebuilds riotdocker -- no PR, then stable=1.65
* [ ] Use stable in examples -- this PR, then examples use stable
* [ ] CI removes nightly and makes stable the default -- RIOT-OS/riotdocker#214, then default=stable
* [ ] Use the new default to simplify makefiles -- #18840

Co-authored-by: chrysn <chrysn@fsfe.org>
@kaspar030 kaspar030 added this to the Release 2023.01 milestone Jan 19, 2023
bors bot added a commit to RIOT-OS/riotdocker that referenced this pull request Oct 13, 2023
214: rust: Only install stable toolchain r=chrysn a=chrysn

Closes: #208

As of Rust 1.65, there is no need for nightly versions of Rust for RIOT any more.

Currently, this will likely (i.e. unless the nightly selection script happens to manage the case of no nightlies by assigning stable instead) not build, and depends on RIOT-OS/RIOT#18839 which switches away from nightlies. (See there for an overview of all lockstepping involved)

Co-authored-by: chrysn <chrysn@fsfe.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: doc Area: Documentation Area: examples Area: Example Applications Area: Rust Area: Rust wrapper CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR CI: run tests If set, CI server will run tests on hardware for the labeled PR
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants