Freeze requirements for sdist packages.

Use installed virtualenv to determine the list of actual
dependent versions tested.

Change-Id: Iff9781e97f32a318e357ae1d3305a74e2b3ba479
This commit is contained in:
Monty Taylor 2012-01-27 15:37:44 -05:00
parent f8e5df11f4
commit 284871b691
4 changed files with 32 additions and 17 deletions

1
.gitignore vendored
View File

@ -3,3 +3,4 @@ dist
git_review.egg-info
MANIFEST
.tox
requirements.txt

View File

@ -1,2 +0,0 @@
argparse==1.2.1
wsgiref==0.1.2

View File

@ -24,6 +24,7 @@ __name__ = "not-main"
exec(open("git-review", "r"))
__name__ = savename
class git_review_install(install):
# Force single-version-externally-managed
# This puts the manpage in the right location (instead of buried
@ -33,28 +34,40 @@ class git_review_install(install):
git_review_cmdclass = {'install': git_review_install}
def parse_requirements(file_name):
requirements = []
for line in open(file_name, 'r').read().split('\n'):
if re.match(r'(\s*#)|(\s*$)', line):
continue
if re.match(r'\s*-e\s+', line):
requirements.append(re.sub(r'\s*-e\s+.*#egg=(.*)$', r'\1', line))
elif re.match(r'\s*-f\s+', line):
pass
else:
requirements.append(line)
if os.path.exists(file_name):
for line in open(file_name, 'r').read().split('\n'):
if re.match(r'(\s*#)|(\s*$)', line):
continue
if re.match(r'\s*-e\s+', line):
requirements.append(re.sub(r'\s*-e\s+.*#egg=(.*)$', r'\1',
line))
elif re.match(r'\s*-f\s+', line):
pass
else:
requirements.append(line)
return requirements
def parse_dependency_links(file_name):
dependency_links = []
for line in open(file_name, 'r').read().split('\n'):
if re.match(r'\s*-[ef]\s+', line):
dependency_links.append(re.sub(r'\s*-[ef]\s+', '', line))
if os.path.exists(file_name):
for line in open(file_name, 'r').read().split('\n'):
if re.match(r'\s*-[ef]\s+', line):
dependency_links.append(re.sub(r'\s*-[ef]\s+', '', line))
return dependency_links
venv = os.environ.get('VIRTUAL_ENV', None)
if venv is not None:
with open("requirements.txt", "w") as req_file:
output = subprocess.Popen(["pip", "-E", venv, "freeze", "-l"],
stdout=subprocess.PIPE)
requirements = output.communicate()[0].strip()
req_file.write(requirements)
setup(
name='git-review',
version=version,

View File

@ -2,7 +2,10 @@
envlist = py26,py27
[testenv]
#deps = -r{toxinidir}/tools/pip-requires
setenv = VIRTUAL_ENV={envdir}
deps = pep8
commands = pep8 git-review
argparse
commands = pep8 --show-source setup.py git-review
[testenv:sdist]
commands = python setup.py sdist {posargs}