Release Process
Versioning
Section titled “Versioning”sql-splitter uses Semantic Versioning:
- MAJOR: Breaking changes
- MINOR: New features (backward compatible)
- PATCH: Bug fixes
Release Checklist
Section titled “Release Checklist”- Update version in
Cargo.toml - Update
CHANGELOG.md - Run tests:
cargo test - Build:
cargo build --release - Create git tag:
git tag v1.2.3 - Push:
git push && git push --tags - GitHub Actions builds and releases
GitHub Actions
Section titled “GitHub Actions”Releases are automated via GitHub Actions:
- Tag push triggers release workflow
- Builds for all platforms:
- Linux x86_64
- Linux ARM64
- macOS Intel
- macOS Apple Silicon
- Windows x86_64
- Creates GitHub Release with binaries
- Publishes to crates.io
Changelog Format
Section titled “Changelog Format”## [1.2.3] - 2024-01-15
### Added
- New `query` command for SQL analytics (#123)
### Changed
- Improved COPY statement parsing (#124)
### Fixed
- Fixed crash on empty input files (#125)Pre-Release Testing
Section titled “Pre-Release Testing”Before tagging:
# Run all testscargo test
# Verify real-world dumpsmake verify-realworld
# Build and test binarycargo build --release./target/release/sql-splitter --version./target/release/sql-splitter validate tests/fixtures/mysql/simple.sqlCrates.io Publishing
Section titled “Crates.io Publishing”After tagging, maintainers publish to crates.io:
cargo publish