RIOT
RIOT copied to clipboard
treewide: Rust updates [backport 2024.01]
Backport of #20303
Contribution description
This PR does three things that are easiest done in one go (because due to git dependencies otherwise it would require selective updates):
- It does a big round of Rust dependency updates. Notable changes are:
- riot-sys: SUIT headers included, ADC line macros fixed, missing include paths fixed (b4bd4bde..501b3540)
- riot-wrappers (fbc6cfe8..05835b3d) -- PRs excluding CI and test related ones that have no impact on RIOT applications themselves:
- Additions (note that updates on the trait crates coap-message and embedded-hal are compatible, they add traits rather than updating dependencies):
- https://github.com/RIOT-OS/rust-riot-wrappers/pull/60
- https://github.com/RIOT-OS/rust-riot-wrappers/pull/72
- https://github.com/RIOT-OS/rust-riot-wrappers/pull/73
- https://github.com/RIOT-OS/rust-riot-wrappers/pull/63
- https://github.com/RIOT-OS/rust-riot-wrappers/pull/67
- Enhancements:
- https://github.com/RIOT-OS/rust-riot-wrappers/pull/57
- https://github.com/RIOT-OS/rust-riot-wrappers/pull/56
- https://github.com/RIOT-OS/rust-riot-wrappers/pull/34
- https://github.com/RIOT-OS/rust-riot-wrappers/pull/62
- https://github.com/RIOT-OS/rust-riot-wrappers/pull/61
- https://github.com/RIOT-OS/rust-riot-wrappers/pull/51
- https://github.com/RIOT-OS/rust-riot-wrappers/pull/49
- Additions (note that updates on the trait crates coap-message and embedded-hal are compatible, they add traits rather than updating dependencies):
- coap-message is updated to version 0.3 (and coap-handler to 0.2), this allows non-fatal errors in CoAP (previously it was up to the application to ensure that data not representable by the stack is not sent there)
- The lsm303agr crate backing the lsm303agr driver is now used in version 1.0. Improvements both there and in the interface mean that it would trigger I2C errors in nRF52, thus this PR is based on #20299 which is its first commit.
Testing procedure
- CI completes
- Run saul on microbit-v2, reading sensors 7 and 8
- Run rust-gcoap on native, test with
aiocoap-client 'coap://[fe80::3c63:beff:fe85:ca96%tapbr0]/vfs/'
Issues/PRs references
Based on #20299
Murdock results
:heavy_check_mark: PASSED
4b294e95eca18ea9a6851e69995e4ee6a2ac44b0 treewide: cargo update
Success | Failures | Total | Runtime |
---|---|---|---|
8613 | 0 | 8613 | 10m:52s |
Artifacts
That auto-backport didn't do what it should have done because GitHub doesn't understand stacked PRs; it should only consist of https://github.com/MrKevinWeiss/RIOT/commit/002cd42e26e7fbc3140e9d7aa5a1788bfa9f70f9.
I don't yet understand why the CI fails, may be related.
Correction: It should just be the top 4 commits (as we're backporting the full PR). Only the first slid in from https://github.com/RIOT-OS/RIOT/pull/20299 and should not be in unless we backport https://github.com/RIOT-OS/RIOT/pull/20299 too (which is probably a good fix to have but then is more than is necessary to fix the issue at hand). The later commits ("use version 0.3", "use version 1.0", "update to coap-handler" and the "cargo update" due to which we're doing this) don't depend on the 20299 one fundamentally, they just are testable much more easily once that older one is in.
I am not quite sure what you wanted, I have just the cargo update. Should I have "use version 0.3", "use version 1.0", "update to coap-handler" and the "cargo update" or should it have been only the 790e808deba36233daeead2d1ed4ba438de05d8a?
Or is it everything but 790e808deba36233daeead2d1ed4ba438de05d8a...
I repushed with my best guess.
https://github.com/RIOT-OS/RIOT/pull/20383 needs to be merged first, otherwise the CI will fail