docs/RELEASING.md
Steps to publish a new Karate release. Replace X.Y.Z with the version being released.
main is green on CIpom.xml (remove any -SNAPSHOT or .RC* suffix):
mvn versions:set -DnewVersion=X.Y.Z -DgenerateBackupPoms=false
vX.Y.Z tag is created later via the GitHub release UI, not from the CLI):
git add -A && git commit -m "release X.Y.Z"
git push
X.Y.Z (must match the tag exactly)vX.Y.Z on the release form (target: main) — this creates the tag as part of publishing the releasevX.Y.Z explicitly (must match the tag) — if left blank, the GitHub UI defaults the title to the most recent commit messagehttps://github.com/karatelabs/karate/milestone/NN?closed=1https://github.com/karatelabs/karate/compare/vPREVIOUS...vX.Y.Zkarate-X.Y.Z.jar (fat jar)cve-sbom-report.htmlX.Y.Z milestone via the GitHub UI, leaving a comment vX.Y.Z released on each (issues labeled fixed typically just need to be closed)X.Y.ZThis is critical — the CLI installer pulls versions from this manifest.
karate-sh repo (sibling directory ../karate-sh)public/manifest.json:
karate artifacturl to the fat jar download URL on GitHub Releasessha256 from the release asset or compute locally:
shasum -a 256 karate-X.Y.Z.jar
stable channel from the previous version to the new onechannel_defaults.stable to point to X.Y.Zgenerated_at timestampmain (Netlify auto-deploys)curl -s https://karate.sh/manifest.json | jq '.channel_defaults.stable'../karate-sh/README.md for full manifest schema details../karate-template to use version X.Y.Z../karate-todo to use version X.Y.ZTODO: Automate this step with CI/CD — a workflow that bumps the Karate version across all example projects and runs their tests.
../karate-examples — bump Karate version to X.Y.Z in all example pom.xml / build.gradle filespom.xml to the next RC version:
mvn versions:set -DnewVersion=X.Y.Z+1.RC1 -DgenerateBackupPoms=false
[no ci] to skip the CI build for this bump):
git add -A && git commit -m "prepare for next development iteration [no ci]"
git push