feat: support nested project variables
Metadata
Current evaluation
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.
Suggested action: —
No scores available.
Issue body
- [x] Have you followed the guidelines for contributing?
- [x] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)?
- [x] Have you successfully run `make lint && make test`?
- [x] Have you added an entry to the changelog (`docs/reference/changelog.rst`)?
---
Allows setting nested project variables.
Depends on https://github.com/canonical/craft-parts/pull/1220
(SNAPCRAFT-1054)
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | 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. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged to add nested project variable support. Maintainer mr-cal completed lint and test checks, updated the changelog, and satisfied the dependency on craft-parts PR #1220. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #1220 feat: support nested project variables | craft-parts | merged | 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. | |
| #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. | |
| #5727 docs: document custom project vars (SNAPCRAFT-1053) | snapcraft | merged | Merged documentation update for custom project variables (SNAPCRAFT-1053). Moved from craft-parts, approved by two reviewers, and passed CI checks. Author addressed feedback by updating entity names prior to merge. | |
| #5753 feat: adopt component variables | snapcraft | merged | Merged after reviewer approval and passing CI checks. The change adopts component variables, enabling craftctl to set component versions for core22 and core24 snaps. Resolves #5240. | |
| #2122 many: introduce variables for part src and build | snapcraft | merged | Merged following approval. Introduces new environment variables and replacements for part src and build directories, resolving LP #1763028. Consolidates SNAPCRAFT_* environment handling into a single location. Approved by one reviewer with passing CI checks. | |
| #101 feat: do variable expansion when loading project | craft-application | merged | Successfully merged into main following dual reviewer approval and passing CI. The PR implements variable expansion during project loading, changing seven files (+169/-9 lines) with 100% diff coverage. | |
| #5499 fix: evaluate variables in project file | snapcraft | merged | Merged fix for project variables not evaluating in project files, caused by the craft-application 5 rebase. Includes a core22 spread test and changelog update. Resolves #5491. | |
| #757 Export important project variables | snapcraft | merged | Merged. Exports SNAPCRAFT_PROJECT_NAME, VERSION, STAGE, and PART_INSTALL variables. Reviewers approved and noted a planned expand_env refactor. CI retests and coverage fixes were applied before final merge. | |
| #302 parts: add project-specific global variables | rockcraft | merged | Merged implementation adding project-specific global variables (name and version) via a prologue callback, following Snapcraft. Closes #299. Approved by two reviewers with passing CI. Refactors tests and modifies nine files. |