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: test on stable #17805

Merged
merged 2 commits into from Apr 7, 2022
Merged

Conversation

chrysn
Copy link
Member

@chrysn chrysn commented Mar 14, 2022

Contribution description

This

  • updates Rust dependencies (pulling in a few changes that enable building on all platforms on beta) already done in {examples,tests}/rust: Rust updates #17806
  • changes 21 out of 3 tests/examples to actually run on beta (while the gcoap test stays on nightly, conveniently ensuring that we still have coverage on both, even though it is rather unlikely that things that work on beta (well, at least on stable) break on nightly)
  • updates documentation to reflect all that.

Testing procedure

  • Green CI

(If it complains about beta not being installed, workers may need a boot)

Issues/PRs references

One more piece of progress for #17526 (now we're testing it as well).

Edit / update

In the interest of not making lives of new users more complicated than necessary, both examples are now still on nightly even though hello world would work on stable -- but in my experience a hello world example is commonly used as a stepping stone / scaffolding, and right now people would need to switch to nightly as soon as they add, eg. SAUL, or enable the shell. (As things are now, GATs are probably stabilized in 1.62, ie. in time for 2022.07, and everything that's wrapped is stable, including CoAP wrappers).

@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 Area: Rust Area: Rust wrapper labels Mar 14, 2022
@chrysn chrysn changed the title Rust test on beta rust: test on beta Mar 14, 2022
@github-actions github-actions bot added Area: doc Area: Documentation Area: examples Area: Example Applications Area: tests Area: tests and testing framework labels Mar 14, 2022
@chrysn chrysn added the State: waiting for CI update State: The PR requires an Update to CI to be performed first label Mar 14, 2022
@chrysn
Copy link
Member Author

chrysn commented Mar 14, 2022

Of the many build failures stemming from riotbuild and riotci-worker not being updated yet, comsys found one that is actually bad:

   Compiling riot-sys v0.7.4
error[E0554]: `#![feature]` may not be used on the beta release channel
  --> /data/riotbuild/.cargo/registry/src/github.com-1ecc6299db9ec823/riot-sys-0.7.4/src/lib.rs:78:46
   |
78 | #![cfg_attr(target_arch = "riscv32", feature(core_intrinsics))]
   |                                              ^^^^^^^^^^^^^^^

For more information about this error, try `rustc --explain E0554`.
error: could not compile `riot-sys` due to previous error

Will investigate (I know that issue but it should have been worked around already) ...

@chrysn
Copy link
Member Author

chrysn commented Mar 14, 2022

Rebased onto #17806 which fixes the RISC-V issue.

@chrysn chrysn added CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR and removed CI: run tests If set, CI server will run tests on hardware for the labeled PR CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR State: waiting for CI update State: The PR requires an Update to CI to be performed first labels Mar 14, 2022
@chrysn chrysn added the CI: run tests If set, CI server will run tests on hardware for the labeled PR label Mar 15, 2022
@github-actions github-actions bot removed the Area: examples Area: Example Applications label Apr 7, 2022
@chrysn chrysn added State: waiting for CI update State: The PR requires an Update to CI to be performed first and removed CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR labels Apr 7, 2022
@chrysn chrysn changed the title rust: test on beta rust: test on stable Apr 7, 2022
@chrysn
Copy link
Member Author

chrysn commented Apr 7, 2022

This has now been updated as planned to go to "stable" right away, which is being released. CI can be enabled once the corresponding CI PR has migrated to the workers.

@chrysn chrysn added this to the Release 2022.04 milestone Apr 7, 2022
@chrysn chrysn added CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR State: waiting for CI update State: The PR requires an Update to CI to be performed first 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 Apr 7, 2022
chrysn added a commit to chrysn-pull-requests/awry that referenced this pull request Apr 7, 2022
Since [17805] (part of the 2022.04 release), RIOT's test case for Rust is built on stable on all platforms.

[17805]: RIOT-OS/RIOT#17805
@chrysn chrysn requested a review from maribu April 7, 2022 17:35
@maribu maribu enabled auto-merge April 7, 2022 18:03
@maribu maribu disabled auto-merge April 7, 2022 18:03
@chrysn chrysn merged commit ddaea98 into RIOT-OS:master Apr 7, 2022
@chrysn chrysn deleted the rust-test-on-beta branch April 7, 2022 18:04
@maribu
Copy link
Member

maribu commented Apr 7, 2022

I just saw that the CI run only took 2 minutes, briefly panicked, that realized that this is one of the cases where can_fast_ci_run.py was able to limit the build to one application only :) So everything is fine.

Congratz for the mayor step towards rust on RIOT :) 🎉

@chrysn
Copy link
Member Author

chrysn commented Apr 7, 2022

Thanks! Yeah, the 2 minutes are real -- it'll get worse again once Rust based modules are in. At least until changes to modules only run the build tests where these modules are in, then ideally a change to "everything Rust" would cause murdock to run all Rust examples, plus all builds that enable such a module (which would be all SAUL-using examples on microbit-v2, currently).

newAM pushed a commit to newAM/awry that referenced this pull request Apr 7, 2022
Since [17805] (part of the 2022.04 release), RIOT's test case for Rust is built on stable on all platforms.

[17805]: RIOT-OS/RIOT#17805
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: doc Area: Documentation Area: Rust Area: Rust wrapper Area: tests Area: tests and testing framework 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.

None yet

2 participants