docs(roadmap): rebuild tracker references after the GitHub loss

The roadmap and README cited issue numbers from the deleted GitHub
tracker and carried stale XSTS figures (0/39/0/26 and 0/43/0/31 against
the enforced 0/8/0/4). Recreate the load-bearing issues on Codeberg
(#3 production-readiness epic, #4 and #5 gate trackers, #6 performance,
#7 Xalan burn-down), cite them, correct every baseline figure to the
test ratchet, mark shipped work (located diagnostics, the differential
harness) as done, and note that pre-migration numbers in the historical
narrative refer to the lost tracker.

Closes #2
This commit is contained in:
Mihaela Mihaljevic 2026-07-05 05:49:57 +02:00
parent 6c2810d71a
commit f7d8fa16d1
3 changed files with 64 additions and 35 deletions

View File

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

View File

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

View File

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