Reduce the scope of the public API
Metadata
Current evaluation
Planned API cleanup remains open: internal modules are not consistently underscored, and eight __all__ declarations show the public surface is still being narrowed.
Suggested action: keep open
Reason: The maintainer-authored request remains a valid architectural goal: only eight __all__ declarations exist, most internal modules retain non-underscore names, and no resolution commit was found. It should stay open, but public/private classifications, compatibility strategy, import and documentation updates, and test coverage require planning.
Evaluated by: mr-cal-bot
Impact:
65
Quick Win:
5
Complexity:
85
Confidence:
78
Actionability:
55
Issue body
### What needs to get done
Make all final module files private (prefix with underscore) and make only the relevant items public using `__all__` entries in various `__init__.py` files.
### Why it needs to get done
As more people use craft-parts, limiting the public API makes it easier to determine what are breaking changes.
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha |
Impact:
65
Quick Win:
5
Complexity:
85
Confidence:
78
Actionability:
55
|
keep open | Planned API cleanup remains open: internal modules are not consistently underscored, and eight __all__ declarations show the public surface is still being narrowed. | |
| qwen/qwen3.6-35b-a3b |
Impact:
45
Quick Win:
9
Complexity:
65
Confidence:
70
Actionability:
60
|
needs triage | Refactoring task to prefix internal modules with underscore and use __all__ to define public API. Open 801 days with no maintainer response or labels. | |
| qwen/qwen3.8-27b |
Impact:
50
Quick Win:
12
Staleness:
72
Complexity:
75
Confidence:
70
Support Request:
0
|
needs triage | Maintainer-filed refactor to shrink craft-parts' public API by making module files private (underscore prefix) and exporting only relevant names via __all__. No comments or labels; __all__ exists in several packages but module files are still public, so work is incomplete. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
90
Complexity:
35
Confidence:
80
Support Request:
10
|
needs triage | Proposal to restrict the public API by prefixing internal modules with underscores and defining __all__ in __init__.py files. Untriaged, no maintainer comments, inactive for over two years. | |
| qwen3.6-35b-a3b-mtp-q6 |
Staleness:
85
Complexity:
40
Confidence:
75
Support Request:
5
|
needs triage | Refactor module visibility by prefixing files with underscores and defining __all__ in __init__.py to limit the public API. Unlabelled and inactive for over a year, awaiting maintainer assessment. |
Update history
No update history recorded yet.
Related issues
No related issues found above the similarity threshold.