diff options
author | PJ Eby <distutils-sig@python.org> | 2005-11-04 05:38:22 +0000 |
---|---|---|
committer | PJ Eby <distutils-sig@python.org> | 2005-11-04 05:38:22 +0000 |
commit | 8312542db5a016d80d7e35951fc7991bace1368c (patch) | |
tree | d2f3da9a1e3ed43a3b14032dc67fd95b7c48874e | |
parent | 12022171055a008a3dbd9e9eb38e249452414a5a (diff) | |
download | external_python_setuptools-8312542db5a016d80d7e35951fc7991bace1368c.tar.gz external_python_setuptools-8312542db5a016d80d7e35951fc7991bace1368c.tar.bz2 external_python_setuptools-8312542db5a016d80d7e35951fc7991bace1368c.zip |
Made ``egg_info --tag-svn-revision`` fall back to extracting the
revision number from ``PKG-INFO`` in case it is being run on a
source distribution of a snapshot taken from a Subversion-based
project. That is, if a project builds an sdist with
--tag-svn-revision in setup.cfg, then the built sdist will
create binaries with the same version number as the checkout
that was used to create the sdist.
--HG--
branch : setuptools
extra : convert_revision : svn%3A6015fed2-1504-0410-9fe1-9d1591cc4771/sandbox/trunk/setuptools%4041396
-rwxr-xr-x | setuptools.txt | 19 | ||||
-rwxr-xr-x | setuptools/command/egg_info.py | 24 |
2 files changed, 29 insertions, 14 deletions
diff --git a/setuptools.txt b/setuptools.txt index 41a2499c..97f51f20 100755 --- a/setuptools.txt +++ b/setuptools.txt @@ -1471,10 +1471,11 @@ added in the following order: Append NAME to the project's version string. Due to the way setuptools processes "pre-release" version suffixes beginning with the letters "a" through "e" (like "alpha", "beta", and "candidate"), you will usually want - to use a tag like "build" or "dev", as this will cause the version number + to use a tag like ".build" or ".dev", as this will cause the version number to be considered *lower* than the project's default version. (If you want to make the version number *higher* than the default version, you can - always leave off --tag-build and use one or both of the following options.) + always leave off --tag-build and then use one or both of the following + options.) ``--tag-svn-revision, -r`` If the current directory is a Subversion checkout (i.e. has a ``.svn`` @@ -1483,6 +1484,16 @@ added in the following order: modification to the current directory, as obtained from the ``svn info`` command. + If the current directory is not a Subversion checkout, the command will + look for a ``PKG-INFO`` file instead, and try to find the revision number + from that, by looking for a "-rNNNN" string at the end of the version + number. (This is so that building a package from a source distribution of + a Subversion snapshot will produce a binary with the correct version + number.) + + If there is no ``PKG-INFO`` file, or the version number contained therein + does not end with ``-r`` and a number, then ``-r0`` is used. + ``--tag-date, -d`` Add a date stamp of the form "-YYYYMMDD" (e.g. "-20050528") to the project's version number. @@ -1951,6 +1962,10 @@ Release Notes/Change History * Made ``develop`` command accept all the same options as ``easy_install``, and use the ``easy_install`` command's configuration settings as defaults. + * Made ``egg_info --tag-svn-revision`` fall back to extracting the revision + number from ``PKG-INFO`` in case it is being run on a source distribution of + a snapshot taken from a Subversion-based project. + 0.6a5 * Fixed missing gui/cli .exe files in distribution. Fixed bugs in tests. diff --git a/setuptools/command/egg_info.py b/setuptools/command/egg_info.py index 2c9a953e..c5a404e9 100755 --- a/setuptools/command/egg_info.py +++ b/setuptools/command/egg_info.py @@ -160,7 +160,7 @@ class egg_info(Command): continue # not part of the same svn tree, skip it for match in revre.finditer(data): revision = max(revision, int(match.group(1))) - return str(revision) + return str(revision or get_pkg_info_revision()) def write_pkg_info(cmd, basename, filename): log.info("writing %s", filename) @@ -226,17 +226,17 @@ def write_entries(cmd, basename, filename): cmd.write_or_delete_file('entry points', filename, data) - - - - - - - - - - - +def get_pkg_info_revision(): + # See if we can get a -r### off of PKG-INFO, in case this is an sdist of + # a subversion revision + # + if os.path.exists('PKG-INFO'): + f = open('PKG-INFO','rU') + for line in f: + match = re.match(r"Version:.*-r(\d+)\s*$", line) + if match: + return int(match.group(1)) + return 0 |