A Git workflow automation tool for managing software versions between snapshots and releases, with integrated changelog generation.
This framework uses a framework named senv
that is not yet public.
This tool automates the version management process between development (SNAPSHOT) and release versions, using a central version.txt
file as the source of truth. It integrates with Maven projects and provides colored console output for better visibility.
- Automated version management between SNAPSHOT and release versions
- Integrated changelog generation using git-cliff
- Maven version synchronization
- Git tag management
- Colored console output for better readability
- Windows and Unix-compatible (requires Cygwin/bash)
- Git
- Windows environment
- Maven (optional, for Java projects)
- git-cliff (for changelog generation)
- Add this repository as a submodule to your project:
git submodule add https://github.com/your-repo/senv_dev_workflow
git submodule update --init --recursive
- Create a
version.txt
file in your project root with the format:
0.1.0-SNAPSHOT -- Initial development version
Description line 1
Description line 2
All the following commands should be triggered in the corresponding wrapper scripts (build.bat
, init.bat
, senv.bat
)
To update versions:
update-version.bat # Updates SNAPSHOT version
update-version.bat rel # Creates a release version
t_build.bat pre-processing # Prepares version for build
t_build.bat pre-processing rel # Prepares release version
t_build.bat post-processing # Post-build processing
The version.txt
file follows this format:
<version> -- <title>
<empty line>
<description line 1>
<description line 2>
...
version
: Current version (e.g., "1.0.0-SNAPSHOT" or "1.0.0")title
: Release/version titledescription
: Multi-line description used in changelog
It also interacts with pom.xml
files when used in a maven project.
It will also interact with package.json
soon.
PRJ_DIR
: Project directory path (required)PRJ_DIR_NAME
: Project directory name (required)