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.
Installation
$ pip install scmver
Requiements
Python 2.7 or 3.4+
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 obejct to construct the local version identifiers.
- string
A format string.
Available keywords:
{distance}
{reivison}
{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.
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.