Initial import.
This commit is contained in:
commit
b788389acc
11
README.rst
Normal file
11
README.rst
Normal file
@ -0,0 +1,11 @@
|
||||
Global dependencies for OpenStack Projects
|
||||
|
||||
To use this, run:
|
||||
|
||||
python update.py path/to/project
|
||||
|
||||
Entries in tools/pip-requires and tools/test-requires
|
||||
will have their versions updated to match the entires
|
||||
listed here. Any entries in the target project which
|
||||
do not first exist here will be removed. No entries
|
||||
will be added.
|
58
tools/pip-requires
Normal file
58
tools/pip-requires
Normal file
@ -0,0 +1,58 @@
|
||||
Babel>=0.9.6 # precise=0.9.6,oneiric=0.9.6
|
||||
BeautifulSoup>=3.2,<3.3 # precise=3.2.0,oneiric=3.2.0
|
||||
Cheetah>=2.4.4,<2.4.5 # precise=2.4.4,oneiric=2.4.4
|
||||
Django>=1.4,<1.5 # needs to be packaged for ubuntu
|
||||
MySQL-python>=1.2.3,<1.2.4 # precise=1.2.3,oneiric=1.2.3
|
||||
Paste>=1.7.5.1,<1.7.6 # precise=1.7.5.1,oneiric=1.7.5.1
|
||||
PasteDeploy>=1.5.0,<1.5.1 # precise=1.5.0,oneiric=1.5.0
|
||||
PasteScript>=1.7.3,<1.7.6 # precise=1.7.5.1,oneiric=1.7.3
|
||||
SQLAlchemy>=0.7.3,<0.8 # precise=0.7.4,oneiric=0.6.8
|
||||
WebOb>=1.0.8,<1.2 # precise=1.1,oneiric=1.0.8
|
||||
amqplib>=1.0.0 # precise=1.0.0,oneiric=1.0.0
|
||||
anyjson>=0.3.1,<0.3.2 # precise=0.3.1,oneiric=0.3.1
|
||||
argparse>=1.1,<2 # precise=1.1,oneiric=1.1
|
||||
boto>=2.0,<2.3 # precise=2.2.2,oneiric=2.0
|
||||
carrot>=0.10.7,<0.10.8 # precise=0.10.7,oneiric=0.10.7
|
||||
cliff>=1.0,<2.0 # needs to be pacakged for ubuntu
|
||||
configobj>=4.7.1,<4.7.3 # precise=4.7.2,oneiric=4.7.2
|
||||
django-openstack-auth
|
||||
django-compressor
|
||||
eventlet>=0.9.15,<0.9.17 # precise=0.6.16,oneiric=0.9.15
|
||||
factory_boy # needs to be packaged for ubuntu
|
||||
feedparser>=5.0.1,<5.2 # precise=5.1,oneiric=5.0.1
|
||||
greenlet>=0.3.1,<0.4 # precise=0.3.1,oneiric=0.3.1
|
||||
glance>=2011.3.1
|
||||
httplib2>=0.7.2 # precise=0.7.2,oneiric=0.7.2
|
||||
iso8601>=0.1.4 # precise==0.1.4,oneiric=0.1.4
|
||||
jsonschema # need to be packaged for ubuntu
|
||||
kombu>=1.0.4,<1.4.4 # precise==1.4.3,oneiric=1.0.4
|
||||
lockfile>=0.8,<0.9 # precise=0.8,oneiric=0.8
|
||||
lxml>=2.3,<2.4 # precise=2.3.2,oneiric=2.3
|
||||
netaddr>=0.7.5,<0.8 # precise=0.7.5,oneiric=0.7.5
|
||||
netifaces>=0.5,<0.7 # precise=0.6,oneiric=0.5
|
||||
numpy>=1.5.1,<1.6.2 # precise=1.6.1,oneiric=1.5.1
|
||||
pam==0.1.4 # needs to be packaged for ubuntu
|
||||
paramiko>=1.7.7.1 # precise=1.7.7.1,oneiric=1.7.7.1
|
||||
passlib>=1.5.2,<1.6 # precise=1.5.3,oneiric=1.5.2
|
||||
prettytable>=0.6,0.7 # precise=0.5,oneiric=0.5
|
||||
py-bcrypt>=0.1,<0.2 # precise=0.1,oneiric=0.1
|
||||
pycrypto>=2.3 # precise=2.4.1,oneiric=2.3
|
||||
pysendfile==2.0.0 # needs to be packaged for ubuntu
|
||||
pysqlite>=2.6.3,<2.6.4 # precise=2.6.3,oneiric=2.6.3
|
||||
python-cloudfiles
|
||||
python-daemon>=1.5.5,<1.5.6 # precise=1.5.5,oneiric=1.5.5
|
||||
python-dateutil>=1.4.1,<1.6 # precise=1.5,oneiric=1.4.1
|
||||
python-gflags>=1.5.1,<1.6 # precise=1.5.1,oneiric=1.5.1
|
||||
python-glanceclient
|
||||
python-keystoneclient
|
||||
python-novaclient
|
||||
python-swiftclient
|
||||
python-warlock # needs to be packaged for ubuntu
|
||||
pyyaml>=3.10 # precise=3.10,oneiric=3.10
|
||||
routes>=1.12.3,<1.13 # precise=1.12.3,oneiric=1.12.3
|
||||
simplejson>=2.1.6,<2.4 # precise=2.3.2,oneiric=2.1.6
|
||||
sqlalchemy-migrate>=0.7.1,<0.8 # precise=0.7.2,oneiric=0.7.1
|
||||
suds>=0.4,<0.5 # precise=0.4.1,oneiric=0.4.1
|
||||
tempita>=0.5.1,<0.5.2 # precise=0.5.1,oneiric=0.5.1
|
||||
wsgiref>=0.1.2,<0.1.3 # in python>=2.6
|
||||
xattr>=0.6 # precise=0.6.2,oneiric=0.6
|
26
tools/test-requires
Normal file
26
tools/test-requires
Normal file
@ -0,0 +1,26 @@
|
||||
Babel>=0.9.6 # precise=0.9.6,oneiric=0.9.6
|
||||
MySQL-python>=1.2.3,<1.2.4 # precise=1.2.3,oneiric=1.2.3
|
||||
Sphinx>=1.1.2 # required to build documentation
|
||||
coverage # computes code coverage percentages
|
||||
distribute>=0.6.24 # precise=0.6.24,oneiric=0.6.16
|
||||
django-nose>=0.1.2 # precise=0.1.3,oneiric=0.1.2
|
||||
eventlet>=0.9.15,<0.9.17 # precise=0.6.16,oneiric=0.9.15
|
||||
httplib2>=0.7.2 # precise=0.7.2,oneiric=0.7.2
|
||||
iso8601>=0.1.4 # precise==0.1.4,oneiric=0.1.4
|
||||
mock>=0.7.1 # precise=0.7.2,oneiric=0.7.1
|
||||
mox>=0.5.3 # precise=0.5.3,oneiric=0.5.3
|
||||
netaddr>=0.7.5,<0.8 # precise=0.7.5,oneiric=0.7.5
|
||||
netifaces>=0.5,<0.7 # precise=0.6,oneiric=0.5
|
||||
nose # for test discovery and console feedback
|
||||
nose-exclude # needs to be packaged for ubuntu
|
||||
nosexcover>=1.0.7 # precise=1.0.7
|
||||
openstack.nose_plugin>=0.7
|
||||
prettytable>=0.5 # precise=0.5,oneiric=0.5
|
||||
python-keystoneclient
|
||||
python-ldap==2.3.13 # authenticate against an existing LDAP server
|
||||
python-memcached
|
||||
requests>=0.5.0 # precise=0.8.2,oneiric=0.5.0
|
||||
selenium # needs to be packaged for ubuntu
|
||||
setuptools_git>=0.4 # needs to be packaged for ubuntu
|
||||
unittest2 # precise=0.5.1,oneiric=0.5.1 backport of unittest lib in python 2.7
|
||||
webtest # precise=1.3.3,oneiric=1.2.3 test wsgi apps without starting an http server
|
94
update.py
Normal file
94
update.py
Normal file
@ -0,0 +1,94 @@
|
||||
# vim: tabstop=4 shiftwidth=4 softtabstop=4
|
||||
|
||||
# Copyright 2012 OpenStack, LLC
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
r"""
|
||||
A simple script to update the requirements files from a global set of
|
||||
allowable requirements.
|
||||
|
||||
The script can be called like this:
|
||||
|
||||
$> python update.py ../myproj
|
||||
|
||||
Any requirements listed in the target files will have their versions
|
||||
updated to match the global requirements. Requirements not in the global
|
||||
files will be dropped.
|
||||
"""
|
||||
|
||||
import os
|
||||
import os.path
|
||||
import sys
|
||||
|
||||
from pip import req
|
||||
|
||||
|
||||
def _mod_to_path(mod):
|
||||
return os.path.join(*mod.split('.'))
|
||||
|
||||
|
||||
def _dest_path(path, base, dest_dir):
|
||||
return os.path.join(dest_dir, _mod_to_path(base), path)
|
||||
|
||||
|
||||
def _parse_reqs(filename):
|
||||
|
||||
reqs = dict()
|
||||
|
||||
pip_requires = open(filename, "r").readlines()
|
||||
for pip in pip_requires:
|
||||
pip = pip.strip()
|
||||
if pip.startswith("#") or len(pip) == 0:
|
||||
continue
|
||||
install_require = req.InstallRequirement.from_line(pip)
|
||||
if install_require.editable:
|
||||
reqs[pip] = pip
|
||||
elif install_require.url:
|
||||
reqs[pip] = pip
|
||||
else:
|
||||
reqs[install_require.req.key] = pip
|
||||
return reqs
|
||||
|
||||
|
||||
def _copy_requires(req, dest_dir):
|
||||
"""Copy requirements files."""
|
||||
|
||||
dest_path = _dest_path(req, 'tools', dest_dir)
|
||||
source_path = os.path.join('tools', req)
|
||||
|
||||
source_reqs = _parse_reqs(source_path)
|
||||
dest_reqs = _parse_reqs(dest_path)
|
||||
dest_keys = [key.lower() for key in dest_reqs.keys()]
|
||||
dest_keys.sort()
|
||||
|
||||
print "Syncing %s" % req
|
||||
with open(dest_path, 'w') as new_reqs:
|
||||
new_reqs.write("# This file is managed by openstack-depends\n")
|
||||
for old_require in dest_keys:
|
||||
# Special cases:
|
||||
# versions of our stuff from tarballs.openstack.org are ok
|
||||
# projects need to align pep8 version on their own time
|
||||
if old_require in source_reqs or \
|
||||
"http://tarballs.openstack.org" in old_require:
|
||||
new_reqs.write("%s\n" % source_reqs[old_require])
|
||||
if "pep8" in old_require:
|
||||
new_reqs.write("%s\n" % dest_reqs[old_require])
|
||||
|
||||
def main(argv):
|
||||
for req in ('pip-requires', 'test-requires'):
|
||||
_copy_requires(req, argv[0])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main(sys.argv[1:])
|
Loading…
Reference in New Issue
Block a user