diff options
Diffstat (limited to 'client')
-rw-r--r-- | client/pkg/requirements-leap.pip | 2 | ||||
-rw-r--r-- | client/pkg/requirements.pip | 4 | ||||
-rw-r--r-- | client/pkg/utils.py | 24 | ||||
-rw-r--r-- | client/setup.py | 19 |
4 files changed, 39 insertions, 10 deletions
diff --git a/client/pkg/requirements-leap.pip b/client/pkg/requirements-leap.pip new file mode 100644 index 00000000..c5fbcd5f --- /dev/null +++ b/client/pkg/requirements-leap.pip @@ -0,0 +1,2 @@ +leap.common>=0.4.1 +leap.soledad.common>=0.6.5 diff --git a/client/pkg/requirements.pip b/client/pkg/requirements.pip index 570cd09e..b676b67c 100644 --- a/client/pkg/requirements.pip +++ b/client/pkg/requirements.pip @@ -7,10 +7,6 @@ cchardet zope.proxy twisted -# leap deps -- bump me! -leap.common>=0.4.1 -leap.soledad.common>=0.6.5 - # XXX -- fix me! # oauth is not strictly needed by us, but we need it until u1db adds it to its # release as a dep. diff --git a/client/pkg/utils.py b/client/pkg/utils.py index deace14b..e4253549 100644 --- a/client/pkg/utils.py +++ b/client/pkg/utils.py @@ -14,16 +14,30 @@ # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. - """ Utils to help in the setup process """ - import os 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 @@ -58,9 +72,9 @@ def parse_requirements(reqfiles=['requirements.txt', if re.match(r'\s*-e\s+', line): pass # do not try to do anything with externals on vcs - #requirements.append(re.sub(r'\s*-e\s+.*#egg=(.*)$', r'\1', - #line)) - # http://foo.bar/baz/foobar/zipball/master#egg=foobar + # requirements.append(re.sub(r'\s*-e\s+.*#egg=(.*)$', r'\1', + # line)) + # http://foo.bar/baz/foobar/zipball/master#egg=foobar elif re.match(r'\s*https?:', line): requirements.append(re.sub(r'\s*https?:.*#egg=(.*)$', r'\1', line)) diff --git a/client/setup.py b/client/setup.py index c3e4936f..5d9955e6 100644 --- a/client/setup.py +++ b/client/setup.py @@ -106,8 +106,25 @@ def get_versions(default={}, verbose=False): cmdclass["freeze_debianver"] = freeze_debianver + # XXX add ref to docs +requirements = utils.parse_requirements() + +if utils.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 += utils.parse_requirements( + reqfiles=["pkg/requirements-leap.pip"]) + setup( name='leap.soledad.client', version=VERSION, @@ -130,6 +147,6 @@ setup( namespace_packages=["leap", "leap.soledad"], packages=find_packages('src'), package_dir={'': 'src'}, - install_requires=utils.parse_requirements(), + install_requires=requirements, extras_require={'signaling': ['leap.common>=0.3.0']}, ) |