From 491eec5d8ad12cdfd29af9b2f0fbb4594f65af2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Sat, 8 Mar 2014 12:59:41 +0100 Subject: [PATCH] Improve setup.py to allow dev publication issue3436 issue1891 review2441002 --- MANIFEST.in | 2 -- setup.py | 45 ++++++++++++++++++++++++++++++--------------- 2 files changed, 30 insertions(+), 17 deletions(-) diff --git a/MANIFEST.in b/MANIFEST.in index fc0b03eaf2..f2f691a0e8 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,13 +1,11 @@ include INSTALL include README -include TODO include COPYRIGHT include CHANGELOG include LICENSE include tryton.cfg include *.xml include view/*.xml -include *.odt include locale/*.po include doc/* include tests/*.rst diff --git a/setup.py b/setup.py index 7c213a6726..ce803d82d8 100644 --- a/setup.py +++ b/setup.py @@ -11,43 +11,58 @@ import ConfigParser def read(fname): return open(os.path.join(os.path.dirname(__file__), fname)).read() + +def get_require_version(name): + if minor_version % 2: + require = '%s >= %s.%s.dev0, < %s.%s' + else: + require = '%s >= %s.%s, < %s.%s' + require %= (name, major_version, minor_version, + major_version, minor_version + 1) + return require + config = ConfigParser.ConfigParser() config.readfp(open('tryton.cfg')) info = dict(config.items('tryton')) for key in ('depends', 'extras_depend', 'xml'): if key in info: info[key] = info[key].strip().splitlines() -major_version, minor_version, _ = info.get('version', '0.0.1').split('.', 2) +version = info.get('version', '0.0.1') +major_version, minor_version, _ = version.split('.', 2) major_version = int(major_version) minor_version = int(minor_version) +name = 'trytond_purchase_shipment_cost' + +download_url = 'http://downloads.tryton.org/%s.%s/' % ( + major_version, minor_version) +if minor_version % 2: + version = '%s.%s.dev0' % (major_version, minor_version) + download_url = ( + 'hg+http://hg.tryton.org/modules/%s#egg=%s-%s' % ( + name[8:], name, version)) requires = [] for dep in info.get('depends', []): if not re.match(r'(ir|res|webdav)(\W|$)', dep): - requires.append('trytond_%s >= %s.%s, < %s.%s' % - (dep, major_version, minor_version, major_version, - minor_version + 1)) -requires.append('trytond >= %s.%s, < %s.%s' % - (major_version, minor_version, major_version, minor_version + 1)) + requires.append(get_require_version('trytond_%s' % dep)) +requires.append(get_require_version('trytond')) extras_require = {} for dep in info.get('extras_depend', []): if not re.match(r'(ir|res|webdav)(\W|$)', dep): - extras_require[dep] = ('trytond_%s >= %s.%s, < %s.%s' % - (dep, major_version, minor_version, major_version, - minor_version + 1)) + extras_require[dep] = get_require_version('trytond_%s' % dep) -tests_require = ['proteus >= %s.%s, < %s.%s' % - (major_version, minor_version, major_version, minor_version + 1)] +tests_require = [get_require_version('proteus')] -setup(name='trytond_purchase_shipment_cost', - version=info.get('version', '0.0.1'), +setup(name=name, + version=version, description='Tryton module for purchase shipment cost', long_description=read('README'), author='Tryton', + author_email='issue_tracker@tryton.org', url='http://www.tryton.org/', - download_url=("http://downloads.tryton.org/" + - info.get('version', '0.0.1').rsplit('.', 1)[0] + '/'), + download_url=download_url, + keywords='tryton purchase shipment cost', package_dir={'trytond.modules.purchase_shipment_cost': '.'}, packages=[ 'trytond.modules.purchase_shipment_cost',