Bug 1758271

Summary: Branch request: python3-ipython for epel8
Product: [Fedora] Fedora EPEL Reporter: Ling Li <liling>
Component: ipythonAssignee: Lumír Balhar <lbalhar>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: low Docs Contact:
Priority: unspecified    
Version: epel8CC: carl, c.handel, dcantrell, fabian.arrotin, lbalhar, mhroncok, michel, mrunge, orion, python-sig, steve.traylen, tomspur
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: ipython-7.16.1-1.el8 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-07-28 15:23:19 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1750771, 1762652, 1762654, 1762947, 1762948, 1762949    
Bug Blocks:    

Description Ling Li 2019-10-03 17:50:05 UTC
Please build ipython for EPEL-8.  Among its dependencies, only the followings exist for now, 

   python3-decorator  python3-jsonschema  python3-pexpect  python3-pygments

Others are also required to be built.

   python3-backcall python3-jedi python3-traitlets python3-prompt_toolkit python3-pickleshare


During the writing of this request, I realized that ipython had never been packaged/branched for EPEL, even though most of its dependencies were in EPEL 7.  If that's because of some policy issues, please disregard my request.

Thank you!

Comment 1 Ling Li 2019-10-03 17:53:44 UTC
Oh, my mistake.  ipython was packaged for EPEL.  It was a pretty old version, probably without the python3 subpackages.  Sorry for the confusion.

Comment 2 Orion Poplawski 2019-10-17 03:59:47 UTC
Please file bugs for the missing components and have them block this bug.  That will help us track dependencies.  Thanks!

Comment 3 Ling Li 2019-10-17 08:06:49 UTC
I created the following bugs: python3-jedi (Bug 1762652), python3-traitlets (Bug 1762654), python3-prompt_toolkit (Bug 1762656).  I don't know how to set up the blocking relation, though.

Somehow python-backcall and python-pickleshare are not in EPEL's component list, and hence I can't file bugs for them (sorry), even though their spec files are in Fedora's git:

https://src.fedoraproject.org/rpms/python-backcall/
https://src.fedoraproject.org/rpms/python-pickleshare/

Comment 4 Miro Hrončok 2019-10-17 09:23:53 UTC
You click "Show advanced fields" button and search for the "Depends on" field. You put comma separated list of bug numbers. I've just did that.

> Somehow python-backcall and python-pickleshare are not in EPEL's component list, and hence I can't file bugs for them (sorry)

The common thing to do in that case is to use the Fedora component.

Comment 5 Ling Li 2019-10-17 21:05:21 UTC
Thank you!  I filed more bugs and linked them, including the one that got renamed (python-prompt-toolkit).

Comment 6 Steve Traylen 2019-12-17 12:41:03 UTC
Was just looking at this:

It's also blocked on:

simplegeneric - https://bugzilla.redhat.com/show_bug.cgi?id=1784433
matplotlib - https://bugzilla.redhat.com/show_bug.cgi?id=1750771

I won't add to the blocker list as you may well know something I don't.

Comment 7 Orion Poplawski 2019-12-18 02:18:38 UTC
Let's add them.  Thanks.

Comment 8 Ling Li 2020-02-27 23:09:03 UTC
Ipython v7.1 and above no longer depends on simplegeneric.  See https://github.com/ipython/ipython/commit/dc0ceb16f92e0e943435106e863a5cfccd724a2d

Comment 9 Fabian Arrotin 2020-04-19 06:36:58 UTC
Just to add that through Configmanagement SIG at the CentOS side, I already tried to rebuild some components (all from Fedora .spec) , including ipython (7.9) and it fails strangely : 

https://cbs.centos.org/kojifiles/work/tasks/9380/1149380/build.log

From what I see it detects the correct path for python: "sys.executable : /usr/libexec/platform-python" but then in some tests fails with : "/usr/bin/sh: platform-python: command not found" like if it was trying to find it in $PATH and not from full path

Comment 10 Miro Hrončok 2020-04-19 07:28:19 UTC
In epel, %__python3 is /usr/bin/python3. I suggest not to build ipython with /usr/libexec/platform-python, as ipython is not a system tool.

Comment 11 Miro Hrončok 2020-04-19 07:33:23 UTC
ipython-7.13.0/IPython/utils/tests/test_process.py:

  python = os.path.basename(sys.executable)

Comment 12 Christoph 2020-06-02 13:28:31 UTC
using 

https://src.fedoraproject.org/rpms/ipython/raw/f32/f/ipython.spec

disable checks and remove dependency on python3-simplegeneric

it can be built with epel repositories.


```
--- ipython.spec	2020-06-02 15:20:03.696212522 +0200
+++ python-ipython.spec	2020-06-02 15:12:29.204956799 +0200
@@ -1,5 +1,10 @@
+%if 0%{?rhel} > 0
+# don't build for rhel, depenencies not satisfierd
+%bcond_with check
+%else
 %bcond_without check
-%bcond_without doc
+%endif
+%bcond_with doc
 
 Name:           ipython
 Version:        7.12.0
@@ -78,7 +83,7 @@
 BuildRequires:  python3-pexpect
 BuildRequires:  python3-pickleshare
 BuildRequires:  python3-prompt-toolkit >= 2
-BuildRequires:  python3-simplegeneric
+# BuildRequires:  python3-simplegeneric
 BuildRequires:  python3-traitlets >= 4.2
 Requires:       python3-backcall
 Requires:       python3-decorator
@@ -88,7 +93,7 @@
 Requires:       python3-prompt-toolkit >= 2
 Requires:       python3-pygments
 Requires:       python3-setuptools
-Requires:       python3-simplegeneric > 0.8
+# Requires:       python3-simplegeneric > 0.8
 Requires:       python3-traitlets >= 4.2
 
 %description -n python3-ipython
@@ -109,6 +114,7 @@
 This package contains the ipython sphinx extension.
 
 
+%if %{with check}
 %package -n python3-ipython-tests
 Summary:        Tests for %{name}
 %{?python_provide:%python_provide python3-ipython-tests}
@@ -124,6 +130,7 @@
 %description -n python3-ipython-tests
 This package contains the tests of %{name}.
 You can check this way, if ipython works on your platform.
+%endif # with check
 
 %if %{with doc}
 %package -n python3-ipython-doc
@@ -183,7 +190,8 @@
     PATH="%{buildroot}%{_bindir}:$PATH" \
     %{buildroot}%{_bindir}/iptest3
 popd
-
+%else
+rm -f %{buildroot}%{_bindir}/iptest*
 %endif
 
 %files -n python3-ipython
@@ -219,10 +227,12 @@
 %{python3_sitelib}/IPython/sphinxext/
 
 
+%if %{with check}
 %files -n python3-ipython-tests
 %{_bindir}/iptest3
 %exclude %{_bindir}/iptest
 %{python3_sitelib}/IPython/*/tests
+%endif
 
 
 %if %{with doc}
```

Comment 13 Lumír Balhar 2020-06-03 04:37:43 UTC
Hi Christoph,

what is the problem with tests? Could you please provide a scratch build so we can test it?

I'll remove the dependency of singledispatch.

Comment 14 Lumír Balhar 2020-06-03 04:41:13 UTC
(In reply to Lumír Balhar from comment #13)
> Hi Christoph,
> 
> what is the problem with tests? Could you please provide a scratch build so
> we can test it?
> 
> I'll remove the dependency of singledispatch.

simplegeneric, of course

Comment 15 Christoph 2020-06-03 14:49:52 UTC
scratch build means what? 

Basically it is fetching

https://src.fedoraproject.org/rpms/ipython/raw/f32/f/ipython.spec

removing simplegeneric and disabling the check packages. The diff is above.


Building the test package fails because of missing dependencies

missing test dependencies:

python3-ipykernel
python3-jupyter-client
python3-nbformat
python3-testpath

just for information, test dependencies provided by epel

python3-matplotlib                       
python3-tornado >= 4.0
python3-zmq
python3-zmq-tests

Comment 16 Lumír Balhar 2020-07-07 11:20:42 UTC
I can confirm that ipython without check/docs builds for epel8. Scratch build: https://koji.fedoraproject.org/koji/taskinfo?taskID=46742981

I've prepared a PR (waiting for the update to 7.16.1): https://src.fedoraproject.org/rpms/ipython/pull-request/13

Could you please help me with testing this version on Centos/RHEL 8? If it'll work well, I can request the epel8 branch and ship the latest version there.

Comment 17 Miro Hrončok 2020-07-07 11:30:58 UTC
> Could you please help me with testing this version on Centos/RHEL 8?

It starts fine in an epel8 mock.

Comment 18 Lumír Balhar 2020-07-09 10:01:17 UTC
I'd like to have at least one more tester before I ship it.

Comment 19 Carl George 🎩 2020-07-09 14:58:37 UTC
I installed the scratch build in a RHEL 8 container.  It starts and can import both standard library and third party modules.  I tried a few other basic tasks and everything worked as expected.

Comment 20 Lumír Balhar 2020-07-10 08:11:32 UTC
PR is merged and a new branch requested: https://pagure.io/releng/fedora-scm-requests/issue/26967

Comment 21 Fedora Update System 2020-07-12 18:11:12 UTC
FEDORA-EPEL-2020-86e4215da0 has been submitted as an update to Fedora EPEL 8. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2020-86e4215da0

Comment 22 Fedora Update System 2020-07-13 01:49:24 UTC
FEDORA-EPEL-2020-86e4215da0 has been pushed to the Fedora EPEL 8 testing repository.

You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2020-86e4215da0

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 23 Fedora Update System 2020-07-28 15:23:19 UTC
FEDORA-EPEL-2020-86e4215da0 has been pushed to the Fedora EPEL 8 stable repository.
If problem still persists, please make note of it in this bug report.