|||
|-|-|
| CI/CD | [](https://github.com/Tranquility2/semvergit/actions/workflows/pytest.yml) [](https://github.com/Tranquility2/semvergit/actions/workflows/publish.yml)  [](https://coveralls.io/github/Tranquility2/semvergit)|
| Package | [](https://pypi.org/project/semvergit/) [](https://pypi.org/project/semvergit/) [](https://pepy.tech/project/semvergit) |
| Meta | [](https://github.com/psf/black) [](https://github.com/PyCQA/bandit) [](https://pycqa.github.io/isort/) [](https://github.com/pylint-dev/pylint) [](http://mypy-lang.org/) [](https://spdx.org/licenses/) |
# semvergit

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`
## Internal Workflow
___What's actully happening when you run this tool___
1. Use the latest git tag to determine the current version number.
2. Bump the version number
3. Create a new git tag
4. Push the tag to the remote
## Why?
I created this tool to help me manage my project's version numbers.
I wanted a simple tool that I could use in my CI/CD pipeline to bump the version number and tag the commit.
## Features
❇️ Bump the version number and update the git tag in one command
❇️ Dry run mode
❇️ Verbose mode
❇️ Custom commit message*
❇️ Auto commit message*
🆕 Version 0.4+ introduces the ability to automatically update the version number in a file*
<sup>*Please see the [limitations](#Limitations) section below</sup>
## How to use
Simple install using
``pip install semvergit``
Then you can use it in your project as simply as:
``semvergit -t patch -v``
(to bump the patch version)
This will:
1. create the relvant tag (in this case a patch bump 0.0.x -> 0.0.x+1)
2. push it to the remote
Please checkout ``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 level [0<=x<=2]
-t, --bump_type TEXT Bump Type ['major', 'minor', 'patch', 'prerelease']
-m, --message TEXT Commit message
-am, --auto_message Auto commit message
-f, --version_file FILE Version file
--help Show this message and exit.
```
## Limitations
Please keep in mind that when using features like `commit message` / `auto commit message` and `version file` the tool will try and commit the changes to the git repo.
Even though this is quite handy, it should be used mannually as it **cannot be used directly in a CI/CD pipeline directed at `master` or `main` branches** as it will likly fail due to the commit not being allowed without a PR.
💡 Only git tags can be pushed to the remote without a PR *(and this is the main use case for this tool)*.
## 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.
Raw data
{
"_id": null,
"home_page": null,
"name": "semvergit",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "packaging, publishing, release, versioning",
"author": null,
"author_email": "Roy Moore <roy@moore.co.il>",
"download_url": "https://files.pythonhosted.org/packages/af/10/46adff664642cb1fe735d29337cf6e5f882d336c7823b4b3f21cbfd1db4b/semvergit-0.4.2.tar.gz",
"platform": null,
"description": "|||\n|-|-|\n| CI/CD | [](https://github.com/Tranquility2/semvergit/actions/workflows/pytest.yml) [](https://github.com/Tranquility2/semvergit/actions/workflows/publish.yml)  [](https://coveralls.io/github/Tranquility2/semvergit)|\n| Package | [](https://pypi.org/project/semvergit/) [](https://pypi.org/project/semvergit/) [](https://pepy.tech/project/semvergit) |\n| Meta | [](https://github.com/psf/black) [](https://github.com/PyCQA/bandit) [](https://pycqa.github.io/isort/) [](https://github.com/pylint-dev/pylint) [](http://mypy-lang.org/) [](https://spdx.org/licenses/) |\n\n# semvergit\n\n\nsemvergit is a CLI tool to manage your project's version numbers.\nIt uses [Semantic Versioning](https://semver.org/) to bump the version number.\nThe supported bump types are:\n\n- `major`\n- `minor`\n- `patch`\n- `prerelease`\n\n## Internal Workflow\n___What's actully happening when you run this tool___\n1. Use the latest git tag to determine the current version number.\n2. Bump the version number\n3. Create a new git tag\n4. Push the tag to the remote\n\n## Why?\nI created this tool to help me manage my project's version numbers.\nI wanted a simple tool that I could use in my CI/CD pipeline to bump the version number and tag the commit.\n\n## Features\n\u2747\ufe0f Bump the version number and update the git tag in one command \n\u2747\ufe0f Dry run mode \n\u2747\ufe0f Verbose mode \n\u2747\ufe0f Custom commit message* \n\u2747\ufe0f Auto commit message* \n\ud83c\udd95 Version 0.4+ introduces the ability to automatically update the version number in a file*\n\n<sup>*Please see the [limitations](#Limitations) section below</sup>\n\n## How to use\n\nSimple install using\n``pip install semvergit``\n\nThen you can use it in your project as simply as:\n``semvergit -t patch -v``\n(to bump the patch version)\nThis will:\n\n1. create the relvant tag (in this case a patch bump 0.0.x -> 0.0.x+1)\n2. push it to the remote\n\nPlease checkout ``semvergit --help`` for more info.\n\n```shell\nUsage: semvergit [OPTIONS] COMMAND [ARGS]...\n\n CLI for semvergit.\n\nOptions:\n --version Show the version and exit.\n -d, --dry_run Dry run\n -v, --verbose Verbose level [0<=x<=2]\n -t, --bump_type TEXT Bump Type ['major', 'minor', 'patch', 'prerelease']\n -m, --message TEXT Commit message\n -am, --auto_message Auto commit message\n -f, --version_file FILE Version file\n --help Show this message and exit.\n```\n\n## Limitations\nPlease keep in mind that when using features like `commit message` / `auto commit message` and `version file` the tool will try and commit the changes to the git repo.\n\nEven though this is quite handy, it should be used mannually as it **cannot be used directly in a CI/CD pipeline directed at `master` or `main` branches** as it will likly fail due to the commit not being allowed without a PR.\n\n\ud83d\udca1 Only git tags can be pushed to the remote without a PR *(and this is the main use case for this tool)*.\n\n## Development\n\nPlease see [CONTRIBUTING.md](CONTRIBUTING.md)\n\n## License\n\nThis project is published under the MIT license.\n\nIf you do find it useful, please consider contributing your changes back upstream.\n",
"bugtrack_url": null,
"license": null,
"summary": "Manage your project's version numbers.",
"version": "0.4.2",
"project_urls": {
"homepage": "https://github.com/Tranquility2/semvergit",
"repository": "https://github.com/Tranquility2/semvergit"
},
"split_keywords": [
"packaging",
" publishing",
" release",
" versioning"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "ca488aa37acd7cb5594de73623e8e84c1da85ead95e403609ca4bf84f44c54d2",
"md5": "159d7b54e2ab198060b7e1e205ffb15d",
"sha256": "739bf90c39fc9d2e11dabbe08355c6b82b8687e5b8cfcb8a300c1d41c28a6054"
},
"downloads": -1,
"filename": "semvergit-0.4.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "159d7b54e2ab198060b7e1e205ffb15d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 9469,
"upload_time": "2024-04-22T14:36:06",
"upload_time_iso_8601": "2024-04-22T14:36:06.261863Z",
"url": "https://files.pythonhosted.org/packages/ca/48/8aa37acd7cb5594de73623e8e84c1da85ead95e403609ca4bf84f44c54d2/semvergit-0.4.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "af1046adff664642cb1fe735d29337cf6e5f882d336c7823b4b3f21cbfd1db4b",
"md5": "f2d97a3631e6dd18570c91b4f9f81291",
"sha256": "ad803dc112fd932b2ee27b3c8b92106a51f7918f13b8a096d4b1358178866f09"
},
"downloads": -1,
"filename": "semvergit-0.4.2.tar.gz",
"has_sig": false,
"md5_digest": "f2d97a3631e6dd18570c91b4f9f81291",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 16009,
"upload_time": "2024-04-22T14:36:07",
"upload_time_iso_8601": "2024-04-22T14:36:07.993827Z",
"url": "https://files.pythonhosted.org/packages/af/10/46adff664642cb1fe735d29337cf6e5f882d336c7823b4b3f21cbfd1db4b/semvergit-0.4.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-04-22 14:36:07",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Tranquility2",
"github_project": "semvergit",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "semvergit"
}