diff --git a/CHANGELOG.md b/CHANGELOG.md index 4b37d88..902119c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -Nothing yet. +### Changed + +- Rebuild the issue tracker on Codeberg after the GitHub tracker loss: the + production-readiness epic, both XSTS gate trackers, the performance epic, + and the Xalan burn-down are recreated with current dated statuses, and + `docs/roadmap.md` and `README.md` now cite the new numbers. The stale + baseline figures in both documents are corrected to the enforced ratchet + in `Tests/XSTSSuiteTests.swift` (0 / 8 / 0 / 4); shipped items (located + diagnostics, the schema differential harness) no longer show as open. ## [0.4.8] - 2026-07-05 diff --git a/README.md b/README.md index d885bde..fbde7b9 100644 --- a/README.md +++ b/README.md @@ -73,9 +73,12 @@ are all shipped (summarized above). The beyond-parity libxml2 conformance audit 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 **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`. +epic [#3](https://codeberg.org/Mihaela/PureXML/issues/3) (schema authority, +differential oracle, located diagnostics). Conformance suite maintenance is +closed, leaving [#7](https://codeberg.org/Mihaela/PureXML/issues/7) (XSLT xalan +burn-down) as the only active runner work; see `docs/roadmap.md`. Issue numbers +in the historical narrative below refer to the pre-migration tracker that was +lost with the GitHub repository. ```mermaid flowchart TB @@ -102,19 +105,19 @@ flowchart TB BaseURI["#138 per-entity base URIs: complete"]:::done Epic122["#122 conformance suite maintenance: complete (#130 survivor)"]:::epic XSTS["#129 XSTS runner shipped; gates #145-#148 at 0/39/0/26"]:::review - XSLTTS["#130 XSLT 1.0 suite (xalan-test): ~126 baseline failures"]:::review + XSLTTS["#7 XSLT 1.0 suite (xalan-test): 26 pinned 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 + Epic139["#6 faster than libxml2, measured + streaming (benchmarks in docs/benchmarks.md; quadratics killed; unsafe authorized)"]:::epic Audit140["#140 XSLT validation-framework audit"]:::todo Epic139 --> Parity100 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 + Epic167["#3 production readiness for IDE use"]:::epic + Oracle171["schema differential harness (shipped)"]:::done CrossDoc161["#161 cross-document composition"]:::todo - Gates145["#145-#148 XSTS gates: burn-down to 0"]:::review - Loc169["#169 located schema diagnostics"]:::todo + Gates145["#4 / #5 XSTS gates: burn-down 8 and 4 to 0"]:::review + Loc169["located schema diagnostics (shipped)"]:::done Epic195["#195 xsi:type and substitution-group derivation correctness"]:::epic Epic105 --> Epic121 Epic105 --> Epic122 @@ -142,7 +145,7 @@ flowchart TB ## Status -**Current focus:** production readiness for IDE use ([#167](https://codeberg.org/Mihaela/PureXML/issues/167)). XSTS settled baselines (valid schemas rejected / invalid schemas accepted / valid instances rejected / invalid instances accepted), enforced in `Tests/XSTSSuiteTests.swift`: **0 / 39 / 0 / 26**. See [`docs/roadmap.md`](docs/roadmap.md) for milestones and open tasks. +**Current focus:** production readiness for IDE use ([#3](https://codeberg.org/Mihaela/PureXML/issues/3)). XSTS settled baselines (valid schemas rejected / invalid schemas accepted / valid instances rejected / invalid instances accepted), enforced in `Tests/XSTSSuiteTests.swift`: **0 / 8 / 0 / 4**. 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 @@ -221,11 +224,13 @@ beyond-parity audit epics (**#71**, its parser-breadth sub-epic **#74**) and the parity-frontier epic (**#105**) are closed. The remaining distance is **production readiness for IDE use**, tracked under epic -**#167**: driving the XSTS conformance buckets toward zero (currently -**0 / 39 / 0 / 26**), located schema diagnostics (#169), the schema differential -oracle (#171), and cross-document composition (#161). The one active runner -burn-down is **#130** (the XSLT 1.0 xalan suite). See -[`docs/roadmap.md`](docs/roadmap.md). +[#3](https://codeberg.org/Mihaela/PureXML/issues/3): driving the XSTS conformance +buckets toward zero (currently **0 / 8 / 0 / 4**, gates +[#4](https://codeberg.org/Mihaela/PureXML/issues/4) and +[#5](https://codeberg.org/Mihaela/PureXML/issues/5)); located schema diagnostics +and the schema differential oracle are shipped. The one active runner burn-down +is [#7](https://codeberg.org/Mihaela/PureXML/issues/7) (the XSLT 1.0 xalan +suite). See [`docs/roadmap.md`](docs/roadmap.md). ## Usage diff --git a/docs/roadmap.md b/docs/roadmap.md index 1468206..3e33e38 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -1,40 +1,56 @@ # Roadmap -Living index of open work. **Pin [#167](https://codeberg.org/Mihaela/PureXML/issues/167)** on GitHub for the checklist view. Released **v0.4.8** (2026-07-05); pre-1.0 until the production-readiness gates in `docs/production-readiness.md` are earned. +Living index of open work. **Pin [#3](https://codeberg.org/Mihaela/PureXML/issues/3)** +(production readiness for IDE use) for the checklist view. Released **v0.4.8** +(2026-07-05); pre-1.0 until the production-readiness gates in +`docs/production-readiness.md` are earned. + +The tracker was rebuilt on Codeberg after the original issue history was lost +with the GitHub repository; pre-migration issue numbers cited in older +changelog entries and commit messages refer to that lost tracker. ## Current focus (priority order) -1. **#161**: cross-document schema composition (`include`/`import`/`redefine`): chameleon include + cross-container reference checks landed; attg/schZ XSTS burn-down still open. -2. **#158 / #159**: Particle Valid Restriction/Extension completion. -3. **#169**: located schema diagnostics (line/column). -4. **#172–#174**: instance-validation cluster tasks. +1. **[#4](https://codeberg.org/Mihaela/PureXML/issues/4)**: drive invalid + schemas accepted from 8 to 0. The remainder routes through + `ParticleRestriction.violation`'s deliberate under-approximation + (`docs/release-hurdles.md`, Part 1). +2. **[#5](https://codeberg.org/Mihaela/PureXML/issues/5)**: drive invalid + instances accepted from 4 to 0 (contested-spec and policy-dependent tail, + `docs/xsts-deviations.md`). +3. Proven (not capped) interactive resource bounds beyond the content matcher + (`docs/release-hurdles.md`, Part 2; the graph-structured-stack matcher's + linear bound is already count-asserted). -Parallel: **#130** (XSLT suite), **#139** (performance epic; tasks [#175](https://codeberg.org/Mihaela/PureXML/issues/175)–[#178](https://codeberg.org/Mihaela/PureXML/issues/178)). - -**M1 done:** #171 schema differential harness (closed; opt-in; 231 XSTS oracle disagreements pinned) + generative fuzz + validation framework (#92). +Parallel: **[#7](https://codeberg.org/Mihaela/PureXML/issues/7)** (Xalan XSLT +suite burn-down, 26 pinned failures), +**[#6](https://codeberg.org/Mihaela/PureXML/issues/6)** (performance epic, +live table in `docs/benchmarks.md`). ## XSTS gates (current enforced baselines) -These mirror the ratchet asserted in `Tests/XSTSSuiteTests.swift`; update both together. +These mirror the ratchet asserted in `Tests/XSTSSuiteTests.swift`; update both +together. | Gate | Now | Issue | |---|---|---| -| Valid schemas rejected | 0 | [#148](https://codeberg.org/Mihaela/PureXML/issues/148) | -| Invalid schemas accepted | 43 | [#145](https://codeberg.org/Mihaela/PureXML/issues/145) | -| Valid instances rejected | 0 | [#146](https://codeberg.org/Mihaela/PureXML/issues/146) | -| Invalid instances accepted | 31 | [#147](https://codeberg.org/Mihaela/PureXML/issues/147) | +| Valid schemas rejected | 0 | at floor, enforced by the ratchet | +| Invalid schemas accepted | 8 | [#4](https://codeberg.org/Mihaela/PureXML/issues/4) | +| Valid instances rejected | 0 | at floor, enforced by the ratchet | +| Invalid instances accepted | 4 | [#5](https://codeberg.org/Mihaela/PureXML/issues/5) | -Gates are **metric trackers**, not implementation tasks. Pick up **task** issues; ratchet baselines in `Tests/XSTSSuiteTests.swift` when counts fall. +Gates are **metric trackers**, not implementation tasks. Ratchet baselines in +`Tests/XSTSSuiteTests.swift` when counts fall; a rising count is a regression. ## Milestones | Milestone | Exit criteria | Key issues | |---|---|---| -| M1: Trust the oracle | Reference differential + fuzz | ~~#171~~ (closed), fuzz | -| 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 (closed at floor), #130, #139 | +| M1: Trust the oracle | Reference differentials + fuzz | done (schema determinism, facet-value, and instance differentials all land opt-in) | +| M2: Schema compiles correctly | #4 to 0 | #4 | +| M3: Instances validate correctly | #5 to 0 | #5 | +| M4: IDE-ready diagnostics | Located errors, proven bounds | located diagnostics done; bounds under #3 | +| M5: 1.0 | All gates at 0 | #3, #6, #7 | ## Labels