This project includes an automated release system similar to bumpp for npm packages but designed for bash script projects.
The project uses semantic versioning (SemVer) with a VERSION file in the root directory that tracks the current version.
# Bump patch version (1.0.0 -> 1.0.1)
./release.sh
# Bump minor version (1.0.0 -> 1.1.0)
./release.sh minor
# Bump major version (1.0.0 -> 2.0.0)
./release.sh major
# Set specific version
./release.sh 2.0.0
# Dry run - show what would be done without making changes
./release.sh --dry-run
./release.sh --dry-run minor# Bump patch version (default)
make release
# Bump major version
make release-major
# Bump minor version
make release-minor
# Bump patch version (explicit)
make release-patch- Updates the
VERSIONfile with the new version - Creates a git commit with the message "release: v[version]"
- Creates a git tag with the format "v[version]"
- Provides instructions for pushing changes
After running a release command, you'll need to push the changes and tags to the remote repository:
git push origin main
git push origin v[version]For example, if you released version 1.2.3:
git push origin main
git push origin v1.2.3- Git repository with clean working directory (no uncommitted changes)
- VERSION file in the root directory
- Proper permissions to create commits and tags