# Release Process PureYAML versioning is driven by Git tags. The current release is 0.2.0. ## 0.2.0 Release - Swift tools version: 6.1 - Products: `PureYAML`, `PureYAMLJSON` - 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, Windows build and test, WASM build - Release notes file: `docs/releases/pureyaml-0-2-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 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 and Windows checks 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 ``` Watch the run at . Until the full platform matrix runs on Codeberg runners, the authoritative platform gates are the local ones (`scripts/check-all.sh` covers macOS, the Linux relay, and WASM); Windows verification is deferred and must be disclosed in the release notes. ## Tag and Publish Only run these commands after the local gates pass and hosted CI passes. ```sh git status --short --branch git tag -a 0.2.0 -m "PureYAML 0.2.0" git push origin main 0.2.0 tea releases create --login codeberg --repo NodetteHQ/PureYAML \ --tag 0.2.0 --title "PureYAML 0.2.0" \ --note "$(cat docs/releases/pureyaml-0-2-0.md)" ``` After publishing, verify the release exists: ```sh git ls-remote --tags origin 0.2.0 tea releases list --login codeberg --repo NodetteHQ/PureYAML | head ``` ## 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 section for the version being tagged. - The release notes omit known deferred issues. - Any locally runnable platform gate (macOS, Linux relay, WASM) is red, or a skipped platform is not disclosed in the release notes.