canonical / canonical/charm-integration-testing
Handle beta-only charms from archived/unmaintained upstream repos
- Dominant language
- Python
- Stars
- 6
- Forks
- 1
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 96
Description
## Problem
Some charms in the test queue exist only in a beta channel (no stable or candidate), and their upstream repository is archived. These charms cannot be resolved by the bundle builder solver because Charmhub search APIs (`find?provides=`) only return listed charms, and beta-only charms are typically unlisted.
Setting `listed: true` in an override does not help here, because the charm is genuinely not promoted to a stable/candidate channel and is not actively maintained.
## Example
- `slurmd` and `slurmctld` (25.11/beta) - upstream repo https://github.com/omnivector-solutions/slurm-charms is archived.
- Both charms only have a `25.11/beta` channel; no stable or candidate exists.
- Solver fails with `UncompletableBundleError: slurmd:slurmctld` because `find?provides=slurmd` returns 0 results.
## Current workaround
Failures for these charms are attached to SQT-990 (rules 568 and 569) with endpoint-specific attachment rules, which suppresses them from the unattached queue. However, this is a stopgap.
## Questions to resolve
1. Should charms with no stable/candidate channel be excluded from testing entirely? If so, what mechanism do we use (e.g., `listed: false` in override, or a filter in the test pipeline)?
2. Should charms from archived upstream repos be explicitly marked as not-tested (`listed: false`)?
3. Is there a general policy for "beta-only" charms - should they be in scope for integration testing at all?
## Related
- SQT-990 (stale overrides)
- PR #641 (slurmd + slurmctld - currently open with a workaround, pending decision on correct approach)
Contributor guide
Research direction
Start with SQT-990 rules 568 and 569 and the workaround in PR #641, then trace the bundle builder solver failure for beta-only charms and the Charmhub find API behavior described here. Review the questions about stable/candidate channels and archived repositories; done means an agreed policy and a consistent testing mechanism for these charms.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- testing
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100