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.
This commit is contained in:
Mihaela Mihaljevic 2026-06-16 01:29:54 +02:00
parent baa90cfcaa
commit 5f6170a57a
2 changed files with 69 additions and 6 deletions

View File

@ -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`).

50
docs/roadmap.md Normal file
View File

@ -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