Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

bumpx-action

stacksjs4.5kMIT0.2.2TypeScript support: included

GitHub Action for bumpx version bumping tool.

github-action, bumpx, version-bump, semver, ci-cd, release

readme

Social Card of this repo

npm version GitHub Actions Commitizen friendly

bumpx

A fast, dependency-free version bumping tool similar to bumpp and version-bump-prompt, built for Bun.

Features

  • 🚀 Zero dependencies - Built using only Node.js built-ins and Bun tooling
  • 📦 Semver compliant - Supports all semantic versioning release types
  • 🔄 Monorepo support - Recursive bumping with --recursive flag
  • 🎯 Git integration - Automatic commit, tag, and push
  • Fast execution - Compiled binary for instant startup
  • 🛠 Highly configurable - Config file and CLI options
  • 🎨 Interactive prompts - Choose version increment interactively
  • 🔧 Custom commands - Execute scripts before git operations

Installation

# Install globally
bun install -g @stacksjs/bumpx

# Or use with bunx
bunx @stacksjs/bumpx patch

Usage

Basic Usage

# Bump patch version (1.0.0 → 1.0.1)
bumpx patch

# Bump minor version (1.0.0 → 1.1.0)
bumpx minor

# Bump major version (1.0.0 → 2.0.0)
bumpx major

# Bump to specific version
bumpx 1.2.3

# Interactive version selection
bumpx prompt

Prerelease Versions

# Bump to prerelease
bumpx prepatch --preid beta  # 1.0.0 → 1.0.1-beta.0
bumpx preminor --preid alpha # 1.0.0 → 1.1.0-alpha.0
bumpx premajor --preid rc    # 1.0.0 → 2.0.0-rc.0

# Increment prerelease
bumpx prerelease  # 1.0.1-beta.0 → 1.0.1-beta.1

Git Integration

# Disable git operations
bumpx patch --no-commit --no-tag --no-push

# Custom commit message
bumpx patch --commit-message "chore: release v%s"

# Custom tag message
bumpx patch --tag-message "Release v%s"

# Sign commits and tags
bumpx patch --sign

# Skip git hooks
bumpx patch --no-verify

Monorepo Support

bumpx now has first-class workspace support with automatic workspace detection:

# Bump all workspace packages
bumpx patch

# Explicitly use recursive mode (detects workspaces automatically)
bumpx patch --recursive

# Bump specific files
bumpx patch package.json packages/*/package.json

# Synchronized versioning across all workspace packages
bumpx patch --current-version 1.0.0

Advanced Options

# Execute custom commands
bumpx patch --execute "bun run build && bun run test"

# Install dependencies after bump
bumpx patch --install

# Skip confirmation prompts
bumpx patch --yes

# CI mode (non-interactive, quiet)
bumpx patch --ci

# Print recent commits
bumpx patch --print-commits

# Skip git status check
bumpx patch --no-git-check

CI/CD Integration

bumpx is designed to work seamlessly in CI/CD environments:

Quick CI Usage

# CI mode - automatically non-interactive
bumpx patch --ci

# Or with explicit flags
bumpx patch --yes --quiet

# Auto-detect CI environment
export CI=true
bumpx patch  # Automatically enables CI mode

GitHub Actions Example

name: Release
on:
  workflow_dispatch:
    inputs:
      release_type:
        description: Release type
        required: true
        default: patch
        type: choice
        options: [patch, minor, major]

jobs:
  release:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          fetch-depth: 0

      - uses: oven-sh/setup-bun@v1

      - name: Install dependencies
        run: bun install

      - name: Configure git
        run: |
          git config --global user.name "github-actions[bot]"
          git config --global user.email "github-actions[bot]@users.noreply.github.com"

      - name: Version bump and release
        run: bunx bumpx ${{ github.event.inputs.release_type }} --ci

For more CI/CD examples and configurations, see Automation & CI/CD.

Configuration

Create a bumpx.config.ts file in your project root:

import { defineConfig } from '@stacksjs/bumpx'

export default defineConfig({
  // Git options (these are the defaults)
  commit: true,
  tag: true,
  push: false,
  sign: false,

  // Execution options
  install: false,
  execute: ['bun run build', 'bun run test'],

  // UI options
  confirm: true,
  quiet: false,

  // Advanced options
  recursive: true,
  printCommits: false
})

You can also use JSON configuration in package.json:

{
  "bumpx": {
    "commit": true,
    "tag": true,
    "push": true,
    "execute": "bun run build"
  }
}

CLI Options

Option Alias Description Default
--preid | ID for prerelease
--all | Include all files false
--no-git-check | Skip git status check
--commit [msg] -c Create git commit false
--no-commit | Skip git commit
--tag [name] -t Create git tag false
--no-tag | Skip git tag
--push -p Push to remote false
--no-push | Skip git push
--sign | Sign commits and tags false
--install | Run npm install false
--execute -x Execute command
--recursive -r Bump recursively true
--yes -y Skip confirmation false
--quiet -q Quiet mode false
--ci | CI mode (sets --yes --quiet) false
--no-verify | Skip git hooks false
--ignore-scripts | Ignore npm scripts false
--current-version | Override current version
--print-commits | Show recent commits false

Library Usage

You can also use bumpx programmatically:

import { versionBump } from '@stacksjs/bumpx'

await versionBump({
  release: 'patch',
  commit: true,
  tag: true,
  push: true,
  progress: ({ event, newVersion }) => {
    console.log(`${event}: ${newVersion}`)
  }
})

Changelog

Please see our releases page for information on changes.

Contributing

Please see CONTRIBUTING for details.

Community

For help or discussion:

Postcardware

“Software that is free, but hopes for a postcard.” We love receiving postcards from around the world showing where Stacks is being used! We showcase them on our website too.

Our address: Stacks.js, 12665 Village Ln #2306, Playa Vista, CA 90094, United States 🌎

Credits

Sponsors

We would like to extend our thanks to the following sponsors for funding Stacks development. If you are interested in becoming a sponsor, please reach out to us.

License

The MIT License (MIT). Please see LICENSE for more information.

Made with 💙

changelog

Changelog

Compare changes

🧹 Chores

Contributors

Compare changes

🧹 Chores

Contributors

Compare changes

🧹 Chores

Contributors

Compare changes

🧹 Chores

Contributors

Compare changes

🐛 Bug Fixes

  • update dependencies and fix test type annotations (985dd43)
  • update changelog display and fix typescript issues (5647dec)

🧹 Chores

Contributors

Compare changes

🐛 Bug Fixes

🧹 Chores

Contributors

Compare changes

🧹 Chores

Contributors

Compare changes

🧹 Chores

Contributors

Compare changes

🧹 Chores

Contributors

Compare changes

🧹 Chores

Contributors

Compare changes

🧹 Chores

Contributors

Compare changes

🧹 Chores

  • release v0.1.78 (12c1974)
  • update cloud emoji, because of spacing issues (8e19768)

Contributors

Compare changes

🧹 Chores

Contributors

Compare changes

🧹 Chores

Contributors

Compare changes

🧹 Chores

Contributors

Compare changes

🧹 Chores

Contributors

Compare changes

🧹 Chores

Contributors

Compare changes

🧹 Chores

Contributors

Compare changes

🧹 Chores

Contributors

Compare changes

Contributors

Compare changes

Contributors

Compare changes

Contributors

Compare changes

Contributors

Compare changes

Contributors

Compare changes

Contributors

Compare changes

Contributors

Compare changes

Contributors

Compare changes

Contributors

Compare changes

Contributors

Compare changes

Contributors

Compare changes

Contributors

Compare changes

Contributors

Compare changes

Contributors

Compare changes

Contributors