craftctl: update to comply with specification
Metadata
Current evaluation
Merged in commit ac87cd89 via merge 8139ef30; craftctl’s default, set, and get commands were updated to match the specification, including validation and consumption safeguards.
Resolution: closed resolved
Reason: PR #185 was merged after approval, with resolving commit ac87cd89 and merge commit 8139ef30. The merged implementation adds specification-compliant command behavior, name validation, post-consumption protection, and part-scoped variable setting.
Evaluated by: mr-cal-bot
No scores available.
Issue body
The specification of craftctl lists the expected behavior of the
`default`, `set`, and `get` commands, including syntax consistent
with snapctl (when applicable), name validation, protection against
set after consumption, and restricting variable setting to a single
application-specified part. Update the existing implementation
to follow the specification.
Signed-off-by: Claudio Matsuoka <claudio.matsuoka@canonical.com>
- [x] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)?
-----
CRAFT-935
CRAFT-75
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | Merged in commit ac87cd89 via merge 8139ef30; craftctl’s default, set, and get commands were updated to match the specification, including validation and consumption safeguards. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged PR #185 (commit ac87cd89) updates craftctl to follow the specification for default, set, and get, including name validation and consumption safeguards. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged in #185 (8139ef30): craftctl now follows its specification for default, set, and get, including snapctl syntax, validation, consumption locking, and single-part writes. | |
| qwen/qwen3.6-35b-a3b | — | — | Merged. Updated craftctl to comply with the specification, aligning default, set, and get commands with snapctl syntax, adding name validation, and enforcing consumption protection and single-part restrictions. Approved by reviewer. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged update aligning craftctl with the specification for default, set, and get commands. Includes snapctl-compatible syntax, name validation, consumption protection, and single-part variable restrictions. Approved after minor documentation feedback. |
Update history
No update history recorded yet.
Related work
-
Related To:
canonical/craft-parts#190
(confidence 90%)
Follow-up merged work further restricted project-variable assignment to the adopting part.
-
Related To:
canonical/craft-parts#193
(confidence 90%)
Follow-up merged work corrected craftctl client error handling.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #3677 parts: add craftctl support | snapcraft | merged | Merged #3677 added craftctl support, project-variable assignment, and adopt-info configuration in commit 293ac060b. | |
| #193 craftctl: fix client error handling | craft-parts | merged | Merged PR #193 (commit e9787a0c; merge 9ea70b26) makes craftctl return control API errors to clients instead of raising server-side exceptions. | |
| #1091 docs: revamp craftctl how-to | craft-parts | merged | Merged PR #1091 as 44aa6508, revamping the craftctl how-to with upstream Snapcraft guidance and adding a 2.10.0 changelog entry. |