mirror of
https://github.com/OPCFoundation/UA-.NETStandard.git
synced 2026-10-18 06:31:35 +08:00
Stop versioning DI and ISA95 packages as preview (#4686)
## Summary Removes the **DI** (`Opc.Ua.Di*`) and **ISA95** (`Opc.Ua.ISA95*`) package families from the preview-only set, so they ship with the stable root version (e.g. `2.0.1` instead of `2.0.1-preview.N`). - `version.targets`: drop the two `_IsPreviewPackage` conditions. - `.azurepipelines/package-version-policy.ps1`: drop `ISA95|Di` from `Test-PreviewPackageId`. It must match `version.targets`, because the package-set validator fails if the two disagree. - `PackageVersionPolicyTests`: ISA95/Di IDs are now expected to be non-preview, they are removed from the classifier-agreement token list, and the "already-preview base version" case now uses Robotics. - Docs (`DeveloperGuide.md`, `ReleaseProcess.md`, `docs/README.md`): the preview-family list no longer includes DI or ISA95, and the "preview package" label is removed from the DI, Software Update (part of the DI packages), and ISA-95 entries. ## Test `dotnet test tests/Opc.Ua.Tools.Tests --filter PackageVersionPolicy` (net10.0): 87/87 passed. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -2,7 +2,7 @@ function Test-PreviewPackageId {
|
||||
param([Parameter(Mandatory)][string]$PackageId)
|
||||
|
||||
$baseId = $PackageId -replace '\.Debug$', ''
|
||||
return $baseId -match '^OPCFoundation\.NetStandard\.Opc\.Ua\.(XRegistry|WotCon|Vision|Robotics|Redundancy|Positioning|OpenUsd|ISA95|AI|Di)(\.|$)' -or
|
||||
return $baseId -match '^OPCFoundation\.NetStandard\.Opc\.Ua\.(XRegistry|WotCon|Vision|Robotics|Redundancy|Positioning|OpenUsd|AI)(\.|$)' -or
|
||||
$baseId -in @(
|
||||
'OPCFoundation.NetStandard.Opc.Ua.Mcp.Robotics',
|
||||
'OPCFoundation.NetStandard.Opc.Ua.Mcp.Vision',
|
||||
|
||||
@@ -380,7 +380,7 @@ From **2.0** onward, package versions are produced by [Nerdbank.GitVersioning](h
|
||||
Stable (public-release) versions are produced **only** from a canonical `release/<major>.<minor>` branch (e.g. `release/2.0`, `release/2.1`) — never from `master`, a tag, or any other branch — and only at the exact commit whose `version.json` carries the plain `<major>.<minor>.<patch>` version with no prerelease label (e.g. `2.0.0`). Patch numbers increase by exactly one per release on their line (`2.0.0` → `2.0.1` → `2.0.2`); a new minor line resets the patch to zero (`2.1.0`). See **[Release process](ReleaseProcess.md)** for the full branch/version model and the step-by-step procedure for cutting a release, shipping a patch or minor version, backporting a fix, and promoting a stable candidate.
|
||||
|
||||
The XRegistry, WoT Connectivity, Vision, Robotics, Redundancy, Positioning,
|
||||
OpenUSD, ISA95, AI, and DI package families remain preview packages even when
|
||||
OpenUSD, and AI package families remain preview packages even when
|
||||
the root version is stable. Their numeric version follows the root version:
|
||||
for example, a stable `2.0.0` root produces `2.0.0-preview.N` for these
|
||||
families (`N` a committed, manually curated number in `preview-version.props`
|
||||
|
||||
+3
-3
@@ -165,16 +165,16 @@ explains how they relate to the base model. These libraries assume the server
|
||||
path and, for typed client access, the client path. The packages load the
|
||||
models that each model depends on.
|
||||
|
||||
- [Device Integration](DeviceIntegration.md) (OPC 10000-100; preview package) —
|
||||
- [Device Integration](DeviceIntegration.md) (OPC 10000-100) —
|
||||
devices, topology, and locking.
|
||||
- [Asset Management Basics](AMB.md) (OPC 10000-110; preview
|
||||
package) — make devices, machines, pumps or scales manageable assets:
|
||||
discovery, identification, health alarms, maintenance, documentation links
|
||||
and locations. Read Device Integration first.
|
||||
- [Software update](SoftwareUpdate.md) (OPC 10000-100; preview package) —
|
||||
- [Software update](SoftwareUpdate.md) (OPC 10000-100) —
|
||||
software package storage, installation, and confirmation. Read Device
|
||||
Integration first.
|
||||
- [ISA-95](ISA95.md) (OPC 10030 and OPC 10031-4; preview package) — the common
|
||||
- [ISA-95](ISA95.md) (OPC 10030 and OPC 10031-4) — the common
|
||||
model and job control.
|
||||
- [Positioning](Positioning.md) (OPC 10000-210 and OPC 10000-211; preview
|
||||
package) — relative frames and geographic positions.
|
||||
|
||||
@@ -37,7 +37,7 @@ without any other context.
|
||||
[Versioning](DeveloperGuide.md#versioning)). Every package in the solution
|
||||
shares the same root version except the **preview-only families**.
|
||||
- **Preview-only families** - the XRegistry, WoT Connectivity, Vision,
|
||||
Robotics, Redundancy, Positioning, OpenUSD, ISA95, AI, and DI package
|
||||
Robotics, Redundancy, Positioning, OpenUSD, and AI package
|
||||
families, the Robotics/Vision MCP extensions, and the OpenUSD connector
|
||||
tools. `version.targets` keeps these on a `-preview.N` suffix even when the
|
||||
root version is an exact stable release. The full, single source of truth
|
||||
@@ -116,7 +116,7 @@ Every procedure below starts here.
|
||||
ConvertFrom-Json | ForEach-Object name
|
||||
```
|
||||
Repeat for a representative sample of the preview-only families (at
|
||||
minimum XRegistry, DI, and one MCP/connector package); they are versioned
|
||||
minimum XRegistry, Robotics, and one MCP/connector package); they are versioned
|
||||
together but published independently, so check more than one. If any
|
||||
published number is greater than or equal to the committed
|
||||
`PreviewPackageBuildNumber`, raise it (in the same PR that changes the
|
||||
|
||||
@@ -71,9 +71,9 @@ namespace Opc.Ua.Tools.Tests
|
||||
("OPCFoundation.NetStandard.Opc.Ua.Redundancy.Kubernetes", true),
|
||||
("OPCFoundation.NetStandard.Opc.Ua.Positioning.Client", true),
|
||||
("OPCFoundation.NetStandard.Opc.Ua.OpenUsd.Server", true),
|
||||
("OPCFoundation.NetStandard.Opc.Ua.ISA95.Client", true),
|
||||
("OPCFoundation.NetStandard.Opc.Ua.ISA95.Client", false),
|
||||
("OPCFoundation.NetStandard.Opc.Ua.AI.Inference", true),
|
||||
("OPCFoundation.NetStandard.Opc.Ua.Di.Server", true),
|
||||
("OPCFoundation.NetStandard.Opc.Ua.Di.Server", false),
|
||||
("OPCFoundation.NetStandard.Opc.Ua.Mcp.Robotics", true),
|
||||
("OPCFoundation.NetStandard.Opc.Ua.Mcp.Vision", true),
|
||||
("OPCFoundation.NetStandard.Opc.Ua.OpenUsd.Connector", true),
|
||||
@@ -180,7 +180,7 @@ namespace Opc.Ua.Tools.Tests
|
||||
@{
|
||||
preview = (Get-ExpectedPackageVersion -PackageId 'OPCFoundation.NetStandard.Opc.Ua.XRegistry' -BaseVersion '2.0.0')
|
||||
core = (Get-ExpectedPackageVersion -PackageId 'OPCFoundation.NetStandard.Opc.Ua.Core' -BaseVersion '2.0.0')
|
||||
previewDev = (Get-ExpectedPackageVersion -PackageId 'OPCFoundation.NetStandard.Opc.Ua.Di' -BaseVersion '2.0.0-preview.9')
|
||||
previewDev = (Get-ExpectedPackageVersion -PackageId 'OPCFoundation.NetStandard.Opc.Ua.Robotics' -BaseVersion '2.0.0-preview.9')
|
||||
coreDev = (Get-ExpectedPackageVersion -PackageId 'OPCFoundation.NetStandard.Opc.Ua.Core' -BaseVersion '2.0.0-preview.9')
|
||||
} | ConvertTo-Json
|
||||
""").ConfigureAwait(false);
|
||||
@@ -465,9 +465,7 @@ namespace Opc.Ua.Tools.Tests
|
||||
"Opc.Ua.Redundancy",
|
||||
"Opc.Ua.Positioning",
|
||||
"Opc.Ua.OpenUsd",
|
||||
"Opc.Ua.ISA95",
|
||||
"Opc.Ua.AI",
|
||||
"Opc.Ua.Di",
|
||||
"Opc.Ua.Mcp.Robotics",
|
||||
"Opc.Ua.Mcp.Vision",
|
||||
"Opc.Ua.OpenUsd.Connector",
|
||||
|
||||
@@ -17,9 +17,7 @@
|
||||
<_IsPreviewPackage Condition="'$(_PreviewPackageBaseId)' == '$(PackagePrefix).Opc.Ua.Redundancy' OR $([System.String]::Copy('$(_PreviewPackageBaseId)').StartsWith('$(PackagePrefix).Opc.Ua.Redundancy.'))">true</_IsPreviewPackage>
|
||||
<_IsPreviewPackage Condition="'$(_PreviewPackageBaseId)' == '$(PackagePrefix).Opc.Ua.Positioning' OR $([System.String]::Copy('$(_PreviewPackageBaseId)').StartsWith('$(PackagePrefix).Opc.Ua.Positioning.'))">true</_IsPreviewPackage>
|
||||
<_IsPreviewPackage Condition="'$(_PreviewPackageBaseId)' == '$(PackagePrefix).Opc.Ua.OpenUsd' OR $([System.String]::Copy('$(_PreviewPackageBaseId)').StartsWith('$(PackagePrefix).Opc.Ua.OpenUsd.'))">true</_IsPreviewPackage>
|
||||
<_IsPreviewPackage Condition="'$(_PreviewPackageBaseId)' == '$(PackagePrefix).Opc.Ua.ISA95' OR $([System.String]::Copy('$(_PreviewPackageBaseId)').StartsWith('$(PackagePrefix).Opc.Ua.ISA95.'))">true</_IsPreviewPackage>
|
||||
<_IsPreviewPackage Condition="'$(_PreviewPackageBaseId)' == '$(PackagePrefix).Opc.Ua.AI' OR $([System.String]::Copy('$(_PreviewPackageBaseId)').StartsWith('$(PackagePrefix).Opc.Ua.AI.'))">true</_IsPreviewPackage>
|
||||
<_IsPreviewPackage Condition="'$(_PreviewPackageBaseId)' == '$(PackagePrefix).Opc.Ua.Di' OR $([System.String]::Copy('$(_PreviewPackageBaseId)').StartsWith('$(PackagePrefix).Opc.Ua.Di.'))">true</_IsPreviewPackage>
|
||||
<_IsPreviewPackage Condition="'$(_PreviewPackageBaseId)' == '$(PackagePrefix).Opc.Ua.Mcp.Robotics' OR '$(_PreviewPackageBaseId)' == '$(PackagePrefix).Opc.Ua.Mcp.Vision' OR '$(_PreviewPackageBaseId)' == '$(PackagePrefix).Opc.Ua.OpenUsd.Connector' OR '$(_PreviewPackageBaseId)' == '$(PackagePrefix).Opc.Ua.OpenUsd.Connector.Viewer'">true</_IsPreviewPackage>
|
||||
<!--
|
||||
On a canonical release/M.m branch build (NBGV_PublicRelease == 'True'),
|
||||
|
||||
Reference in New Issue
Block a user