← Back to issue list

Fix spread different-dir artifact output handling

View original Github issue

Metadata

Project
charmcraft
Number
#2804
Type
pull request
State
open
Author
lengau
Labels
—
Created
Updated
Closed
—

Current evaluation

Maintainer fix for pack artifact relocation: resolves --project-dir/output to absolute paths pre-pack, keeps state-based move and adds a .charm glob fallback; +124/-3 with unit tests. Fast tests pass, 6 CI jobs pending, 73d idle.

Suggested action: needs review

Reason: Author is maintainer lengau and all substantive checks pass (Fast tests on 22.04 and 24.04, lint, CLA, Security scan, schema); the only failure is 'policy / Check PR title for Conventional Commits', a mechanical retitle. Actionability is held down by the 73-day stall with 6 jobs still pending — including 'test / Slow tests' and the snap-build jobs — and because the 2 'unresolved review comments' come from the passing copilot-pull-request-reviewer bot rather than a human, leaving the glob-based '.charm' fallback (which could sweep unrelated pre-existing .charm files, and which stacks on top of read_artifacts_state's own KeyError fallback to artifact/resources state) unreviewed.

Evaluated by: mr-cal-bot

Impact: 40 Quick Win: 12 Complexity: 35 Confidence: 62 Actionability: 45

Issue body

## Summary - resolve --project-dir and output directories before running pack so relocation uses stable absolute paths - keep state-based artifact relocation and add a fallback that moves remaining .charm files from project dir to output dir - add unit regressions for relative project-dir and missing artifact-state fallback ## Validation - uv run pytest tests/unit/commands/test_lifecycle.py -k move_artifacts - spread -v multipass:ubuntu-22.04-64:tests/spread/smoketests/different-dir via spread-plus

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha
Impact: 40
Quick Win: 12
Complexity: 35
Confidence: 62
Actionability: 45
needs review Maintainer fix for pack artifact relocation: resolves --project-dir/output to absolute paths pre-pack, keeps state-based move and adds a .charm glob fallback; +124/-3 with unit tests. Fast tests pass, 6 CI jobs pending, 73d idle.
stealth/space-bunny-alpha
Impact: 48
Quick Win: 16
Complexity: 34
Confidence: 82
Actionability: 50
needs review Stabilizes pack artifact paths and adds a .charm fallback when artifact state is missing, with regression tests; awaiting review, with a title-policy failure and several CI jobs pending.
stealth/space-bunny-alpha
Impact: 52
Quick Win: 15
Complexity: 38
Confidence: 86
Actionability: 48
needs review Stabilizes pack relocation for relative project/output paths, with a missing-state .charm fallback and regressions; open and unapproved, with two unresolved comments, a title-policy failure, and six checks pending.
qwen3.6-35b-a3b-mtp-q6
Impact: 50
Quick Win: 35
Staleness: 55
Complexity: 30
Confidence: 70
needs review Fixes artifact output directory handling when using --project-dir with spread tests; adds unit regressions. Awaiting human review with 2 unresolved automated comments.
qwen/qwen3.6-35b-a3b
Staleness: 5
Complexity: 25
Confidence: 90
needs review Resolves project and output directories before pack to ensure stable paths for artifact relocation. Adds fallback logic and unit tests. Currently pending maintainer review with 2 unresolved comments and minor CI title policy failure.
qwen3.6-35b-a3b-mtp-q6
Staleness: 0
Complexity: 45
Confidence: 90
needs review Fixes artifact output path resolution and adds a fallback relocation mechanism with unit tests. Currently awaiting maintainer review and CI validation.

Update history

Date Change
created

Related work

  • Related To: canonical/charmcraft#2600 (confidence 70%)

    Prior fix 'fix: make the -p and -o arguments work correctly' (commit 868da353) touched the same project-dir/output-dir artifact handling in lifecycle.py; this PR continues that chain.

  • Related To: canonical/charmcraft#2427 (confidence 65%)

    Commit 3dfba830 'fix(lifecycle): fix --project-dir and --output' modified the same code region, indicating a recurring regression in artifact relocation.

Related issues

Issue Project State Summary Similarity
#2785 test(spread): fix different-dir task assertions charmcraft open Maintainer PR (2 files, +6/-5) updating spread different-dir / different-dir-metadata assertions to match where artifacts land with --project-dir, plus restore cleanup. Fixes tests failing on main; CI green, 2 checks pending, 1 review comment unresolved, idle 80 days.
82%
#2672 fix: use `charmcraft pack` instead of `charmcraft pull` in different-dir-metadata spread test charmcraft closed Closed unmerged: the charmcraft pull -> pack fix for the different-dir-metadata spread test was superseded by PR #2694, merged as commit dd684338 using `charmcraft pack --verbose --project-dir=charm` plus output/restore checks.
73%
#2694 test(different-dir-metadata): use pack --project-dir instead of pull charmcraft merged Merged PR #2694 (commit dd684338) fixed the failing different-dir-metadata spread test by switching `charmcraft pull` to `charmcraft pack --verbose --project-dir=charm`, plus output and restore checks.
70%