Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GAP 4.13.1 #38804

Open
wants to merge 15 commits into
base: develop
Choose a base branch
from
Open

GAP 4.13.1 #38804

wants to merge 15 commits into from

Conversation

orlitzky
Copy link
Contributor

Follow-up to:

With the four additional work items I mentioned in a comment on the latter:

  1. Everything has been rebased
  2. There's a new feature to detect the polenta GAP package
  3. The three failing simplicial sets tests have been marked # needs gap_package_polenta
  4. I backported Fixes to hash functions for lists gap-system/gap#5796 to the GAP spkg so that the optional GRAPE tests will pass (untested).

Let's see what the CI has to say...

tornaria and others added 14 commits October 12, 2024 16:40
In gap 4.13 there are some improvements, e.g. converting fp groups to
permutation groups, computing abelianization of fp groups, which lead to
different generators.

This commit fixes doctests so they pass using gap 4.13.
…ced to dummy from list of packages whose test suite is disabled
There are a few simplicial set tests that require the polenta package
with gap-4.13.x. We declare a new feature to support the corresponding
"needs" tag.
…ackage

Three tests in this file need the GAP package "polenta" to be
installed; otherwise, the output (although perhaps not _wrong_) is not
quite what we expect.
Fixes gap-system/gap#5796

This is the patch I'm using on Gentoo, it combines the upstream fix
and one of its dependencies (without which the desired fix does not
apply). Without it, you'll get some test failures with gap-4.13.x
when GRAPE happens to be installed.
I've left the upper bound in there, but set to "5.0.0" which should
have no real effect. But if 4.14.0 comes out and breaks somes tests,
it's a lot easier to tweak the existing upper bound than it is to add
one (again) and reindent everything.
@orlitzky
Copy link
Contributor Author

Locally, I've still got the element.pyx segfault from #37026, but everything else is passing.

The CI is unhappy about the upgrade path, but I'm not sure why exactly. This is the failure... it looks like sagelib wasn't rebuilt after GAP was upgraded. The Makefile should handle that IIRC.

2024-10-12T21:10:34.0893216Z Running doctests with ID 2024-10-12-21-10-34-b8b2f1f4.
2024-10-12T21:10:34.0894767Z Running with SAGE_LOCAL='/sage/local' and SAGE_VENV='/sage/local/var/lib/sage/venv-python3.10'
2024-10-12T21:10:34.0895510Z Using --optional=debian,pip,sage,sage_spkg
2024-10-12T21:10:34.0906368Z Features to be detected: 4ti2,SAGE_SRC,benzene,bliss,buckygen,conway_polynomials,coxeter3,csdp,cvxopt,cvxopt,database_cremona_ellcurve,database_cremona_mini_ellcurve,database_cubic_hecke,database_ellcurves,database_graphs,database_jones_numfield,database_knotinfo,dvipng,ecm,fpylll,fricas,gap_package_atlasrep,gap_package_design,gap_package_grape,gap_package_guava,gap_package_hap,gap_package_polenta,gap_package_polycyclic,gap_package_qpa,gap_package_quagroup,gfan,giac,glucose,graphviz,imagemagick,ipython,jmol,jupymake,jupyter_sphinx,kenzo,kissat,latte_int,lrcalc_python,lrslib,mathics,matroid_database,mcqd,meataxe,mpmath,msolve,nauty,networkx,numpy,palp,pandoc,pdf2svg,pdftocairo,pexpect,phitigra,pillow,plantri,polytopes_db,polytopes_db_4d,pplpy,primecountpy,ptyprocess,pycosat,pycryptosat,pynormaliz,pyparsing,python_igraph,requests,rpy2,rubiks,sage.combinat,sage.geometry.polyhedron,sage.graphs,sage.groups,sage.libs.braiding,sage.libs.ecl,sage.libs.flint,sage.libs.gap,sage.libs.giac,sage.libs.homfly,sage.libs.linbox,sage.libs.m4ri,sage.libs.ntl,sage.libs.pari,sage.libs.singular,sage.misc.cython,sage.modular,sage.modules,sage.numerical.mip,sage.plot,sage.rings.complex_double,sage.rings.finite_rings,sage.rings.function_field,sage.rings.number_field,sage.rings.padics,sage.rings.polynomial.pbori,sage.rings.real_double,sage.rings.real_mpfr,sage.sat,sage.schemes,sage.symbolic,sage_numerical_backends_coin,sagemath_doc_html,scipy,singular,sirocco,sphinx,symengine_py,sympy,tdlib,threejs,topcom
2024-10-12T21:10:34.0914912Z Sorting sources by runtime so that slower doctests are run first....
2024-10-12T21:10:34.0915388Z Doctesting 7 files using 4 threads.
2024-10-12T21:10:34.7054133Z Traceback (most recent call last):
2024-10-12T21:10:34.7054986Z   File "/sage/src/bin/sage-runtests", line 9, in <module>
2024-10-12T21:10:34.7055891Z     sys.exit(main())
2024-10-12T21:10:34.7056369Z   File "/sage/src/sage/doctest/__main__.py", line 192, in main
2024-10-12T21:10:34.7056896Z     err = DC.run()
2024-10-12T21:10:34.7057321Z   File "/sage/src/sage/doctest/control.py", line 1602, in run
2024-10-12T21:10:34.7057833Z     self.run_doctests()
2024-10-12T21:10:34.7058344Z   File "/sage/src/sage/doctest/control.py", line 1186, in run_doctests
2024-10-12T21:10:34.7058972Z     self.dispatcher = DocTestDispatcher(self)
2024-10-12T21:10:34.7059543Z   File "/sage/src/sage/doctest/forker.py", line 1717, in __init__
2024-10-12T21:10:34.7060084Z     init_sage(controller)
2024-10-12T21:10:34.7060569Z   File "/sage/src/sage/doctest/forker.py", line 207, in init_sage
2024-10-12T21:10:34.7061119Z     controller.load_environment()
2024-10-12T21:10:34.7061693Z   File "/sage/src/sage/doctest/control.py", line 686, in load_environment
2024-10-12T21:10:34.7062385Z     return import_module(self.options.environment)
2024-10-12T21:10:34.7063079Z   File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
2024-10-12T21:10:34.7063842Z     return _bootstrap._gcd_import(name[level:], package, level)
2024-10-12T21:10:34.7064586Z   File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
2024-10-12T21:10:34.7065115Z   File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
2024-10-12T21:10:34.7065674Z   File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
2024-10-12T21:10:34.7066233Z   File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
2024-10-12T21:10:34.7066768Z   File "<frozen importlib._bootstrap_external>", line 883, in exec_module
2024-10-12T21:10:34.7067350Z   File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
2024-10-12T21:10:34.7067983Z   File "/sage/src/sage/repl/ipython_kernel/all_jupyter.py", line 6, in <module>
2024-10-12T21:10:34.7068494Z     from sage.all_cmdline import *
2024-10-12T21:10:34.7068886Z   File "/sage/src/sage/all_cmdline.py", line 17, in <module>
2024-10-12T21:10:34.7069483Z     from sage.all import *
2024-10-12T21:10:34.7069807Z   File "/sage/src/sage/all.py", line 98, in <module>
2024-10-12T21:10:34.7070171Z     from sage.groups.all import *
2024-10-12T21:10:34.7070543Z   File "/sage/src/sage/groups/all.py", line 5, in <module>
2024-10-12T21:10:34.7070966Z     from sage.groups.matrix_gps.all import *
2024-10-12T21:10:34.7071437Z   File "/sage/src/sage/groups/matrix_gps/all.py", line 13, in <module>
2024-10-12T21:10:34.7071963Z     import sage.groups.matrix_gps.pickling_overrides
2024-10-12T21:10:34.7072523Z   File "/sage/src/sage/groups/matrix_gps/pickling_overrides.py", line 7, in <module>
2024-10-12T21:10:34.7073273Z     from sage.groups.matrix_gps.finitely_generated_gap import FinitelyGeneratedMatrixGroup_gap
2024-10-12T21:10:34.7074066Z   File "/sage/src/sage/groups/matrix_gps/finitely_generated_gap.py", line 30, in <module>
2024-10-12T21:10:34.7074750Z     from sage.groups.matrix_gps.matrix_group_gap import MatrixGroup_gap
2024-10-12T21:10:34.7075392Z   File "/sage/src/sage/groups/matrix_gps/matrix_group_gap.py", line 24, in <module>
2024-10-12T21:10:34.7076006Z     from sage.groups.libgap_mixin import GroupMixinLibGAP
2024-10-12T21:10:34.7076516Z   File "/sage/src/sage/groups/libgap_mixin.py", line 15, in <module>
2024-10-12T21:10:34.7076983Z     from sage.libs.gap.libgap import libgap
2024-10-12T21:10:34.7077509Z ImportError: libgap.so.8: cannot open shared object file: No such file or directory

@orlitzky
Copy link
Contributor Author

I tried to remove $HOME/.sage/gap before running the tests in the CI but that didn't help. My interest in a proprietary test suite that I can't actually run only goes so far.

Tomorrow I'll test the SPKG upgrade path myself.

@dimpase
Copy link
Member

dimpase commented Oct 13, 2024

proprietary test suite that I can't actually run only goes so far.

It's not proprietary: you can either attach your runner to GitHub CI, or run tests fully locally: https://nektosact.com/ (you'd need Docker and go installed, though)

@enriqueartal
Copy link
Contributor

For what it is worth in a test installation of Fedora 40, with this branch using spkg gap and installing gap_packages and sirocco, no gap-related test fails.

@orlitzky
Copy link
Contributor Author

make doesn't rebuild the extension modules in sage/libs/gap after the gap upgrade. I can force it to rebuild locally by touching the three pyx files, but I guess that doesn't help the CI.

@enriqueartal
Copy link
Contributor

If I understand correctly, in several local installation the branch is successful, but not in CI, because some files are not rebuilt. What can be done to make possible a positive review?

@orlitzky
Copy link
Contributor Author

If I understand correctly, in several local installation the branch is successful, but not in CI, because some files are not rebuilt. What can be done to make possible a positive review?

Some tweak to the makefile spaghetti is required to force a rebuild of sagelib (specifically, any extensions linked to libgap) when GAP is updated. Or as a workaround, we might touch a bunch of files to trigger said rebuild, and leave this bug for the next sucker who tries to upgrade GAP.

Copy link

Documentation preview for this PR (built with commit 5d29ef2; changes) is ready! 🎉
This preview will update shortly after each push to this PR.

Force these consumers of libgap to be rebuilt after the recent GAP
upgrade.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants