diff options
author | Kali Kaneko <kali@leap.se> | 2015-07-22 16:50:07 -0400 |
---|---|---|
committer | Kali Kaneko <kali@leap.se> | 2015-07-22 16:50:07 -0400 |
commit | 7482e04ab1e75ba4b3d98a1129f8d044919a4b02 (patch) | |
tree | 77fbb64665e332060c737fca448d68e2a0fe52c4 | |
parent | d0dc9d7d5319bd26e33b3d72eace2c8230570373 (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 | 4 | ||||
-rw-r--r-- | pkg/requirements.pip | 5 | ||||
-rw-r--r-- | pkg/utils.py | 18 | ||||
-rwxr-xr-x | setup.py | 16 |
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 @@ -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"}, |