diff options
author | Kali Kaneko <kali@futeisha.org> | 2015-07-22 16:34:45 -0400 |
---|---|---|
committer | Kali Kaneko <kali@futeisha.org> | 2015-07-22 16:34:45 -0400 |
commit | 3215a470f701962fadfd26a996e8eef6f21444b5 (patch) | |
tree | 3188437ce6d4b95905c6c86a34203a4b72397977 | |
parent | f3261e937390fa703392d1234d47c00647285d42 (diff) |
[pkg] separate leap requirements
this is part of a process to make the setup of the development mode less
troublesome. from now on, setting up a virtualenv in pure development
mode will be as easy as telling pip to just install the external
dependencies::
pip install -r pkg/requirements.pip
and traversing all the leap repos for the needed leap dependencies doing::
python setup.py develop
- Related: #7288
-rw-r--r-- | pkg/requirements-leap.pip | 3 | ||||
-rw-r--r-- | pkg/requirements.pip | 4 | ||||
-rw-r--r-- | pkg/utils/reqs.py | 16 | ||||
-rw-r--r-- | setup.py | 24 |
4 files changed, 40 insertions, 7 deletions
diff --git a/pkg/requirements-leap.pip b/pkg/requirements-leap.pip new file mode 100644 index 0000000..482d1e2 --- /dev/null +++ b/pkg/requirements-leap.pip @@ -0,0 +1,3 @@ +leap.common>=0.3.5 +leap.soledad.common>=0.4.5 +leap.keymanager>=0.3.4 diff --git a/pkg/requirements.pip b/pkg/requirements.pip index ed3ad0d..328b1c3 100644 --- a/pkg/requirements.pip +++ b/pkg/requirements.pip @@ -7,7 +7,3 @@ paisley>=0.3.1 # in soledad-common, but we need to declare here # for the time being. couchdb - -leap.common>=0.3.5 -leap.soledad.common>=0.4.5 -leap.keymanager>=0.3.4 diff --git a/pkg/utils/reqs.py b/pkg/utils/reqs.py index 5e2324f..f10051e 100644 --- a/pkg/utils/reqs.py +++ b/pkg/utils/reqs.py @@ -22,6 +22,22 @@ import re import sys +def is_develop_mode(): + """ + Returns True if we're calling the setup script using the argument for + setuptools development mode. + + This avoids messing up with dependency pinning and order, the + responsibility of installing the leap dependencies is left to the + developer. + """ + args = sys.argv + devflags = "setup.py", "develop" + if (args[0], args[1]) == devflags: + return True + return False + + def get_reqs_from_files(reqfiles): """ Returns the contents of the top requirement file listed as a @@ -27,7 +27,7 @@ versioneer.versionfile_build = 'leap/mx/_version.py' versioneer.tag_prefix = '' # tags are like 1.2.0 versioneer.parentdir_prefix = 'leap.mx-' -from pkg.utils.reqs import parse_requirements +from pkg.utils.reqs import parse_requirements, is_develop_mode trove_classifiers = [ 'Development Status :: 3 - Alpha', @@ -114,6 +114,24 @@ else: # placed by distutils, using whatever interpreter is # available. data_files = [("/usr/local/bin/", ["pkg/mx.tac"])] + + +requirements = parse_requirements() + +if is_develop_mode(): + print + print ("[WARNING] Skipping leap-specific dependencies " + "because development mode is detected.") + print ("[WARNING] You can install " + "the latest published versions with " + "'pip install -r pkg/requirements-leap.pip'") + print ("[WARNING] Or you can instead do 'python setup.py develop' " + "from the parent folder of each one of them.") + print +else: + requirements += parse_requirements( + reqfiles=["pkg/requirements-leap.pip"]) + setup( name='leap.mx', version=VERSION, @@ -134,8 +152,8 @@ setup( namespace_packages=["leap"], package_dir={'': 'src'}, packages=find_packages('src'), - #test_suite='leap.mx.tests', - install_requires=parse_requirements(), + # test_suite='leap.mx.tests', + install_requires=requirements, classifiers=trove_classifiers, data_files=data_files ) |