ctl: add ctl protocol client (CRAFT-35)
Metadata
Current evaluation
Merged the ctl protocol client, adding the craft_parts.ctl module and partsctl CLI. Approved by two reviewers and passing CI, the change modifies 8 files (+513/-15) to enable scriptlets to run step handlers and set custom variables.
Suggested action: —
No scores available.
Issue body
The control protocol client allows a user scriptlet to execute the
default handler for a step in the running application context, or set
the value of a custom variable previously passed as an argument to
`LifecycleManager`.
The `craft_parts.ctl` module can be imported by application-defined
clients, or invoked as a utility from the command line using the
supplied `partsctl` tool.
- [x] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)?
-----
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged the ctl protocol client, adding the craft_parts.ctl module and partsctl CLI. Approved by two reviewers and passing CI, the change modifies 8 files (+513/-15) to enable scriptlets to run step handlers and set custom variables. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged: Added craft_parts.ctl module and partsctl CLI tool to enable user scriptlets to execute default step handlers or set custom variables via a control protocol. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #19 parts: add craftctl support | rockcraft | merged | Merged after reviewer approval. Updated craft-parts to 1.4.1 and enabled craftctl support in step overrides across 16 files. Changes totaled +145/-66 lines. All CI checks passed with no unresolved comments. | |
| #728 parts: update craft-parts and enable craftctl | charmcraft | merged | Merged update to craft-parts 1.4.0, enabling craftctl support. Users can now invoke craftctl default in part scriptlets to execute overridden step handlers. Approved and passed CI checks. | |
| #3677 parts: add craftctl support | snapcraft | merged | Merged following approval and passing CI. Implements a craftctl wrapper for craft-parts, defines project variables, and adds adopt-info to project configuration. Diff coverage is 84%. |