Root Swift package mirroring PureYAML's structure, rules, and verification gates. Includes the XML node model (Node, Element, Attribute, QualifiedName), a working emitter (Serializer) with escaping and pretty/compact options, and structural validation. The parser surface is stable; parse() raises notImplemented until the scanner lands, pinned by a test. - dependency-free, namespaced under PureXML - portability and style gates carried over (style, namespacing, forbidden patterns, swiftformat, swiftlint, linux, wasm, windows CI) - 11 tests passing
29 lines
732 B
Markdown
29 lines
732 B
Markdown
<!-- One focused change per PR. If the diff spans two unrelated concerns, split it. -->
|
|
|
|
## What
|
|
|
|
<!-- What does this change do? -->
|
|
|
|
## Why
|
|
|
|
<!-- Why is it needed? Link the issue it closes, e.g. Closes #123. -->
|
|
|
|
## How to verify
|
|
|
|
<!-- Commands or steps a reviewer can run. -->
|
|
|
|
```sh
|
|
swiftformat . --config .swiftformat --lint
|
|
swiftlint --config .swiftlint.yml --strict
|
|
swift build
|
|
swift test
|
|
bash scripts/check-wasm.sh
|
|
```
|
|
|
|
## Checklist
|
|
|
|
- [ ] Format, lint, build, test, and WASM gates pass.
|
|
- [ ] Code follows the conventions in `docs/CONVENTIONS.md`.
|
|
- [ ] `CHANGELOG.md` updated under `Unreleased` (or this change is docs/tests/config only).
|
|
- [ ] No AI attribution and no em dashes in commits, comments, or this description.
|