test(spread): add core26 venv/bin/python reproducer for uv dispatch script bug
Metadata
Current evaluation
Adds a spread test reproducing core26 venv/bin/python symlink removal bug; 52 days old, 0 reviewers, slow CI tests failing
Suggested action: needs review
Reason: The PR adds a test for a core26 venv/python symlink issue but has received zero maintainer engagement in 52 days and has failing slow CI tests. A maintainer needs to assess whether the underlying bug still exists, whether the test is relevant, and whether the CI failures are expected or indicate a problem with the test itself.
Impact:
35
Quick Win:
29.75
Staleness:
65
Complexity:
15
Confidence:
45
Issue body
On core26, craft-parts removes `python*` symlinks from `venv/bin/` and falls back to the system interpreter path. The packed charm lacks `venv/bin/python`, so the dispatch script creates `ln -s $(which python3) venv/bin/python` at runtime — pointing to a Python with no `ops` installed, causing `ModuleNotFoundError`.
## Changes
- **`ubuntu-26.04/charm/uv/expected_files.txt`**: Add `venv/bin/python` to the required file list. The `unzip -qql` check already fails the test if the entry is absent from the charm archive, directly reproducing the missing-symlink scenario.
- **`ubuntu-26.04/charm/task.yaml`**: When `venv/bin/python` is in `expected_files.txt`, extract the charm to a temp dir and run:
```sh
"$tmpdir/venv/bin/python" -c "import ops"
```
This catches two failure modes: the symlink being absent entirely, or present but pointing to a system Python that lacks venv packages. The check is gated on `expected_files.txt` content so it only fires for the uv charm, not the platforms charm.
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen3.6-35b-a3b-mtp-q6 |
Impact:
35
Quick Win:
29.75
Staleness:
65
Complexity:
15
Confidence:
45
|
needs review | Adds a spread test reproducing core26 venv/bin/python symlink removal bug; 52 days old, 0 reviewers, slow CI tests failing | |
| qwen/qwen3.6-35b-a3b |
Staleness:
25
Complexity:
10
Confidence:
85
|
needs review | Adds a spread test to reproduce a core26 charm dispatch bug where missing venv/bin/python symlinks cause ModuleNotFoundError. Currently pending review with one unresolved comment and failing slow CI jobs. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
15
Complexity:
10
Confidence:
85
|
needs review | Adds a spread test to reproduce a core26 bug where craft-parts removes venv/python symlinks, causing dispatch script failures. Currently pending maintainer review with passing CI. | |
| qwen3.6-35b-a3b-mtp-q6 |
Staleness:
5
Complexity:
15
Confidence:
85
|
needs review | Adds a spread test to reproduce a core26 charm dispatch bug where craft-parts removes venv/bin/python symlinks, causing ModuleNotFoundError. Currently unreviewed with no comments. |
Update history
| Date | Change |
|---|---|
| updated |
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #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. | |
| #6202 test(spread): create core26 spread test suite | snapcraft | merged | 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. | |
| #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. |