chore(release): stamp 0.4.8 from main and repoint to codeberg.org/Mihaela
The earlier release/0.4.8 branch stamped the changelog but the tag was never cut, and main moved 60 commits past it. Fold the accumulated unreleased entries into the still-unpublished 0.4.8 section, redate it, repoint every remaining github.com/mihaelamj reference (badges, support links, roadmap, the XSLT vendor-url system property), and track the shared-rules baseline v1.1.2.
This commit is contained in:
parent
c7ef8abfd9
commit
d63218256c
4
.github/ISSUE_TEMPLATE/config.yml
vendored
4
.github/ISSUE_TEMPLATE/config.yml
vendored
@ -1,8 +1,8 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: Questions and ideas
|
||||
url: https://github.com/mihaelamj/PureXML/discussions
|
||||
url: https://codeberg.org/Mihaela/PureXML/discussions
|
||||
about: Ask questions, float ideas, or discuss design in Discussions.
|
||||
- name: Security issue
|
||||
url: https://github.com/mihaelamj/PureXML/blob/main/SECURITY.md
|
||||
url: https://codeberg.org/Mihaela/PureXML/blob/main/SECURITY.md
|
||||
about: Do not file security issues publicly. Follow the security policy instead.
|
||||
|
||||
1
.rules-version
Normal file
1
.rules-version
Normal file
@ -0,0 +1 @@
|
||||
1.1.2
|
||||
@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
Nothing yet.
|
||||
|
||||
## [0.4.8] - 2026-07-05
|
||||
|
||||
### Changed
|
||||
|
||||
- A generated-value facet differential against libxml2 (`FacetValidationDifferentialTests`, opt-in via `FACET_DIFF` and `xmllint`) exercises the datatype and facet value space, the largest correctness surface the determinism and instance-content differentials do not touch: for each generated simple type restricting a built-in (`xs:int`, `decimal`, `double`, `string`, `token`, `boolean`, `date`, `dateTime`, `nonNegativeInteger`) by a subset of its facets (min/maxInclusive/Exclusive, length/min/maxLength, totalDigits/fractionDigits, pattern, enumeration, whiteSpace), it validates a pool of values chosen at and around the facet boundaries with PureXML and with libxml2 and flags every disagreement, asserting the cardinal rule (zero values PureXML rejects that libxml2 accepts). Over about ten thousand values it found one false positive, the `NaN` enumeration fixed below, and otherwise zero; the residual false negatives are contested datatype readings (whitespace collapse, `NaN` against a range facet) where PureXML matches the XSD spec and this libxml2 build is stricter. Test-only.
|
||||
@ -53,7 +57,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
- XSTS invalid-schemas-accepted (#145): a particle restriction whose restricting element has a union-typed base element now applies Type Derivation OK (Simple) (`cos-st-derived-ok`) rather than structural member subsetting. The NameAndTypeOK type clause (§3.9.6) requires the restricting element's type to be validly derived from the base element's type; PureXML accepted a *separately declared* union whenever its member types were a subset of the base union's members, which is not the spec's derivation relation. The restricting type is now valid over a union base only if it is the base type, derives from it through a declared restriction chain, or (clause 2.2.4) validly derives from one of the union's member types. Catches particlesIk011 (a fresh `union(integer)` is not a restriction of `union(integer, string)`): invalid-schemas-accepted 9 to 8, with valid-schemas-rejected held at 0 (verified over the full XSTS; the change is scoped to the element-restriction path, so no attribute or simple-type derivation check moved). Disclosed divergence: particlesIk025/Ik027, where the restricting type derives from a union *member*, are accepted per `cos-st-derived-ok` clause 2.2.4, a contested reading their XSTS `invalid` expectation does not share.
|
||||
|
||||
## [0.4.8] - 2026-06-27
|
||||
|
||||
### Removed
|
||||
|
||||
|
||||
16
README.md
16
README.md
@ -1,11 +1,11 @@
|
||||
# PureXML
|
||||
|
||||
[](https://github.com/mihaelamj/PureXML/actions/workflows/style.yml)
|
||||
[](https://github.com/mihaelamj/PureXML/actions/workflows/swift-macos.yml)
|
||||
[](https://github.com/mihaelamj/PureXML/actions/workflows/swift-linux.yml)
|
||||
[](https://github.com/mihaelamj/PureXML/actions/workflows/swift-windows.yml)
|
||||
[](https://github.com/mihaelamj/PureXML/actions/workflows/swift-wasm.yml)
|
||||
[](https://github.com/mihaelamj/PureXML/actions/workflows/swift-xsts.yml)
|
||||
[](https://codeberg.org/Mihaela/PureXML/actions?workflow=style.yml)
|
||||
[](https://codeberg.org/Mihaela/PureXML/actions?workflow=swift-macos.yml)
|
||||
[](https://codeberg.org/Mihaela/PureXML/actions?workflow=swift-linux.yml)
|
||||
[](https://codeberg.org/Mihaela/PureXML/actions?workflow=swift-windows.yml)
|
||||
[](https://codeberg.org/Mihaela/PureXML/actions?workflow=swift-wasm.yml)
|
||||
[](https://codeberg.org/Mihaela/PureXML/actions?workflow=swift-xsts.yml)
|
||||
[](LICENSE)
|
||||
|
||||
PureXML is a dependency-free XML package written entirely in Swift.
|
||||
@ -20,7 +20,7 @@ intentionally strict about portability:
|
||||
- root Swift package layout
|
||||
- macOS, Linux, Windows, and WASI build gates
|
||||
|
||||
It is a sibling project to [PureYAML](https://github.com/mihaelamj/PureYAML) and
|
||||
It is a sibling project to [PureYAML](https://codeberg.org/Mihaela/PureYAML) and
|
||||
follows the same structure, rules, and verification gates.
|
||||
|
||||
## Roadmap
|
||||
@ -142,7 +142,7 @@ flowchart TB
|
||||
|
||||
## Status
|
||||
|
||||
**Current focus:** production readiness for IDE use ([#167](https://github.com/mihaelamj/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 ([#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.
|
||||
|
||||
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
|
||||
|
||||
@ -2,8 +2,8 @@
|
||||
|
||||
Need help with PureXML? Here is where to go.
|
||||
|
||||
- **Questions and ideas**: open a [Discussion](https://github.com/mihaelamj/PureXML/discussions).
|
||||
- **Bug reports**: open an [issue](https://github.com/mihaelamj/PureXML/issues/new/choose)
|
||||
- **Questions and ideas**: open a [Discussion](https://codeberg.org/Mihaela/PureXML/discussions).
|
||||
- **Bug reports**: open an [issue](https://codeberg.org/Mihaela/PureXML/issues/new/choose)
|
||||
using the bug form.
|
||||
- **Feature requests**: open an issue using the feature form.
|
||||
- **Security issues**: do not open a public issue. See [SECURITY.md](SECURITY.md).
|
||||
|
||||
@ -322,7 +322,7 @@ extension PureXML.XSLT {
|
||||
switch localPart(name) {
|
||||
case "version": .number(1.0)
|
||||
case "vendor": .string("PureXML")
|
||||
case "vendor-url": .string("https://github.com/mihaelamj/PureXML")
|
||||
case "vendor-url": .string("https://codeberg.org/Mihaela/PureXML")
|
||||
default: .string("")
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
# 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.
|
||||
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.
|
||||
|
||||
## Current focus (priority order)
|
||||
|
||||
@ -9,7 +9,7 @@ Living index of open work. **Pin [#167](https://github.com/mihaelamj/PureXML/iss
|
||||
3. **#169**: located schema diagnostics (line/column).
|
||||
4. **#172–#174**: instance-validation cluster tasks.
|
||||
|
||||
Parallel: **#130** (XSLT suite), **#139** (performance epic; tasks [#175](https://github.com/mihaelamj/PureXML/issues/175)–[#178](https://github.com/mihaelamj/PureXML/issues/178)).
|
||||
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).
|
||||
|
||||
@ -19,10 +19,10 @@ These mirror the ratchet asserted in `Tests/XSTSSuiteTests.swift`; update both t
|
||||
|
||||
| Gate | Now | Issue |
|
||||
|---|---|---|
|
||||
| Valid schemas rejected | 0 | [#148](https://github.com/mihaelamj/PureXML/issues/148) |
|
||||
| Invalid schemas accepted | 43 | [#145](https://github.com/mihaelamj/PureXML/issues/145) |
|
||||
| Valid instances rejected | 0 | [#146](https://github.com/mihaelamj/PureXML/issues/146) |
|
||||
| Invalid instances accepted | 31 | [#147](https://github.com/mihaelamj/PureXML/issues/147) |
|
||||
| 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) |
|
||||
|
||||
Gates are **metric trackers**, not implementation tasks. Pick up **task** issues; ratchet baselines in `Tests/XSTSSuiteTests.swift` when counts fall.
|
||||
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
Date: 2026-06-30
|
||||
|
||||
This audit checks PureXML against the Swift rule set at
|
||||
<https://github.com/mihaelamj/rules-swift>. It separates mechanical proof from
|
||||
<https://codeberg.org/Mihaela/rules-swift>. It separates mechanical proof from
|
||||
architecture findings. Fill every row before claiming conformance. A row left at
|
||||
`Gap` or `Partial` keeps `scripts/check-rules-swift.sh` red, which is the
|
||||
intended behavior until the repo actually conforms.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user