Releasing a New Version of a KIParla Module
This guide describes the steps to release a new version of any KIParla module (KIP, KIPasti, ParlaTO, ParlaBO) from the dev branch to main.
KIParla follows Semantic Versioning:
-
Patch (x.y.z) — data corrections, typo fixes, metadata updates
-
Minor (x.y.0) — new features, new files, backwards-compatible changes
-
Major (x.0.0) — breaking changes to format or structure
Step 1: Make your changes on dev
All work happens on the dev branch. Make your edits, then commit:
git checkout dev
# ... make changes ...
git add <changed files>
git commit -m "fix: <short description of what was corrected>"
git push origin dev
Step 2: Bump the version in CITATION.cff
Edit CITATION.cff and update the version field to the new version number:
version: x.y.z
Commit the change:
git add CITATION.cff
git commit -m "chore: bump version to x.y.z"
git push origin dev
Step 3: Open a Pull Request from dev to main
On GitHub, open a PR from dev → main with:
-
A descriptive title (e.g. "Release v1.1.1 – normalize Intonation feature values")
-
A summary of what was changed and why
Review the diff, then merge.
Step 4: Run the release workflow
Steps 4 and 5 are fully automated. After merging your PR to main:
-
Go to Actions → Release Module → Run workflow on GitHub.
-
Click Run workflow — no inputs needed.
The workflow will:
-
Read the version from
CITATION.cffonmain. -
Stamp that version into
docs/antora.yml(so the Antora version dropdown shows it correctly) and push the change. -
Verify the tag does not already exist.
-
Create and push an annotated tag
vx.y.z. -
Open a draft GitHub Release pre-filled with auto-generated release notes (commits since the last tag).
Step 5: Review and publish the draft release
Go to Releases on GitHub. You will find a draft named vx.y.z.
-
Review the auto-generated notes.
-
Edit, reorder, or add context as needed.
-
Click Publish release.
Publishing triggers two automated workflows in parallel:
-
notify-collection.yml→ rebuilds KIParla-collection (see below). -
update-changelog.yml→ prepends the release notes to theChangelogpage in the module documentation, making them available on this site.
Notes
-
Repeat these steps independently for each module that was changed.
-
If multiple modules are released together, keep their version numbers in sync.
-
The
CITATION.cffondevmay lag behindmainafter a release — always verify and update it at the start of a new release cycle.
|
Make sure the version in |
|
Make sure the version in |
Collection rebuild
Every time a module release is published, the build.yml workflow in KIParla-collection runs automatically. No manual action is required.
What the build workflow does
-
Clones the latest
mainof all four module repos (KIP, KIPasti, ParlaBO, ParlaTO). -
Syncs all TSV and EAF files into the collection.
-
Regenerates the linear-jefferson and linear-orthographic formats using
tools/tsv2formats.py. -
Merges metadata from all modules using
tools/merge_metadata.py. -
Increments the patch version of the collection in
CITATION.cffand updatesdate-released. -
Commits all changes and pushes to
mainof KIParla-collection. -
Creates an annotated tag and GitHub Release for the new collection version, linking back to the module release that triggered the rebuild.
If no files changed (e.g. the module release only updated documentation), no commit or release is created.