# Proman Versioning
[![License](https://img.shields.io/badge/License-LGPL%203.0-blue.svg)](https://spdx.org/licenses/LGPL-3.0)
![Build Status](https://github.com/python-proman/proman-versioning/actions/workflows/ci.yml/badge.svg)
[![codecov](https://codecov.io/gh/kuwv/proman-versioning/branch/master/graph/badge.svg)](https://codecov.io/gh/kuwv/proman-versioning)
## Overview
Project Manager Versioning is a PEP-440 compliant tool for automating project
versions using conventional commits.
## Install
`pip install proman-versioning`
## Setup
This tool is designed to work with any textfile using a templating pattern and
path to the file.
### Configuring versions
Configuration can be performed with either the `.versioning` or `pyproject.toml`
files.
#### Global configuration settings:
Specific types of releases can be disabled by setting the respective release to
false.
Disable development releases:
```
enable_devreleases = false
```
Disable pre-releases:
```
enable_prereleases = false
```
Disable post-releases:
```
enable_postreleases = false
```
#### File specific settings:
Use different version compatibiliy type:
```
compat = "semver"
```
Update only the release version for a configuration:
```
release_only = true
```
#### Example `.versioning`
The `.versioning` config is a non-specfile based project file using TOML. This is the
preferred configuration for non-python projects that may use this tool.
```
[proman]
version = "1.2.3"
[proman.versioning]
disable_devreleases = true
[[proman.versioning.files]]
filepath = "pyproject.toml"
pattern = "version = \"${version}\""
[[proman.versioning.files]]
filepath = "example/__init__.py"
pattern = "__version__ = '${version}'"
[[tool.proman.versioning.files]]
filepath = "chart/Chart.yaml"
compat = "semver"
patterns = [
"version = \"${version}\"",
"appVersion = \"${version}\""
]
```
#### Example `pyproject.toml`
```
[tool.proman]
version = "1.2.3"
[tool.proman.versioning]
[[tool.proman.versioning.files]]
filepath = "pyproject.toml"
pattern = "version = \"${version}\""
[[tool.proman.versioning.files]]
filepath = "example/__init__.py"
pattern = "__version__ = '${version}'"
[[tool.proman.versioning.files]]
filepath = "chart/Chart.yaml"
compat = "semver"
patterns = [
"version = \"${version}\"",
"appVersion = \"${version}\""
]
```
#### Example `setup.cfg`
Setuptools allows `setup.cfg` to pull the version from the application. This
should be used in tandem with either of the above configurations to control
versions for a project.
```
[metadata]
name = example
version = attr: src.VERSION
...
```
## References
- https://www.conventionalcommits.org/en/v1.0.0/
- https://www.python.org/dev/peps/pep-0440/
- https://semver.org
- https://calver.org
Raw data
{
"_id": null,
"home_page": null,
"name": "proman-versioning",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6.2",
"maintainer_email": "\"Jesse P. Johnson\" <jpj6652@gmail.com>",
"keywords": "versioning, semver, calver, pep440, configuration management",
"author": null,
"author_email": "\"Jesse P. Johnson\" <jpj6652@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/4c/9d/dd05e3f4a521669aee8b050cc1b8db225da507a5369642b3d70c946615da/proman_versioning-0.6.3a0.tar.gz",
"platform": null,
"description": "# Proman Versioning\n\n[![License](https://img.shields.io/badge/License-LGPL%203.0-blue.svg)](https://spdx.org/licenses/LGPL-3.0)\n![Build Status](https://github.com/python-proman/proman-versioning/actions/workflows/ci.yml/badge.svg)\n[![codecov](https://codecov.io/gh/kuwv/proman-versioning/branch/master/graph/badge.svg)](https://codecov.io/gh/kuwv/proman-versioning)\n\n## Overview\n\nProject Manager Versioning is a PEP-440 compliant tool for automating project\nversions using conventional commits.\n\n## Install\n\n`pip install proman-versioning`\n\n## Setup\n\nThis tool is designed to work with any textfile using a templating pattern and\n path to the file.\n\n### Configuring versions\n\nConfiguration can be performed with either the `.versioning` or `pyproject.toml`\nfiles.\n\n#### Global configuration settings:\n\nSpecific types of releases can be disabled by setting the respective release to\nfalse.\n\nDisable development releases:\n```\nenable_devreleases = false\n```\n\nDisable pre-releases:\n```\nenable_prereleases = false\n```\n\nDisable post-releases:\n```\nenable_postreleases = false\n```\n\n#### File specific settings:\n\nUse different version compatibiliy type:\n```\ncompat = \"semver\"\n```\n\nUpdate only the release version for a configuration:\n```\nrelease_only = true\n```\n\n#### Example `.versioning`\n\nThe `.versioning` config is a non-specfile based project file using TOML. This is the\npreferred configuration for non-python projects that may use this tool.\n\n```\n[proman]\nversion = \"1.2.3\"\n\n[proman.versioning]\ndisable_devreleases = true\n\n[[proman.versioning.files]]\nfilepath = \"pyproject.toml\"\npattern = \"version = \\\"${version}\\\"\"\n\n[[proman.versioning.files]]\nfilepath = \"example/__init__.py\"\npattern = \"__version__ = '${version}'\"\n\n[[tool.proman.versioning.files]]\nfilepath = \"chart/Chart.yaml\"\ncompat = \"semver\"\npatterns = [\n \"version = \\\"${version}\\\"\",\n \"appVersion = \\\"${version}\\\"\"\n]\n```\n\n#### Example `pyproject.toml`\n\n```\n[tool.proman]\nversion = \"1.2.3\"\n\n[tool.proman.versioning]\n\n[[tool.proman.versioning.files]]\nfilepath = \"pyproject.toml\"\npattern = \"version = \\\"${version}\\\"\"\n\n[[tool.proman.versioning.files]]\nfilepath = \"example/__init__.py\"\npattern = \"__version__ = '${version}'\"\n\n[[tool.proman.versioning.files]]\nfilepath = \"chart/Chart.yaml\"\ncompat = \"semver\"\npatterns = [\n \"version = \\\"${version}\\\"\",\n \"appVersion = \\\"${version}\\\"\"\n]\n```\n\n#### Example `setup.cfg`\n\nSetuptools allows `setup.cfg` to pull the version from the application. This\nshould be used in tandem with either of the above configurations to control\nversions for a project.\n\n```\n[metadata]\nname = example\nversion = attr: src.VERSION\n...\n```\n\n## References\n\n- https://www.conventionalcommits.org/en/v1.0.0/\n- https://www.python.org/dev/peps/pep-0440/\n- https://semver.org\n- https://calver.org\n",
"bugtrack_url": null,
"license": "LGPL-3.0",
"summary": "Project Management Versioning Tool.",
"version": "0.6.3a0",
"project_urls": {
"homepage": "https://github.com/python-proman/proman-versioning",
"repository": "https://github.com/python-proman/proman-versioning"
},
"split_keywords": [
"versioning",
" semver",
" calver",
" pep440",
" configuration management"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "f677d0378437307c2bbe396c11cbc8c93283912105202d072ef00744745b4127",
"md5": "c660bec9250436a6bcd1009dc13f4c77",
"sha256": "04076937462d08bf9c0b82bac678895736afb0db75abc0afc2e45b77bf5c5f4a"
},
"downloads": -1,
"filename": "proman_versioning-0.6.3a0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c660bec9250436a6bcd1009dc13f4c77",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6.2",
"size": 21965,
"upload_time": "2024-05-24T00:49:45",
"upload_time_iso_8601": "2024-05-24T00:49:45.378447Z",
"url": "https://files.pythonhosted.org/packages/f6/77/d0378437307c2bbe396c11cbc8c93283912105202d072ef00744745b4127/proman_versioning-0.6.3a0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "4c9ddd05e3f4a521669aee8b050cc1b8db225da507a5369642b3d70c946615da",
"md5": "cecfad250e6381f8a9322796e9b242fb",
"sha256": "1edebe8984ac303ed458a23f3a7898c5037330061b08957f3c6b5073ef9b66d6"
},
"downloads": -1,
"filename": "proman_versioning-0.6.3a0.tar.gz",
"has_sig": false,
"md5_digest": "cecfad250e6381f8a9322796e9b242fb",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6.2",
"size": 19611,
"upload_time": "2024-05-24T00:49:46",
"upload_time_iso_8601": "2024-05-24T00:49:46.805108Z",
"url": "https://files.pythonhosted.org/packages/4c/9d/dd05e3f4a521669aee8b050cc1b8db225da507a5369642b3d70c946615da/proman_versioning-0.6.3a0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-05-24 00:49:46",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "python-proman",
"github_project": "proman-versioning",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "proman-versioning"
}