Metadata-Version: 2.1
Name: python3-cyberfusion-yavb
Version: 1.0
Summary: Version bumper for software projects.
Author-email: Cyberfusion <support@cyberfusion.io>
Project-URL: Source, https://github.com/CyberfusionIO/python3-cyberfusion-yavb
Description-Content-Type: text/markdown
Requires-Dist: semver==2.10.2
Requires-Dist: typer==0.7.0
Requires-Dist: tomlkit==0.11.7

# python3-cyberfusion-yavb

YAVB is a CLI tool to bump versions and update changelogs.

Supported systems:

* PyProject (Python)
* Debian

It was built by Cyberfusion with two main purposes:

- Automatically bump SemVer version for multiple projects in bulk
- Bump versions for multiple systems simultaneously (e.g. Python packages distributed on PyPI **and** as Debian packages)

# Install

## Debian

Run the following commands to build a Debian package:

    mk-build-deps -i -t 'apt -o Debug::pkgProblemResolver=yes --no-install-recommends -y'
    dpkg-buildpackage -us -uc

## PyPI

Run the following command to install the package from PyPI:

    pip3 install python3-cyberfusion-yavb

# Configure

No configuration is supported.

# Usage

All examples assume that your projects are in the directory `projects/`.

## Example: increment patch (SemVer) for PyProject

```bash
yavb --system pyproject \
  --bump patch \
  --directory projects/your-project/ projects/other-projects/*/
```

## Example: increment minor (SemVer) for Debian and PyProject, on Debian

```bash
yavb --system debian --system pyproject \
  --bump minor \
  --directory projects/your-project/ projects/other-projects/*/ \
  --changelog 'Make this project great again' \
  --name 'John Doe' \
  --email 'john@example.com'
```

## Example: increment minor (SemVer) for Debian, on non-Debian

Changing Debian packaging requires Debian, which you can run inside a Docker container.

Build the Docker container:

```bash
docker build -t yavb-local .
```

Run the Docker container:

```bash
docker run --rm -t -v $(pwd)/projects/:/projects -w /projects yavb-local \
  yavb \
  --system debian \
  --bump minor \
  --directory your-project/ other-projects/*/ \
  --changelog 'Make this project great again'
  --name 'John Doe' \
  --email 'john@example.com'
```
