feat: implement adoptable project variables
Metadata
Current evaluation
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.
Suggested action: —
No scores available.
Issue body
Project variables are defined in the application metadata and correspond
to fields in the project model that can be set using `craftctl`.
- [x] Have you followed the guidelines for contributing?
- [x] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)?
- [ ] Have you successfully run `tox`?
-----
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | 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. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged implementation of adoptable project variables, enabling application metadata fields to be configured via craftctl. Added integration tests, resolved linter formatting discrepancies, and rebased onto main before successful merge. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #231 feat(app): add lists of adoptable and mandatory project fields | craft-application | merged | Merged after three approvals and passing CI. Introduces adoptable and mandatory project field lists to application metadata for craftctl configuration. Resolved validation errors by rebasing and stacking on related PRs, maintaining full test coverage. | |
| #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. | |
| #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. | |
| #190 craftctl: set variables from parts adopting metadata | craft-parts | merged | Merged. Restricts craftctl variable assignment to the specified part during lifecycle creation, removing the need for an adopting part when project variables are undeclared. Approved, passed CI, and integrated. Author notes future refactoring for validation and scope adjustments. | |
| #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. | |
| #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. | |
| #3693 projects: adoptable fields are optional if adopt-info used | snapcraft | merged | Merged into snapcraft/7.0. Allows project fields version, summary, description, and grade to be optional when adopt-info is used, with values adopted from metadata. Approved by reviewer, passed CI, and increased coverage by 0.24%. |