test(spread): create core26 spread test suite
Metadata
Current evaluation
Merged the core26 spread test suite, adding CI jobs and generalizing tests for core22, 24, and 26 across 419 files. Approved by two reviewers and passed most CI checks prior to integration.
Suggested action: —
No scores available.
Issue body
Fills out the core26 spread test suite.
In order to make this possible to review, the table below describes the level of scrutiny for each commit:
| commit number | commit | notes |
| ---- |-------|-------|
| 1 | ci: add job for core26 spread tests | this adds a new CI job for the core26 suite |
| 2 | test(spread): remove dangling symlink | unrelated cleanup, the dangling symlink wasn't being used |
| 3 | test(spread): copy tests to common dir | - copy/paste of `core24/` and `core24-suites/` to `_common/`. <br> - flattens nested directories in the `core24-suites` <br> - moves the `python-hello` <br> This commit isn't very useful to review. |
| 4 | test(spread): reorder task.yaml keys | A long overdue refactor to improve readability. <br> All task.yaml keys in `_common/` are now ordered chronologically: prepare -> execute -> restore. <br> This is programmatic and not very useful to review. |
| 5 | test(spread): set and restore bases | In order to generalize the common tests, the `base` entry in each `snapcraft.yaml` need to be set during `prepare` and reverted during `restore`. So this adds `set_base` and `restore_yaml` to every test that was missing it. <br> Again, this is programmatic and not very useful to review. |
| 6 | test(spread): symlink common tests for core26 | Another programmatic commit that creates symlinks in the core26 directory |
| 7 | test(spread): generalize spread tests | This is where the proper hands-on work was done. My goal was to make the tests pass on core26 or have them fail with an expected error and link them to a github issue. <br> I did a best effort attempt to make them generic enough to be used for core22, core24, and core28(!), although minor changes will certainly be needed. |
(SNAPCRAFT-1328)
---
- [x] I've followed the [contribution guidelines](https://github.com/canonical/snapcraft/blob/main/CONTRIBUTING.md).
- [x] I've signed the [CLA](http://www.ubuntu.com/legal/contributors/).
- [x] I've successfully run `make lint && make test`.
- [ ] I've added or updated any relevant documentation.
- [ ] I've updated the relevant release notes.
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged the core26 spread test suite, adding CI jobs and generalizing tests for core22, 24, and 26 across 419 files. Approved by two reviewers and passed most CI checks prior to integration. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged the core26 spread test suite. Added a CI job, refactored tests for multi-core compatibility, updated task.yaml ordering, and implemented base setup and restoration logic. Resolves SNAPCRAFT-1328. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged implementation of the core26 spread test suite. Added a dedicated CI job, refactored and generalized existing tests for cross-version compatibility, and implemented base environment setup and restoration. Resolves SNAPCRAFT-1328. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #4056 spread: core24 testing infra | snapcraft | merged | Merged after receiving two approvals and passing CI checks. Implements core24 testing infrastructure for spread, changing two files with a net addition of 16 lines. Code coverage remained unchanged. | |
| #6171 test(spread): update python tests | snapcraft | merged | Merged update aligning core26 spread tests and documentation Python package ordering for consistency. Approved by reviewers and passed CI checks. | |
| #4582 test: add core24 component spread tests | snapcraft | merged | Merged after approval and passing CI. Adds core24 component spread tests by flattening and copying existing test files. Coverage increased slightly, and changes were landed on the feature/components branch. | |
| #6159 test: fix core26 python tests | snapcraft | merged | Merged update to core26 Python spread tests, switching to Python 3.14. The change modified four files, passed code review, and completed most CI checks. | |
| #3269 spread tests: remove references of core16 | snapcraft | merged | Merged after single reviewer approval. The change removes all core16 references from the spread test suite, updating three files with a net reduction of eight lines. Changes were integrated into the main branch. | |
| #3877 tests: enable provider spread tests for core22 | snapcraft | merged | Merged updates enabling provider spread tests for core22. The test directory was renamed from build-providers to providers, and legacy tests were relocated to a legacy subdirectory. Approved and merged following successful CI validation. | |
| #6164 test(spread): add core26 package-cutoff test | snapcraft | merged | Merged. Adds a core26 package-cutoff test as a downstream test for craft-parts PR #1538. Incorporates changes from snapcraft PR #6171 and resolves issues #6146 and #6148. Approved by two reviewers and merged after passing CI checks. | |
| #3026 spread tests: add core20 and cleanup systems | snapcraft | merged | Merged. Added core20 support to spread tests, cleaned up system selection logic to exclusively install snaps, and introduced a dedicated environment for unit tests. A reported test failure was promptly fixed by the author before approval and merge. | |
| #1287 tests: minor cleanups on the spread tests | snapcraft | merged | Merged minor spread test cleanups into master. Modified four files with 16 additions and 6 deletions. Approved by one reviewer with zero unresolved comments, maintaining 95.27% coverage upon integration. | |
| #5209 tests: enable core24 plugin tests | snapcraft | merged | Merged after four reviewers approved. The changes enable core24 plugin tests across 132 files, adding 2,795 lines. CI checks passed and the code was successfully integrated into the main branch. |