Create a Release — NetMonitor-2.0
Prerequisites — complete the release prep checklist first
bd show NetMonitor-2.0-c0p # View the release prep checklist
All items must be checked before tagging:
- All blocking bugs fixed and verified
- Full test suite passing (use
check-coverageskill) - No P0 silent failures outstanding
- Coverage meets all thresholds
- Build succeeds with release scheme
- Signing/provisioning verified
- Release notes drafted (auto-generated, but review them)
Step 1 — Verify clean state
git status # Must show clean working tree
git log --oneline -5 # Confirm latest commits are as expected
swiftlint lint --quiet # Must show 0 errors
swiftformat --lint . # Must show 0 files need formatting
Step 2 — Bump version in project.yml
Version fields to update in project.yml:
# NetMonitor-macOS
CFBundleShortVersionString: "2.0" # User-visible version (e.g. 2.0.1)
CFBundleVersion: "16" # Build number — increment by 1 each release
# NetMonitor-iOS
CFBundleShortVersionString: "2.0"
CFBundleVersion: "2"
After editing project.yml:
xcodegen generate # Regenerate .xcodeproj
git add project.yml NetMonitor-2.0.xcodeproj/
git commit -m "chore: bump version to 2.x.y (build N)"
git push
Step 3 — Create and push the tag
# Format: v{major}.{minor}.{patch}
git tag -a v2.0.0 -m "NetMonitor 2.0.0"
git push origin v2.0.0
This triggers .github/workflows/release.yml automatically.
Step 4 — Monitor the release workflow
gh run list --workflow=release.yml --limit 5
gh run view --log $(gh run list --workflow=release.yml --limit 1 --json databaseId --jq '.[0].databaseId')
Step 5 — Review and publish the GitHub Release
The workflow creates a draft release with auto-generated notes. Review it:
gh release view v2.0.0
If the notes look correct, publish:
gh release edit v2.0.0 --draft=false
Step 6 — Close the release prep issue
bd close NetMonitor-2.0-c0p
bd sync
git push
Version convention
v2.0.0— major feature releasev2.0.1— bug fix releasev2.1.0— minor feature addition- Build number increments on every release regardless of semver
Source: jbcrane13/NetMonitor-2.0 — distributed by TomeVault.