← Back to issue list

rust plugin: Support `disable-parallel` parameter

View original Github issue

Metadata

Project
craft-parts
Number
#1250
Type
issue
State
open
Author
lengau
Labels
Type: Enhancement Status: Needs information
Created
Updated
Closed
—

Current evaluation

Request to honor the documented `disable-parallel` part property in the rust plugin. Maintainer-opened, labeled Needs information, explicitly deprioritized pending a real-world use case; rust_plugin.py still builds with cargo defaults.

Suggested action: keep open

Reason: The gap is real and verifiable: `disable_parallel` is a documented PartSpec field (craft_parts/parts.py:248, part_properties.rst:94) and only `AutotoolsPluginProperties.disable_parallel` (autotools_plugin.py:49, used at line 133 to switch `make -jN` to plain `make`) implements it — `RustPluginProperties` and `get_build_commands` contain no parallel handling, so `cargo install`/`cargo build` ignore the key. It is a valid, already-triaged enhancement with maintainer acknowledgement (authored by maintainer lengau, labeled 'Type: Enhancement' and 'Status: Needs information'), and per the body it is 'extremely low priority until someone shows us a real-world use case' — that open question warrants needs-information handling rather than closure, and the maintainer's request is for a reproducer, not a stale reporter non-response. Impact stays low because no known Rust project fails to build in parallel and the fix is additive/consistency work; complexity is low since the autotools plugin provides a clear precedent (add `-j 1` to both the `cargo install` and `cargo build` command paths plus a unit test).

Evaluated by: mr-cal-bot

Impact: 22 Quick Win: 10 Complexity: 22 Confidence: 80 Actionability: 58

Issue body

### What needs to get done Support the [disable-parallel](https://canonical-craft-parts.readthedocs-hosted.com/latest/common/craft-parts/reference/part_properties/#disable-parallel) part property in the rust plugin. ### Why it needs to get done All of our plugins should theoretically support this. In practice though, this is extremely low priority until someone shows us a real-world use case for it. If someone can bring us a real-world use case that we can test against (especially a case of "this application simply does not build with parallel"), that would be ideal. The [autotools plugin](https://github.com/canonical/craft-parts/pull/1167) required this for OpenJDK builds, for example.

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha
Impact: 22
Quick Win: 10
Complexity: 22
Confidence: 80
Actionability: 58
keep open Request to honor the documented `disable-parallel` part property in the rust plugin. Maintainer-opened, labeled Needs information, explicitly deprioritized pending a real-world use case; rust_plugin.py still builds with cargo defaults.
qwen/qwen3.6-35b-a3b
Impact: 30
Quick Win: 13
Complexity: 40
Confidence: 75
Actionability: 70
keep open Add disable-parallel part property support to the rust plugin to allow disabling parallel cargo builds
qwen/qwen3.8-27b
Impact: 15
Quick Win: 13
Staleness: 82
Complexity: 15
Confidence: 78
Support Request: 10
close stale Feature request to add the disable-parallel part property to the rust plugin. Labeled 'Needs information' — maintainer awaits a real-world use case before implementing. No activity for 363 days; rust plugin still lacks the property.
qwen/qwen3.6-35b-a3b
Staleness: 90
Complexity: 35
Confidence: 85
Support Request: 10
close stale Request to add disable-parallel property support to the rust plugin. Marked as low-priority enhancement awaiting a real-world use case, with no maintainer activity or updates for over 10 months.
qwen3.6-35b-a3b-mtp-q6
Staleness: 80
Complexity: 30
Confidence: 75
Support Request: 10
close stale Enhancement to add disable-parallel property to the rust plugin. Open for 309 days with no activity or use case provided, awaiting maintainer decision on backlog status.

Update history

No update history recorded yet.

Related work

  • Related To: craft-parts#1232 (confidence 95%)

    Sibling 'ant plugin: Support `disable-parallel` parameter' issue from the same batch, likewise open with no use case provided.

  • Related To: craft-parts#1240 (confidence 95%)

    Sibling java plugin issue; the java plugin uses `make -j{parallel_build_count}`, so it shares the same code shape as the rust plugin's cargo invocation.

  • Related To: craft-parts#1237 (confidence 95%)

    Sibling go plugin issue; go_plugin.py:165 passes `-p "{parallel_build_count}"`, the same pattern needing a disable-parallel branch.

  • Related To: craft-parts#1242 (confidence 95%)

    Sibling make plugin issue; make_plugin.py:86 emits `-j"{parallel_build_count}"` and is the closest analogue to the already-implemented autotools case.

  • Related To: craft-parts#1167 (confidence 90%)

    PR explicitly cited in the issue body as the autotools implementation required for OpenJDK builds; confirmed landed (changelog: 'The Autotools plugin now supports the disable-parallel key.') and serves as the reference pattern.

  • Related To: craft-parts#1246 (confidence 90%)

    Sibling npm plugin issue from the same disable-parallel batch.

Related issues

Issue Project State Summary Similarity
#1233 cargo-use plugin: Support `disable-parallel` parameter craft-parts open Cargo-use lacks the disable-parallel part property; the maintainer marked it Needs information and is waiting for a real-world Rust build that fails with parallel execution.
84%
#1237 go plugin: Support `disable-parallel` parameter craft-parts open Adding disable-parallel support to the Go plugin remains open and low priority, pending a concrete real-world use case or application that fails with parallel builds.
78%
#1232 ant plugin: Support `disable-parallel` parameter craft-parts open Ant plugin support for disable-parallel is unimplemented; the request remains open as Needs information, with maintainers requesting a real-world case that fails under parallel builds.
78%
#1242 make plugin: Support `disable-parallel` parameter craft-parts open Enhancement: make plugin should honor the disable-parallel part property (currently always emits make -j"N"). Filed by a maintainer, labeled Triaged/Enhancement, and explicitly deferred as "extremely low priority" until a real-world non-parallel-build use case is supplied; autotools already has it via PR #1167.
78%
#1249 qmake plugin: Support `disable-parallel` parameter craft-parts open Enhancement: add disable-parallel support to the qmake plugin. Maintainer-filed, labeled Needs information; explicitly deferred as low priority pending a real-world use case. One of six sibling per-plugin issues (cmake, meson, make, go, rust).
77%
#1247 python plugin: Support `disable-parallel` parameter craft-parts open Python plugin support for compiled-wheel parallel control remains unimplemented; maintainers are awaiting a real-world case and resolution of tri-state semantics versus setting CRAFT_PARALLEL_BUILD_COUNT=1.
77%
#1239 gradle plugin: Support `disable-parallel` parameter craft-parts open Feature request: add `disable-parallel` support to the gradle plugin. Maintainer labels it low-priority, 'Needs information', asking for a real-world use case that fails under parallel builds; design (None/False/True) sketched in a comment.
76%
#1243 maven plugin: Support `disable-parallel` parameter craft-parts open Maven plugin support for disable-parallel remains unimplemented; the open enhancement is maintainer-marked Needs information and deliberately low priority pending a real-world failing build.
75%
#1235 dotnet plugin: Support `disable-parallel` parameter craft-parts open Maintainer-filed enhancement: dotnet plugin does not honor the existing `disable-parallel` part property. Labeled Needs information and explicitly deferred as "extremely low priority" pending a real-world use case; no comments in 395 days.
75%
#1238 go-use plugin: Support `disable-parallel` parameter craft-parts open Support for disable-parallel in go-use remains open and is explicitly deferred pending a real-world Go project that fails under parallel builds.
75%