build: commands sharing a basename silently clobber each other #65
Labels
No labels
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
nagonag
nagonag/ignore
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
heiko/gogogo#65
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Two
build.commandsentries that share a basename (e.g.cmd/fooandlegacy/foo) both produce a binary calledfoo. They clobber each other in the output directory and — for explicitartifacts.packagesconfigs — thebinariesmatching is basename-only, so it is impossible to route them to separate packages.Discovered while fixing the
packages[*].binariesfull-path acceptance (PR upcoming). That fix normalises binary identifiers to basenames at load time, which makes the limitation visible as a correct double-claim validation error rather than a silent runtime failure.The fix would require preserving the full Go package path through
build.Resultand updating all downstream consumers (binary matching, packaging, source package generation) to use a path-qualified identifier. This is a non-trivial refactor; tracking here for future work.AI attribution comment added per repository instruction for this open issue.\n\n(co)authored by ai:gpt-5-codex