Skip to main content

A package version manager based on SCM tags

Project description

scmver is a package version manager based on SCM tags.

It can be used to pass the version to the setup function in a setup.py, or to generate a file which contains the version.

https://img.shields.io/pypi/v/scmver.svg https://github.com/hattya/scmver/actions/workflows/ci.yml/badge.svg https://semaphoreci.com/api/v1/hattya/scmver/branches/master/badge.svg https://ci.appveyor.com/api/projects/status/l9flwehcgr5pxi33?svg=true https://codecov.io/gh/hattya/scmver/branch/master/graph/badge.svg

Installation

$ pip install scmver

Requiements

  • Python 3.7+
  • setuptools

Usage

setuptools

from setuptools import setup

setup(setup_requires=['scmver'],
      scmver=True)

scmver is either following values:

True
It is same as an empty dict.
callable object
It should return a dict.
dict
See Configuration for details.

distutils

from distutils.core import setup

import scmver

setup(version=scmver.get_version())

See Configuration for the scmver.get_version arguments.

Configuration

root

A path of the working directory.

Default: '.'

spec

A version specifier to construct the public version indentifiers. It will be incremented by the number of commits from the latest tag.

major
It will increment the major version.
minor
It will increment the minor version.
micro or patch
It will increment the micro (patch) version.
post
It will increment the post-release segment.
major.dev
It will increment the development release segment after incrementing the major version by 1.
minor.dev
It will increment the development release segment after incrementing the minor version by 1.
micro.dev or patch.dev
It will increment the development release segment after incrementing the micro (patch) version by 1.

Default: 'post'

local

A string or callable object to construct the local version identifiers.

string

A format string.

Available keywords:

  • {distance}
  • {revision}
  • {branch}
  • {utc} - Return value of datetime.datetime.utcnow()
  • {local} - Return value of datetime.datetime.now()
callable object
It will be called with scmver.core.SCMInfo.

Default: '{local:%Y-%m-%d}'

version
A regular expression object to extract the version from SCM tags. It should contain the version group.
write_to
A path to a file which will be generated using template.
template

A format string which is used by write_to.

Available keywords:

  • {version}
  • {revision}
  • {branch}
fallback

It will be used when there is outside of a working copy.

string
It is in the 'package.module:some.attribute' format (ex: 'scmver:version').
list
It consists of a string which is described above, and a path to import the module.
callable object
It should return the version.
bazaar.tag
A regular expression pattern to filter tags.
darcs.tag
A regular expression pattern to filter tags.
fossil.tag
A regular expression pattern to filter tags.
git.tag
It will be passed to git describe as --match.
mercurial.tag
A regular expression pattern to filter tags.
subversion.tag
A regular expression pattern to filter tags.
subversion.trunk

A relative repository path of the trunk directory.

Default: 'trunk'

subversion.branches

A relative repository path of the directory where branches are located.

Default: 'branches'

subversion.tags

A relative repository path of the directory where tags are located.

Default: 'tags'

License

scmver is distrutbuted under the terms of the MIT License.

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

scmver-1.4.zip (43.3 kB view hashes)

Uploaded source

Built Distribution

scmver-1.4-py2.py3-none-any.whl (20.9 kB view hashes)

Uploaded py2 py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page