Release management
Development happens on a feature branch. The maintainer reviews and commits
changes, then runs scripts/new-release.sh to cut a release.
Prepare branches
The script expects local main, dev, and feature branches. For a fresh
checkout with only main, create the initial branches once:
git switch -c dev
git switch -c feat/maint-0.1.0
Before releasing, commit all changes, bring local main and dev up to date,
and merge dev into the feature branch. Run the checks from the checkout:
python3 -B -m unittest discover -s tests -v
bash -n scripts/new-release.sh
Cut a release
Inspect usage without changing the repository:
./scripts/new-release.sh --help
From the clean feature branch, choose the version and release message. For example, the first release could be:
./scripts/new-release.sh 0.1.0 "Initial project foundation"
The script merges the feature branch into dev, updates DMyCount.VERSION
and CHANGELOG.md, merges into main, and creates an annotated version tag.
It pushes main, dev, and the tag to origin, then creates the next local
feature branch, such as feat/maint-0.1.1.
An optional third argument sets the next feature branch name. The command publishes Git changes; it does not install or deploy application software.