aboutsummaryrefslogblamecommitdiffstats
path: root/testing/mycroft-core/0005-make-some-deps-optional.patch
blob: c75a0fbd7d89f3dc345c5909aabaa7618bd2f343 (plain) (tree)


























































































































































































                                                                                                                                          
Upstream pull-request: https://github.com/MycroftAI/mycroft-core/pull/2575

diff --git a/.travis.yml b/.travis.yml
index c01c851d87..a0b9ab2c1c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -26,8 +26,6 @@ install:
  - mkdir ${TMPDIR}
  - echo ${TMPDIR}
  - VIRTUALENV_ROOT=${VIRTUAL_ENV} ./dev_setup.sh
- - pip install -r requirements.txt
- - pip install -r test-requirements.txt
 # command to run tests
 script:
  - pycodestyle mycroft test
diff --git a/LICENSE.md b/LICENSE.md
index b2719d2a5e..b882a785c0 100644
--- a/LICENSE.md
+++ b/LICENSE.md
@@ -208,4 +208,4 @@ Component licenses for mycroft-core:
 The mycroft-core software references various Python Packages (via PIP),
 each of which has a separate license.  All are compatible with the
 Apache 2.0 license. See the referenced packages listed in the
-"requirements.txt" file for specific terms and conditions.
+"requirements/requirements.txt" file for specific terms and conditions.
diff --git a/MANIFEST.in b/MANIFEST.in
index 1888d6da7b..1708d5345f 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -1,5 +1,5 @@
 recursive-include mycroft/client/speech/recognizer/model *
-include requirements.txt
+include requirements/requirements.txt
 include mycroft/configuration/*.conf
 recursive-include mycroft/res *
 recursive-include mycroft/res/snd *
diff --git a/dev_setup.sh b/dev_setup.sh
index 3c59bc427b..f7f2d90009 100755
--- a/dev_setup.sh
+++ b/dev_setup.sh
@@ -495,16 +495,26 @@ if ! grep -q "$TOP" $VENV_PATH_FILE ; then
 fi
 
 # install required python modules
-if ! pip install -r requirements.txt ; then
-    echo 'Warning: Failed to install all requirements. Continue? y/N'
+if ! pip install -r requirements/requirements.txt ; then
+    echo 'Warning: Failed to install required dependencies. Continue? y/N'
     read -n1 continue
     if [[ $continue != 'y' ]] ; then
         exit 1
     fi
 fi
 
-if ! pip install -r test-requirements.txt ; then
-    echo "Warning test requirements wasn't installed, Note: normal operation should still work fine..."
+# install optional python modules
+if ! pip install -r requirements/requirements-optional.txt ; then
+    echo 'Warning: Failed to install optional dependencies. Continue? y/N'
+    read -n1 continue
+    if [[ $continue != 'y' ]] ; then
+        exit 1
+    fi
+fi
+
+
+if ! pip install -r requirements/requirements-tests.txt ; then
+    echo "Warning: Test requirements failed to install. Note: normal operation should still work fine..."
 fi
 
 SYSMEM=$(free | awk '/^Mem:/ { print $2 }')
@@ -563,4 +573,4 @@ if [[ ! -w /var/log/mycroft/ ]] ; then
 fi
 
 #Store a fingerprint of setup
-md5sum requirements.txt test-requirements.txt dev_setup.sh > .installed
+md5sum requirements/requirements.txt requirements/requirements-optional.txt requirements/requirements-tests.txt dev_setup.sh > .installed
diff --git a/mycroft/client/enclosure/generic/__init__.py b/mycroft/client/enclosure/generic/__init__.py
index 6256498add..a86dda739c 100644
--- a/mycroft/client/enclosure/generic/__init__.py
+++ b/mycroft/client/enclosure/generic/__init__.py
@@ -15,7 +15,6 @@
 import subprocess
 import time
 import sys
-from alsaaudio import Mixer
 from threading import Thread, Timer
 
 import mycroft.dialog
diff --git a/requirements/requirements-optional.txt b/requirements/requirements-optional.txt
new file mode 100644
index 0000000000..4a62dad731
--- /dev/null
+++ b/requirements/requirements-optional.txt
@@ -0,0 +1,4 @@
+pychromecast==3.2.2
+python-vlc==1.1.2
+pyalsaaudio==0.8.2
+google-api-python-client==1.6.4
diff --git a/test-requirements.txt b/requirements/requirements-tests.txt
similarity index 90%
rename from test-requirements.txt
rename to requirements/requirements-tests.txt
index 874a0f130d..9e038123e5 100644
--- a/test-requirements.txt
+++ b/requirements/requirements-tests.txt
@@ -7,3 +7,5 @@ sphinx==2.2.1
 sphinx-rtd-theme==0.4.3
 git+https://github.com/behave/behave@v1.2.7.dev1
 allure-behave==2.8.10
+
+python-vlc==1.1.2
diff --git a/requirements.txt b/requirements/requirements.txt
similarity index 83%
rename from requirements.txt
rename to requirements/requirements.txt
index db2fa43738..f86a81b4bf 100644
--- a/requirements.txt
+++ b/requirements/requirements.txt
@@ -7,16 +7,12 @@ SpeechRecognition==3.8.1
 tornado==6.0.3
 websocket-client==0.54.0
 requests-futures==0.9.5
-pyalsaaudio==0.8.2
 pyserial==3.0
 psutil==5.6.6
 pocketsphinx==0.1.0
 inflection==0.3.1
 pillow==7.1.2
 python-dateutil==2.6.0
-pychromecast==3.2.2
-python-vlc==1.1.2
-google-api-python-client==1.6.4
 fasteners==0.14.1
 PyYAML==5.1.2
 
diff --git a/scripts/my-info.sh b/scripts/my-info.sh
index a3b944308e..e395411120 100644
--- a/scripts/my-info.sh
+++ b/scripts/my-info.sh
@@ -144,7 +144,7 @@ function checkmimic() {
 # pythoning!
 function checkPIP() {
     mlog "Python checks"
-    mlog " - Verifying ${MYCROFT_HOME}/requirements.txt:"
+    mlog " - Verifying ${MYCROFT_HOME}/requirements/requirements.txt:"
     if workon mycroft ; then
         pip list > /tmp/mycroft-piplist.$$
 
diff --git a/setup.py b/setup.py
index c98f7b4f8f..2e171d66b6 100644
--- a/setup.py
+++ b/setup.py
@@ -56,7 +56,9 @@ setup(
     author_email='devs@mycroft.ai',
     url='https://github.com/MycroftAI/mycroft-core',
     description='Mycroft Core',
-    install_requires=required('requirements.txt'),
+    install_requires=required('requirements/requirements.txt'),
+    extras_requires=required('requirements/requirements-optional.txt'),
+    tests_requires=required('requirements/requirements-tests.txt'),
     packages=find_packages(include=['mycroft*']),
     include_package_data=True,
 
diff --git a/test/Dockerfile.test b/test/Dockerfile.test
index 87e3c85287..32554af019 100644
--- a/test/Dockerfile.test
+++ b/test/Dockerfile.test
@@ -64,12 +64,14 @@ RUN python3 -m venv "/opt/mycroft/mycroft-core/.venv"
 # determine if any changes have been made since it last started
 WORKDIR /opt/mycroft/mycroft-core
 RUN .venv/bin/python -m pip install pip==20.0.2
-COPY requirements.txt .
+COPY requirements/requirements.txt .
 RUN .venv/bin/python -m pip install -r requirements.txt
-COPY test-requirements.txt .
-RUN .venv/bin/python -m pip install -r test-requirements.txt
+COPY requirements/requirements-optional.txt .
+RUN .venv/bin/python -m pip install -r requirements-optional.txt
+COPY requirements/requirements-tests.txt .
+RUN .venv/bin/python -m pip install -r requirements-tests.txt
 COPY dev_setup.sh .
-RUN md5sum requirements.txt test-requirements.txt dev_setup.sh > .installed
+RUN md5sum requirements.txt requirements-tests.txt requirements-optional.txt dev_setup.sh > .installed
 
 # Add the mycroft core virtual environment to the system path.
 ENV PATH /opt/mycroft/mycroft-core/.venv/bin:$PATH