Skip to main content

Project Management Versioning Tool.

Project description

Proman Versioning

License Build Status codecov

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

proman_versioning-0.6.2a4.tar.gz (19.5 kB view hashes)

Uploaded Source

Built Distribution

proman_versioning-0.6.2a4-py3-none-any.whl (21.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page