Skip to content

Commit 201d794

Browse files
committed
Merge remote-tracking branch 'origin/master' into citests4
2 parents ebb0cd5 + d8a95b4 commit 201d794

407 files changed

Lines changed: 6460 additions & 4716 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.agents/skills/opcua-v20-migration/README.md

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,15 @@ opcua-v20-migration/
5353
This skill **distils** the following authoritative repo files. When you update
5454
the skill, also update them (and vice versa) so the views stay in sync:
5555

56-
- [`Docs/MigrationGuide.md`](../../../Docs/MigrationGuide.md) — the human-facing
57-
migration guide.
56+
- [`Docs/MigrationGuide.md`](../../../Docs/MigrationGuide.md) — the migration
57+
guide landing page (small; just an index across versions).
58+
- [`Docs/migrate/2.0.x/README.md`](../../../Docs/migrate/2.0.x/README.md)
59+
the 2.0 version landing page + the same symptom → sub-doc table this skill
60+
uses to load only what's needed.
61+
- [`Docs/migrate/2.0.x/`](../../../Docs/migrate/2.0.x/) — the 12 thematic
62+
sub-docs (telemetry, packages, source-generation, types, encoders,
63+
node-states, identity, certificates, configuration, sessions-subscriptions,
64+
alarms-model-change, timeprovider).
5865
- [`Tools/Opc.Ua.MigrationAnalyzer/NugetREADME.md`](../../../Tools/Opc.Ua.MigrationAnalyzer/NugetREADME.md)
5966
— the package's own NuGet README.
6067

.agents/skills/opcua-v20-migration/SKILL.md

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,9 @@ metadata:
2626
version: "1.0.0"
2727
upstream: https://github.com/OPCFoundation/UA-.NETStandard
2828
canonical-docs:
29-
- Docs/MigrationGuide.md
29+
- Docs/MigrationGuide.md # landing page (small)
30+
- Docs/migrate/2.0.x/README.md # 2.0 version landing + sub-doc index
31+
- Docs/migrate/2.0.x/ # 12 thematic sub-docs (load only what you need)
3032
- Tools/Opc.Ua.MigrationAnalyzer/NugetREADME.md
3133
---
3234

@@ -36,6 +38,37 @@ Upgrade existing OPC UA .NET Standard consumer projects from 1.5.378
3638
(`master378`) to 2.0.x (`master`). The skill assumes you already have a working
3739
1.5.378 codebase; it does not teach OPC UA from scratch.
3840

41+
## Migration sub-doc index — load only what you need
42+
43+
**Context-efficiency rule.** The full migration content is no longer in
44+
a single ~150 KB document; it is split across 12 thematic sub-docs under
45+
[`Docs/migrate/2.0.x/`](../../../Docs/migrate/2.0.x/README.md).
46+
**Do not load `Docs/MigrationGuide.md` into context** — it is now a thin
47+
landing page. Instead, match the user's symptom to a row below and load
48+
the **single** sub-doc named in that row.
49+
50+
| When the user hits… | Load only |
51+
| --- | --- |
52+
| `CS0029` / `CS1503` / `CS0266` on `NodeId`, `Variant`, `DataValue`, `ExtensionObject`, `QualifiedName`, `LocalizedText`, `ArrayOf<T>` / `MatrixOf<T>`, `ByteString`, `StatusCode`, `XmlElement`, `EnumValue`, or `[Obsolete]` on built-in type APIs (analyzer `UA0001``UA0020`) | [`Docs/migrate/2.0.x/types.md`](../../../Docs/migrate/2.0.x/types.md) |
53+
| `Utils.LogX`, `Utils.Trace`, static logger helpers, `ITelemetryContext` constructor parameter shape per type | [`Docs/migrate/2.0.x/telemetry.md`](../../../Docs/migrate/2.0.x/telemetry.md) |
54+
| Package upgrades, TFM changes, `Newtonsoft.Json` removal from `Opc.Ua.Core`, new published packages | [`Docs/migrate/2.0.x/packages.md`](../../../Docs/migrate/2.0.x/packages.md) |
55+
| Source-generated `*Collection` shims, NodeManager generator, default of `bool` properties, project structure | [`Docs/migrate/2.0.x/source-generation.md`](../../../Docs/migrate/2.0.x/source-generation.md) |
56+
| `IEncodeableFactoryBuilder`, `IType`, JSON / XML / binary encoders, `EncodeableFactory.GlobalFactory`, `IJsonEncodeable`, `ComplexTypes` namespace move | [`Docs/migrate/2.0.x/encoders.md`](../../../Docs/migrate/2.0.x/encoders.md) |
57+
| Custom NodeManagers, `NodeState` clone / read / write helpers, `Clone``CreateCopy`, `OnAfterCreate(CancellationToken)`, `INodeManager3`, `INodeCache.InvalidateNode`, generics on `BaseVariableState` / `BaseVariableTypeState` | [`Docs/migrate/2.0.x/node-states.md`](../../../Docs/migrate/2.0.x/node-states.md) |
58+
| `IUserIdentityTokenHandler`, `IClientIdentityProvider`, `IUserTokenAuthenticator`, `IAccessTokenProvider`, `ITokenIssuer`, caller-supplied secrets, secret store | [`Docs/migrate/2.0.x/identity.md`](../../../Docs/migrate/2.0.x/identity.md) |
59+
| `CertificateValidator` rename (`UA0021`), ref-counted `Certificate` wrapper, `CertificateManager`, `ICertificateProvider`, obsoleted `X509Certificate2` direct-exposure APIs | [`Docs/migrate/2.0.x/certificates.md`](../../../Docs/migrate/2.0.x/certificates.md) |
60+
| `ApplicationConfiguration` changes, Data-Contract serializer removal, `ParseExtension` / `UpdateExtension` signature, session / browser state persistence | [`Docs/migrate/2.0.x/configuration.md`](../../../Docs/migrate/2.0.x/configuration.md) |
61+
| `Session``ManagedSession`, V2 subscription engine, GDS-client `Task``ValueTask` modernisation, removed obsolete GDS APIs, durable subscriptions, PubSub, reverse-connect | [`Docs/migrate/2.0.x/sessions-subscriptions.md`](../../../Docs/migrate/2.0.x/sessions-subscriptions.md) |
62+
| `AlarmConditionState` state-transition behaviour, auto-emitted `GeneralModelChangeEvent`, `ModelChangeAggregator` | [`Docs/migrate/2.0.x/alarms-model-change.md`](../../../Docs/migrate/2.0.x/alarms-model-change.md) |
63+
| `DateTime.UtcNow`, `Timer`, deterministic-time tests, `System.TimeProvider` adoption | [`Docs/migrate/2.0.x/timeprovider.md`](../../../Docs/migrate/2.0.x/timeprovider.md) |
64+
65+
If the user's symptom does not obviously map to one row, read
66+
[`Docs/migrate/2.0.x/README.md`](../../../Docs/migrate/2.0.x/README.md) (small —
67+
the same table plus a short intro) and pick from there. Avoid loading
68+
multiple sub-docs unless the symptom genuinely spans two areas (for
69+
example, `node-states.md` *and* `types.md` when a NodeManager runs into
70+
both `INodeManager3` adoption and `Variant`-for-`object` API changes).
71+
3972
## Level 1: Quick Start (5 minutes)
4073

4174
### What you'll do
@@ -303,5 +336,7 @@ material. Load them on demand via your agent runtime's
303336

304337
### Canonical upstream docs
305338

306-
- [`Docs/MigrationGuide.md`](https://github.com/OPCFoundation/UA-.NETStandard/blob/master/Docs/MigrationGuide.md) — the human-facing migration guide that this skill distils.
339+
- [`Docs/MigrationGuide.md`](https://github.com/OPCFoundation/UA-.NETStandard/blob/master/Docs/MigrationGuide.md) — the human-facing migration guide landing page (~3 KB; intentionally small, just an index across versions).
340+
- [`Docs/migrate/2.0.x/README.md`](https://github.com/OPCFoundation/UA-.NETStandard/blob/master/Docs/migrate/2.0.x/README.md) — the 2.0 migration index + the same symptom → sub-doc table this skill uses.
341+
- [`Docs/migrate/2.0.x/`](https://github.com/OPCFoundation/UA-.NETStandard/tree/master/Docs/migrate/2.0.x) — the 12 thematic sub-docs (telemetry, packages, source-generation, types, encoders, node-states, identity, certificates, configuration, sessions-subscriptions, alarms-model-change, timeprovider).
307342
- [`Tools/Opc.Ua.MigrationAnalyzer/NugetREADME.md`](https://github.com/OPCFoundation/UA-.NETStandard/blob/master/Tools/Opc.Ua.MigrationAnalyzer/NugetREADME.md) — the package's own README, shipped inside the NuGet.

.agents/skills/opcua-v20-migration/references/analyzer-rules.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -365,8 +365,8 @@ config.CertificateManager.Options.AcceptError = (cert, error) =>
365365
// or implement ICertificateValidatorEx.ValidateAsync for full control.
366366
```
367367

368-
See `Docs/MigrationGuide.md` §"Certificate Manager and segregated interfaces"
369-
for the structural model in full.
368+
See [`Docs/migrate/2.0.x/certificates.md`](../../../Docs/migrate/2.0.x/certificates.md)
369+
§"Certificate Manager and segregated interfaces" for the structural model in full.
370370

371371
---
372372

.agents/skills/opcua-v20-migration/references/migration-patterns.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -697,5 +697,8 @@ sc = sc.WithAggregateBits(agg);
697697
equality, default values, and parameter passing.
698698
4. **Build incrementally.** Fix one priority layer at a time and rebuild to
699699
track progress.
700-
5. **Refer to canonical docs.** `Docs/MigrationGuide.md` is the upstream
701-
source of truth — sync this skill against it on every PR.
700+
5. **Refer to canonical docs.** The
701+
[`Docs/migrate/2.0.x/`](../../../Docs/migrate/2.0.x/) sub-docs are the
702+
upstream source of truth — sync this skill against them on every PR.
703+
Use the symptom → sub-doc table in `SKILL.md` to load only the
704+
relevant one.

.agents/skills/opcua-v20-migration/references/source-generator.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ reference (`global::Acme.WaterPump`, `global::Vendor.Devices.BoilerState`, etc).
9292
Zero matches or > 1 matches → the generator emits **no** shim and reports
9393
`MIG01` instead, with the help link pointing at this skill's
9494
[`analyzer-rules.md`](analyzer-rules.md#mig01--generator-cant-resolve-element-type-for-foocollection)
95-
and `Docs/MigrationGuide.md`.
95+
and [`Docs/migrate/2.0.x/source-generation.md`](../../../Docs/migrate/2.0.x/source-generation.md).
9696

9797
## Generated file shape
9898

0 commit comments

Comments
 (0)