summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKali Kaneko <kali@leap.se>2015-07-22 16:50:07 -0400
committerKali Kaneko <kali@leap.se>2015-07-22 16:50:07 -0400
commit7482e04ab1e75ba4b3d98a1129f8d044919a4b02 (patch)
tree77fbb64665e332060c737fca448d68e2a0fe52c4
parentd0dc9d7d5319bd26e33b3d72eace2c8230570373 (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.pip4
-rw-r--r--pkg/requirements.pip5
-rw-r--r--pkg/utils.py18
-rwxr-xr-xsetup.py16
4 files changed, 36 insertions, 7 deletions
diff --git a/pkg/requirements-leap.pip b/pkg/requirements-leap.pip
new file mode 100644
index 00000000..df2d1974
--- /dev/null
+++ b/pkg/requirements-leap.pip
@@ -0,0 +1,4 @@
+leap.soledad.client>=0.6.0
+leap.keymanager>=0.4.0
+leap.mail>=0.4.0rc1
+leap.common>=0.4.0
diff --git a/pkg/requirements.pip b/pkg/requirements.pip
index c9fc7216..7bc15e25 100644
--- a/pkg/requirements.pip
+++ b/pkg/requirements.pip
@@ -24,11 +24,6 @@ zope.proxy
pyzmq
txzmq
-leap.soledad.client>=0.6.0
-leap.keymanager>=0.4.0
-leap.mail>=0.4.0rc1
-leap.common>=0.4.0
-
# Remove this when u1db fixes its dependency on oauth
oauth
diff --git a/pkg/utils.py b/pkg/utils.py
index deace14b..2e316d45 100644
--- a/pkg/utils.py
+++ b/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
diff --git a/setup.py b/setup.py
index 33616f5e..6a4bced3 100755
--- a/setup.py
+++ b/setup.py
@@ -149,6 +149,21 @@ def freeze_pkg_ver(path, version_short, version_full):
cmdclass["freeze_debianver"] = freeze_debianver
parsed_reqs = 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:
+ parsed_reqs += utils.parse_requirements(
+ reqfiles=["pkg/requirements-leap.pip"])
+
+
leap_launcher = 'bitmask=leap.bitmask.app:start_app'
from setuptools.command.develop import develop as _develop
@@ -468,6 +483,7 @@ if IS_MAC:
import py2app.recipes
py2app.recipes.jsonschema = jsonschema_recipe()
+
setup(
name="leap.bitmask",
package_dir={"": "src"},