86 lines
2.4 KiB
Markdown
86 lines
2.4 KiB
Markdown
# 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 <https://git.aleahim.com/NodetteHQ/PureYAML/actions>. 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.
|