mirror of
https://github.com/OPCFoundation/UA-.NETStandard.git
synced 2026-10-22 01:26:20 +08:00
6812621abd
Two master NuGet Publish runs on 2026-10-06 (37461428995, 37462705289) pushed 2.0.0-preview.gfd360271d9 and 2.0.0-preview.ge78c648295 to GitHub Packages while master briefly carried the stable root version 2.0.0. SemVer 2 ranks the alphanumeric "g<commit>" identifier above every numeric one, so no PreviewPackageBuildNumber can outrank them and the stable 2.0.0 candidate on release/2.0 fails validate-preview-package-ordering.ps1. Add an explicit PreviewPackageOrderingExemptions list to preview-version.props that the gate skips by exact (case-insensitive) match; everything else still fails closed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
57 lines
3.2 KiB
XML
57 lines
3.2 KiB
XML
<Project>
|
|
<!--
|
|
Numbers the "-preview.N" suffix that version.targets appends to the
|
|
preview-only package families (see ApplyPreviewPackageVersion) whenever
|
|
the root package version is an exact stable release, such as "2.0.0" on
|
|
release/2.0 at the moment the release is cut. That root version carries
|
|
no prerelease tag of its own at that point, so there is no git-height
|
|
placeholder available to derive a number from; this property supplies an
|
|
explicit, auditable one instead.
|
|
|
|
This is a manually curated release value, not a computed one:
|
|
* It MUST sort strictly above every already-published "-preview.N" (or
|
|
legacy "-preview.YYYYMMDD") identifier for the same "OPCFoundation.
|
|
NetStandard.Opc.Ua.*" package IDs on both nuget.org and the GitHub
|
|
Packages feed, including every ".Debug" package variant. Note that
|
|
ordinary development keeps publishing "<base>-preview.{height}"
|
|
packages with a monotonically growing height, so a value that was
|
|
correct when it was picked goes stale on its own.
|
|
.azurepipelines/validate-preview-package-ordering.ps1 proves this
|
|
invariant against both feeds and fails the stable candidate build and
|
|
the release promotion when it no longer holds; the value below is a
|
|
headroom estimate, and that check - not this comment - is what
|
|
guarantees correctness.
|
|
* It is reset/re-picked independently for every new stable base version
|
|
(2.0.0, 2.0.1, 2.1.0, ...); do not carry a prior release's value
|
|
forward without checking published versions again.
|
|
* See docs/ReleaseProcess.md ("Common preflight" and the per-release
|
|
procedures) for the exact commands used to look up the currently
|
|
published preview numbers before changing this value.
|
|
|
|
While the root version itself is still a prerelease (for example
|
|
"2.0.0-preview.{height}" during ordinary development, or
|
|
"2.0.1-preview.{height}" while release/2.0 is stabilizing the next
|
|
patch), version.targets reuses that prerelease tag directly and this
|
|
property has no effect.
|
|
-->
|
|
<PropertyGroup>
|
|
<PreviewPackageBuildNumber Condition="'$(PreviewPackageBuildNumber)' == ''">200</PreviewPackageBuildNumber>
|
|
<!--
|
|
Exact, already-published versions that the preview ordering gate
|
|
(.azurepipelines/validate-preview-package-ordering.ps1) must not treat
|
|
as blocking, separated by ";". Only for versions that no
|
|
PreviewPackageBuildNumber can ever outrank and that cannot be removed
|
|
from the feed: SemVer 2 ranks an alphanumeric identifier such as
|
|
"g<commit>" above every numeric one, so "<base>-preview.g<commit>"
|
|
sorts above every "<base>-preview.N".
|
|
|
|
2.0.0-preview.gfd360271d9 and 2.0.0-preview.ge78c648295 were pushed to
|
|
GitHub Packages (never nuget.org) by master CI runs 37461428995 and
|
|
37462705289 on 2026-10-06, while master briefly carried the stable
|
|
root version 2.0.0 and Nerdbank.GitVersioning appended the commit id.
|
|
They stay above the released 2.0.0-preview.N on that feed only.
|
|
-->
|
|
<PreviewPackageOrderingExemptions>2.0.0-preview.gfd360271d9;2.0.0-preview.ge78c648295</PreviewPackageOrderingExemptions>
|
|
</PropertyGroup>
|
|
</Project>
|