An open API service indexing awesome lists of open source software.

https://github.com/hermann-web/pyv

A pypi package providing a command-line interface (CLI) application for managing versioning in a using Python
https://github.com/hermann-web/pyv

autoversioning version-manager versioning

Last synced: 5 months ago
JSON representation

A pypi package providing a command-line interface (CLI) application for managing versioning in a using Python

Awesome Lists containing this project

README

          

# pyv

pyv is a command-line interface (CLI) application for managing versioning in a using Python.

It correspond to a scpecific versioning plan explained in the [versioning_plan](./docs/api-versioning-strat.md). This versioning plan is compatible with the [Semantic Versioning Specification](https://semver.org/)

## Installation

1. From pypi:

```bash
pip install versioning-python
```

1. Clone the repository:

```bash
git clone https://github.com/your-username/pyv.git

# Navigate to the project directory:
cd versioning-cli

# Install the required dependencies:
pip install -r requirements.txt
```

## Versioning App Usage

Run the CLI app using the following command format:

```bash
pyv app --dev --prod [--level ]
```

Replace `` with the dev subversion in the format `Vx.y.z` , and `` with the prod subversion in the format `Vx.y.z`. The `` parameter can be either `post_prod` or `push_prod`. The optional `--level` parameter specifies the level for the post_prod action (default: 1).

- initialize the state as:
- dev subversion: V{n}.0.0: for example V2.0.0
- prod subversion (not_required if n==0): V{n-1}.p.q
- actions
- post_prod: return the version to create V{n-1}.(p+1).q if --level=1 or V{n-1}.p.(q+1) --level=1 (1 by default)
- push_prod: return the version to create V{n+1}.0.0

If you have cloned the repository, instead, use `python pyv/main.py` instead of `pyv`

## Examples

```bash
pyv app --dev V3.0.0 --prod V1.2.3 push_prod --level 2
```

```bash
pyv app --dev V2.0.0 --prod V1.2.3 post_prod --level 2
```

other examples:

```bash
$ pyv app --dev V3.0.0 --prod V1.2.3 push_prod --level 2
>> error: V3 do not follow V1

$ pyv app --dev V3.0.0 push_prod --level 2
>> error: if prod is not set dev should be V0.0.0 or V1.0.0

$ pyv app --dev V2.0.0 --prod V1.2.3 post_prod --level 2
>> your new version V1.2.4

$ pyv app --dev V2.0.0 --prod V1.2.3 push_prod --level 2
>> your new version V3.0.0
```

## AutoVersioning Usage

Run the CLI app using the following command format:

```bash
pyv auto
```

## License

This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.

## Related works
- https://pypi.org/project/bumpversion/