Skip to content

ci: watch nuget.org for platform packages this umbrella has fallen be… - #6

Merged
sbokatuk merged 1 commit into
masterfrom
ci/nuget-drift-watch
Jul 29, 2026
Merged

ci: watch nuget.org for platform packages this umbrella has fallen be…#6
sbokatuk merged 1 commit into
masterfrom
ci/nuget-drift-watch

Conversation

@sbokatuk

Copy link
Copy Markdown
Owner

…hind

An umbrella pins its platform binding packages by exact version, by hand. When a platform repository publishes, nothing said so: the umbrella kept resolving the older binding and consumers kept getting it, silently, until somebody noticed. The native SDKs were watched; this authors own packages, the ones actually most likely to move, were the blind spot - the manifest comment said as much in so many words.

Adds a nuget check kind to the shared build/check-upstream.sh and a row per pinned platform package, so the existing daily upstream-drift workflow reports them alongside the native SDKs, with the same open/comment/close issue lifecycle. Discovery is the flat containers version index; confirmation is the .nupkg beside it, which is a ZIP, so the existing PK magic-byte check applies unchanged.

Deliberately asymmetric, because the two directions mean opposite things:

pin behind published the umbrella is stale. This is the finding.
pin ahead of published the platform release is not out yet, which is the
normal mid-flight state of a release train. Logged,
never filed, or every train would open an issue on
its way through.
prerelease pin checked first and always reported: sort -V ranks
2.34.1.4-beta.7.3 above 2.34.1.4, so it would
otherwise read as "ahead" and say nothing, while a
released umbrella depending on a beta is a defect.

Verified against live nuget.org rather than reasoned about - a three-case fixture over a real package covering behind, equal and ahead, plus a run of every umbrella. The run found four genuine stale pins, listed in the pull request.

…hind

An umbrella pins its platform binding packages by exact version, by hand. When
a platform repository publishes, nothing said so: the umbrella kept resolving
the older binding and consumers kept getting it, silently, until somebody
noticed. The native SDKs were watched; this authors own packages, the ones
actually most likely to move, were the blind spot - the manifest comment said
as much in so many words.

Adds a `nuget` check kind to the shared build/check-upstream.sh and a row per
pinned platform package, so the existing daily upstream-drift workflow reports
them alongside the native SDKs, with the same open/comment/close issue
lifecycle. Discovery is the flat containers version index; confirmation is the
.nupkg beside it, which is a ZIP, so the existing PK magic-byte check applies
unchanged.

Deliberately asymmetric, because the two directions mean opposite things:

  pin behind published   the umbrella is stale. This is the finding.
  pin ahead of published the platform release is not out yet, which is the
                         normal mid-flight state of a release train. Logged,
                         never filed, or every train would open an issue on
                         its way through.
  prerelease pin         checked first and always reported: `sort -V` ranks
                         2.34.1.4-beta.7.3 above 2.34.1.4, so it would
                         otherwise read as "ahead" and say nothing, while a
                         released umbrella depending on a beta is a defect.

Verified against live nuget.org rather than reasoned about - a three-case
fixture over a real package covering behind, equal and ahead, plus a run of
every umbrella. The run found four genuine stale pins, listed in the pull
request.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@sbokatuk
sbokatuk merged commit 3f2d127 into master Jul 29, 2026
14 checks passed
@sbokatuk
sbokatuk deleted the ci/nuget-drift-watch branch July 29, 2026 19:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant