Mercurial > public > mercurial-scm > hg
diff setup.py @ 7632:9626819b2e3d
refactor version code
- simplify version detection code
- move detection code into setup.py
- move version reading function into util.py
- drop version.py code
This makes hg more closely follow its own recommendation of how to deal with
versioning your builds: use hg id in your build script.
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Sat, 10 Jan 2009 18:02:38 -0600 |
parents | dc211ad8d681 |
children | f7256cd9beff |
line wrap: on
line diff
--- a/setup.py Tue Jan 13 23:17:19 2009 +0100 +++ b/setup.py Sat Jan 10 18:02:38 2009 -0600 @@ -26,15 +26,13 @@ raise SystemExit( "Couldn't import standard zlib (incomplete Python install).") -import os +import os, time import shutil import tempfile from distutils.core import setup, Extension from distutils.command.install_data import install_data from distutils.ccompiler import new_compiler -import mercurial.version - extra = {} scripts = ['hg'] if os.name == 'nt': @@ -95,8 +93,21 @@ except ImportError: pass -# specify version string, otherwise 'hg identify' will be used: -version = '' +try: + l = os.popen('hg id -it').read().split() + while len(l) > 1 and l[-1][0].isalpha(): # remove non-numbered tags + l.pop() + version = l[-1] or 'unknown' # latest tag or revision number + if version.endswith('+'): + version += time.strftime('%Y%m%d') + +except OSError: + version = "unknown" + +f = file("mercurial/__version__.py", "w") +f.write('# this file is autogenerated by setup.py\n') +f.write('version = "%s"\n' % version) +f.close() class install_package_data(install_data): def finalize_options(self): @@ -104,7 +115,6 @@ ('install_lib', 'install_dir')) install_data.finalize_options(self) -mercurial.version.remember_version(version) cmdclass = {'install_data': install_package_data} ext_modules=[ @@ -140,7 +150,7 @@ pass setup(name='mercurial', - version=mercurial.version.get_version(), + version=version, author='Matt Mackall', author_email='mpm@selenic.com', url='http://selenic.com/mercurial',