← Back to issue list

python plugin: Support `disable-parallel` parameter

View original Github issue

Metadata

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

Current evaluation

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.

Suggested action: keep open

Reason: The enhancement is valid and still under active maintainer discussion, but the body calls it "extremely low priority until someone shows us a real-world use case." The current Python plugin only invokes pip and has no disable_parallel property, while the proposed None/True/False behavior is ambiguous and the latest comment asks whether CRAFT_PARALLEL_BUILD_COUNT=1 would already provide equivalent behavior.

Evaluated by: mr-cal-bot

Impact: 28 Quick Win: 3 Complexity: 68 Confidence: 91 Actionability: 34

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 python 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: 28
Quick Win: 3
Complexity: 68
Confidence: 91
Actionability: 34
keep 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.
qwen/qwen3.6-35b-a3b
Impact: 35
Quick Win: 12
Complexity: 45
Confidence: 75
Actionability: 60
keep open Enhancement to add disable-parallel support to the python plugin with a proposed 3-state design (None/True/False). Labeled Needs information; maintainers discussing design and awaiting a real-world use case.
qwen/qwen3.8-27b
Impact: 15
Quick Win: 6
Staleness: 5
Complexity: 60
Confidence: 85
Support Request: 10
keep open Enhancement to add the disable-parallel part property to the python plugin, with a proposed 3-state design (None/True/False) for parallel wheel builds. Labeled Needs information; maintainers discussing design and awaiting a real-world use case.
qwen/qwen3.6-35b-a3b
Staleness: 5
Complexity: 45
Confidence: 85
Support Request: 10
keep open Enhancement to support the disable-parallel part property in the Python plugin for compiled wheel extensions. Currently under active maintainer discussion with a proposed three-state implementation.
qwen/qwen3.6-35b-a3b
Staleness: 15
Complexity: 45
Confidence: 80
Support Request: 5
keep open Enhancement to support the disable-parallel part property in the python plugin. Maintainers are discussing implementation states and questioning if parallel builds are relevant to Python packaging. Currently under discussion with recent maintainer comments.
qwen/qwen3.6-35b-a3b
Staleness: 85
Complexity: 45
Confidence: 75
Support Request: 10
keep open Enhancement to add disable-parallel support to the Python plugin. Maintainer provided implementation guidance but no follow-up or PR has been submitted in over a year.
qwen3.6-35b-a3b-mtp-q6
Staleness: 70
Complexity: 60
Confidence: 75
Support Request: 5
keep open Enhancement to add disable-parallel parameter support to the python plugin. Maintainer provided architectural guidance for a 3-state implementation, but no implementation has started in over 10 months.

Update history

Date Change
updated
updated
updated

Related work

  • Related To: canonical/craft-parts#1167 (confidence 99%)

    This merged Autotools plugin change is cited as the precedent that made disable-parallel necessary for OpenJDK builds.

  • Related To: craft-parts#1250 (confidence 98%)

    The maintainer explicitly says Rust dependency handling should mirror work planned for the Rust plugin issue.

  • Related To: craft-parts#1248 (confidence 94%)

    The Poetry plugin issue is reported as waiting on the Python plugin's parallel-control design.

Related issues

Issue Project State Summary Similarity
#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%
#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%
#1250 rust plugin: Support `disable-parallel` parameter craft-parts 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.
77%
#1234 cmake plugin: Support `disable-parallel` parameter craft-parts open Enhancement: make the cmake plugin honour the `disable-parallel` part property. Still unimplemented at HEAD (cmake_plugin.py always emits `-j{parallel_build_count}`). Maintainer-filed, labelled Enhancement/Needs information; explicitly deprioritised pending a real-world use case.
76%
#1248 poetry plugin: Support `disable-parallel` parameter craft-parts open Poetry lacks disable-parallel support; the valid but low-priority enhancement awaits a failing real-world build and a general Python design decision in #1247.
76%
#1240 java plugin: Support `disable-parallel` parameter craft-parts open Java base disable-parallel support remains open and Needs information: the property is not implemented, and no real-world Java build failing under parallelism has been supplied.
75%
#1252 uv plugin: Support `disable-parallel` parameter craft-parts open Maintainer-filed enhancement to add the disable-parallel part property to the uv plugin; explicitly low priority pending a real-world use case and a design decision on Python plugins (#1247).
74%
#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.
74%
#1246 npm plugin: Support `disable-parallel` parameter craft-parts open Add disable-parallel support to the npm plugin. It remains open and low priority, with the maintainer requesting a real-world npm build case before prioritizing implementation.
74%