Skip to main content

No project description provided

Project description

changepacks 📦

A unified version management and changelog tool for multi-language projects.

Overview

changepacks is a CLI tool that helps you efficiently manage versioning and changelogs across different programming languages and package managers. It provides a unified interface for managing versions in Node.js, Python, Rust, and Dart projects.

Features

  • 🚀 Multi-language Support: Native support for Node.js, Python, Rust, and Dart
  • 📝 Unified Version Management: Consistent versioning across different package managers
  • 🔄 Automated Updates: Smart version bumping based on project changes
  • CLI Interface: Simple and intuitive command-line interface
  • 🎯 Project Detection: Automatic detection of projects in your workspace
  • 📊 Status Tracking: Track which projects need version updates

Supported Languages & Package Managers

Language Package Manager File Status
Node.js npm, pnpm, yarn package.json ✅ Supported
Python pip, uv pyproject.toml ✅ Supported
Rust Cargo Cargo.toml ✅ Supported
Dart pub pubspec.yaml ✅ Supported

Installation

winget install Changepacks.Changepacks

cargo install changepacks

pip install changepacks
uv add changepacks
# run
uvx changepacks

npm install @changepacks/cli
bun install @changepacks/cli
pnpm install @changepacks/cli
yarn install @changepacks/cli
# run
npx @changepacks/cli
bunx @changepacks/cli
pnpm dlx @changepacks/cli

Requirements

  • Rust 1.91+ (for development)
  • Cargo
  • Git repository (for project detection)

Build from Source

git clone https://github.com/changepacks/changepacks.git
cd changepacks
cargo build --release

The binary will be available at target/release/changepacks (or target/release/changepacks.exe on Windows).

Usage

Initialize Project

Initialize changepacks in your repository:

changepacks init

This creates a .changepacks/ directory with configuration files.

Check Project Status

Discover and display all projects in your workspace:

changepacks check

Filter by project type:

changepacks check --filter workspace  # Show only workspaces
changepacks check --filter package    # Show only packages

Update Versions

Update project versions based on changes:

changepacks update

Options:

changepacks update --dry-run    # Preview changes without applying
changepacks update --yes        # Skip confirmation prompts

Check Config

View the loaded changepacks config (from .changepacks/config.json):

changepacks config

This prints the merged and defaulted configuration, for example:

{
  "ignore": [
    "**/*",
    "!crates/changepacks/Cargo.toml",
    "!bridge/node/package.json",
    "!bridge/python/pyproject.toml"
  ],
  "baseBranch": "main",
  "latestPackage": "crates/changepacks/Cargo.toml"
}

You can edit .changepacks/config.json to customize:

  • Files/projects to ignore (ignore) using glob patterns (default: empty).
  • The base branch to compare against for changes (baseBranch, default: "main").
  • The default main package for versioning (latestPackage, optional).

If the config file is missing or empty, sensible defaults are used.

Default Command

Running changepacks without arguments starts an interactive session to select projects and create a changepack log.

Project Structure

changepacks/
├── crates/
│   ├── cli/          # CLI interface and commands
│   ├── core/         # Core types and traits
│   ├── node/         # Node.js project support
│   ├── python/       # Python project support
│   ├── rust/         # Rust project support
│   ├── dart/         # Dart project support
│   └── utils/        # Utility functions
├── examples/         # Example projects for testing
├── Cargo.toml        # Workspace configuration
└── README.md

How It Works

  1. Project Detection: Scans your repository for supported project files
  2. Change Tracking: Monitors file changes to determine which projects need updates
  3. Version Management: Provides unified version bumping across different package managers
  4. Update Coordination: Ensures consistent versioning across related projects

Development

Build Workspace

cargo build

Run Tests

cargo test

Lint Check

cargo clippy

Run Examples

Test with example projects:

cd examples/node/common
changepacks check

Architecture

The project is built with a modular architecture:

  • Core: Defines common traits and types for workspaces and packages
  • Language Crates: Implement language-specific project detection and management
  • CLI: Provides the user interface and command orchestration
  • Utils: Shared utilities for path handling, version calculation, and more

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Sponsors

We're grateful to our sponsors for supporting changepacks development! If you're interested in sponsoring this project, please get in touch.

Used By

The following open-source projects and companies are using changepacks:

If you're using changepacks in your project, we'd love to feature you here! Please open a Pull Request to add your project or company.

License

This project is distributed under the MIT License. See the LICENSE file for more details.

Roadmap

  • Node.js package management support
  • Python package management support
  • Rust package management support
  • Dart package management support
  • CI/CD integration support
  • Plugin system for additional languages

Support

If you encounter any issues or have feature requests, please let us know on the Issues page.

Inspirations

  • changesets - Version management for JavaScript projects

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

changepacks-0.1.23-py3-none-win_amd64.whl (4.0 MB view details)

Uploaded Python 3Windows x86-64

changepacks-0.1.23-py3-none-win32.whl (3.7 MB view details)

Uploaded Python 3Windows x86

changepacks-0.1.23-py3-none-musllinux_1_2_x86_64.whl (4.2 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

changepacks-0.1.23-py3-none-musllinux_1_2_i686.whl (4.2 MB view details)

Uploaded Python 3musllinux: musl 1.2+ i686

changepacks-0.1.23-py3-none-musllinux_1_2_armv7l.whl (3.8 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARMv7l

changepacks-0.1.23-py3-none-musllinux_1_2_aarch64.whl (3.9 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

changepacks-0.1.23-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.2 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

changepacks-0.1.23-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (5.0 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ppc64le

changepacks-0.1.23-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl (4.5 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ i686

changepacks-0.1.23-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (3.8 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARMv7l

changepacks-0.1.23-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.9 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

changepacks-0.1.23-py3-none-macosx_11_0_arm64.whl (3.9 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

changepacks-0.1.23-py3-none-macosx_10_12_x86_64.whl (4.0 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

Details for the file changepacks-0.1.23-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for changepacks-0.1.23-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 8232036e83c59d65de4950de00dd2c4a76cc16827e4c5098f54bab53cae1fe56
MD5 6e6f4fa17ccc9d25708479cc27feb1cc
BLAKE2b-256 bc522c37190a57e5dec82ff1a2e1722f54409d9610efc9f9c9641ab836bded10

See more details on using hashes here.

File details

Details for the file changepacks-0.1.23-py3-none-win32.whl.

File metadata

  • Download URL: changepacks-0.1.23-py3-none-win32.whl
  • Upload date:
  • Size: 3.7 MB
  • Tags: Python 3, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.9.6

File hashes

Hashes for changepacks-0.1.23-py3-none-win32.whl
Algorithm Hash digest
SHA256 759e3c607093095813efa68177848d8a26e2d2fab9a285151a5a47969b59fa39
MD5 39be3405ed08661f59ee66b54e80093f
BLAKE2b-256 f28ef4989bbf11735ec578132efc9f5d6cdb2eb6342c4687223e9cefb37451a5

See more details on using hashes here.

File details

Details for the file changepacks-0.1.23-py3-none-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for changepacks-0.1.23-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c0e6a102bae8c0f5a15e98e388c02a11d450ce62b3729d2b18bd0798b185ae1e
MD5 6444906a089fa56e3e4d267b90c39580
BLAKE2b-256 16ef85b7869eab5532c890a884159bfd290ef9820dacda2e26a0e49923b8a1fb

See more details on using hashes here.

File details

Details for the file changepacks-0.1.23-py3-none-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for changepacks-0.1.23-py3-none-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 5cde4501ed3f8e55bf0b792452e56010359434fb2cbd67c31ba3e80f50952241
MD5 0d3c8fa45f5957a44f95fe6d90e0e56b
BLAKE2b-256 35748e0837251325aef3d88ae594603a128e205497daf9f591c592725b54ea9a

See more details on using hashes here.

File details

Details for the file changepacks-0.1.23-py3-none-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for changepacks-0.1.23-py3-none-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 e38641a85f1be641afaa8bd58c3a328e68eae10d7bc95fd3cc463d3b92353d7f
MD5 94b03f7a11a4689523826f6ecca8d2f1
BLAKE2b-256 db7b7348192abb8a352bbf64593500c493e12a37f5071a114946235f9e263111

See more details on using hashes here.

File details

Details for the file changepacks-0.1.23-py3-none-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for changepacks-0.1.23-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4dadf7a49a52a376582b40264f5e2c57dc3b8e1292a4ac037df0d536c4decb69
MD5 6c214a9f6801fdeb2aa448f602a67c55
BLAKE2b-256 4c5b018d8bf98f2a0d848b70c6a7bb2e503727792e0e360220ba711633eb408f

See more details on using hashes here.

File details

Details for the file changepacks-0.1.23-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for changepacks-0.1.23-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c6573f7ecb022a10ccbebd8a5aafe56ab694936b8a6859160c3b8b8846cf281a
MD5 69977bc66e3f94c7f97461fbbf537fd0
BLAKE2b-256 5571d874f5a2a8a118bafa59a6fac1f0b822d790c34b405bf922b77a11642ec2

See more details on using hashes here.

File details

Details for the file changepacks-0.1.23-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for changepacks-0.1.23-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 651cd80be12a23593101e9f88e2b4cec04cdab159d745b6be0cc5adb8875ce64
MD5 e731b76c3fb571e84abef9262f85998c
BLAKE2b-256 eee272205676df9f4011548b91a40d33afee0bdab77260555b1e4726d43eff24

See more details on using hashes here.

File details

Details for the file changepacks-0.1.23-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for changepacks-0.1.23-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 9c34b594e08daacc4ce2fd0f322637f9e1a9f0fb42613543ea561dfe28721979
MD5 7c74132ed59c06211f9e38b11167c1b1
BLAKE2b-256 41fb160da48d5224719fb0efae7fb4873ae4d252546767b759cfc6921fda8e61

See more details on using hashes here.

File details

Details for the file changepacks-0.1.23-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for changepacks-0.1.23-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 464b07c637c7040d4e27070250f9d491dc11f88ac18ecf5e40926af319ff4a72
MD5 127c0c8985892d0720016bc874b1c111
BLAKE2b-256 65ad12aaf229e62feca5f5a9e2aa26f598e639511a2a1445337a2c9a31e323bf

See more details on using hashes here.

File details

Details for the file changepacks-0.1.23-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for changepacks-0.1.23-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f169a61547feed6a5c5388dd2967a123c63471804e47a135e440920f9968cd3a
MD5 5b487498c7b835b238fb9452646c3dee
BLAKE2b-256 d8d6ce4de8293732d70272b798b229a6b35f688e44257dcfb28523750611786e

See more details on using hashes here.

File details

Details for the file changepacks-0.1.23-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for changepacks-0.1.23-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4315d28ad1306528d7fbd4aaee0dea6c0fa017cbd0253970422684ddd60353f6
MD5 7461c2ddc845a6104eba3f093888d2bf
BLAKE2b-256 46031d7ffa5dff24804da89918f4fbaf72518f6b75f5d01eca26d82d162b1c9b

See more details on using hashes here.

File details

Details for the file changepacks-0.1.23-py3-none-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for changepacks-0.1.23-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 734d3158fd1a0a832e7c7999b91c83b3bf9a7386bfc1ca3b8b3ad4c94e8e980f
MD5 d67a76f50044dbb0df4673752594672f
BLAKE2b-256 116a06cce79c7847b5cc0f22285999949e3b35ae61aed4f98783d434a6dd15a4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page