← Back to issue list

extensions: add basic support

View original Github issue

Metadata

Project
rockcraft
Number
#281
Type
pull request
State
merged
Author
tigarmo
Labels
—
Created
Updated
Closed

Current evaluation

Merged PR #281 (commit 7591dc3b) adding basic extensions support to Rockcraft: an Extension base class with property definitions and validate()/apply() logic, applied and validated when a project is loaded, plus unit tests.

Resolution: closed resolved

Reason: The PR itself was merged into main as commit 7591dc3b ('extensions: add basic support (#281)'), creating rockcraft/extensions/extension.py with the Extension class, property definitions and validate/apply logic wired into project loading, alongside new unit tests. It was the first step of the Extensions Framework epic tracked in issue #273, and the maintainer deferred docs/spread tests until a concrete extension landed.

Evaluated by: mr-cal-bot

No scores available.

Issue body

Much like Snapcraft's, Extensions can add top-level elements, new parts, or modify existing parts in Rockcraft projects. This commit implements the basic support of validating extensions and applying them when the project is loaded. -------- This PR's history is messy because I created this branch off of the existing `extensions-flask`, merged main and then removed the code relating to the command line and to flask (those will be addressed separately). @sergiusens db58974f0560a3 is the one with my changes and tests.

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha — closed resolved Merged PR #281 (commit 7591dc3b) adding basic extensions support to Rockcraft: an Extension base class with property definitions and validate()/apply() logic, applied and validated when a project is loaded, plus unit tests.
stealth/space-bunny-alpha — closed resolved Merged PR #281 (commit 7591dc3b) landed the first slice of Rockcraft extensions: extension validation and application when a project is loaded, with tests.
stealth/space-bunny-alpha — closed resolved Merged PR #281 via commit 7591dc3b, adding basic Rockcraft extension validation and application when projects load.
stealth/space-bunny-alpha — closed resolved Merged in PR #281 as commit 7591dc3b, adding project-load-time extension validation and application, including new parts, top-level elements, and part modifications.
qwen/qwen3.6-35b-a3b — — Merged basic extension support for Rockcraft, enabling validation and application during project load. Approved by two reviewers, passed CI, and changed 12 files. Docs and testing deferred until concrete extensions exist.
qwen3.6-35b-a3b-mtp-q6 — — Merged initial extension support for Rockcraft, implementing validation and application during project load. Documentation and testing are deferred until a functional extension and CLI options are available.

Update history

No update history recorded yet.

Related work

  • Related To: canonical/rockcraft#273 (confidence 88%)

    Extensions Framework umbrella issue that this basic support PR started; later closed as delivered by #281

  • Related To: canonical/rockcraft#922 (confidence 55%)

    Follow-up work adding the 'extensions' field to the rockcraft.yaml JSON schema, fixed by PR #1057 (23fe7dfe)

  • Related To: canonical/rockcraft#606 (confidence 45%)

    Early real extension (Flask) built on top of the extension framework introduced here, expanding it into a working feature

Related issues

Issue Project State Summary Similarity
#273 Extensions Framework rockcraft closed Extensions primitives for Rockcraft delivered by merged PR #281 (commit 7591dc3b, 'extensions: add basic support'), adding an Extension base class with validate()/apply() plus project-load integration. Closed by tigarmo.
87%
#922 Add extensions to the Rockcraft JSON schema rockcraft closed Rockcraft added the extensions field to the rockcraft.yaml JSON schema in merged PR #1057 (commit 23fe7dfe), allowing IDE validation of 12-factor extensions.
75%
#1248 feat(extensions): add basic support charmcraft merged Merged PR #1248 as 65726afc, adding basic extensions support and fixing #1238; extensions now run after base expansion during charmcraft.yaml unmarshalling.
74%
#292 extensions: add cli commands rockcraft merged Merged PR #292 (commit e8858077) added `list-extensions` and `expand-extensions` CLI commands with Snapcraft-equivalent semantics, plus test-data refactoring; closed rockcraft#274.
72%