fix(frontseat-plugin-sdk): resolve a published package to its Component - #269
Open
joaodinissf wants to merge 1 commit into
Open
fix(frontseat-plugin-sdk): resolve a published package to its Component#269joaodinissf wants to merge 1 commit into
joaodinissf wants to merge 1 commit into
Conversation
EntityRefFor matched on metadata.name alone and returned whichever entity Go's randomised map iteration reached first. A Backstage catalog names its Domain and System after the product, so "frontseat" answers for three entities here, and the publishers bound to a different one on each call — homebrew to the System and scoop to the Component in a single run. The wrong match is worse than no match. An entity is shippable when it has tasks, so attaching a publish task to a grouping manufactures a release unit that then gets its own version and tag. Match Components only. Domain and System own no build artifact, so a name shared with them was never ambiguous, only wrong. Sort the survivors so that two Components sharing a name across namespaces still resolve the same way every run; the tie is not an error because the host warn-and-continues on a Tasks() error, which would read as a release that published nothing. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
joaodinissf
force-pushed
the
fix/publisher-entity-kind
branch
from
August 1, 2026 20:23
a58f7dc to
e30907d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
EntityRefFormatched onmetadata.namealone and returned whichever entity Go's randomised map iteration reached first. A Backstage catalog conventionally names its Domain and System after the product, so three entities answer tofrontseathere:The publishers bound to a different one on each call —
homebrew:publishlanded onsystem:default/frontseatandscoop:publishoncomponent:default/frontseatin the same run.The wrong match is worse than no match. An entity is shippable when
len(Tasks) > 0, so attaching a publish task to a grouping does not merely miss the release plan — it manufactures a release unit that then gets its own version and tag.Components only. Domain and System own no build artifact, so a name shared with them was never ambiguous, only wrong. The survivors are sorted so two Components sharing a name across namespaces resolve the same way every run.
A tie is deliberately not an error:
discover.gowarn-and-continues on aTasks()error, so raising one would surface as a release that published nothing, which is the failure this is removing. A deterministic choice arrives as a reviewable pull request on the tap instead.TestEntityRefForIgnoresGroupingKindsincludes anapi:entity on purpose — it sorts beforecomponent:, so ordering alone would return the API and the test would not otherwise prove the filter does anything.Relates to #259
This pull request was published with assistance from Claude.