# 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"
```
#### Example `.version` configuration
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.
<!--
Default versioning compatibility for `.version` files is semantic versioning
(`semver`).
-->
```
version = "1.2.3"
[[versioning.files]]
filepath = "example/__init__.py"
pattern = "__version__ = '${version}'"
[[versioning.files]]
filepath = "chart/Chart.yaml"
patterns = [
"version = \"${version}\"",
"appVersion = \"${version}\""
]
```
#### Example `pyproject.toml`
<!--
Default versioning compatibility for `pyproject.toml` is PEP440 (`pep440`).
-->
```
[project]
name = "example"
version = "1.2.3"
[tool.proman.versioning]
compat = "semver"
[[tool.proman.versioning.files]]
filepath = "example/__init__.py"
pattern = "__version__ = '${version}'"
[[tool.proman.versioning.files]]
filepath = "chart/Chart.yaml"
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/20/17/a07bbea48c052a1c8f7baf3c05beefe3a9f1c1df89ad46c9078f7712997b/proman_versioning-0.7.1a1.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\npath 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\n#### Example `.version` configuration\n\nThe `.versioning` config is a non-specfile based project file using TOML. This\nis the preferred configuration for non-python projects that may use this tool.\n\n<!--\nDefault versioning compatibility for `.version` files is semantic versioning\n(`semver`).\n-->\n```\nversion = \"1.2.3\"\n\n[[versioning.files]]\nfilepath = \"example/__init__.py\"\npattern = \"__version__ = '${version}'\"\n\n[[versioning.files]]\nfilepath = \"chart/Chart.yaml\"\npatterns = [\n \"version = \\\"${version}\\\"\",\n \"appVersion = \\\"${version}\\\"\"\n]\n```\n\n#### Example `pyproject.toml`\n\n<!--\nDefault versioning compatibility for `pyproject.toml` is PEP440 (`pep440`).\n-->\n```\n[project]\nname = \"example\"\nversion = \"1.2.3\"\n\n[tool.proman.versioning]\ncompat = \"semver\"\n\n[[tool.proman.versioning.files]]\nfilepath = \"example/__init__.py\"\npattern = \"__version__ = '${version}'\"\n\n[[tool.proman.versioning.files]]\nfilepath = \"chart/Chart.yaml\"\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.7.1a1",
"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": "f8b10239fef8c498103b6ef2d899cf86d451333400dcaccece3992e1a270d860",
"md5": "2333014ac3b6456ec30974c302cd66f8",
"sha256": "ace216f3c69163c201fd1a4a954ada8aed4cdc4231509b3b2c44097eb1dea645"
},
"downloads": -1,
"filename": "proman_versioning-0.7.1a1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "2333014ac3b6456ec30974c302cd66f8",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6.2",
"size": 22152,
"upload_time": "2024-08-13T01:08:09",
"upload_time_iso_8601": "2024-08-13T01:08:09.995501Z",
"url": "https://files.pythonhosted.org/packages/f8/b1/0239fef8c498103b6ef2d899cf86d451333400dcaccece3992e1a270d860/proman_versioning-0.7.1a1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2017a07bbea48c052a1c8f7baf3c05beefe3a9f1c1df89ad46c9078f7712997b",
"md5": "27b56d6a595a11569f3bf65cd54b05ce",
"sha256": "4117643d835d16349e6ce7e24449bfa653452552e8497d6f4b12c76f01db8c04"
},
"downloads": -1,
"filename": "proman_versioning-0.7.1a1.tar.gz",
"has_sig": false,
"md5_digest": "27b56d6a595a11569f3bf65cd54b05ce",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6.2",
"size": 19772,
"upload_time": "2024-08-13T01:08:11",
"upload_time_iso_8601": "2024-08-13T01:08:11.653504Z",
"url": "https://files.pythonhosted.org/packages/20/17/a07bbea48c052a1c8f7baf3c05beefe3a9f1c1df89ad46c9078f7712997b/proman_versioning-0.7.1a1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-08-13 01:08:11",
"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"
}