fix(catalog): no version, no @ in the demotion notice - #544
Merged
Conversation
Found by the post-release verification on a real home. The identity-only
resolution path (resolve_local_identity, which inventory uses) does not
select a version, and the notice formatted `{}@{}` unconditionally:
'binutils' also provided by local:binutils@; selected xim:binutils@ ...
to pick the other: use its full name, e.g. `local:binutils@`
A trailing `@` reads as a version that failed to render, and the second
line is worse than cosmetic -- it is a command, and that one does not
run. The entire purpose of this notice is that the reader can trust what
it says; the rule it announces was only acceptable BECAUSE the loser gets
named.
Also records the post-release verification itself: the upgrade had to go
through the explicitly-qualified door (this home has a `local:xlings`, so
the old entry still refused the bare name -- captured before upgrading,
since it cannot be reproduced afterwards), and every before/after pair.
`gcc -lGL` links in a plain shell and in the sandbox; the artifact still
cannot run, which is the runtime half this round does not do -- and
matrix.sh now states that more precisely than I did: "links, but the
binary CANNOT RUN".
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.
Found by the post-release verification of 2026.8.11.2, on a real home.
The identity-only resolution path (
resolve_local_identity, used by inventory) does not select a version, and the notice formatted{}@{}unconditionally:A trailing
@reads as a version that failed to render — and the second line is worse than cosmetic, because it is a command, and that one does not run.The whole reason the namespace priority was acceptable instead of a refusal is that the loser gets named. A notice the reader cannot trust gives that back.
Also records the post-release verification in the release notes, including the before/after table and the evidence — captured before upgrading, since it cannot be reproduced afterwards — that this home's old entry refused the bare name and accepted the qualified one.