docs(release): prepare 0.1.0 notes
This commit is contained in:
parent
bb3533ff18
commit
6dab60e4bb
@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [0.1.0] - 2026-06-05
|
||||
|
||||
### Added
|
||||
|
||||
- Bootstrap PureYAML as a root Swift package with no external dependencies.
|
||||
|
||||
@ -98,6 +98,8 @@ but it does not copy their implementation into `Sources/`. See
|
||||
cross-platform gates.
|
||||
- [Migration and support boundaries](docs/MIGRATION.md): what PureYAML can
|
||||
replace today and which YAML features are deliberately unsupported.
|
||||
- [Release process](docs/RELEASE.md): 0.1.0 checklist, verification commands,
|
||||
tag commands, and release-publishing steps.
|
||||
|
||||
## Usage
|
||||
|
||||
|
||||
89
docs/RELEASE.md
Normal file
89
docs/RELEASE.md
Normal file
@ -0,0 +1,89 @@
|
||||
# Release Process
|
||||
|
||||
PureYAML versioning is driven by Git tags. The current release target is 0.1.0.
|
||||
Do not publish the tag until #32 records final local and hosted verification.
|
||||
|
||||
## 0.1.0 Candidate
|
||||
|
||||
- Swift tools version: 6.1
|
||||
- Product: `PureYAML`
|
||||
- SwiftPM dependencies: none
|
||||
- Source targets: Swift only, no C targets and no generated parser targets
|
||||
- Hosted CI matrix: macOS build and test, Linux build and test, WASM build
|
||||
- Release notes file: `docs/releases/pureyaml-0-1-0.md`
|
||||
|
||||
## Local Verification
|
||||
|
||||
Run the full gate from a clean checkout before tagging:
|
||||
|
||||
```sh
|
||||
git status --short --branch
|
||||
bash scripts/check-all.sh
|
||||
```
|
||||
|
||||
`scripts/check-all.sh` expands to:
|
||||
|
||||
```sh
|
||||
bash scripts/check-style.sh
|
||||
bash scripts/check-namespacing.sh
|
||||
bash scripts/check-forbidden-patterns.sh
|
||||
bash scripts/check-changelog-touched.sh
|
||||
bash scripts/check-roadmap.sh
|
||||
swiftformat . --config .swiftformat --lint
|
||||
swiftlint --config .swiftlint.yml --strict
|
||||
swift build
|
||||
swift test
|
||||
bash scripts/check-linux.sh
|
||||
bash scripts/check-wasm.sh
|
||||
```
|
||||
|
||||
The Linux check must exercise build and tests. The WASM check must build the
|
||||
library target with the configured Swift Wasm SDK.
|
||||
|
||||
## Hosted Verification
|
||||
|
||||
Push `main` and wait for the CI workflow to pass:
|
||||
|
||||
```sh
|
||||
git push origin main
|
||||
gh run list --repo mihaelamj/PureYAML --branch main --limit 5
|
||||
gh run watch <run-id> --repo mihaelamj/PureYAML --exit-status
|
||||
```
|
||||
|
||||
The passing run must include all CI jobs:
|
||||
|
||||
- macOS
|
||||
- Linux
|
||||
- WASM
|
||||
|
||||
## Tag and Publish
|
||||
|
||||
Only run these commands after the local gates pass, hosted CI passes, and #32 is
|
||||
updated with the final evidence.
|
||||
|
||||
```sh
|
||||
git status --short --branch
|
||||
git tag -a 0.1.0 -m "PureYAML 0.1.0"
|
||||
git push origin main 0.1.0
|
||||
gh release create 0.1.0 \
|
||||
--repo mihaelamj/PureYAML \
|
||||
--title "PureYAML 0.1.0" \
|
||||
--notes-file docs/releases/pureyaml-0-1-0.md
|
||||
```
|
||||
|
||||
After publishing, verify the release exists:
|
||||
|
||||
```sh
|
||||
git ls-remote --tags origin 0.1.0
|
||||
gh release view 0.1.0 --repo mihaelamj/PureYAML
|
||||
```
|
||||
|
||||
## Do Not Tag If
|
||||
|
||||
- `Package.swift` has any external dependency.
|
||||
- `Sources/` contains C, JavaScript, WebAssembly blobs, or generated parser
|
||||
runtime files.
|
||||
- Any Swift source imports Foundation in the library target.
|
||||
- The changelog does not have a dated 0.1.0 section.
|
||||
- The release notes omit the known deferred issues.
|
||||
- macOS, Linux, or WASM CI is red or still running.
|
||||
59
docs/releases/pureyaml-0-1-0.md
Normal file
59
docs/releases/pureyaml-0-1-0.md
Normal file
@ -0,0 +1,59 @@
|
||||
# PureYAML 0.1.0
|
||||
|
||||
PureYAML 0.1.0 is the first release of a dependency-free YAML package written
|
||||
entirely in Swift.
|
||||
|
||||
## Highlights
|
||||
|
||||
- Root Swift package layout with one library product, `PureYAML`.
|
||||
- No external SwiftPM dependencies.
|
||||
- No C sources, generated parser targets, JavaScript tooling, or Foundation
|
||||
requirement in the library target.
|
||||
- Pure Swift YAML model with ordered mappings, sequences, scalars, and duplicate
|
||||
key preservation.
|
||||
- Parser support for block mappings, block sequences, flow collections, quoted
|
||||
strings, comments, literal and folded block scalars, anchors, aliases, YAML
|
||||
directives, document markers, and selected explicit built-in scalar tags.
|
||||
- Deterministic YAML dumper with block output by default, optional flow
|
||||
collections, conservative plain scalars, and conservative literal block
|
||||
scalars.
|
||||
- Path-aware validation with exact duplicate-key diagnostics, strict and
|
||||
non-strict modes, warning collection, custom rules, rule predicates, and
|
||||
direct value-tree validation for states ordinary loaders may collapse.
|
||||
- Typed `Codable` conversion for scalar, keyed, unkeyed, nested, dynamic-key,
|
||||
dictionary-like, and super-coder cases.
|
||||
- Compatibility and downstream-shaped fixture coverage, including explicit
|
||||
unsupported-gap tests.
|
||||
- Local and hosted macOS, Linux, and WASM gates.
|
||||
|
||||
## Support Boundary
|
||||
|
||||
This is not a full YAML 1.2 implementation. The release intentionally ships a
|
||||
tested subset with exact errors or exact fallback value trees for known gaps.
|
||||
|
||||
Known deferred work is tracked in:
|
||||
|
||||
- #33: multi-document YAML streams
|
||||
- #34: merge keys and complex mapping keys
|
||||
- #35: tag-specific YAML types
|
||||
- #36: fixture-backed validator corpus expansion
|
||||
- #37: arbitrary `Any` load and dump API decision
|
||||
|
||||
## Verification
|
||||
|
||||
The 0.1.0 release process requires #32 to record:
|
||||
|
||||
- `bash scripts/check-all.sh`
|
||||
- hosted macOS CI
|
||||
- hosted Linux CI
|
||||
- hosted WASM CI
|
||||
|
||||
The full gate includes style, namespacing, forbidden-pattern, changelog,
|
||||
roadmap, SwiftFormat, SwiftLint, host build, host tests, Linux build and test,
|
||||
and WASM build checks.
|
||||
|
||||
## Installation After Tagging
|
||||
|
||||
```swift
|
||||
.package(url: "https://github.com/mihaelamj/PureYAML.git", .upToNextMinor(from: "0.1.0"))
|
||||
```
|
||||
Loading…
Reference in New Issue
Block a user