fix(tests/spread): fix reactive spread tests
Metadata
Current evaluation
Merged after resolving failing reactive spread tests. The changes split the test suite into legacy and resolute variants, switched to binary wheels to fix dependency resolution, and removed obsolete flags. Approved by reviewers and integrated.
Suggested action: —
No scores available.
Issue body
This PR fixes the failing reactive spread tests by making several structural and configuration changes:
1. **Test Splitting**: The single `reactive` test has been split into two distinct tests to avoid complex conditionals and cross-talk:
- `reactive-legacy`: Runs on Ubuntu 20.04 and 22.04, testing the `2.x/stable` and `stable` charm channels. It dynamically sets its base channel to match the host system's base.
- `reactive-resolute`: A standalone test specifically for Ubuntu 26.04, configured to strictly test the `charm/latest/stable` channel.
2. **Dependency Resolution Fix**: Explicitly adds `--binary-wheels` to the `charm-build` arguments in `charmcraft.yaml`. This prevents `charm-build` from defaulting to source builds (which fail due to PEP-517 isolated environments downloading newer `setuptools` versions that lack `pkg_resources`). Using binary wheels avoids these source build failures and speeds up the tests.
3. **Cleanup**: Removes `--upgrade-buildvenv-core-deps` and `--ignore-requires-python` flags from all `charmcraft.yaml` templates, as they were contributing to dependency resolution failures on older versions and are no longer necessary with binary wheels.
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged after resolving failing reactive spread tests. The changes split the test suite into legacy and resolute variants, switched to binary wheels to fix dependency resolution, and removed obsolete flags. Approved by reviewers and integrated. | |
| qwen3.6-35b-a3b-mtp-q6 |
Staleness:
5
Complexity:
15
Confidence:
90
|
needs review | Removes unsupported charm-build flags from reactive charmcraft.yaml template to fix spread tests on older snap channels, with dynamic injection for 26.04. Currently awaiting review. |
Update history
| Date | Change |
|---|---|
| updated |
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #1366 tests(spread): make release test less flaky | charmcraft | merged | Merged changes that reduce flakiness in the spread release test, resolving issue #1362. Approved by two reviewers, the update modifies one file (+17/-7) after addressing feedback. | |
| #127 Fix spread tests | imagecraft | merged | Merged after receiving approval from two reviewers and passing all CI checks. The changes fix spread tests across 11 files (+49/-38 lines). | |
| #3432 spread tests: remove legacy plugin tests | snapcraft | merged | Merged removal of legacy plugin tests from the spread test suite. Deleted 665 lines across 29 files. Approved by reviewer, passed CI, and maintained coverage. Unrelated test failures were addressed in a separate PR. | |
| #2762 tests/spread: fix reactive spread tests on older channels | charmcraft | closed | Closed without merging due to CI failures, after proposing to remove unsupported flags from the reactive charmcraft.yaml template to fix older channel tests. | |
| #1290 test(spread): clean up store tests | charmcraft | merged | Merged cleanup of spread store tests, removing 28 lines across four files. The underlying library test failure is fixed in PR #1292. Approved by two reviewers. | |
| #534 test(spread): workaround for flaky test | fetch-service | merged | Merged a workaround for a flaky spread test (issue #533). The change adjusts one file (+2/-1 lines) to skip a no-op name query check while retaining other validations. Approved by two reviewers and passed all CI checks. | |
| #4433 tests(spread): add remote-build spread test | snapcraft | merged | Merged changes adding spread tests for new and legacy remote-build, resolving issue #4398. Approved by two reviewers with passing CI checks. | |
| #1555 refactor(tests/spread): stop use init in most spread tests | charmcraft | closed | Author closed and abandoned the changes after self-review deemed the approach flawed. No code was merged or reviewed. | |
| #1322 fix(test): better matching for strict dependencies spread test | charmcraft | merged | Merged a single-line test fix improving matching logic for the strict dependencies spread test. Approved by two reviewers with zero unresolved comments. | |
| #2417 fix: fix a series of breaking spread tests | charmcraft | merged | Merged after fixing multiple breaking spread tests. Commits resolve individual failures, while remaining broken tests are marked non-blocking for core24 migration. Approved by reviewers and merged following CI validation. |