Metadata-Version: 2.1
Name: semvergit
Version: 0.3.0
Summary: Manage your project's version numbers.
Author-email: Roy Moore <roy@moore.co.il>
Project-URL: homepage, https://github.com/Tranquility2/semvergit
Project-URL: repository, https://github.com/Tranquility2/semvergit
Keywords: packaging,publishing,release,versioning
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: gitpython>=3.0.0
Requires-Dist: semver>=3.0.0
Requires-Dist: loguru>=0.7.0
Requires-Dist: click>=8.0.0
Provides-Extra: dev
Requires-Dist: astroid==3.1.0; extra == "dev"
Requires-Dist: bandit==1.7.8; extra == "dev"
Requires-Dist: black==24.3.0; extra == "dev"
Requires-Dist: cfgv==3.4.0; extra == "dev"
Requires-Dist: click==8.1.7; extra == "dev"
Requires-Dist: dill==0.3.8; extra == "dev"
Requires-Dist: distlib==0.3.8; extra == "dev"
Requires-Dist: filelock==3.13.3; extra == "dev"
Requires-Dist: identify==2.5.35; extra == "dev"
Requires-Dist: isort==5.13.2; extra == "dev"
Requires-Dist: markdown-it-py==3.0.0; extra == "dev"
Requires-Dist: mccabe==0.7.0; extra == "dev"
Requires-Dist: mdurl==0.1.2; extra == "dev"
Requires-Dist: mypy==1.9.0; extra == "dev"
Requires-Dist: mypy-extensions==1.0.0; extra == "dev"
Requires-Dist: nodeenv==1.8.0; extra == "dev"
Requires-Dist: packaging==24.0; extra == "dev"
Requires-Dist: pathspec==0.12.1; extra == "dev"
Requires-Dist: pbr==6.0.0; extra == "dev"
Requires-Dist: platformdirs==4.2.0; extra == "dev"
Requires-Dist: pre-commit==3.5.0; extra == "dev"
Requires-Dist: pygments==2.17.2; extra == "dev"
Requires-Dist: pylint==3.1.0; extra == "dev"
Requires-Dist: pyyaml==6.0.1; extra == "dev"
Requires-Dist: rich==13.7.1; extra == "dev"
Requires-Dist: stevedore==5.2.0; extra == "dev"
Requires-Dist: tomli==2.0.1; extra == "dev"
Requires-Dist: tomlkit==0.12.4; extra == "dev"
Requires-Dist: typing-extensions==4.10.0; extra == "dev"
Requires-Dist: virtualenv==20.25.1; extra == "dev"
Provides-Extra: test
Requires-Dist: coverage==7.4.4; extra == "test"
Requires-Dist: exceptiongroup==1.2.0; extra == "test"
Requires-Dist: iniconfig==2.0.0; extra == "test"
Requires-Dist: packaging==24.0; extra == "test"
Requires-Dist: pluggy==1.4.0; extra == "test"
Requires-Dist: pytest==8.1.1; extra == "test"
Requires-Dist: pytest-cov==5.0.0; extra == "test"
Requires-Dist: tomli==2.0.1; extra == "test"

|||
|-|-|
| CI/CD   | [![Pytest](https://github.com/Tranquility2/semvergit/actions/workflows/pytest.yml/badge.svg)](https://github.com/Tranquility2/semvergit/actions/workflows/pytest.yml) [![Publish](https://github.com/Tranquility2/semvergit/actions/workflows/publish.yml/badge.svg)](https://github.com/Tranquility2/semvergit/actions/workflows/publish.yml) [![Coverage Status](https://coveralls.io/repos/github/Tranquility2/semvergit/badge.svg)](https://coveralls.io/github/Tranquility2/semvergit)|
| Package | [![PyPI - Version](https://img.shields.io/pypi/v/semvergit.svg?logo=pypi&label=PyPI&logoColor=gold)](https://pypi.org/project/semvergit/) [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/semvergit.svg?logo=python&label=Python&logoColor=gold)](https://pypi.org/project/semvergit/)|
| Meta    | [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) [![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336)](https://pycqa.github.io/isort/) [![linting: pylint](https://img.shields.io/badge/linting-pylint-yellowgreen)](https://github.com/pylint-dev/pylint) [![Checked with mypy](http://www.mypy-lang.org/static/mypy_badge.svg)](http://mypy-lang.org/) [![License - MIT](https://img.shields.io/badge/license-MIT-9400d3.svg)](https://spdx.org/licenses/) |
|||

# semvergit
![semvergit](assets/semvergit-255.png)

semvergit is a CLI tool to manage your project's version numbers.
It uses [Semantic Versioning](https://semver.org/) to bump the version number.
The supported bump types are:

- `major`
- `minor`
- `patch`
- `prerelease`

## Workflow

- Use the latest git tag to determine the current version number.
- Bump the version number
- Create a new git tag
- Push the tag to the remote

Please keep in mind it is designed to be used in a CI/CD pipeline (but not limited to...)

## How to use

Simple install using
``pip install semvergit``

Then you can use it in your project like this:
``semvergit -t patch -v -am``
(to bump the patch version)
This will:

1. create a tag
2. push it to the remote
3. commit all changes

Please cehckout ``semvergit --help`` for more info.

```shell
Usage: semvergit [OPTIONS] COMMAND [ARGS]...

  CLI for semvergit.

Options:
  --version             Show the version and exit.
  -d, --dry_run         Dry run
  -v, --verbose         Verbose  [0<=x<=2]
  -t, --bump_type TEXT  Bump Type ['major', 'minor', 'patch', 'prerelease']
  -m, --message TEXT    Commit message
  -am, --auto_message   Auto commit message
  --help                Show this message and exit.
```

## Development

Please see [CONTRIBUTING.md](CONTRIBUTING.md)

## License

This project is published under the MIT license.

If you do find it useful, please consider contributing your changes back upstream.
