mirror of
https://github.com/OPCFoundation/UA-.NETStandard.git
synced 2026-10-18 22:55:08 +08:00
8d2402c995
Prepares the repository for a 2.0 release: bumps every version reference from 1.6 to 2.0, and lands the migration guide describing the 1.5.378 → 2.0 upgrade path. The 1.6 line never shipped, so this is a straight rename with no historical 1.6 migration content to preserve. The PR is split into two commits: 1. **`Bump version to 2.0 (next release is a major version change)`** — version metadata, NuGet metadata, the side documentation, and the migration agent file. 2. **`[Docs] Close 19 audit gaps in 1.5.378 to 2.0 migration guide`** — adds and reorganizes `Docs/MigrationGuide.md` to close every gap from a rigorous code-review audit of the 1.5.378 → 2.0 breaking-change surface. ### Version bump (commit 1) - `version.json`: `1.6-preview` → `2.0-preview` - `common.props`: `<VersionPrefix>1.6</VersionPrefix>` → `<VersionPrefix>2.0</VersionPrefix>` - `nuget/Opc.Ua.nuspec` and `nuget/Opc.Ua.Symbols.nuspec`: `1.6.0` → `2.0.0` - `README.md`: "New in 1.6" → "New in 2.0" - `Docs/ComplexTypes.md`, `Docs/Observability.md`, `Docs/Sessions.md`: 1.6 → 2.0 mentions - Renames `.github/agents/opcua-v16-migration.agent.md` → `.github/agents/opcua-v20-migration.agent.md` and updates the agent metadata (name, description, trigger phrases, version table) - `UA.slnx`: solution-items reference updated to the new agent filename - `Tools/Opc.Ua.SourceGeneration.Core/Generators/ObjectTypeProxyGenerator.cs`: two v16 → v20 comment fixes ### Migration guide (commit 2) Closes 19 gaps from an audit comparing `master378` (1.5.378) with `master` (2.0). Adds a new top-level **Package, Target Framework and Dependency Changes** section covering the new `Opc.Ua.Core.Types` and `Opc.Ua.Security.Certificates` packages, the `LibTypesTargetFrameworks` netstandard2.0 drop, the NuGet dependency additions/removals, and the residual Newtonsoft.Json dependency in `Opc.Ua.PubSub`. In-place additions: - new H4 for `INodeManager3` under Node States - `Session.Call` `Variant.From` worked example - new H3 `Subscriptions and Transports` with H4 verdicts for Durable subscriptions (source-breaking), PubSub (no source break) and Reverse connect (no source break) - new H3 `Telemetry and Logging` covering `ITelemetryContext` constructor-injection patterns - `in DataValue` async copy-to-local pattern - UNSAFE / SAFE pair for `WithPoolNotifications` pooling - using-alias example for classic vs V2 `SubscriptionOptions` - "Silent regression" callout for `OnAfterCreate` - numbered lifecycle ordering for `ApplicationConfiguration.CertificateManager` Corrections: - clarifies that the `SessionReconnectHandler` `[Obsolete]` is still present in 2.0 (not withdrawn); - clarifies that the source-generated `ServerCapability` constants vs the `ServerCapabilityInfo` registry type are distinct; - disambiguates `ReconnectPolicyOptions` (DTO) from `ReconnectPolicy` (runtime). Adds an "Automate the migration" pointer to the forthcoming `Opc.Ua.CodeFixers` analyzer package, which mechanizes 17 of the patterns covered in this guide. The analyzer is published in a follow-up PR.
111 lines
5.2 KiB
XML
111 lines
5.2 KiB
XML
<Project>
|
|
<PropertyGroup>
|
|
<Product>OPC UA .NET Standard Library</Product>
|
|
<RepositoryUrl>https://github.com/OPCFoundation/UA-.NETStandard</RepositoryUrl>
|
|
<VersionPrefix>2.0</VersionPrefix>
|
|
<VersionSuffix>preview-$([System.DateTime]::Now.ToString("yyyyMMdd"))</VersionSuffix>
|
|
<Copyright>Copyright © 2004-2025 OPC Foundation, Inc</Copyright>
|
|
<PackagePrefix>OPCFoundation.NetStandard</PackagePrefix>
|
|
<AssemblyPrefix>Opc.Ua</AssemblyPrefix>
|
|
<Company>OPC Foundation</Company>
|
|
<Authors>OPC Foundation</Authors>
|
|
<NeutralLanguage>en-US</NeutralLanguage>
|
|
<HighEntropyVA>true</HighEntropyVA>
|
|
<IsPackable>false</IsPackable>
|
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
|
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
|
|
<ProduceReferenceAssembly>true</ProduceReferenceAssembly>
|
|
<LangVersion>14.0</LangVersion>
|
|
<!-- to enable package validation, uncomment here -->
|
|
<!--<EnablePackageValidation>true</EnablePackageValidation>-->
|
|
<!-- to check the package validation on a release build, uncomment here -->
|
|
<!--<PackageValidationBaselineVersion>1.5.374.27</PackageValidationBaselineVersion>-->
|
|
<!-- to regenerate the compatibility suppression file, uncomment here -->
|
|
<!--<GenerateCompatibilitySuppressionFile>true</GenerateCompatibilitySuppressionFile>-->
|
|
<NuGetAuditMode>all</NuGetAuditMode>
|
|
<NuGetAudit>true</NuGetAudit>
|
|
</PropertyGroup>
|
|
<PropertyGroup>
|
|
<AccelerateBuildsInVisualStudio>true</AccelerateBuildsInVisualStudio>
|
|
<EnableNETAnalyzers>true</EnableNETAnalyzers>
|
|
<RunAnalyzersDuringBuild Condition="'$(RunAnalyzersDuringBuild)' == ''">true</RunAnalyzersDuringBuild>
|
|
<CodeAnalysisTreatWarningsAsErrors>false</CodeAnalysisTreatWarningsAsErrors>
|
|
<AnalysisLevel>preview</AnalysisLevel>
|
|
<AnalysisMode>all</AnalysisMode>
|
|
<AnalysisModeStyle>default</AnalysisModeStyle>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition="'$(BuildingInsideVisualStudio)' == 'true'">
|
|
<EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles>
|
|
</PropertyGroup>
|
|
<ItemGroup Condition="'$(NoRoslynatorAnalzers)' == ''">
|
|
<PackageReference Include="Roslynator.Analyzers" PrivateAssets="All" />
|
|
<PackageReference Include="Roslynator.Formatting.Analyzers" PrivateAssets="All" />
|
|
</ItemGroup>
|
|
<PropertyGroup>
|
|
<NoWarn>$(NoWarn);NU1510</NoWarn>
|
|
<PackageIcon>images/logo.jpg</PackageIcon>
|
|
<PackageProjectUrl>$(RepositoryUrl)</PackageProjectUrl>
|
|
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
|
|
<!--<PackageLicenseExpression>MIT</PackageLicenseExpression>-->
|
|
<PackageLicenseFile>LICENSE.txt</PackageLicenseFile>
|
|
<PackageReleaseNotes>$(RepositoryUrl)/releases</PackageReleaseNotes>
|
|
<PackageReadmeFile>NugetREADME.md</PackageReadmeFile>
|
|
<PackageTags>OPCFoundation OPC UA ios linux dotnet net netcore</PackageTags>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition="'$(SignAssembly)' == 'true'">
|
|
<!-- OPC Foundation public key -->
|
|
<PublicKey>0024000004800000940000000602000000240000</PublicKey>
|
|
<PublicKey>$(PublicKey)525341310004000001000100d987b12f068b3580</PublicKey>
|
|
<PublicKey>$(PublicKey)429f3dde01397508880fc7e62621397618456ca1</PublicKey>
|
|
<PublicKey>$(PublicKey)549aeacfbdb90c62adfe918f05ce3677b390f783</PublicKey>
|
|
<PublicKey>$(PublicKey)57b8745cb6e1334655afce1a9527ac92fc829ff5</PublicKey>
|
|
<PublicKey>$(PublicKey)85ea79f007e52ba0f83ead627e3edda40bec5ae5</PublicKey>
|
|
<PublicKey>$(PublicKey)74128fc9342cb57cb8285aa4e5b589c0ebef3be5</PublicKey>
|
|
<PublicKey>$(PublicKey)71b5c8f2ab1067f7c880e8f8882a73c80a12a1ef</PublicKey>
|
|
</PropertyGroup>
|
|
<Choose>
|
|
<When Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net5.0'))">
|
|
<PropertyGroup>
|
|
<!-- Disable strongname warning as that's not been enforced since .net 5.-->
|
|
<NoWarn>$(NoWarn);CS8002</NoWarn>
|
|
</PropertyGroup>
|
|
</When>
|
|
<Otherwise>
|
|
<PropertyGroup>
|
|
<!-- Disable nullable warning as it is not as meaningful on .net framework as on .net -->
|
|
<NoWarn>$(NoWarn);nullable</NoWarn>
|
|
</PropertyGroup>
|
|
</Otherwise>
|
|
</Choose>
|
|
<ItemGroup Condition="'$(IsPackable)' != 'false'">
|
|
<None
|
|
Include="$(MSBuildThisFileDirectory)/LICENSE.txt"
|
|
Pack="true"
|
|
PackagePath="$(PackageLicenseFile)"
|
|
/>
|
|
<None
|
|
Include="$(MSBuildThisFileDirectory)/nuget/logo.jpg"
|
|
Pack="true"
|
|
PackagePath="$(PackageIcon)"
|
|
/>
|
|
<None
|
|
Include="$(MSBuildThisFileDirectory)/Docs/NugetREADME.md"
|
|
Pack="true"
|
|
PackagePath="$(PackageReadmeFile)"
|
|
/>
|
|
</ItemGroup>
|
|
<ItemGroup Condition="'$(NBGV_PublicRelease)' != ''">
|
|
<PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" />
|
|
</ItemGroup>
|
|
<!-- Deterministic build is currently not supported for code coverage tests. -->
|
|
<PropertyGroup Condition="'$(CollectCoverage)' != 'true' AND ('$(TF_BUILD)' == 'true' OR '$(GITHUB_ACTIONS)' == 'true')">
|
|
<ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
|
|
</PropertyGroup>
|
|
<PropertyGroup>
|
|
<IncludeSymbols>true</IncludeSymbols>
|
|
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
|
|
<PublishRepositoryUrl>true</PublishRepositoryUrl>
|
|
<EmbedUntrackedSources>true</EmbedUntrackedSources>
|
|
</PropertyGroup>
|
|
</Project>
|