Download the PHP package rhapsodic/pbump without Composer
On this page you can find all versions of the php package rhapsodic/pbump. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package pbump
pbump
pbump is a CLI tool for semver releases in PHP projects with automatic release commit creation and git tagging.
Features
- bump the version manually (
patch,minor,major,as-is) or by conventional commits (next); - read the current version from
composer.jsonor the latest git tag; - update
composer.jsonwhen the version source is set tocomposer; - run in
dry-runmode without making changes; - optionally release with unrelated uncommitted files while committing only
composer.json; - work interactively through a menu or non-interactively in CI.
Requirements
- PHP
^8.2 - Git
Installation
After installation, the binary will be available as vendor/bin/pbump.
Quick Start
Preview what will happen:
Create a patch release without interactive confirmation:
Show the current version:
Show help:
How a Release Works
During a normal pbump run:
- it determines the current version;
- it calculates the target version;
- it updates
composer.jsonwhen needed; - it creates a
chore: release vX.Y.Zcommit; - it creates a git tag;
- it pushes the current branch and tag.
By default, the tag is named vX.Y.Z, but you can disable tagging or provide a custom tag name.
By default, pbump requires a clean working tree. If you need to release while unrelated files are modified, use
--allow-dirty or set "allowDirty": true; in that mode pbump updates composer.json, commits only
composer.json, and leaves the other files untouched.
Release Types
patch-X.Y.Z -> X.Y.(Z+1)minor-X.Y.Z -> X.(Y+1).0major-X.Y.Z -> (X+1).0.0as-is- keep the current versionnext- calculate the bump from conventional commitsconventional- alias fornext
Version Source
The --version-source flag supports three modes:
auto- usecomposer.json.versionfirst, and fall back to the latest git tag if it is missing;composer- always read the version fromcomposer.json.versionand update it during release;tag- always read the version from the latest git tag;composer.jsonis not modified.
If there are no tags yet and the source is tag, the current version is treated as 0.0.0.
The latest tag must contain a semver version at the end of the name, for example v1.2.3 or release-1.2.3.
Configuration via .pbump.config.json
You can create a .pbump.config.json file in the project root with default values:
Supported keys:
typedryRuntagpushyesquietversionSourceallowDirty
CLI arguments take precedence over .pbump.config.json.
tag can be:
true- create the standardvX.Y.Ztag;false- do not create a tag;- a string - create a tag with the provided name.
Main Options
-h,--help- show help-v,--version- print the current version--dry-run- show the plan without making changes--type=<type>- explicitly set the release type--version-source=<source>- choose the version source:auto,composer,tag-t,--tag[=<name>]- create a tag, optionally with a custom name--no-tag- do not create a tag-p,--push- push using the current git upstream--no-push- do not push-y,--yes- skip confirmation-q,--quiet- hide the summary--allow-dirty- allow unrelated uncommitted files and commit onlycomposer.json
Interactive and CI Behavior
If --type is not provided and input is interactive, pbump will show a release type selection menu.
For non-interactive runs, it is best to always pass:
Otherwise, the tool will not be able to ask for confirmation before creating a release.
Development and Tests
Run linter:
Run static analysis:
Run tests:
Format code:
Run the entrypoint locally without a Composer bin proxy:
License
MIT License