← Back to issue list

pull, build and other commands should be idemnpotent

View original Launchpad issue

Metadata

Project
snapcraft (launchpad)
Number
#1595964
Type
issue
State
open
Author
~didrocks
Labels
lifecycle
Created
Updated
Closed
—

Current evaluation

Lifecycle commands rebuild state destructively, hindering plugin composition; the broad idempotency request remains valid but untriaged and without a current reproducer

Suggested action: needs triage

Reason: The body provides a real plugin-composition example, while the sole maintainer response explicitly acknowledged the same difficulty and said failed-build resumption was still being worked toward. However, the lifecycle label is the only apparent categorization, and the request spans multiple commands without defining an idempotency contract, expected outputs, or a current reproduction.

Evaluated by: mr-cal-bot

Impact: 45 Quick Win: 6 Complexity: 65 Confidence: 68 Actionability: 38

Issue body

The fact that for instance "build()" would erase and redeploy a new build directory is an issue when inheriting and inserting hooks in plugin. Here is an example of the trick needed due to this bug: https://github.com/ubuntu/snappy-playpen/blob/master/vlc/parts/plugins/x_vlcautotools.py

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha
Impact: 45
Quick Win: 6
Complexity: 65
Confidence: 68
Actionability: 38
needs triage Lifecycle commands rebuild state destructively, hindering plugin composition; the broad idempotency request remains valid but untriaged and without a current reproducer
stealth/space-bunny-alpha
Impact: 43
Quick Win: 4
Complexity: 78
Confidence: 86
Actionability: 47
keep open Lifecycle commands erase prior build directories, hindering plugin inheritance and hook injection; a maintainer acknowledged the plugin-extension problem, but no resolution is identified.
stealth/space-bunny-alpha
Impact: 43
Quick Win: 8
Complexity: 71
Confidence: 86
Actionability: 62
keep open Open lifecycle design issue: steps erase prior work, hindering inherited plugin hooks; @~kyrofa acknowledged this and said failed-build resumption was still being worked toward.
Qwen 3.8 (27b)
Impact: 40
Quick Win: 5
Complexity: 50
Confidence: 55
Actionability: 25
needs triage Snapcraft pull/build commands were not idempotent in the old parts system, erasing build directories on re-run and breaking plugin hooks. Filed 2017, 0 comments, no maintainer response. The parts system was since rewritten as craft-parts with state management and skip logic.
qwen/qwen3.8-27b
Impact: 15
Quick Win: 10
Staleness: 95
Complexity: 35
Confidence: 72
Support Request: 10
close stale Old snapcraft 1.x plugin system issue: build() erases and redeployed build directory, breaking plugin subclass hooks. 10+ years old, zero comments, lifecycle label, plugin system since redesigned in craft-parts.
qwen/qwen3.6-35b-a3b
Staleness: 100
Complexity: 25
Confidence: 90
Support Request: 0
close stale Request for idempotent pull and build commands to prevent build directory erasure during plugin hook inheritance. The issue has been inactive for over 9 years with no maintainer response or labels.
qwen/qwen3.6-35b-a3b
Staleness: 98
Complexity: 75
Confidence: 90
Support Request: 15
close stale Request to make pull, build, and other commands idempotent to prevent build directory erasure during plugin inheritance. Unaddressed for over 10 years with no maintainer interaction or project updates.
qwen3.6-35b-a3b-mtp-q6
Staleness: 98
Complexity: 80
Confidence: 90
Support Request: 10
close stale Feature request to make pull, build, and other commands idempotent to prevent build directory overwrites during plugin inheritance. Open for over 10 years with no maintainer interaction or comments.

Update history

Date Change
created

Related issues

No related issues found above the similarity threshold.