plugins/rust_plugin: rewrite the plugin to improve UX
Metadata
Current evaluation
Merged via commit 939e6d77, rewriting the Rust plugin to install Rustup by default and adding LTO, toolchain-channel, and default-feature controls.
Resolution: closed resolved
Reason: PR #530 was merged as commit 939e6d77 after approval. The rewrite was completed with the requested UX and configuration improvements.
Evaluated by: mr-cal-bot
No scores available.
Issue body
- [X] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)?
-----
The new plugin will install the Rustup toolchain by default (opt-out possible) and also makes it more intelligent.
Three new options have been added:
- One option for enabling LTO (more optimized binary)
- One option for specifying Rust toolchain channel/version
- One option for disabling default features in the Rust crate
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | Merged via commit 939e6d77, rewriting the Rust plugin to install Rustup by default and adding LTO, toolchain-channel, and default-feature controls. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged in canonical/craft-parts#530 (939e6d77), rewriting the Rust plugin with default Rustup installation, LTO, toolchain selection, and default-feature controls. | |
| qwen/qwen3.6-35b-a3b | — | — | Merged a Rust plugin rewrite improving UX with default Rustup, LTO, toolchain version, and feature toggles. Failing tests for Ubuntu 20.04 Chisel support were resolved via a separate PR and rebasing prior to merge. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged rewrite of the Rust plugin to improve UX, adding Rustup installation, LTO, toolchain version, and default feature options. CI failures were resolved via rebase and test updates for changed Chisel support. Documentation sync noted. |
Update history
No update history recorded yet.
Related work
-
Related To:
canonical/craft-parts#560
(confidence 95%)
Follow-up PR merged as fbefe6b8 to fix issues in the rewritten Rust plugin, including #559.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #2434 rust plugin: refactor to use the latest rustup | snapcraft | merged | Merged PR #2434 in commit 3e821ca8d, updating the Rust plugin for current rustup, sharing toolchain storage, and adopting .cargo/config. | |
| #4297 Rust plugin: rewrite the Rust plugin for core20 | snapcraft | merged | Merged as snapcore/snapcraft#4297 (b357ef5e7): added a core20 Rust plugin on the new plugin system with LTO, toolchain selection, and default-feature controls. | |
| #2538 rust plugin: fix usage of rust-channel | snapcraft | merged | Merged PR #2538 fixed Rust plugin toolchain setup by using rustup instead of the obsolete rustup.sh --channel argument; resolving commit: 4eb089546. | |
| #2431 rust plugin: update to use latest rustup command options | snapcraft | merged | Merged PR #2431 updated the Rust plugin to use current rustup options instead of deprecated commands; landed as commit 3e821ca8d. | |
| #1467 rust plugin: new rustup | snapcraft | closed | Updated the Rust plugin’s outdated rustup download link via merged PR #2438 (commit ea6caa72b), resolving LP bug #1662960. | |
| #560 rust_plugin: multiple fixes | craft-parts | merged | Merged rust_plugin fixes: removed typing checks around the rust_channel override and added detection/removal of installed compiler plugins via the .data.rel.ro symbol. Squash-merged as fbefe6b8; fixes #559. | |
| #3061 plugins: introduce v2.RustPlugin | snapcraft | merged | Merged PR #3061 as commit e106d6eb7, introducing v2.RustPlugin and integrating it across 26 files after maintainer approval. | |
| #626 feat(rust_plugin): use `rustup` snap and more options | craft-parts | merged | Merged as 41d9e952 and released in craft-parts 1.27.0, switching the Rust plugin to the rustup Snap and adding configuration options. |