Skip to main content

generate a version number from darcs history

Project description

What Does It Do

Create, based upon the latest darcs release tag.

If your source tree is coming from darcs (i.e. it is in a darcs repository), this tool will determine the most recent release tag, count the patches that have been applied since then, and compute a version number to be written into . This version number will be available by doing:

from your_package_name import __version__

Source trees that do not come from darcs (e.g. release tarballs, nightly tarballs) and are not within a darcs repository should instead, come with a that was generated before the tarball was produced. In this case, this tool will quietly exit without modifying the existing .

‘release tags’ are tags in the source repository that match the following regexp:



With easy_install:

easy_install darcsver

Alternative manual installation:

tar -zxvf darcsver-X.Y.Z.tar.gz cd darcsver-X.Y.Z python install

Where X.Y.Z is a version number.

Alternative to make a specific package use darcsver without installing darcsver into the system:

Put “setup_requires=[‘darcsver’]” in the call to setup() in the package’s file.


There are two ways to use this: the command-line tool and the setuptools plugin.

To use the command-line tool, execute it as:


To use the setuptools plugin (which enables you to write “./ darcsver” and which cleverly figures out where the file ought to go), you must first package your python module with and use setuptools.

The former is well documented in the distutils manual:

To use setuptools instead of distutils, just edit and change

from distutils.core import setup


from setuptools import setup


How to distribute Python modules with Distutils:

Setuptools complete manual:

Thanks to Yannick Gingras for providing the prototype for this README.txt.

Project details

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page