Repository: spyder-ide/spyder

Issue:
Add spyder-terminal plugin to macOS and Windows installers
The macOS installer currently does not incorporate external plugins.
As a first step, attempt to include Spyder Terminal.



Discussion:
I think that's a great idea! For now, the only one that is stable and well maintained (thanks to @steff456) is Spyder-terminal. When Spyder-notebook reaches that level of maturity, we could include it as well.
@dalthviz, what do you think about doing the same for the Windows installer?
Makes sense to me :+1: although in the future maybe we should think in a way for users to install the plugins they want even when using a standalone distribution (some sort of plugin manager that enables the installation of plugins or something like that)
> Makes sense to me 👍 although in the future maybe we should think in a way for users to install the plugins they want even when using a standalone distribution (some sort of plugin manager that enables the installation of plugins or something like that)

I think that would be a great idea. Not sure how to make it work, though, since at present the python packages have to be present in the build environment when the macOS application is bundled. Some time in the future, I should try to install python packages into the Spyder macOS application _after_ it's bundled; if that could work, then it should be pretty straight forward to implement.

Resolving patch:
diff --git a/installers/macOS/setup.py b/installers/macOS/setup.py
--- a/installers/macOS/setup.py
+++ b/installers/macOS/setup.py
@@ -79,6 +79,9 @@ def make_app_bundle(dist_dir, make_lite=False):
     docutils :
         [Errno 20] Not a directory: '<path>/Resources/lib/python39.zip/
         docutils/writers/latex2e/docutils.sty'
+    humanfriendly :
+        spyder-terminal plugin
+        ModuleNotFoundError: No module named 'humanfriendly.tables'
     IPython :
         [IPKernelApp] WARNING | Could not copy README_STARTUP to startup dir.
         Source file
@@ -130,6 +133,8 @@ def make_app_bundle(dist_dir, make_lite=False):
         python38.zip/spyder/app/mac_stylesheet.qss'
     spyder_kernels :
         No module named spyder_kernels.console.__main__
+    spyder_terminal :
+        No module named spyder_terminal.server
     textdistance :
         NotADirectoryError: [Errno 20] Not a directory: '<path>/Resources/lib/
         python39.zip/textdistance/libraries.json'
@@ -152,11 +157,12 @@ def make_app_bundle(dist_dir, make_lite=False):
     build_type = 'lite' if make_lite else 'full'
     logger.info('Creating %s app bundle...', build_type)
 
-    PACKAGES = ['alabaster', 'astroid', 'blib2to3', 'docutils', 'IPython',
-                'jedi', 'jinja2', 'keyring', 'parso', 'pygments', 'pylint',
-                'pylsp', 'pylsp_black', 'pyls_spyder', 'qtawesome',
-                'setuptools', 'sphinx', 'spyder', 'spyder_kernels',
-                'textdistance', 'debugpy', 'pkg_resources'
+    PACKAGES = ['alabaster', 'astroid', 'blib2to3', 'debugpy', 'docutils',
+                'humanfriendly', 'IPython', 'jedi', 'jinja2', 'keyring',
+                'pkg_resources', 'parso', 'pygments', 'pylint', 'pylsp',
+                'pylsp_black', 'pyls_spyder', 'qtawesome', 'setuptools',
+                'sphinx', 'spyder', 'spyder_kernels', 'spyder_terminal',
+                'textdistance'
                 ]
     INCLUDES = ['_sitebuiltins',  # required for IPython help()
                 'jellyfish',


Test patch: