← Back to issue list

Snapcraft should complain multiple `after` properties in a single part

View original Launchpad issue

Metadata

Project
snapcraft (launchpad)
Number
#1826753
Type
issue
State
open
Author
~brlin
Labels
Created
Updated
Closed

Current evaluation

Request for snapcraft to error on duplicate 'after' YAML keys in a part definition. 7+ years old, zero comments, no labels, no maintainer interaction. References snapcraftctl and old part format that no longer exist in modern snapcraft.

Suggested action: close stale

Reason: The issue is 2682 days (~7.3 years) old with zero comments, no labels, and no maintainer interaction. It references 'snapcraftctl build' and a part definition format from the early classic-snapcraft era; the codebase has since been completely rewritten (core18/20/22/24) with Pydantic-based validation and a different parts pipeline, so the specific code paths described no longer exist. The underlying YAML duplicate-key behavior is a parser-level concern that could be re-filed against the current architecture if still relevant.

Impact: 15 Quick Win: 12.0 Staleness: 95 Complexity: 20 Confidence: 55 Support Request: 30

Issue body

I stuck on debugging the missing patch files in the following part definition ```yaml parts: picard: after: - patching source: https://github.com/metabrainz/picard.git source-depth: 100 source-tag: release-2.1.3 plugin: x-python override-build: | git apply --verbose "${SNAPCRAFT_STAGE}"/patching/localedir.patch snapcraftctl build after: [desktop-qt5] # Code patching to fix another part, when it cannot be solved by other means patching: source: patching plugin: dump organize: '*': patching/ prime: - -* ``` Which I (veeeery) later recognize that it is the `after: [desktop-qt5]` line that cause the problem, and has the effect of Snapcraft no longer consider the `patching` part os the `picard` part's dependency. I suggest that Snapcraft bails out prematurely if multiple `after` properties are defined in a single part.

Evaluation history

Date Model Scores Action Summary
qwen/qwen3.8-27b
Impact: 15
Quick Win: 12.0
Staleness: 95
Complexity: 20
Confidence: 55
Support Request: 30
close stale Request for snapcraft to error on duplicate 'after' YAML keys in a part definition. 7+ years old, zero comments, no labels, no maintainer interaction. References snapcraftctl and old part format that no longer exist in modern snapcraft.
qwen/qwen3.6-35b-a3b
Staleness: 95
Complexity: 15
Confidence: 85
Support Request: 10
close stale Feature request for Snapcraft to error out when multiple after properties are defined in a single part. The issue is 7+ years old, unlabelled, and has received zero maintainer engagement or comments.
qwen/qwen3.6-35b-a3b
Staleness: 95
Complexity: 10
Confidence: 85
Support Request: 5
close stale Feature request for Snapcraft to error on duplicate after properties in part definitions. Unlabeled and inactive for over 7 years with zero maintainer interaction.
qwen3.6-35b-a3b-mtp-q6
Staleness: 95
Complexity: 15
Confidence: 85
Support Request: 10
needs triage Feature request to add validation and error out when a Snapcraft part definition contains multiple after properties, which currently silently overwrite each other. Untriaged and inactive for over 7 years.
qwen3.6-35b-a3b-mtp-q6
Staleness: 98
Complexity: 20
Confidence: 85
Support Request: 10
needs triage Suggests Snapcraft should error when multiple after properties are defined in a single part. Unlabeled, no maintainer response, inactive for ~7 years.

Update history

No update history recorded yet.

Related issues

Issue Project State Summary Similarity
#1770221 A snapcraft.yaml with more than 1 after: stanza doesn't warn or error snapcraft (launchpad) open Snapcraft silently accepted multiple after: stanzas in a part, using the last one. Fixed: duplicate-key detection in yaml_utils now raises an error for any repeated key, including after:. Issue is stale (8+ years, no activity) but the underlying problem is resolved in current code.
76%
#1799596 No error if `after` specifies part that doesn't exist snapcraft (launchpad) closed Closed without a fix or comments, indicating the bug was abandoned. Snapcraft continues to silently accept invalid after references to non-existent parts.
72%
#1591207 Parser should warn when it encounters an invalid snapcraft.yaml snapcraft (launchpad) open 2015-era feature request asking the snapcraft parser to warn when snapcraft.yaml is missing the 'parts' key. No labels, no comments, no activity for ~10 years. Modern snapcraft validates the file against a schema requiring parts, so the concern is outdated.
72%
#2033882 snapcraft first run doesn't verify parts in parts after keyword on core22 snapcraft (launchpad) closed Closed without resolution. Snapcraft fails to validate non-existent parts in the after keyword on core22, a regression from core20, remains unaddressed.
71%
#1826262 Error: The part has run through its entire lifecycle snapcraft (launchpad) open Snapcraft 1.x build error 'part has run through its entire lifecycle' reported in 2017 when modifying multipass snapcraft.yaml; zero comments, no labels, project since fully rearchitected into craft-* subprojects.
70%