# HG changeset patch # User Matt Mackall # Date 1320964932 21600 # Node ID 009e7858a93bd72358f81a6be7bc5655be1bed70 # Parent ca5f8f43e585b00c477c00a0d02804d5c9e06714 setup: add version number lookup diff -r ca5f8f43e585 -r 009e7858a93b setup.py --- a/setup.py Wed Nov 09 16:09:46 2011 -0600 +++ b/setup.py Thu Nov 10 16:42:12 2011 -0600 @@ -1,9 +1,35 @@ -import os +import os, time from distutils.core import setup +# query Mercurial for version number +version = 'unknown' +if os.path.isdir('.hg'): + cmd = "hg id -i -t" + l = os.popen(cmd).read().split() + while len(l) > 1 and l[-1][0].isalpha(): # remove non-numbered tags + l.pop() + if len(l) > 1: # tag found + version = l[-1] + if l[0].endswith('+'): # propagate the dirty status to the tag + version += '+' + elif len(l) == 1: # no tag found + cmd = 'hg parents --template "{latesttag}+{latesttagdistance}-"' + version = os.popen(cmd).read() + l[0] + if version.endswith('+'): + version += time.strftime('%Y%m%d') +elif os.path.exists('.hg_archival.txt'): + kw = dict([[t.strip() for t in l.split(':', 1)] + for l in open('.hg_archival.txt')]) + if 'tag' in kw: + version = kw['tag'] + elif 'latesttag' in kw: + version = '%(latesttag)s+%(latesttagdistance)s-%(node).12s' % kw + else: + version = kw.get('node', '')[:12] + setup( name='python-hglib', - version='0.1', + version=version, author='Idan Kamara', author_email='idankk86@gmail.com', url='http://selenic.com/repo/python-hglib',