From 5f6170a57a41b3127826ef2c4339fd71cd923892 Mon Sep 17 00:00:00 2001 From: Mihaela Mihaljevic Date: Tue, 16 Jun 2026 01:29:54 +0200 Subject: [PATCH] docs(roadmap): add living roadmap index and README focus link Document the restructured GitHub issue hierarchy (epic #167, gates, milestones M1-M5, task labels) and point README Status at the current production-readiness focus and v0.2.0 XSTS baselines. --- README.md | 25 +++++++++++++++++++------ docs/roadmap.md | 50 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+), 6 deletions(-) create mode 100644 docs/roadmap.md diff --git a/README.md b/README.md index bc270f6..26f7f43 100644 --- a/README.md +++ b/README.md @@ -71,9 +71,10 @@ are all shipped (summarized above). The beyond-parity libxml2 conformance audit (#71), its parser-breadth sub-epic (#74), and the parity-frontier epic (#105: output encodings, streaming validation, the last encodings, the analysis findings, and the first W3C-suite pass) are all **complete**. Feature parity is -done; the remaining distance is corpus-clean parity, tracked under two epics: -**#121** (the rest of the W3C xmlconf archive, including the DTD-validity layer) -and **#122** (the official spec suites for the schema and transform stack). +done; the remaining distance is **production readiness for IDE use**, tracked under +epic **#167** (schema authority, differential oracle, located diagnostics). Conformance +suite maintenance (**#122**, closed) leaves **#130** (XSLT xalan burn-down) as the only +active runner work; see `docs/roadmap.md`. ```mermaid flowchart TB @@ -98,9 +99,9 @@ flowchart TB NSConstraints["#136 namespace constraints: complete"]:::done EncodingMismatch["#137 encoding-declaration mismatches: complete"]:::done BaseURI["#138 per-entity base URIs: complete"]:::done - Epic122["#122 official spec suites"]:::epic - XSTS["#129 W3C XSD test suite (XSTS): runner shipped; settled deviations 1/266/171/155 (#145–#148)"]:::review - XSLTTS["#130 XSLT 1.0 suite (xalan-test): runner + baselines in, burning down (~126)"]:::review + Epic122["#122 conformance suite maintenance: complete (#130 survivor)"]:::epic + XSTS["#129 XSTS runner shipped; gates #145-#148 at 1/266/171/155 (v0.2.0)"]:::review + XSLTTS["#130 XSLT 1.0 suite (xalan-test): ~126 baseline failures"]:::review Parity100["Behavioral parity closed: #141 top-level params, #142 public streaming, #143 XPath budget, #144 WASI runtime proof, pl/ru sort collation"]:::done Epic139["#139 faster than libxml2, measured + streaming (benchmarks in docs/benchmarks.md; quadratics killed; unsafe authorized)"]:::epic Audit140["#140 XSLT validation-framework audit"]:::todo @@ -108,6 +109,11 @@ flowchart TB Epic139 --> Audit140 RNGTS["#131 RELAX NG spec suite: complete, one documented class"]:::done C14NTS["#132 C14N spec vectors: complete"]:::done + Epic167["#167 production readiness for IDE use (v0.2.0)"]:::epic + Oracle171["#171 schema differential harness"]:::todo + CrossDoc161["#161 cross-document composition"]:::todo + Gates145["#145-#148 XSTS gates: burn-down to 0"]:::review + Loc169["#169 located schema diagnostics"]:::todo Epic105 --> Epic121 Epic105 --> Epic122 Epic121 --> Oasis @@ -124,10 +130,17 @@ flowchart TB Epic122 --> XSLTTS Epic122 --> RNGTS Epic122 --> C14NTS + Epic122 --> Epic167 + Epic167 --> Oracle171 + Epic167 --> CrossDoc161 + Epic167 --> Gates145 + Epic167 --> Loc169 ``` ## Status +**Current focus:** production readiness for IDE use ([#167](https://github.com/mihaelamj/PureXML/issues/167)). XSTS settled baselines (v0.2.0): **1 / 266 / 171 / 155**. See [`docs/roadmap.md`](docs/roadmap.md) for milestones and open tasks. + PureXML is a working, dependency-free XML library today: parse, emit, validate, query, and stream documents on macOS, Linux, Windows, and WASM. The test suite currently runs **986 tests in 169 suites** (`swift test`). diff --git a/docs/roadmap.md b/docs/roadmap.md new file mode 100644 index 0000000..ea6e9bf --- /dev/null +++ b/docs/roadmap.md @@ -0,0 +1,50 @@ +# Roadmap + +Living index of open work. **Pin [#167](https://github.com/mihaelamj/PureXML/issues/167)** on GitHub for the checklist view. Released **v0.2.0** (2026-06-16); pre-1.0 until the production-readiness gates in `docs/production-readiness.md` are earned. + +## Current focus (priority order) + +1. **#171**: schema differential harness (PureXML vs Xerces/libxml2). Unblocks safe burn-down. +2. **#161**: cross-document schema composition (`include`/`import`/`redefine`). Largest single XSTS blocker. +3. **#158 / #159**: Particle Valid Restriction/Extension completion. +4. **#169**: located schema diagnostics (line/column). +5. **#172–#174**: instance-validation cluster tasks. + +Parallel: **#130** (XSLT suite), **#139** (performance). + +## XSTS gates (v0.2.0 baselines) + +| Gate | Now | Issue | +|---|---|---| +| Valid schemas rejected | 1 | [#148](https://github.com/mihaelamj/PureXML/issues/148) | +| Invalid schemas accepted | 266 | [#145](https://github.com/mihaelamj/PureXML/issues/145) | +| Valid instances rejected | 171 | [#146](https://github.com/mihaelamj/PureXML/issues/146) | +| Invalid instances accepted | 155 | [#147](https://github.com/mihaelamj/PureXML/issues/147) | + +Gates are **metric trackers**, not implementation tasks. Pick up **task** issues; ratchet baselines in `Tests/XSTSSuiteTests.swift` when counts fall. + +## Milestones + +| Milestone | Exit criteria | Key issues | +|---|---|---| +| M1: Trust the oracle | Reference differential + fuzz | #171 | +| M2: Schema compiles correctly | #145 to 0 | #161, #158, #159 | +| M3: Instances validate correctly | #146, #147 to 0 | #172, #173, #174 | +| M4: IDE-ready diagnostics | Located errors, proven bounds | #169 | +| M5: 1.0 | All gates at 0 | #148, #130 | + +## Labels + +| Label | Meaning | +|---|---| +| `epic` | Grouping issue | +| `gate` | XSTS outcome metric | +| `task` | Implementation work | +| `area-schema` / `area-instance` / `area-infra` / `area-xslt` / `area-perf` | Subsystem | +| `priority-P0` / `P1` / `P2` | Critical path vs parallel | + +## Related docs + +- `docs/production-readiness.md`: the bar for IDE authority +- `docs/schema-validity-burndown.md`: schema-side burn-down protocol +- `docs/xsts-deviations.md`: deviation taxonomy and documented floors