← Back to issue list

extensions: parse all declared extensions before applying

View original Github issue

Metadata

Project
snapcraft
Number
#2350
Type
pull request
State
merged
Author
kyrofa
Labels
Created
Updated
Closed

Current evaluation

Merged to resolve LP: #1797638 by parsing all declared extensions before applying them, fixing conflicts when multiple apps share an extension. Approved, passed CI, and achieved 100% diff coverage.

Suggested action:

No scores available.

Issue body

- [x] Have you followed the [guidelines for contributing](https://github.com/snapcore/snapcraft/blob/master/CONTRIBUTING.md)? - [x] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)? - [x] If this is a bugfix. Have you checked that there is a bug report open for the issue you are trying to fix on [bug reports](https://bugs.launchpad.net/snapcraft)? - [x] If this is a new feature. Have you discussed the design on the [forum](https://forum.snapcraft.io)? - [x] Have you successfully run `./runtests.sh static`? - [x] Have you successfully run `./runtests.sh tests/unit`? ----- Currently extensions are naively applied as they're discovered, which causes problems when multiple apps use the same extension. This PR fixes [LP: #1797638](https://bugs.launchpad.net/snapcraft/+bug/1797638) by parsing all declared extensions before applying any.

Evaluation history

Date Model Scores Action Summary
qwen/qwen3.6-35b-a3b Merged to resolve LP: #1797638 by parsing all declared extensions before applying them, fixing conflicts when multiple apps share an extension. Approved, passed CI, and achieved 100% diff coverage.
qwen3.6-35b-a3b-mtp-q6 Merged a fix for LP: #1797638 that parses all declared extensions before applying them. This resolves conflicts when multiple apps use the same extension. Authored by kyrofa, the change passed unit tests and achieved 100% diff coverage.
qwen3.6-35b-a3b-mtp-q6 Merged. Resolves LP: #1797638 by parsing all declared extensions before application, preventing conflicts when multiple apps share an extension. Changes achieved 100% diff coverage.

Update history

No update history recorded yet.

Related issues

Issue Project State Summary Similarity
#2355 extensions: cleanup and generic tests snapcraft merged Resolved LP: #1791172 by ensuring extensions are properly installable and adding generic smoke tests for future extensions. Merged after approval and passing CI, modifying 10 files (+133/-17).
74%
#4110 extensions: parse snapcraft.yaml before expanding extensions snapcraft merged Merged fix for the expand-extensions command to parse snapcraft.yaml before expanding extensions. Resolves core22 parsing issues with parse-info and advanced grammar keywords. Approved, passed CI, and merged into main.
73%
#3781 extensions: refactor snapcraft merged Merged refactoring of extensions to prevent future cyclic import issues. Approved by reviewer, passed CI, and integrated into main. Reduced code by 163 lines across six files with a minor coverage decrease.
72%
#2705 extensions: rename extension classes to known names snapcraft merged Merged changes renaming extension classes to known names, simplifying logic by removing string parsing for Extension class implementation. Approved, passed CI, and increased coverage by 0.01% across five files.
72%
#2348 extensions: remove root extensions snapcraft merged Merged removal of root extension declarations from snapcraft.yaml. Resolves LP #1797631 by deferring application scope decisions until usage patterns clarify. Approved by maintainer, passed CI, and modified two files.
71%