This document describes how to create a new release of SledLink.
- Write access to the SledLink repository
- Git installed locally
- Commits ready to release on the main branch
Follow Semantic Versioning:
- MAJOR (v4.0.0): Breaking changes, incompatible API changes
- MINOR (v3.1.0): New features, backward compatible
- PATCH (v3.0.1): Bug fixes, backward compatible
Current firmware displays "v3.0" - this is independent of release version.
# Ensure you're on main branch and up to date
git checkout main
git pull
# Create annotated tag
git tag -a v3.0.1 -m "Release v3.0.1: Bug fixes and improvements"
# Push tag to GitHub
git push origin v3.0.1- Go to: https://github.com/thompcd/SledLink/actions
- Watch the "Build and Release" workflow
- It will:
- Validate the tag
- Install dependencies
- Create release package with source code and upload tools
- Create GitHub release
- Upload ZIP file
- Go to: https://github.com/thompcd/SledLink/releases
- Check that your release appears with:
- Correct version number
- ZIP file attached
- Generated changelog
- Installation instructions
You can enhance the auto-generated release notes:
- Click "Edit" on the release
- Add highlights, known issues, or additional context
- Save
For beta or RC versions, add a suffix:
git tag -a v3.1.0-beta.1 -m "Beta release for testing"
git push origin v3.1.0-beta.1GitHub will automatically mark these as "Pre-release".
- Check the Actions log for the error
- Common issues:
- Syntax error in code
- Missing library dependency
- Build script issue
- Fix the issue, create a new tag (v3.0.2)
- Delete the tag locally:
git tag -d v3.0.1 - Delete the tag remotely:
git push --delete origin v3.0.1 - Delete the GitHub release (manually on GitHub)
- Create correct tag
If GitHub Actions is down:
# Run build script locally
./build_release.sh v3.0.1
# Create release manually on GitHub
# Upload release/SledLink-v3.0.1.zip# Developer finds and fixes encoder bug
git checkout -b fix/encoder-bug
# ... make changes ...
git commit -m "Fix encoder overflow on long pulls"
git push origin fix/encoder-bug
# Create PR, get review, merge to main
# Maintainer creates release
git checkout main
git pull
git tag -a v3.0.1 -m "Release v3.0.1: Fix encoder overflow"
git push origin v3.0.1
# GitHub Actions automatically:
# - Builds firmware
# - Creates release
# - Uploads ZIP
# - Generates changelog
# Maintainer verifies on GitHub Releases page
# Users download SledLink-v3.0.1.zip# Developer adds WiFi config UI
git checkout -b feature/wifi-config
# ... make changes ...
git commit -m "Add WiFi configuration web UI"
git push origin feature/wifi-config
# Create PR, get review, merge to main
# Update firmware display version if major change
# Edit arduino/*/Controller.ino: #define FIRMWARE_DISPLAY_VERSION "v3.1"
# Maintainer creates release
git checkout main
git pull
git tag -a v3.1.0 -m "Release v3.1.0: WiFi configuration UI"
git push origin v3.1.0
# GitHub Actions builds and releases| Version | Date | Notes |
|---|---|---|
| v1.0.0 | TBD | First public release |