[pkg] do not add leap deps in develop mode
authorKali Kaneko <kali@leap.se>
Wed, 22 Jul 2015 20:03:50 +0000 (16:03 -0400)
committerKali Kaneko <kali@leap.se>
Wed, 22 Jul 2015 20:37:25 +0000 (16:37 -0400)
it is the responsibility of the developer to install them now

- Related: #7288

pkg/utils.py
setup.py

index dd3deac..9c9211b 100644 (file)
 #
 # 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
index f554e09..adca6e1 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -107,9 +107,21 @@ cmdclass["freeze_debianver"] = freeze_debianver
 
 # XXX add ref to docs
 
-requirements = (
-    utils.parse_requirements() +
-    utils.parse_requirements(reqfiles=["pkg/requirements-leap.pip"]))
+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.keymanager',