[CalendarServer-changes] [13187] CalendarServer/trunk

source_changes at macosforge.org source_changes at macosforge.org
Mon Apr 7 19:04:59 PDT 2014


Revision: 13187
          http://trac.calendarserver.org//changeset/13187
Author:   wsanchez at apple.com
Date:     2014-04-07 19:04:59 -0700 (Mon, 07 Apr 2014)
Log Message:
-----------
Don't parse requirements in setup.py

Modified Paths:
--------------
    CalendarServer/trunk/bin/_build.sh
    CalendarServer/trunk/setup.py

Added Paths:
-----------
    CalendarServer/trunk/requirements.txt

Removed Paths:
-------------
    CalendarServer/trunk/requirements/

Modified: CalendarServer/trunk/bin/_build.sh
===================================================================
--- CalendarServer/trunk/bin/_build.sh	2014-04-08 02:04:12 UTC (rev 13186)
+++ CalendarServer/trunk/bin/_build.sh	2014-04-08 02:04:59 UTC (rev 13187)
@@ -620,26 +620,21 @@
   if [ -d "${wd}/requirements/cache" ]; then
     pip_install="pip_install_from_cache";
   else
-    pip_install="pip_install";
+    pip_install="pip_download_and_install";
   fi;
 
-  for requirements in "${wd}/requirements/py_"*".txt"; do
+  local requirements="${wd}/requirements.txt";
 
-    ruler "Preparing Python requirements: ${requirements}";
-    echo "";
+  ruler "Preparing Python requirements";
+  echo "";
+  "${pip_install}" "--requirement=${requirements}";
 
-    if ! "${pip_install}" "${requirements}"; then
-      err=$?;
-      echo "Unable to set up Python requirements: ${requirements}";
-      if [ "${requirements#${wd}/requirements/py_opt_}" != "${requirements}" ]; then
-        echo "Requirements ${requirements} are optional; continuing.";
-      else
-        echo "";
-        echo "pip log: ${dev_home}/pip.log";
-        return 1;
-      fi;
+  for option in $("${python}" -c 'import setup; print "\n".join(setup.extras_requirements.keys())'); do
+    ruler "Preparing Python requirements for optional feature: ${option}";
+    echo "";
+    if ! "${pip_install}" "--editable=.[${option}]"; then
+      echo "Feature ${option} is optional; continuing.";
     fi;
-
   done;
 
   echo "";
@@ -647,21 +642,21 @@
 
 
 pip_install_from_cache () {
-  local requirements="$1"; shift;
+  local require="$1"; shift;
 
   "${python}" -m pip install                 \
-    --requirement="${requirements}"          \
-    --find-links "${wd}/requirements/cache"  \
+    "${require}"                             \
+    --find-links="${wd}/requirements/cache"  \
     --no-index                               \
     --log="${dev_home}/pip.log";
 }
 
 
-pip_install () {
-  local requirements="$1"; shift;
+pip_download_and_install () {
+  local require="$1"; shift;
 
   "${python}" -m pip install                  \
-    --requirement="${requirements}"           \
+    "${require}"                              \
     --download-cache="${dev_home}/pip_cache"  \
     --log="${dev_home}/pip.log";
 }

Added: CalendarServer/trunk/requirements.txt
===================================================================
--- CalendarServer/trunk/requirements.txt	                        (rev 0)
+++ CalendarServer/trunk/requirements.txt	2014-04-08 02:04:59 UTC (rev 13187)
@@ -0,0 +1,15 @@
+# Get our own dependencies
+--editable .
+
+# Additional dependencies for development
+pyflakes
+docutils>=0.11
+mockldap>=0.1.4
+q
+-e svn+http://svn.calendarserver.org/repository/calendarserver/CalDAVClientLibrary/trunk#egg=CalDAVClientLibrary
+-e svn+http://svn.calendarserver.org/repository/calendarserver/CalDAVTester/trunk#egg=CalDAVTester
+
+# Provide hints for finding packages
+--find-links svn+http://svn.calendarserver.org/repository/calendarserver/twext/trunk#egg=twextpy
+--find-links svn+http://svn.calendarserver.org/repository/calendarserver/PyKerberos/trunk#egg=kerberos
+--find-links svn+http://svn.calendarserver.org/repository/calendarserver/PyCalendar/trunk#egg=pycalendar


Property changes on: CalendarServer/trunk/requirements.txt
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Modified: CalendarServer/trunk/setup.py
===================================================================
--- CalendarServer/trunk/setup.py	2014-04-08 02:04:12 UTC (rev 13186)
+++ CalendarServer/trunk/setup.py	2014-04-08 02:04:59 UTC (rev 13187)
@@ -18,13 +18,10 @@
 
 from __future__ import print_function
 
-from itertools import chain
-from os import listdir, environ as environment
 from os.path import dirname, basename, abspath, join as joinpath, normpath
 import errno
 import subprocess
 
-from pip.req import parse_requirements
 from setuptools import setup, find_packages as setuptools_find_packages
 
 
@@ -138,45 +135,47 @@
 # Dependencies
 #
 
-reqs_extension = ".txt"
-reqs_opt_prefix = "py_opt_"
+cs_repos = "svn+http://svn.calendarserver.org/repository/calendarserver"
+twext_svn = "{}/twext/trunk#egg=twextpy".format(cs_repos)
 
+setup_requirements = []
 
-requirements_dir = joinpath(dirname(__file__), "requirements")
+install_requirements = [
+    # Core frameworks
+    "zope.interface>=4.0.5",
+    "twisted>=13.2.0",
+    "twextpy",
 
+    # Security frameworks
+    "pyOpenSSL>=0.12",
+    "pycrypto>=2.6.1",
+    "pyasn1>=0.1.7",
+    "kerberos",
 
-def read_requirements(reqs_filename):
-    return [
-        str(r.req) for r in
-        parse_requirements(joinpath(requirements_dir, reqs_filename))
-    ]
+    # Data store
+    "xattr>=0.6.4",
+    "twextpy[DAL]",
+    "sqlparse==0.1.2",
 
+    # Calendar
+    "python-dateutil>=1.5",
+    "pytz>=2013.8",
+    "pycalendar",
 
-setup_requirements = []
+    # Process info
+    "psutil>=1.2.0",
+    "setproctitle>=1.1.8",
+]
 
-install_requirements = read_requirements("py_base.txt")
+extras_requirements = {
+    "LDAP": ["twextpy[LDAP]"],
+    "OpenDirectory": ["twextpy[OpenDirectory]"],
+    "Oracle": ["twextpy[Oracle]"],
+    "Postgres": ["twextpy[Postgres]"],
+}
 
-extras_requirements = dict(
-    (
-        reqs_filename[len(reqs_opt_prefix):-len(reqs_extension)],
-        read_requirements(reqs_filename)
-    )
-    for reqs_filename in listdir(requirements_dir)
-    if (
-        reqs_filename.startswith(reqs_opt_prefix) and
-        reqs_filename.endswith(reqs_extension)
-    )
-)
 
-# Requirements for development and testing
-develop_requirements = read_requirements("py_develop.txt")
 
-if environment.get("_DEVELOP_PROJECT_", None) == name:
-    install_requirements.extend(develop_requirements)
-    install_requirements.extend(chain(*extras_requirements.values()))
-
-
-
 #
 # Set up Extension modules that need to be built
 #
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20140407/86335299/attachment-0001.html>


More information about the calendarserver-changes mailing list