[Distutils] Failure to extract svn revision

Charles Cazabon charlesc-distutils-python.org at pyropus.ca
Wed Apr 9 21:51:48 CEST 2014


I'm having trouble getting setuptools to properly extract the svn revision and
write it into the <package>.egg-info/PKG-INFO file in a new environment.  It
has worked correctly for years in our previous environments, so I'm not sure
what I'm doing wrong at this point.

The environments where this works are virtualenvs based on Python 2.6 (and
previously to that, 2.5) on various versions of Ubuntu.  The new environment
is a Python 2.7.6 virtualenv on what will become Ubuntu 14.04 "Trusty Tahr"
when that's finalized.

The system-wide Python used to bootstrap the virtualenv has setuptools 3.3
installed.  I've also installed setuptools 3.4.3 in the virtualenv to see if
that helped, but it makes no difference.  Our package's setup.cfg file
contains the usual:

  tag_build = dev
  tag_svn_revision = true

Running `python setup.py develop` (or egg_info directly, or one of the other
commands that call egg_info) results in the <package>.egg-info/PKG-INFO

  Metadata-Version: 1.0
  Name: <packagename>
  Version: 5.0dev

(with all other values being UNKNOWN, which is fine).  In our other
environments, the version properly gets the svn revision number appended, like

  Version: 5.0dev-r15364

The upcoming Ubuntu release features subversion 1.8.8 instead of the 1.6.x in
the last long-term-support release, so I thought that might be the source of
the problem -- but manually running the code from svn_utils.py shows it seems
to work:

  >>> from setuptools.svn_utils import *
  >>> working_copy = '/path/to/srcdir/subdir'
  >>> SvnInfo().load(working_copy).get_revision()

In case it's relevant, setup.py/setup.cfg and the package I'm dealing with are
in a subdirectory of the working copy, so the .svn/ dir and its files etc are
in the parent directory, not the directory setup.py runs in.  `svnversion`
correctly fetches the revision number regardless, of course.

I haven't found any docs/FAQs/etc that would seem to be related - all the
subversion-related issues seem to be from the earlier transition to 1.5 or
1.6, which is long past.

Am I doing something wrong here?  Can anyone suggest why the revision tagging
is failing to work in my new environment?


Charles Cazabon         <charlesc-distutils-python.org at pyropus.ca>
Software, consulting, and services available at http://pyropus.ca/

More information about the Distutils-SIG mailing list