Subject: [PATCH] gnu: Fix propagations of python-prompt-toolkit-2.
From: [email-masked]
To: [email-masked]
Date: Fri, 05 Jun 2020 23:07:06 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello Guix!

On Guix System

   guix ecab53c
     repository URL: https://git.savannah.gnu.org/git/guix.git
     branch: master
     commit: ecab53c320b1584a08f811b17a92bd9a50a50ff3

it's impossible to install jupyter in a new profile because it tries to 
propagate two different versions of python-ipython, you should be able 
to reproduce with:

guix package -p /tmp/tmp-prof -i jupyter

I believe since 32ba87c14fd5e5b54d95211cd9a159d568ce7c67 many packages 
whose tests depend on version python-prompt-toolkit at version 2 yield 
conflicts when installed in a profile.

I attached a patch to propagate the right versions.

Giacomo

From 052d6b9b72a914a15cf01f83e7c73439fac44c16 Mon Sep 17 00:00:00 2001
From: Giacomo Leidi <[email-masked]>
Date: Sat, 6 Jun 2020 00:30:08 +0200
Subject: [PATCH] gnu: Fix propagations of python-prompt-toolkit-2.

Since the update of python-prompt-toolkit to 3.0.5 many packages whose
tests depend on version 2 yield conflicts when installed in a profile.

* gnu/packages/python-xyz.scm (python-ipywidgets)[propagated-inputs]: Add
python-ipython, move python-ipython-with-prompt-toolkit-2 from here...
[native-inputs]: ...to here;
(python-jupyter-console)[propagated-inputs]: Add python-ipykernel and
python-prompt-toolkit, move python-ipykernel-with-prompt-toolkit-2 from
here...
[native-inputs]: ...to here and add python-prompt-toolkit-2;
(python-widgetsnbextension)[propagated-inputs]: Add python-ipykernel, move
python-ipykernel-with-prompt-toolkit-2 from here...
[native-inputs]: ...to here.
---
 gnu/packages/python-xyz.scm | 29 +++++++++++++++++++----------
 1 file changed, 19 insertions(+), 10 deletions(-)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 2e9f0d5632..72a25a6aef 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -9016,11 +9016,13 @@ interactive computing.")
          "1ismyaxbv9d56yqqqb8xl58hg0iq0bbyy014a53y1g3hfbc8g7q7"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-ipykernel"
-        ,(prompt-toolkit-2-instead-of-prompt-toolkit python-ipykernel))
+     `(("python-ipykernel" ,python-ipykernel)
        ("python-notebook" ,python-notebook)))
     (native-inputs
-     `(("python-certifi" ,python-certifi)
+     ;; FIXME: ipykernel is here to prevent profile conflicts.
+     `(("python-ipykernel-with-prompt-2"
+        ,(prompt-toolkit-2-instead-of-prompt-toolkit python-ipykernel))
+       ("python-certifi" ,python-certifi)
        ("python-nose" ,python-nose)))
     (home-page "https://ipython.org")
     (synopsis "IPython HTML widgets for Jupyter")
@@ -9044,12 +9046,15 @@ notebooks.")
          "15sww2mvnkqlvx55gwa82v05062a8j1xpncnqna4k9sl53hgcig9"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-ipython" ,(prompt-toolkit-2-instead-of-prompt-toolkit
-                           python-ipython))
+     `(("python-ipython" ,python-ipython)
        ("python-traitlets" ,python-traitlets)
        ("python-widgetsnbextension" ,python-widgetsnbextension)))
     (native-inputs
-     `(("python-nose" ,python-nose)
+     ;; FIXME: ipython is here to prevent profile conflicts.
+     `(("python-ipython-with-prompt-2"
+        ,(prompt-toolkit-2-instead-of-prompt-toolkit
+          python-ipython))
+       ("python-nose" ,python-nose)
        ("python-pytest" ,python-pytest)))
     (home-page "https://ipython.org")
     (synopsis "IPython HTML widgets for Jupyter")
@@ -9075,13 +9080,17 @@ in the data.")
          "06s3kr5vx0l1y1b7fxb04dmrppscl7q69sl9yyfr0d057d1ssvkg"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-ipykernel" ,(prompt-toolkit-2-instead-of-prompt-toolkit
-        python-ipykernel))
+     `(("python-ipykernel" ,python-ipykernel)
        ("python-jupyter-client" ,python-jupyter-client)
-       ("python-prompt-toolkit" ,python-prompt-toolkit-2)
+       ("python-prompt-toolkit" ,python-prompt-toolkit)
        ("python-pygments" ,python-pygments)))
     (native-inputs
-     `(("python-nose" ,python-nose)))
+     ;; FIXME: ipykernel is here to prevent profile conflicts.
+     `(("python-ipykernel-with-prompt-2"
+        ,(prompt-toolkit-2-instead-of-prompt-toolkit
+          python-ipykernel))
+       ("python-prompt-toolkit-2" ,python-prompt-toolkit-2)
+       ("python-nose" ,python-nose)))
     (home-page "https://jupyter.org")
     (synopsis "Jupyter terminal console")
     (description "This package provides a terminal-based console frontend for
-- 
2.26.2