Skip to content

Bump hook recipes

Cargo library projects

A recipe for Cargo projects with a git-ignored Cargo.lock file, aka library projects.

Prerequisites:

  • cargo-edit

Hooks:

toml
pre_bump_hooks = [
  "cargo build --release",          # verify the project builds
  "cargo set-version {{version}}",  # bump version in Cargo.toml
]
post_bump_hooks = [
  "git push",
  "git push {{version}}",
]

Cargo executable projects

A recipe for Cargo projects with a managed Cargo.lock file, aka executable projects. Notably, the version bump is also included in the lockfile by running cargo check and then staging the change before creating the bump commit.

Prerequisites:

  • cargo-edit

Hooks:

toml
pre_bump_hooks = [
  "cargo build --release",          # verify the project builds
  "cargo set-version {{version}}",  # bump version in Cargo.toml
  "cargo check --release",
  "git add :/Cargo.lock",           # stage version bump in Cargo.lock
]
post_bump_hooks = [
  "git push",
  "git push {{version}}",
]

Java Maven projects

A recipe for Java Maven projects. Notably, the version bump is also included in the pom.xml project manifest by running mvn versions:set and then staging the change before creating the bump commit.

You can also run mvn deploy if this phase is configured in your pom.xml.

Hooks:

toml
pre_bump_hooks = [
  "mvn versions:set -DnewVersion={{version}}",
  "mvn clean package",
]

post_bump_hooks = [
  "mvn deploy", # Optional
  "git push origin {{version}}",
  "git push"
]