Skip to content

Commit 8b04e25

Browse files
dmealingclaude
andcommitted
docs(csharp): note YAML authoring support in README
Removes the stale "YAML parsing — out of scope" entry now that the C# port ships the YAML authoring front-end (ADR-0006). Adds the YamlDesugar / ParserYaml files to the layout section and notes the YAML conformance runner alongside the canonical-JSON one. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 parent 2b8e502 commit 8b04e25

1 file changed

Lines changed: 5 additions & 3 deletions

File tree

server/csharp/README.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,16 @@ C# implementation of the MetaObjects metadata Loader. Targets .NET 8 (C# 12).
44

55
## What it covers
66

7-
- **Loader** — multi-file JSON loader with overlay merge and cross-file `extends:` resolution.
7+
- **Loader** — multi-file JSON / YAML loader with overlay merge and cross-file `extends:` resolution.
88
- **Canonical serializer** — byte-identical output to the TypeScript reference (the cross-language wire format).
9-
- **Conformance runner** — auto-discovers `fixtures/conformance/*` and runs the shared corpus as `dotnet test`. The conformance corpus is the **oracle** — when a fixture goes red the port is wrong, never the fixture.
9+
- **YAML authoring front-end** — sigil-free attrs + `[]`-array suffix + fused-key default subtype + the D2 type-coercion guard (ADR-0006), via [YamlDotNet](https://github.com/aaubry/YamlDotNet). The cross-language interchange remains canonical JSON; YAML lowers to it.
10+
- **Conformance runners** — auto-discover `fixtures/conformance/*` AND `fixtures/yaml-conformance/*`, both shared with the other ports (TS/Python/Java). The conformance corpora are the **oracles** — when a fixture goes red the port is wrong, never the fixture.
1011

1112
## What it does NOT cover (out of scope)
1213

1314
- Codegen (each language emits its own idiomatic per-language code; byte equivalence is not a goal at the codegen layer).
1415
- Runtime helpers (ObjectManager, filter parsing, CRUD endpoints) — per-language runtime concerns.
1516
- The `dbProvider` provider — the conformance corpus uses only `metaobjects-core-types`.
16-
- YAML parsing — the corpus is JSON only. A `MetaDataFormat.Yaml` enum value exists for source-discovery parity; the base loader throws on YAML content. The `ParseSource` seam is `protected virtual` so a future YAML port can drop in.
1717

1818
## Running
1919

@@ -31,7 +31,9 @@ The test suite includes per-fixture `Lint` and `Conformance` theories over the s
3131
- `Meta/MetaData.cs` and the concrete node classes (`MetaRoot`, `MetaObject`, `MetaField`, etc.)
3232
- `CoreAttrSchemas.cs`, `CoreTypes.cs` — the `metaobjects-core-types` provider
3333
- `Parser.cs`, `SuperResolve.cs`, `SerializerJson.cs`
34+
- `YamlDesugar.cs`, `ParserYaml.cs` — YAML authoring front-end (ADR-0006)
3435
- `Loader/``IMetaDataSource`, `InMemorySource`, `FileSource`, `MetaDataLoader`, `FileMetaDataLoader`, `ValidationPasses`
3536
- `MetaObjects.Conformance.Tests/` — xUnit test project + conformance harness
3637
- `ConformanceAdapter.cs`, `FixtureDiscovery.cs`, `OperationScript.cs`, `FixtureLint.cs`, `Navigator.cs`, `CapabilityBinding.cs`, `Result.cs`, `ExpectedFailures.cs`, `conformance-expected-failures.json`, `ConformanceTests.cs`
38+
- `YamlConformanceTests.cs`, `YamlDesugarTests.cs`, `yaml-conformance-expected-failures.json` — YAML conformance + unit tests
3739
- Per-pipeline-stage unit tests (`ErrorsTests`, `RegistryTests`, `TreeTests`, `ParserTests`, `SerializerTests`, `LoaderTests`, `SuperResolveTests`, `ValidationTests`, …)

0 commit comments

Comments
 (0)