#30899 closed enhancement (fixed)
igraph, python-igraph: Update to 0.8.3
Reported by: | mkoeppe | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | sage-9.3 |
Component: | packages: optional | Keywords: | |
Cc: | fbissey, dcoudert, dimpase, slelievre, isuruf | Merged in: | |
Authors: | David Coudert, Dima Pasechnik | Reviewers: | Dima Pasechnik, Matthias Koeppe |
Report Upstream: | Reported upstream. No feedback yet. | Work issues: | |
Branch: | 938d704 (Commits, GitHub, GitLab) | Commit: | |
Dependencies: | Stopgaps: |
Description (last modified by )
(from #30611)
Released Oct 8, 2020. https://igraph.org/
the previous update was in #27597, where we also disabled blas/lapack inteface; perhaps it can make a comeback here.
This ticket also adds package texttable
version 1.6.3, a dependency of python_igraph
.
source tarballs: see checksums.ini
Change History (63)
comment:1 Changed 18 months ago by
- Description modified (diff)
comment:2 Changed 18 months ago by
comment:3 Changed 18 months ago by
- Description modified (diff)
comment:4 Changed 18 months ago by
This version of igraph is also in homebrew https://formulae.brew.sh/formula/igraph. I don't think we are currently checking whether graph is a system package or not.
We also need python_igraph (https://igraph.org/python/), right ?
comment:5 Changed 18 months ago by
- Branch set to public/30899_igraph
- Commit set to d2f206d39b35f04b5515c0df029b8f27ad878c22
- Description modified (diff)
- Status changed from new to needs_info
I tried to update to 0.8.3 on macOS 10.15.7. Compilation went well, but I have the following issues:
sapristi:sage dcoudert$ ./sage ┌────────────────────────────────────────────────────────────────────┐ │ SageMath version 9.3.beta1, Release Date: 2020-11-07 │ │ Using Python 3.9.0. Type "help()" for help. │ └────────────────────────────────────────────────────────────────────┘ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ Warning: this is a prerelease version, and it may be unstable. ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ sage: import igraph --------------------------------------------------------------------------- ModuleNotFoundError Traceback (most recent call last) <ipython-input-1-73ffca960e68> in <module> ----> 1 import igraph ~/sage/local/lib/python3.9/site-packages/igraph/__init__.py in <module> 33 # W0401: wildcard import 34 from igraph._igraph import * ---> 35 from igraph.clustering import * 36 from igraph.cut import * 37 from igraph.configuration import Configuration ~/sage/local/lib/python3.9/site-packages/igraph/clustering.py in <module> 36 from igraph.drawing.colors import ClusterColoringPalette 37 from igraph.statistics import Histogram ---> 38 from igraph.summary import _get_wrapper_for_width 39 from igraph.utils import str_to_orientation 40 ~/sage/local/lib/python3.9/site-packages/igraph/summary.py in <module> 9 from itertools import islice 10 from math import ceil ---> 11 from texttable import Texttable 12 from textwrap import TextWrapper 13 ModuleNotFoundError: No module named 'texttable'
and
sage: from sage.features import PythonModule sage: F = PythonModule("igraph", spkg="python_igraph", url="http://igraph.org") sage: F.is_present() FeatureTestResult('igraph', False)
I don't know what to do
New commits:
d2f206d | trac #30899: update to 0.8.3
|
comment:6 Changed 18 months ago by
python-igraph
has new dependencies that need to be added. pycairo
and texttable
https://pypi.org/project/texttable/
https://pypi.org/project/pycairo/
We may be able to do without pycairo (which in turns will require cairo either as a spkg or system package, may be it is already required, that need to be checked).
comment:7 Changed 18 months ago by
Indeed python-igraph used to vendor texttable
but this was changed:
https://github.com/igraph/python-igraph/commit/60194fbb7ff3dbd05c140493e116673834318fc2
Careful, it's texttable
, not textable
(both exist on PyPI).
comment:8 Changed 18 months ago by
as far as cairo and pycairo are concerned, we can add them, why not?
comment:9 Changed 18 months ago by
cairo is potentially opening a nest of dependencies, so if skipping it was possible, I think that would be preferable.
comment:10 Changed 18 months ago by
- Commit changed from d2f206d39b35f04b5515c0df029b8f27ad878c22 to 373c82b5023fe610039ba52a746a0461b744569b
Branch pushed to git repo; I updated commit sha1. New commits:
373c82b | trac #30899: add texttable
|
comment:11 Changed 18 months ago by
- Description modified (diff)
- Status changed from needs_info to needs_review
I added texttable and it seems ok now on my side. Not sure I did it the right way...
comment:12 Changed 18 months ago by
checksums.ini
needs upstream_url
(see #30895)
spkg-check.in
looks incomplete.
The error handling in spkg-install.in
can be removed - the function sdh_pip_install
already takes care of it
comment:13 Changed 18 months ago by
- Commit changed from 373c82b5023fe610039ba52a746a0461b744569b to 2f8d5058f85f1ee7bcc5d0853fee84c0dc7653f5
Branch pushed to git repo; I updated commit sha1. New commits:
2f8d505 | addded upstream_url's
|
comment:14 Changed 18 months ago by
- Commit changed from 2f8d5058f85f1ee7bcc5d0853fee84c0dc7653f5 to 63d371849e3c0ee8c9f954c676ff59b173ea7d3f
Branch pushed to git repo; I updated commit sha1. New commits:
63d3718 | remove unneeded error handling
|
comment:15 Changed 18 months ago by
- Commit changed from 63d371849e3c0ee8c9f954c676ff59b173ea7d3f to 9626cf9deb257a5d00015cea7977ddf5a53d7d96
Branch pushed to git repo; I updated commit sha1. New commits:
9626cf9 | use pkg-config to check for libxml
|
comment:16 Changed 18 months ago by
What else should be done if we want to use a local installation of igraph (e.g., homebrew) ?
comment:17 Changed 18 months ago by
- Commit changed from 9626cf9deb257a5d00015cea7977ddf5a53d7d96 to ccad4b393e049f656dee27ad61353927d8027eb4
Branch pushed to git repo; I updated commit sha1. New commits:
ccad4b3 | added missing quotes
|
comment:18 Changed 18 months ago by
Add system package information in distros/
(see https://repology.org/project/igraph/versions) and add spkg-configure.m4
comment:19 Changed 18 months ago by
- Status changed from needs_review to needs_info
python_igraph
by default vendors libigraph
, to avoid it one needs to follow
https://github.com/igraph/python-igraph#linking-to-an-existing-igraph-installation
But I don't know how this can be done with our sdh_pip_install
, which does not accept arguments other than .
.
comment:20 Changed 18 months ago by
You can use the same method that we use in numpy
: Use setup.py bdist_wheel
and then sdh_store_and_pip_install_wheel
.
comment:21 follow-up: ↓ 22 Changed 18 months ago by
Unless someone wants to give it a try now, I propose to postpone the use of system package to another ticket.
comment:22 in reply to: ↑ 21 Changed 18 months ago by
Replying to dcoudert:
Unless someone wants to give it a try now, I propose to postpone the use of system package to another ticket.
The tricky part is to take care of comment:20 - I'll write the spkg-configure for igraph once this is done, but 1st things 1st.
comment:23 Changed 18 months ago by
- Commit changed from ccad4b393e049f656dee27ad61353927d8027eb4 to af234304d7fefc57a3cd9e6e197cdcda9975c86f
Branch pushed to git repo; I updated commit sha1. New commits:
af23430 | build wheel and install
|
comment:24 Changed 18 months ago by
igraph does not build on macOS 10.5 with Xcode 12.
[igraph-0.8.3] /bin/bash ../libtool --tag=CC --mode=compile clang -DHAVE_CONFIG_H -I. -I.. -O3 -DIGRAPH_VERIFY_FINALLY_STACK=0 -I../include -I../include -I../src/CHOLMOD/Include -I../src/CHOLMOD/Include -I../src/AMD/Include -I../src/AMD/Include -I../src/COLAMD/Include -I../src/COLAMD/Include -I../src/SuiteSparse_config -I../src/SuiteSparse_config -DNPARTITION -DNTIMER -DNCAMD -Wall -I../src/prpack -DPRPACK_IGRAPH_SUPPORT -I/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include -O3 -c -o AMD/Source/libigraph_la-amd_1.lo `test -f 'AMD/Source/amd_1.c' || echo './'`AMD/Source/amd_1.c [igraph-0.8.3] In file included from CHOLMOD/Supernodal/cholmod_super_numeric.c:80: [igraph-0.8.3] CHOLMOD/Supernodal/t_cholmod_super_numeric.c:510:17: error: implicit declaration of function 'dsyrk_' is invalid in C99 [-Werror,-Wimplicit-function-declaration] [igraph-0.8.3] BLAS_dsyrk ("L", "N", [igraph-0.8.3] ^ [igraph-0.8.3] ../src/CHOLMOD/Include/cholmod_blas.h:331:2: note: expanded from macro 'BLAS_dsyrk' [igraph-0.8.3] BLAS_DSYRK (uplo, trans, &N, &K, alpha, A, &LDA, beta, C, &LDC) ; \ [igraph-0.8.3] ^ [igraph-0.8.3] ../src/CHOLMOD/Include/cholmod_blas.h:132:20: note: expanded from macro 'BLAS_DSYRK' [igraph-0.8.3] #define BLAS_DSYRK igraphdsyrk_ [igraph-0.8.3] ^ [igraph-0.8.3] ./igraph_lapack_internal.h:86:29: note: expanded from macro 'igraphdsyrk_' [igraph-0.8.3] #define igraphdsyrk_ dsyrk_ [igraph-0.8.3] ^
no surprise, it's very old code they vendor for no good reason, too. I'll open an issue with upstream. The following fixes the problem
-
build/pkgs/igraph/spkg-install.in
a b You need libxml2 to run igraph. On Ubuntu and Debian Linux, installing the build 4 4 exit 1 5 5 fi 6 6 7 export CFLAGS="$CFLAGS -Wno-strict-prototypes -Wno-implicit-function-declaration" 7 8 cd src 8 9 sdh_configure --with-external-blas --with-external-lapack --with-external-glpk 9 10 sdh_make
comment:25 Changed 18 months ago by
- Commit changed from af234304d7fefc57a3cd9e6e197cdcda9975c86f to 3ff4fd8ea01b6d3d65f8abb1aa7ac4fcd9275452
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
3ff4fd8 | build wheel and install
|
comment:26 Changed 18 months ago by
- Commit changed from 3ff4fd8ea01b6d3d65f8abb1aa7ac4fcd9275452 to 7e97772d80db67f9c8fdbf474cdf971392cfdd0a
Branch pushed to git repo; I updated commit sha1. New commits:
7e97772 | spkg-configure and distros hints for igraph
|
comment:27 Changed 18 months ago by
- Reviewers set to Dima Pasechnik
- Status changed from needs_info to needs_review
comment:28 follow-up: ↓ 29 Changed 18 months ago by
+upstream_url=https://github.com/foutaise/texttable/archive/vVERSION.tar.gz
better to use pypi.io URLs
comment:29 in reply to: ↑ 28 Changed 18 months ago by
Replying to mkoeppe:
+upstream_url=https://github.com/foutaise/texttable/archive/vVERSION.tar.gzbetter to use pypi.io URLs
I don't know where to get a nice url there. there are links to pypi.org there with ugly hashes.
comment:30 Changed 18 months ago by
It should be of the following form (try it) https://pypi.io/packages/source/t/texttable/texttable-VERSION.tar.gz
comment:31 Changed 18 months ago by
- Commit changed from 7e97772d80db67f9c8fdbf474cdf971392cfdd0a to 59703909d0c9a907cf2a9f355daa5ef31795a2ff
Branch pushed to git repo; I updated commit sha1. New commits:
5970390 | get texttable tarball from pypi
|
comment:32 Changed 18 months ago by
- Commit changed from 59703909d0c9a907cf2a9f355daa5ef31795a2ff to bb1b5105c0010db4c860c3aae0f750a2fac5b98b
Branch pushed to git repo; I updated commit sha1. New commits:
bb1b510 | igraph in conda, too
|
comment:33 Changed 18 months ago by
- Cc isuruf added
comment:34 Changed 18 months ago by
- Status changed from needs_review to needs_work
The distros files are missing the extension ".txt"
comment:35 Changed 18 months ago by
- Commit changed from bb1b5105c0010db4c860c3aae0f750a2fac5b98b to 978d9a4695be20a3312ba558bcc07d80ad239df5
Branch pushed to git repo; I updated commit sha1. New commits:
978d9a4 | trac #30899: add missing .txt extensions
|
comment:36 follow-up: ↓ 37 Changed 18 months ago by
I renamed the files.
I have a doubt for gentoo.txt
: on page https://repology.org/project/igraph/versions it's written dev-libs/igraph
but our file contains only igraph
. Should I change to dev-libs/igraph
?
comment:37 in reply to: ↑ 36 Changed 18 months ago by
Replying to dcoudert:
I renamed the files.
I have a doubt for
gentoo.txt
: on page https://repology.org/project/igraph/versions it's writtendev-libs/igraph
but our file contains onlyigraph
. Should I change todev-libs/igraph
?
igraph
would be fine. dev-libs/igraph
would be useful to lift ambiguities if there were several igraph packages across different categories. That being said you should check what was done for other packages. If we have a convention of using the "long" package name you should follow it.
comment:38 Changed 18 months ago by
- Commit changed from 978d9a4695be20a3312ba558bcc07d80ad239df5 to 938d7048a34df6a4c22dda3d376cb30b0345e011
Branch pushed to git repo; I updated commit sha1. New commits:
938d704 | trac #30899: correct gentoo.txt and add freebsd.txt
|
comment:39 Changed 18 months ago by
the convention is dev-libs/igraph
. I also added a file for freebsd ports.
comment:40 Changed 18 months ago by
- Status changed from needs_work to needs_review
OK, needs final review?
comment:41 follow-up: ↓ 44 Changed 18 months ago by
python-igraph is on pypi https://pypi.org/project/python-igraph/ so we should use it as upstream instead of
upstream_url=https://github.com/igraph/python-igraph/releases/download/VERSION/python-igraph-VERSION.tar.gz
github generated tarballs sometimes have issues.
comment:42 follow-ups: ↓ 43 ↓ 47 Changed 18 months ago by
I am not sure about using sage-python23
, aren't we phasing that out to use plain python3
or python
?
comment:43 in reply to: ↑ 42 Changed 18 months ago by
Replying to fbissey:
I am not sure about using
sage-python23
, aren't we phasing that out to use plainpython3
orpython
?
I copied this from numpy's spkg-install. I suppose here should be a ticket that does away with sage-python23 at some point.
comment:44 in reply to: ↑ 41 ; follow-up: ↓ 45 Changed 18 months ago by
Replying to fbissey:
python-igraph is on pypi https://pypi.org/project/python-igraph/ so we should use it as upstream instead of
upstream_url=https://github.com/igraph/python-igraph/releases/download/VERSION/python-igraph-VERSION.tar.gzgithub generated tarballs sometimes have issues.
this tarball is not github-generated, it's a manually uploaded one. cf https://github.com/igraph/igraph/releases/tag/0.8.3
comment:45 in reply to: ↑ 44 Changed 18 months ago by
Replying to dimpase:
Replying to fbissey:
python-igraph is on pypi https://pypi.org/project/python-igraph/ so we should use it as upstream instead of
upstream_url=https://github.com/igraph/python-igraph/releases/download/VERSION/python-igraph-VERSION.tar.gzgithub generated tarballs sometimes have issues.
this tarball is not github-generated, it's a manually uploaded one. cf https://github.com/igraph/igraph/releases/tag/0.8.3
that's definitely a good thing. I won't insist on pypi.
comment:46 Changed 18 months ago by
I tried with a homebrew install of igraph and then sage -I python_igraph
and it's working well. I don't know for other systems.
comment:47 in reply to: ↑ 42 Changed 18 months ago by
comment:48 Changed 18 months ago by
- Commit changed from 938d7048a34df6a4c22dda3d376cb30b0345e011 to 348569b5d4dd9f62886eab15d2668e08d4ef645a
Branch pushed to git repo; I updated commit sha1. New commits:
348569b | trac #30899: use python3 istead of sage-python23
|
comment:49 Changed 18 months ago by
build/pkgs/python_igraph/spkg-install.in also has sage-python23
comment:50 Changed 18 months ago by
- Commit changed from 348569b5d4dd9f62886eab15d2668e08d4ef645a to cf66e4c2f73a759db4f7bf0df53f217ca958a87b
Branch pushed to git repo; I updated commit sha1. New commits:
cf66e4c | trac #30899: missing change
|
comment:51 follow-up: ↓ 55 Changed 18 months ago by
I don't like these sage-python23 -> python3 changes. I don't see why this python3 is guaranteed to be the correct python.
In fact, no package at the moment uses python3
to run setup.py
, while about a dozen
packages use sage-python23
.
I really think until #30731 is done, we should continue using sage-python23
.
Sorry I didn't check earlier.
comment:52 Changed 18 months ago by
I don't know how to remove the 2 lasts commits (I'm still at git beginner level...). Otherwise I can push a revert commit.
comment:53 Changed 18 months ago by
- Commit changed from cf66e4c2f73a759db4f7bf0df53f217ca958a87b to 938d7048a34df6a4c22dda3d376cb30b0345e011
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
comment:54 Changed 18 months ago by
OK, I was able to remove the last 2 commits (and so revert to sage-python23). I had to do a forced push.
comment:55 in reply to: ↑ 51 Changed 18 months ago by
Replying to dimpase:
I don't like these sage-python23 -> python3 changes.
We will switch over in #30371 - and I agree that it is better for uniformity if we don't do this package by package.
I don't see why this python3 is guaranteed to be the correct python.
It is actually guaranteed by our installation.
- When there is a suitable system python3.x, then Sage creates a venv over it and installs a
python3
symlink in$SAGE_LOCAL/bin
(which is in$PATH
and not shadowed by what is in front of it), sopython3
works. - When there is no suitable system python3.x, then Sage builds one and installs a binary in
$SAGE_LOCAL/bin
, sopython3
also works.
(Side note: After #22731/#30013, the above is still true, but with $SAGE_VENV/bin
instead of $SAGE_LOCAL/bin
.)
comment:56 Changed 18 months ago by
- Description modified (diff)
comment:57 Changed 18 months ago by
- Description modified (diff)
comment:59 Changed 18 months ago by
- Reviewers changed from Dima Pasechnik to Dima Pasechnik, Matthias Koeppe
Looks good. Given that this is an optional package, we can defer the actual portability tests to the automatic run of the GH Actions when it is merged into a beta release.
comment:60 Changed 18 months ago by
- Report Upstream changed from N/A to Reported upstream. No feedback yet.
I've opened https://github.com/igraph/igraph/issues/1547 in regard of XCode 12 issue (solved with CFLAGS here).
comment:61 Changed 18 months ago by
- Branch changed from public/30899_igraph to 938d7048a34df6a4c22dda3d376cb30b0345e011
- Resolution set to fixed
- Status changed from positive_review to closed
comment:62 Changed 18 months ago by
- Commit 938d7048a34df6a4c22dda3d376cb30b0345e011 deleted
Follow up in #27921, running the libxml2 check via a script package
comment:63 Changed 18 months ago by
Volker, the upstream tarball for python_igraph
seems to be missing on the mirrors. Note that make download
has been repaired - so it should be easy to check if anything is missing
source at https://github.com/igraph/igraph/releases/download/0.8.3/igraph-0.8.3.tar.gz