This document outlines the process for creating new releases of GoScry.
GoScry uses GitHub Actions for continuous integration and deployment. The CI/CD pipeline automatically builds, tests, and creates releases when tags are pushed.
- Ensure all changes are committed and pushed to the main branch
- Tag the commit with a version number following semantic versioning (e.g.,
v1.0.0)git tag -a v1.0.0 -m "Release v1.0.0" git push origin v1.0.0 - The GitHub Actions workflow will automatically:
- Build and test the code
- Create binaries for multiple platforms (Linux, macOS, Windows)
- Create a GitHub Release with the built binaries
- Generate release notes based on the commits since the last tag
The following binaries are automatically built and attached to each release:
- Linux (AMD64):
goscry-linux-amd64.zip - macOS (AMD64):
goscry-darwin-amd64.zip - macOS (ARM64):
goscry-darwin-arm64.zip - Windows (AMD64):
goscry-windows-amd64.zip
GoScry follows Semantic Versioning:
- MAJOR version for incompatible API changes
- MINOR version for functionality added in a backward compatible manner
- PATCH version for backward compatible bug fixes
Before tagging a new release, ensure:
- All tests pass locally and in CI
- Documentation is updated
- CHANGELOG.md is updated with a summary of changes
- Version numbers are updated in relevant files
For urgent fixes:
- Create a branch from the tag that needs fixing
- Apply the fix
- Tag with an incremented patch version
- Push the tag