summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client/pkg/requirements-leap.pip2
-rw-r--r--client/pkg/requirements.pip4
-rw-r--r--client/pkg/utils.py24
-rw-r--r--client/setup.py19
-rw-r--r--common/pkg/requirements-leap.pip1
-rw-r--r--common/pkg/requirements.pip3
-rw-r--r--common/pkg/utils.py29
-rw-r--r--common/setup.py18
-rw-r--r--server/pkg/requirements-leap.pip1
-rw-r--r--server/pkg/requirements.pip3
-rw-r--r--server/pkg/utils.py29
-rw-r--r--server/setup.py18
12 files changed, 121 insertions, 30 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']},
)
diff --git a/common/pkg/requirements-leap.pip b/common/pkg/requirements-leap.pip
new file mode 100644
index 00000000..b311859e
--- /dev/null
+++ b/common/pkg/requirements-leap.pip
@@ -0,0 +1 @@
+leap.common>=0.4.0
diff --git a/common/pkg/requirements.pip b/common/pkg/requirements.pip
index b91186e7..287741d2 100644
--- a/common/pkg/requirements.pip
+++ b/common/pkg/requirements.pip
@@ -1,9 +1,6 @@
simplejson
u1db
-# leap deps -- bump me!
-leap.common>=0.4.0
-
# 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/common/pkg/utils.py b/common/pkg/utils.py
index deace14b..d1680102 100644
--- a/common/pkg/utils.py
+++ b/common/pkg/utils.py
@@ -14,20 +14,34 @@
#
# 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
- string list with the lines
+ string list with the lines.
@param reqfiles: requirement files to parse
@type reqfiles: list of str
@@ -43,6 +57,9 @@ def parse_requirements(reqfiles=['requirements.txt',
"""
Parses the requirement files provided.
+ The passed reqfiles list is a list of possible locations to try, the
+ function will return the contents of the first path found.
+
Checks the value of LEAP_VENV_SKIP_PYSIDE to see if it should
return PySide as a dep or not. Don't set, or set to 0 if you want
to install it through pip.
@@ -58,9 +75,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/common/setup.py b/common/setup.py
index f4d8bc65..49d94dad 100644
--- a/common/setup.py
+++ b/common/setup.py
@@ -250,6 +250,22 @@ cmdclass["develop"] = cmd_develop
# 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.common',
version=VERSION,
@@ -273,7 +289,7 @@ setup(
packages=find_packages('src', exclude=['*.tests', '*.tests.*']),
package_dir={'': 'src'},
test_suite='leap.soledad.common.tests',
- install_requires=utils.parse_requirements(),
+ install_requires=requirements,
tests_require=utils.parse_requirements(
reqfiles=['pkg/requirements-testing.pip']),
extras_require={
diff --git a/server/pkg/requirements-leap.pip b/server/pkg/requirements-leap.pip
new file mode 100644
index 00000000..aaad340c
--- /dev/null
+++ b/server/pkg/requirements-leap.pip
@@ -0,0 +1 @@
+leap.soledad.common>=0.6.5
diff --git a/server/pkg/requirements.pip b/server/pkg/requirements.pip
index 43088222..53f7db57 100644
--- a/server/pkg/requirements.pip
+++ b/server/pkg/requirements.pip
@@ -6,9 +6,6 @@ routes
PyOpenSSL
twisted
-# leap deps -- bump me!
-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/server/pkg/utils.py b/server/pkg/utils.py
index deace14b..d1680102 100644
--- a/server/pkg/utils.py
+++ b/server/pkg/utils.py
@@ -14,20 +14,34 @@
#
# 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
- string list with the lines
+ string list with the lines.
@param reqfiles: requirement files to parse
@type reqfiles: list of str
@@ -43,6 +57,9 @@ def parse_requirements(reqfiles=['requirements.txt',
"""
Parses the requirement files provided.
+ The passed reqfiles list is a list of possible locations to try, the
+ function will return the contents of the first path found.
+
Checks the value of LEAP_VENV_SKIP_PYSIDE to see if it should
return PySide as a dep or not. Don't set, or set to 0 if you want
to install it through pip.
@@ -58,9 +75,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/server/setup.py b/server/setup.py
index 124ddd32..e7ccb4dc 100644
--- a/server/setup.py
+++ b/server/setup.py
@@ -116,6 +116,22 @@ 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.server',
version=VERSION,
@@ -138,6 +154,6 @@ setup(
namespace_packages=["leap", "leap.soledad"],
packages=find_packages('src'),
package_dir={'': 'src'},
- install_requires=utils.parse_requirements(),
+ install_requires=requirements,
data_files=data_files
)