tahoe-lafs/darcsver-1.7.2.egg/share/doc/python-darcsver
2011-01-20 21:28:38 -08:00
..
README.txt setup: upgrade bundled version of darcsver from 1.7.1 to 1.7.2 to support the new bbfreeze feature (by, strangely, having darcsver write out unix newlines regardless of what the underlying platform prefers) 2011-01-20 21:28:38 -08:00

darcsver - generate version numbers from darcs revision control history
=======================================================================

What Does It Do
---------------

Create files containing version numbers, 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 _version.py (and optionally other
version files). 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
_version.py that was generated before the tarball was produced. In this case,
this tool will quietly exit without modifying the existing _version.py .

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

 ^your_package_name-(\d+)(\.(\d+)(\.(\d+))?)?((a|b|c|rc)(\d+))?


Installation
------------

With easy_install:

  easy_install darcsver

Alternative manual installation:

  tar -zxvf darcsver-X.Y.Z.tar.gz
  cd darcsver-X.Y.Z
  python setup.py 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 setup.py file.


Usage
-----

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

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

darcsver $PACKAGE_NAME $PATH_TO_VERSION_PY


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

The former is well documented in the distutils manual:

  http://docs.python.org/dist/dist.html

To use setuptools instead of distutils, just edit `setup.py` and
change

  from distutils.core import setup

to

  from setuptools import setup


References
----------

How to distribute Python modules with Distutils:

  http://docs.python.org/dist/dist.html


Setuptools complete manual:

  http://peak.telecommunity.com/DevCenter/setuptools


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