feat: support nested project variables
Metadata
Current evaluation
Merged. Adds nested project variable support via a new ProjectVarInfo class, enabling commands like craftctl set var.subvar=foo. Approved by three reviewers, passed all CI checks, and updated 19 files.
Suggested action: —
No scores available.
Issue body
- [x] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)?
- [x] Have you added an entry to the changelog (`docs/reference/changelog.rst`)?
-----
Uses the new `ProjectVarInfo` class to manage project variables. This enables setting nested project variables. For example, `craftctl set var.subvar=foo` sets the nested project variable `var.subvar` to `foo`.
Used downstream in https://github.com/canonical/craft-application/pull/872
(SNAPCRAFT-1052)
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged. Adds nested project variable support via a new ProjectVarInfo class, enabling commands like craftctl set var.subvar=foo. Approved by three reviewers, passed all CI checks, and updated 19 files. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged to add nested project variable support using the ProjectVarInfo class. Enables setting nested variables via craftctl, such as craftctl set var.subvar=foo. Resolves SNAPCRAFT-1052 and is utilized downstream in craft-application. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #872 feat: support nested project variables | craft-application | merged | Merged following three approvals and successful CI checks. The update enables nested project variables, altering 22 files (+526/-62 lines). It relies on craft-parts PR #1220 and addresses SNAPCRAFT-1054. | |
| #1206 feat(infos): add ProjectVarInfo class | craft-parts | merged | Merged a new ProjectVarInfo class to wrap nested project variables dictionaries. Approved by two reviewers, passed all CI checks, and modified three files (+426/-7). Prepares infrastructure for subsequent feature work. | |
| #217 feat: implement adoptable project variables | craft-application | merged | Merged implementation of adoptable project variables, enabling metadata fields to be set via craftctl. Approved by two reviewers, passed CI, and includes integration tests. Changes span 17 files with 216 additions and 24 deletions. | |
| #4601 feat: use craft-application project variables | snapcraft | merged | Merged after three approvals and passing CI. Implements version and grade as craft-application project variables updatable via craftctl. Rebased and test failures resolved prior to merge. |