This document describes how to cut a release for the open-source Socialmesh client.
- Write access to the repository
- Flutter SDK installed and matching CI version
- All CI checks passing on
main
Update pubspec.yaml:
version: X.Y.Z+BUILD- X.Y.Z — Semantic version (major.minor.patch)
- BUILD — Increment for each release
Edit CHANGELOG.md:
- Add a new
## [X.Y.Z] - YYYY-MM-DDsection - Move items from Unreleased (if any) to the new version
- Use headings: Added, Changed, Fixed, Removed
# Format and analyze
dart format .
flutter analyze
# Run tests
flutter test
# Verify version consistency
./tool/check_version.shgit add pubspec.yaml CHANGELOG.md
git commit -m "chore: release vX.Y.Z"
git tag vX.Y.Z
git push origin main --tags- Go to Releases → Draft a new release
- Select the tag
vX.Y.Z - Title:
vX.Y.Z - Copy the changelog section for this version into the release notes
- Publish
- Backend service code or configurations
- API keys, secrets, or credentials
- App Store / Play Store publishing steps
- Proprietary cloud function code
The open-source release covers the mobile client only. Backend services remain proprietary.
| Component | Example | Purpose |
|---|---|---|
| Major | 1.x.x | Breaking changes |
| Minor | x.2.x | New features, backward compatible |
| Patch | x.x.0 | Bug fixes, backward compatible |
| Build | +96 | Sequential build number for stores |