Mercurial > python-hglib
annotate setup.py @ 189:8054e925d9c7
client: kill the server on unrecoverable communication errors (issue5516)
Once an unrecoverable communication error occurs between the client and server,
it's no longer safe to send further commands to the same server.
On Windows, attempting to do so is known to cause lockups and memory leaks.
Close the client and kill the server when an such an error occurs. This way,
any further commands will fail gracefully with ValueError until the client
is reopened.
author | Gábor Stefanik <gabor.stefanik@nng.com> |
---|---|
date | Mon, 21 Aug 2017 17:02:14 +0200 |
parents | d06b48001662 |
children | ae6427d1c8f7 |
rev | line source |
---|---|
80
009e7858a93b
setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents:
66
diff
changeset
|
1 import os, time |
66 | 2 from distutils.core import setup |
3 | |
162
e0678dfb7aec
setup: parse PKG-INFO for version information (issue3924)
Peter Elmers <peter.elmers@yahoo.com>
parents:
160
diff
changeset
|
4 # query Mercurial for version number, or pull from PKG-INFO |
80
009e7858a93b
setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents:
66
diff
changeset
|
5 version = 'unknown' |
009e7858a93b
setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents:
66
diff
changeset
|
6 if os.path.isdir('.hg'): |
009e7858a93b
setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents:
66
diff
changeset
|
7 cmd = "hg id -i -t" |
009e7858a93b
setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents:
66
diff
changeset
|
8 l = os.popen(cmd).read().split() |
009e7858a93b
setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents:
66
diff
changeset
|
9 while len(l) > 1 and l[-1][0].isalpha(): # remove non-numbered tags |
009e7858a93b
setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents:
66
diff
changeset
|
10 l.pop() |
009e7858a93b
setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents:
66
diff
changeset
|
11 if len(l) > 1: # tag found |
009e7858a93b
setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents:
66
diff
changeset
|
12 version = l[-1] |
009e7858a93b
setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents:
66
diff
changeset
|
13 if l[0].endswith('+'): # propagate the dirty status to the tag |
009e7858a93b
setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents:
66
diff
changeset
|
14 version += '+' |
009e7858a93b
setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents:
66
diff
changeset
|
15 elif len(l) == 1: # no tag found |
009e7858a93b
setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents:
66
diff
changeset
|
16 cmd = 'hg parents --template "{latesttag}+{latesttagdistance}-"' |
009e7858a93b
setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents:
66
diff
changeset
|
17 version = os.popen(cmd).read() + l[0] |
009e7858a93b
setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents:
66
diff
changeset
|
18 if version.endswith('+'): |
009e7858a93b
setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents:
66
diff
changeset
|
19 version += time.strftime('%Y%m%d') |
009e7858a93b
setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents:
66
diff
changeset
|
20 elif os.path.exists('.hg_archival.txt'): |
009e7858a93b
setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents:
66
diff
changeset
|
21 kw = dict([[t.strip() for t in l.split(':', 1)] |
009e7858a93b
setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents:
66
diff
changeset
|
22 for l in open('.hg_archival.txt')]) |
009e7858a93b
setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents:
66
diff
changeset
|
23 if 'tag' in kw: |
009e7858a93b
setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents:
66
diff
changeset
|
24 version = kw['tag'] |
009e7858a93b
setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents:
66
diff
changeset
|
25 elif 'latesttag' in kw: |
009e7858a93b
setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents:
66
diff
changeset
|
26 version = '%(latesttag)s+%(latesttagdistance)s-%(node).12s' % kw |
009e7858a93b
setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents:
66
diff
changeset
|
27 else: |
009e7858a93b
setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents:
66
diff
changeset
|
28 version = kw.get('node', '')[:12] |
162
e0678dfb7aec
setup: parse PKG-INFO for version information (issue3924)
Peter Elmers <peter.elmers@yahoo.com>
parents:
160
diff
changeset
|
29 elif os.path.exists('PKG-INFO'): |
e0678dfb7aec
setup: parse PKG-INFO for version information (issue3924)
Peter Elmers <peter.elmers@yahoo.com>
parents:
160
diff
changeset
|
30 kw = dict([[t.strip() for t in l.split(':', 1)] |
e0678dfb7aec
setup: parse PKG-INFO for version information (issue3924)
Peter Elmers <peter.elmers@yahoo.com>
parents:
160
diff
changeset
|
31 for l in open('PKG-INFO') if ':' in l]) |
e0678dfb7aec
setup: parse PKG-INFO for version information (issue3924)
Peter Elmers <peter.elmers@yahoo.com>
parents:
160
diff
changeset
|
32 version = kw.get('Version', version) |
80
009e7858a93b
setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents:
66
diff
changeset
|
33 |
66 | 34 setup( |
35 name='python-hglib', | |
80
009e7858a93b
setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents:
66
diff
changeset
|
36 version=version, |
66 | 37 author='Idan Kamara', |
38 author_email='idankk86@gmail.com', | |
186
d06b48001662
package: update package url
Boris Feld <boris.feld@octobus.net>
parents:
162
diff
changeset
|
39 url='https://www.mercurial-scm.org/wiki/PythonHglibs', |
66 | 40 description='Mercurial Python library', |
134 | 41 long_description=open(os.path.join(os.path.dirname(__file__), |
42 'README')).read(), | |
160
91329df47df5
hglib: declare hglib's Python version support (issue4520)
Brett Cannon <brett@python.org>
parents:
134
diff
changeset
|
43 classifiers=[ |
91329df47df5
hglib: declare hglib's Python version support (issue4520)
Brett Cannon <brett@python.org>
parents:
134
diff
changeset
|
44 'Programming Language :: Python', |
91329df47df5
hglib: declare hglib's Python version support (issue4520)
Brett Cannon <brett@python.org>
parents:
134
diff
changeset
|
45 'Programming Language :: Python :: 2.4', |
91329df47df5
hglib: declare hglib's Python version support (issue4520)
Brett Cannon <brett@python.org>
parents:
134
diff
changeset
|
46 'Programming Language :: Python :: 2.5', |
91329df47df5
hglib: declare hglib's Python version support (issue4520)
Brett Cannon <brett@python.org>
parents:
134
diff
changeset
|
47 'Programming Language :: Python :: 2.6', |
91329df47df5
hglib: declare hglib's Python version support (issue4520)
Brett Cannon <brett@python.org>
parents:
134
diff
changeset
|
48 'Programming Language :: Python :: 2.7', |
91329df47df5
hglib: declare hglib's Python version support (issue4520)
Brett Cannon <brett@python.org>
parents:
134
diff
changeset
|
49 'Programming Language :: Python :: 3', |
91329df47df5
hglib: declare hglib's Python version support (issue4520)
Brett Cannon <brett@python.org>
parents:
134
diff
changeset
|
50 'Programming Language :: Python :: 3.4', |
91329df47df5
hglib: declare hglib's Python version support (issue4520)
Brett Cannon <brett@python.org>
parents:
134
diff
changeset
|
51 |
91329df47df5
hglib: declare hglib's Python version support (issue4520)
Brett Cannon <brett@python.org>
parents:
134
diff
changeset
|
52 ], |
66 | 53 license='MIT', |
54 packages=['hglib']) |