Release Notes
This release adds support for GCC 14 and includes major package upgrades.
What's Changed
- Translate "A Tour of Sage" into Greek by @gmou3 in #37198
- ntl 11.5.1 by @mkoeppe in #37251
sage.groups.generic: Fix incorrect identity testing by @grhkm21 in #37257- PDF docbuild: Reduce verbosity by @mkoeppe in #37264
- Directly convert PermutationGroup element into sized Permutation by @RuchitJagodara in #37288
- README.md: Move all mentions of release tarballs to the installation guide by @mkoeppe in #37309
- Reference manual: Show package list by category (math/front-end/other) by @mkoeppe in #37315
sage --package create: Attempt to bring SPKG.rst title to a common style by @mkoeppe in #37322- Fixed the doc
sets/recursively_enumerated_set.pyby @janmenjayap in #37331 - some details in modules (ruff and pep) by @fchapoton in #37335
- Add simple methods to convert to and from bytes for
ZZand finite fields by @GiacomoPope in #37343 - implemented function for acyclic orientations by @saatvikraoIITGN in #37345
sage.schemes.generic: fix docs by @grhkm21 in #37346sage/stats/distributions: Implement non-spherical Gaussian sampling over lattices by @grhkm21 in #36581- Doctest hide option: Better detection of hidden packages by @soehms in #36741
- Implement Specht modules in the tabloid basis by @tscrim in #36748
- spkg-configure.m4 for most external Python pkgs by @dimpase in #36777
- Implementation of the quantum oscillator algebra by @tscrim in #36907
- CI: Upload test stats as artifacts, improve output of "List Docker images" by @mkoeppe in #36970
- add helper method to concatenate vectors by @yyyyx4 in #36971
- allowing external ECM to be called gmp-ecm or ecm by @dimpase in #37011
- Implement the center of a universal enveloping algebra in the PBW basis by @tscrim in #37013
CODE_OF_CONDUCT.md: Do not send people to sage-flame by @mkoeppe in #37054- HTML documentation: Show preparsed doctests using inline tabs by @mkoeppe in #37083
- Quaternion Algebra Fractional Ideal improvements - equivalence and reduced bases by @jtcc2 in #37100
- Fix random polynomial bias by @grhkm21 in #37118
- Rerun
configureless often by @mkoeppe in #37127 - Improve Windows installation instructions by @mkoeppe in #37184
- implement the depth of a quasimodular form by @DavidAyotte in #35517
- Implement call method for elements in CDGA's by @miguelmarco in #36329
- Implement basis_of_weight for rings of quasimodular forms by @DavidAyotte in #35029
- Ensure the
degree()method ofPolynomial_generic_dense_inexactreturns anIntegerby @GiacomoPope in #37622 - Default SAGE_ECMBIN to "ecm". by @tornaria in #37701
- Workaround for multiprocessing shared memory limits by @tornaria in #37702
- use Parent for the Pari pseudo-ring by @fchapoton in #37465
- Add
# long timetotopologyby @gmou3 in #37483 - Developer Guide: Improve section on patching third-party packages by @mkoeppe in #37485
- src/doc/en/developer/review.rst: Update section 'Release Process' by @mkoeppe in #37487
- Fix failing docstring in random testing for
quaternion_algebra.pyby @GiacomoPope in #37489 - Include
random_element()method toLaurentPolynomialRingby @GiacomoPope in #37490 - build/pkgs/gnumake_tokenpool: Update to 0.0.7 by @mkoeppe in #37498
- use sparse polynomials for generating functions by @mantepse in #37499
- Code of conduct changes by @jhpalmieri in #37501
- Developer guide: Recommend raw strings for all docstrings by @mkoeppe in #37508
- Replace broken links to sphinx material on pocoo.org by @mkoeppe in #37509
- Remove comment about python2 longs by @Eloitor in #37520
- fix debian.txt for qhull by @dimpase in #37521
- Add
mypy.iniby @mkoeppe in #37522 - Improve genus method of function fields and curves by @kwankyu in #37538
- Update the year in README.md by @kwankyu in #37540
- Edit docstrings attached to free resolutions by @kwankyu in #37542
- various list-comprehension in combinat (ruff PERF) by @fchapoton in #37545
- Faster chromatic symmetric function computation by @hdehr in #37549
- minor details + non-recursive algo in integer_valued_polynomials by @fchapoton in #37551
- convert Puiseux ring to Parent framework by @fchapoton in #37552
- A minor change in the documentation of
__hash__function ofFreeModuleElementclass by @RuchitJagodara in #37553 - Implemented the (local) Hilbert symbol for global function fields by @S17A05 in #37554
- use Parent in Symbolic Ring by @fchapoton in #37555
- refresh sha_tate.py by @fchapoton in #37556
- Modified quaternion algebra documentation by @S17A05 in #37557
- enrich the test_karatsuba failure message with explicit elements by @fchapoton in #37561
- use Parent in infinity by @fchapoton in #37564
- Improve documentation for
degree()method of singular multivariate polynomials by @GiacomoPope in #37567 - Improve method
_ford fulkerson chronicleinsrc/sage/combinat/posets/posets.pyby @dcoudert in #37571 - Doctester: Abbreviate tracebacks in warnings by @mkoeppe in #37573
- Intersphinx for cvxopt, cvxpy, cypari2, cysignals, flint, fpylll, gmpy2, ipywidgets, matplotlib, mpmath, networkx, numpy, rpy2, scipy, sympy by @mkoeppe in #37575
- Update package dependencies for Fedora and Arch distros by @tobiasdiez in #37579
- Add links to sources in documentation by @kwankyu in #37589
- Do not canonicalize generators when building a permutation group from a libGAP group by @tscrim in #37590
- ruff PERF fixes in algebras/ by @fchapoton in #37591
- Simplify computation of all points for curves over finite fields by @GiacomoPope in #37595
- fix performance regression in elliptic-curve point constructor by @yyyyx4 in #37596
- Sphinx extlinks for ecl, gap, giac, maxima, meson, ppl, qepcad, scip, singular, soplex by @mkoeppe in #37598
- extend the definition of q-binomial coefficients to (k > 0, n < 0) by @fchapoton in #37599
- some details in lrcalc by @fchapoton in #37600
graphs.triangulations(3)cannot return a triangle by @dcoudert in #37602- Remove duplicated functions from genus two hyperelliptic curves by @GiacomoPope in #37604
- Ensure returned degree of multivariate polynomial is type
IntegerforMPolynomialRing_libsingularclass by @GiacomoPope in #37605 - src/sage/matrix: Doctest cosmetics by @mkoeppe in #37607
- src/sage/modules: Doctest cosmetics by @mkoeppe in #37608
- src/sage/schemes: Doctest cosmetics by @mkoeppe in #37609
- src/sage/combinat: Doctest cosmetics by @mkoeppe in #37610
- Ensure degree and total degree return
Integertype forMPolynomial_polydictclass by @GiacomoPope in #37611 - Fix hyperelliptic curve dynamic class construction to allow proper method inheritance by @GiacomoPope in #37613
- Updated README.md, added space after -p option by @explorest in #37617
- Implement the Potts representation of the partition algebra by @tscrim in #37619
- src/sage/rings: Doctest cosmetics by @mkoeppe in #37623
- test gap3 with gap3, not gap (gap4) by @dimpase in #37624
- use the polynomial ring also for non-commutative baserings as _internal_poly_ring by @mantepse in #37628
- Implement a bool for posets by @tscrim in #37629
- Enhance documentation of Drinfeld module Potemine j-invariants by @kryzar in #37630
- Fix compilation with -std=c++17 by @Feyorsh in #37646
- Faster scalar multiplication for python types by @GiacomoPope in #37369
- fix bad Frac(sparse polynomial ring over finite field) by @mezzarobba in #37377
build/pkgs/pyscipopt: Update to 4.4.0, add Cython 3 patch by @mkoeppe in #37392- Tensor, exterior, and symmetric product of semigroup representations by @tscrim in #37393
- Developer Guide: Document practices for data files by @mkoeppe in #37399
- minor ruff fixes in quadratic forms (C4, UP, PERF) by @fchapoton in #37400
- Developer Guide: Improvements to explanation of version files by @mkoeppe in #37401
- Use "Issue #" for github issue links by @kwankyu in #37403
- add a polytope method to hypergeometric motives by @fchapoton in #37404
- remove most references to Arb as an independent library by @mezzarobba in #37406
- src/doc/en/installation/source.rst: Add section on upgrading using worktrees by @mkoeppe in #37411
- Add as_subscheme() method for rational points by @kwankyu in #37412
- Remove long/int relic by @nbruin in #37420
- Make
sage -bequivalent tomake sagelib-no-depsregarding parallelism by @mkoeppe in #37421 sage.parallel.ncpus: Useos.sched_getaffinityoros.cpu_countby @mkoeppe in #37422- Fix docstring for polyhedron constructor by @marco-perin in #37423
- Edit hypellfrob.pyx by @kwankyu in #37424
setup.py: Removelazy_import_cacheuse by @mkoeppe in #37432- src/sage/misc/lazy_import.pyx: Deprecate star imports by @mkoeppe in #37433
- small cleanup in monoids by @fchapoton in #37435
- a few details in cython files in symbolic by @fchapoton in #37439
- Strengthen inequality in rigorous_line_integral by @DisneyHogg in #37440
- Remove mention of
SPKG.txtby @mkoeppe in #37444 - formal deprecation of old group class by @fchapoton in #37449
- Add config for ruff (#36503, unbundled) by @mkoeppe in #37452
- formal deprecation of old CommutativeAlgebra class by @fchapoton in #37464
- remove almost all calls to is_Ring by @fchapoton in #37466
- some list comprehensions in rings (ruff PERF401) by @fchapoton in #37468
- various details in permutation.py (pep8 and ruff PERF) by @fchapoton in #37469
- build/pkgs/pari_jupyter: Update to 1.4.3 (includes Cython 3 fix) by @mkoeppe in #37478
make SPKG-checkfor normal and script packages by @mkoeppe in #37022- Move some code from Brandt modules to quaternion algebras by @pjbruin in #37090
- Fix three polynomial SIGABRT bugs #37169 and #37317 by @grhkm21 in #37172
- Fix changes.html in doc preview by @kwankyu in #37689
- Add
approximate_closest_vectortoIntegerLattice, using Babai's nearest plane algorithm by @TheBlupper in #37699 - Implement an is_nilpotent() method for matrices by @tscrim in #37703
- Implement an iterator for absolute number fields by @tscrim in #37707
- src/tox.ini (rst): Add missing Sphinx roles by @mkoeppe in #37712
- pkgs/sagemath-repl/pyproject.toml.m4: Declare extra 'sphinx' by @mkoeppe in #37720
- Renamed "ring" argument of matrix contructor to "base_ring" by @SandwichGouda in #37721
- Fix typo/phrasing in README.md by @faisalfakhro in #37725
- Reimplementing the Witt (Sym Func) change of basis, caches, and omega involution by @tscrim in #37736
- Added rank check to doctest in
.gauss_on_polysby @S17A05 in #37753 - src/sage/graphs/graph_decompositions/tdlib.pyx: Use -std=c++11 by @mkoeppe in #37755
- Fix tolerance for scipy 1.13 by @tornaria in #37763
- ECM-related tests fail after an incremental build by @vbraun in #37764
- remove zombie code by @mantepse in #37497
- Sphinx ext links for Sage source files by @mkoeppe in #37546
- trying a change in unique_representation by @fchapoton in #37563
- Border matrix by @mkoeppe in #37606
- The Glaisher-Franklin bijections on integer partitions by @mantepse in #37634
- Update jupyter-sphinx to version 0.5.3 and pin thebe to version 0.8.2 by @kwankyu in #37637
- use strings as label in modular-decomposition trees by @fchapoton in #37638
- add Legendre transform and suspension for lazy symmetric functions by @fchapoton in #37639
- Modified
.is_reduced()ofbinary_qf.pyto avoid square root computation by @S17A05 in #37640 - use parent in asymptotic ring by @fchapoton in #37651
- fix typos and no "Algebra" in the doc by @fchapoton in #37652
- Removed caching of determinant in LLL for the
NTL:LLL-algorithm by @S17A05 in #37655 - fix ruff codes UP012 and UP023 by @fchapoton in #37659
- Fix e302 libs pyx by @fchapoton in #37660
- some cross-references btw doc of RR, RBF, ... by @mezzarobba in #37661
- sage/rings/{complex,real}*: Untitlecase titles, add refs to libraries by @mkoeppe in #37663
- Fix noexcept clauses (#37560) by @tornaria in #37667
- Wrong results in is_isotopic method of the Link class for certain chiral link by @soehms in #37668
- pkgs/sagemath-standard: Support gpep517 by @mkoeppe in #37671
- src/sage/modular/quasimodform/ring.py: Fix pycodestyle warning by @mkoeppe in #37672
- upgrade msolve to 0.6.5 by @dimpase in #37673
- some pep8 and ruff cleanups in modules/ by @fchapoton in #37674
- some simplifications in moment-angle complex by @fchapoton in #37677
- simplifications in symmetric_ideal.py by @fchapoton in #37679
- a few more uses of "in Fields()" by @fchapoton in #37680
- some shortcuts using bool by @fchapoton in #37683
- typo by @DennisYurichev in #37688
- Rename
install-requires.txttoversion_requirements.txtby @mkoeppe in #36999 - build/pkgs/*/distros/pyodide.txt: New, corresponding to pyodide 0.25.0 by @mkoeppe in #37120
- build/pkgs/python_flint: New by @mkoeppe in #37224
- Scipy 1.12 by @mkoeppe in #37266
- Cleaning in pautomorphicform.py by @Eloitor in #37332
- Add class FlatsMatroid by @gmou3 in #37340
- Add iterators, Whitney numbers, characteristic polynomial, etc by @gmou3 in #37361
- Make installation of "wheel" packages less noisy by @mkoeppe in #37391
- Remove mention of patchbot, remove 'make buildbot-python3' by @mkoeppe in #37425
- add simple function to count irreducible polynomials over 𝔽q by @yyyyx4 in #36390
- Update system package info for slackware by @mkoeppe in #36965
- Removed
BUGmethod and include a docstring formatrix_of_frobenius()by @GiacomoPope in #37615 - Corrections in
.normalize_basis_at_pand.maximal_order()ofquaternion_algebra.pyby @S17A05 in #37644 sage.doctest: Remove most uses of SAGE_SRC in doctests by @mkoeppe in #37648cypari22.1.5,memory_allocator0.1.4 by @mkoeppe in #37665- Make matroid
copyanddeepcopysimply returnselfby @gmou3 in #37670 - Implement the normalizer of a finite dimensional Lie algebra by @tscrim in #37682
- provide a construction functor using a single functor for families by @mantepse in #37687
- Implement the Jordan decomposition of a matrix and is_semisimple() test by @tscrim in #37710
- Implement faithful representations of nilpotent Lie algebras by @tscrim in #37724
- Disable most documentation notifications on GitHub by @saraedum in #37740
- clean suffix tries by @fchapoton in #37746
src/sage/modules/with_basis/representation.py: pycodestyle fix by @mkoeppe in #37769- some C4 fixes in combinat folder by @fchapoton in #37771
- add links to standard errors in toric folder by @fchapoton in #37772
- Precompute orders of twists of EllipticCurve by @grhkm21 in #37110
- Implement
EllipticCurve_with_orderby @grhkm21 in #37119 - Miscellaneous system package updates by @orlitzky in #37247
- Support optional debugpy by @orlitzky in #37291
- CI: Update Linux platforms / runners, remove
ubuntu-trusty,opensuse-{15.3,15.4}by @mkoeppe in #37351 - combinat/free module tensor construction by @mantepse in #37451
- Add Temperley-Lieb algebras to the category of cellular algebras by @tscrim in #37462
- ⬆️ Bump myrotvorets/set-commit-status-action from 2.0.0 to 2.0.1 by @dependabot in #37475
- Improving the documentation of Discrete Dynamical Systems by fixing typos and eliminating repeated sentences by @Dhrumil07 in #37506
pkgs/sagemath-standard: Move metadata fromsetup.cfgtopyproject.tomlby @mkoeppe in #36951- Add
# sage_setup: distributiondirectives to all files, remove remaining# coding: utf-8by @mkoeppe in #36964 - Bell polynomials univariate variable fix, complete and ordinary variants by @Nolord in #37733
- dft for symmetric group algebra when p|n! by @jacksonwalters in #37757
- Allow construction of classical Lie algebras over finite fields by @tscrim in #37773
- Make univariate Laurent polynomials over a field pass the TestSuite by @tscrim in #37778
SetPartitionreturn empty iterator instead of erroring out in degenerate cases by @Nolord in #37781- various changes about is_field and is_ring by @fchapoton in #37783
- Speed up symmetric group simple_module_rank() by @tscrim in #37784
- Add is_graphic/regular by @gmou3 in #37788
- various ruff fixes in groups (PERF, etc) by @fchapoton in #37789
- Improve docstrings in
groupsby @gmou3 in #37790 - Revert PR with disputed dependencies by @roed314 in #37796
- Bind to FLINT/NTL API for polynomial modular exponentiation (new version) by @GiacomoPope in #37441
- ⬆️ Bump actions/cache from 3 to 4 by @dependabot in #37474
- sagemath-{objects,categories}
pyproject.toml: Add 'external' section according to draft PEP 725 by @mkoeppe in #37486 build/pkgs: Update scip to 9, scip_sdp to 4.4, soplex to 7, papilo to 2.2, pyscipopt to 5, onetbb to 2021.11 by @mkoeppe in #37494- GH Actions: Build macOS arm64 wheels by @mkoeppe in #37503
- src/doc/*/tutorial/programming.rst: Update 'standalone script' by @mkoeppe in #37510
- FiniteRankFreeModule.isomorphism_with_fixed_basis: Make it an actual isomorphism by @mkoeppe in #37512
- Define the zero polynomial to have degree
-InfinityforLaurentPolynomialRingby @GiacomoPope in #37513 MatrixSpace: Support constructingHom(CombinatorialFreeModule)by @mkoeppe in #37514- build/pkgs/{gdb,gmp,libgd,python3,symmetrica}: Reduce xz to order-only dep by @mkoeppe in #37582
- Allow
.maximal_order()ofquaternion_algebra.pyto extend a given order by @S17A05 in #37675 - pep8 and ruff fixes in the plot folder by @fchapoton in #37676
- fix ascii_art of empty chain complex by @dimpase in #37684
sage.modular: Docstring/doctest cosmetics by @mkoeppe in #37714MatrixMorphism_abstract: Move endomorphism invariants to category by @mkoeppe in #37731- be more specific when raising "not a constant polynomial" by @mantepse in #37747
- modules with basis/map coefficients by @mantepse in #37766
- Add matroid
relabelby @gmou3 in #37775 sage-logger: Suppress "No such file or directory" messages by @mkoeppe in #37785m4/pyproject_toml_metadata.m4: Allow Python 3.12 by @mkoeppe in #36869- Make sage-conf optional by @tobiasdiez in #37138
- Added automatic size labeler by @amanmoon in #37262
- sagemath-standard: include sage_setup in sdist by @tornaria in #37287
build/pkgs/python_build: Make it a standard wheel package by @mkoeppe in #37300- Attach Jacobians to function fields and curves by @kwankyu in #35467
- Change
SetSystemrepresentation by @gmou3 in #37904 - Fix overflow in hypergeometric trace by @kedlaya in #37911
- Replace doctests from jacobian_khuri_makdisi.py taking too long time by @kwankyu in #37915
- src/sage/features/sagemath.py: Add feature SAGE_SRC by @mkoeppe in #37650
- Quaternion Ideal Pushforwards and Pullbacks by @jtcc2 in #37681
matrix,Graph.incidence_matrix,LinearMatroid.representation: Support constructingHom(CombinatorialFreeModule)elements by @mkoeppe in #37692- Remove
CombinatorialClassby @mkoeppe in #37722 - CI Build&Test: Show segfaults using GitHub annotations by @mkoeppe in #37738
- CI Build&Test: Fix "test modularized distributions" after #37022 by @mkoeppe in #37750
- remove a stray leftover in in sa2si_ZZmod() by @dimpase in #37792
- add links to standard errors in various places by @fchapoton in #37793
- fix the category of quasi-modular form rings by @fchapoton in #37797
- some ruff C4 fixes in combinat by @fchapoton in #37798
- little details in quadratic_forms (pep8, ruff, etc) by @fchapoton in #37799
- some cython-lint suggestions fixed in real rings by @fchapoton in #37800
- Add the downward monotonic cone to the cone catalogue by @orlitzky in #37802
- Added some documentation in the developer's guide regarding deprecation by @SandwichGouda in #37807
- Removed non-working and utterly old @rename_keyword in farey_symbol.pyx by @SandwichGouda in #37808
- build/pkgs/gambit: Remove by @mkoeppe in #37810
- Fix bug in TensorField.apply_map by @egourgoulhon in #37822
- Fix LaTeX output of FreeModuleTensor.display_comp by @egourgoulhon in #37823
FiniteRankFreeModuleMorphism.display: Show matrix decorated with basis element names by @mkoeppe in #37825- FreeModuleAutomorphism: Add more invariants by @mkoeppe in #37826
sage.tensor: Tiny doc fixes by @mkoeppe in #37827- src/sage/manifolds/differentiable: Docstring/doctest edits by @mkoeppe in #37829
build/pkgs/{python3,setuptools}: Update fedora distro info by @mkoeppe in #37833- Optimize
DisjointSetby @gmou3 in #37835 - fricas/do not get inputform twice by @mantepse in #37836
.ci/write-dockerfile.sh: Move here from build/bin/ by @mkoeppe in #37841- Fix issue 37587 regarding the Link class plot method by @soehms in #37851
- Work around inconsistent iteration in
multi_polynomial_sequence.pyby @S17A05 in #37853 sage.misc.package: Remove deprecated code by @mkoeppe in #37855sage.misc.dist: Remove; deprecated in #30207 (2022) by @mkoeppe in #37856sage.misc.misc: Remove deprecated code by @mkoeppe in #37868sage.ext: Remove deprecated code by @mkoeppe in #37870- sage.{topology,homology}: Remove deprecated chomp interface by @mkoeppe in #37872
- eclib: fix doctests after 20240408 update by @tornaria in #37882
- gap: don't use deprecated LaTeX() and LaTeXObj() by @tornaria in #37883
- pip 24, setuptools 69.5.1, hatchling 1.22.5, hatch_fancy_pypi_readme 24.1.0, platformdirs 4.2.0, packaging 24.0, trove_classifiers 2024.4.10, wheel 0.43.0 by @mkoeppe in #37277
- make sagelib work with singular>=4.3.2.p15 (future 4.4) by @antonio-rojas in #37492
- Implement the hypercenter and upper central series for finite dimensional Lie algebras by @tscrim in #37693
sage.{calculus,functions,numerical,symbolic}: Docstring/doctest cosmetics,# needsby @mkoeppe in #37715- CI build, doc-build: Run containers explicitly, separate jobs for pyright, build, modularized tests, long tests by @mkoeppe in #36498
- Retrieve more information of fundamental groups of plane curves by @enriqueartal in #36768
- Make pyproject.toml the source for build dependencies by @tobiasdiez in #36982
- update FriCAS to 1.3.10, allow building with sbcl by @dimpase in #37041
- deprecated functions is_Cone, is_Polyhedron, is_LatticePolytope by @vamshipy in #37057
- GH Actions: Build platform-independent wheels of sagemath-environment, sage-setup, sage-sws2rst for PyPI by @mkoeppe in #37099
- Use
pypa/buildinstead ofpip wheelby @mkoeppe in #35618 - Cythonize
GraphicMatroidby @gmou3 in #37839 - Maximal angles between convex cones by @orlitzky in #37854
- Implement the ladder idempotents of the symmetric group algebra by @tscrim in #37859
sage.misc.sageinspect: Remove deprecatedloadable_module_extensionby @mkoeppe in #37867sage.geometry.polyhedron: Remove deprecated code by @mkoeppe in #37869- Run sage doc server for jupyterlab by @kwankyu in #37878
- Implement hypergeometric Euler factors for tame primes by @kedlaya in #37881
- sagemath-standard: some fixes in build dependencies by @tornaria in #37894
- Deprecate
is_FreeAlgebra,is_QuaternionAlgebra,is_SymmetricFunctionAlgebraby @mkoeppe in #37896 - Deprecate
is_Monoid,is_FreeMonoid,is_FreeAbelianMonoidby @mkoeppe in #37897 - Deprecate
is_AbelianGroup,is_DualAbelianGroup,is_MatrixGroupby @mkoeppe in #37898 build/pkgs/python3: Update to 3.11.8, remove Cygwin patches, remove pointless rpaths on macOS by @mkoeppe in #37914- structure/coerce actions by @mantepse in #37916
- Fix slow substitution in piecewise symbolic function by @kwankyu in #37925
.gitignore: Ignorerequirements-editable.txtfiles by @mkoeppe in #37929- fix the linter by @fchapoton in #37932
- Updates to linbox-1.7.0, givaro-4.2.0, fflas-ffpack-2.5.0 by @vbraun in #37938
- Fix incompatible pointer type assignment error in implicit_surface by @vbraun in #37939
- Support morphisms in
Matroidconstructor by @gmou3 in #37940 - Revert cif fast inversion 84ab655 by @videlec in #37941
- Graph constructors: Remove gratuitous nondeterminism by @mkoeppe in #37942
- ⬆️ Bump easimon/maximize-build-space from 8 to 10 by @dependabot in #37944
- various ruff suggestions fixed in schemes by @fchapoton in #37947
- some ruff fixes in misc folder by @fchapoton in #37948
- Adapt length check in
sage.databases.conwayin preparation for database update by @S17A05 in #37949 - CI: Handle the "p: CI Fix" label by @mkoeppe in #37950
- Fix trivial typo by @rrueger in #37953
- direct implementations of some cliques related methods in
sage/graphs/graph.pyby @dcoudert in #37954 Graph.{[weighted_]adjacency_matrix,kirchhoff_matrix}: Support constructingEnd(CombinatorialFreeModule)elements by @mkoeppe in #37955- faster implementation of method
sage.graphs.generators.families.BalancedTreeby @dcoudert in #37956 - various ruff fixes in combinat by @fchapoton in #37958
- some polishing for pbori (ruff and pep8 mostly) by @fchapoton in #37965
- Modify tests in
ell_point.pyto be more generic for Conway database update by @S17A05 in #37967 - Fix sign error in the Kerr metric of the manifold catalog by @egourgoulhon in #37970
sage --package,sage-get-system-packages: Support PURLspkg:pypi/DISTRO-NAME, obtain dependencies of wheels from PyPI by @mkoeppe in #37500- build/pkgs/{gcc,gfortran}/spkg-configure.m4: Allow 14.x by @mkoeppe in #37537
- build/pkgs/singular: Update to 4.4.0 by @mkoeppe in #37570
- build/pkgs/cython: Update to 3.0.10 by @mkoeppe in #37584
sage.sets: Doctest cosmetics by @mkoeppe in #37713sage.{misc,structure}: Doctest cosmetics by @mkoeppe in #37716- Refactor ring categories by @fchapoton in #37719
- Follow up #36741: improve code structure by @soehms in #37737
dist.yml: Download optional/experimental tarballs for GitHub Release assets by @mkoeppe in #37762- modernize coercion for Hecke algebras by @fchapoton in #37787
- Bump up actions by @gmou3 in #37818
- Fix FAQ on DOIs. Put "universal" DOI to CITATION.cff* by @dimpase in #37828
FreeModuleHomset: Create subclassFreeModuleEndset, add element methods for invariantsdet,charpoly,fcp, etc. by @mkoeppe in #37831- Fix segfault for Weil polynomials by @kedlaya in #37861
- gc: update to 8.2.6 by @ivmai in #37249
coefficientsforQuasiModularFormsElementby @seewoo5 in #36269- Deprecate
is_Category,is_Endset,is_Homset,is_Parent,is_RingHomset,is_SimplicialComplexHomsetby @mkoeppe in #37922 Makefile,.ci/write-dockerfile.sh: Update forsrc/pyproject.tomlafter #36982 by @mkoeppe in #37926- Work on
CircuitsMatroidby @gmou3 in #37930 - declare the last arg to GAP_CallFunc3Args volatile by @dimpase in #37951
- Adding add_bigoh methods to lazy power/Laurent series and coercions to the finite precision implementations by @tscrim in #37952
configure: Fix "command not found" error after #36776 by @mkoeppe in #37959- Fix comparison for divisors of curves (and FormalSum commutativity) by @vincentmacri in #37972
- Remove legacy direct installation of sagelib (
configure --disable-editable --disable-wheels) by @mkoeppe in #37973 - Fix order computation for linear groups GL(n, R) and SL(n, R) by @S17A05 in #37980
- Ruff details in algebras and categories by @fchapoton in #37984
.github/workflows/docker_hub.yml: Do not fail when there are no credentials by @mkoeppe in #37986sage.calculus.expr: Split out fromsage.calculus.allby @mkoeppe in #37993- some care for empty lines in pyx files (pep8 codes E30) by @fchapoton in #37994
- Remove interactive confirmation for installing experimental packages by @mkoeppe in #37995
- Fix Help menu breakdown in external jupyterlab case by @kwankyu in #38005
gcc,gfortran: Update to 13.2.0; removedebian-buster-gcc_spkgfrom CI by @mkoeppe in #38008DualMatroid: Addis_validandrelabelmethods by @gmou3 in #38013Arch Linux: Removelibgiacand renametexlive-collection-luatexby @gmou3 in #38016- move Frobenius and derivations to category of Commutative Rings by @fchapoton in #38018
- Workaround for passing givaro library to linker on OSX by @vbraun in #38020
build/pkgs/flint/spkg-configure.m4: Reject broken FLINT package on homebrew by @mkoeppe in #38021sage.schemes: Deprecateis_...functions by @mkoeppe in #38022- tox.ini (local-homebrew): Fix homebrew auto-update breakage by @mkoeppe in #38023
fflas_ffpack,linbox: Switch to release tarballs with working libtool by @mkoeppe in #38025- Work on
FlatsMatroidby @gmou3 in #38027 - Relative to absolute imports,
del lazy_importin.allfiles by @mkoeppe in #38030 - Remove remaining
# coding: utf-8lines insrc/sageby @mkoeppe in #38031 - Avoid conflict with macro
minorby @mkoeppe in #38033 - cython-lint for schemes by @fchapoton in #38036
- cython-lint in quivers/ by @fchapoton in #38038
- Installation Guide: Remove some distracting wikipedia links by @mkoeppe in #38041
- assign names to constructed Hadamard matrices by @dimpase in #38042
- simplify handling of dead oeis sequences by @fchapoton in #38045
- Fix wrong urls in changes.html by @kwankyu in #38046
- Fix broken docker/Dockerfile by @soehms in #38049
- using pathlib.Path to handle attached files by @fchapoton in #37690
- sage-bootstrap: update cryptographic hashes by @faisalfakhro in #37726
sage-logger: Replace use of/usr/bin/timeby bash keywordtimeby @mkoeppe in #37840sage.numerical.interactive_simplex_method: Remove dependency on SR by @mkoeppe in #37864sage.libs.pynac: Remove, deprecated in #32386 (2021) by @mkoeppe in #37873- Remove pointless rpaths on macOS; make sage-env polite when run on systems with no toolchain by @culler in #37886
sage.modular.hecke: Deprecateis_Hecke...functions by @mkoeppe in #37895- Deprecate
is_FGP_Module,is_FilteredVectorSpace,is_FreeQuadraticModule,is_FreeModule,is_FreeModuleHomspace,is_MatrixSpace,is_Module,is_VectorSpace,is_VectorSpaceHomspaceby @mkoeppe in #37924 build/pkgs/flint3.1.3 by @mkoeppe in #37203- make EllipticCurvePoint_field inherit from EllipticCurvePoint by @pjbruin in #37415
- tox.ini: Add environments
ruff,ruff-minimal; GH Actions: runruff-minimalby @mkoeppe in #37453 - Improve FLINT autogen README by @grhkm21 in #37458
- GH Actions: Fix build of macOS x86_64 wheels, build wheels for sagemath-{bliss,coxeter3,mcqd,tdlib} for PyPI by @mkoeppe in #36525
- Remove deprecated global imports by @mkoeppe in #38099
- Update
conway_polynomials,database_cubic_hecke,database_knotinfo,matroid_databaseby @mkoeppe in #38110 - Make "[source]" link to develop branch on github by @kwankyu in #38121
- LPDictionary: Make it safe to copy dictionaries by @mkoeppe in #37866
- Filter "RuntimeWarning: networkx backend defined more than once for networkx" by @mkoeppe in #37912
- Upgrades and configure fixes for macOS arm64 by @mkoeppe in #37919
- libatomic_ops: Update to 7.8.2 by @ivmai in #37931
- CI Build&Test: Replace use of
sage -t --newby @mkoeppe in #37988 - Fix broken pytest integration (including CI failure in
src/conftest_test.py) by @mkoeppe in #37999 build/pkgs/ecl: Update to 24.5.10 by @mkoeppe in #38009- Do not create
spkg-*.log,spkg-*.timefiles by @mkoeppe in #38026 - Fix interaction of # 32-bit / # 64-bit tag with block-scoped doctest tags by @mkoeppe in #38029
sage.combinat.finite_state_machine: Deprecateis_...functions by @mkoeppe in #38032sage.modular: Deprecateis_...functions by @mkoeppe in #38035- configure.ac: Check symlinks in the source tree by @mkoeppe in #38039
- new iterators over the partitions of an integer by @dcoudert in #38054
SetSystem: Minor change to accommodate set input by @gmou3 in #38056sage.ext.fast_callable: Docstring cosmetics by @mkoeppe in #38059sage.rings: Modularization fixes for singular by @mkoeppe in #38060sage.rings: Modularization fixes (imports) by @mkoeppe in #38061sage.graphs: Doctest cosmetics by @mkoeppe in #38065sage.geometry: Modularization fixes (imports),# needsby @mkoeppe in #38066.ci/write-dockerfile.sh: Quoting fix forunminimizeby @mkoeppe in #38067- Correct developer guide's function template by @gmou3 in #38068
- docstrings: Change single dash to double dash after input variables by @gmou3 in #38069
- Add skew Hadamard matrix of order 1588 by @MatteoCati in #38070
sage.categories: Update# needs, use block tags by @mkoeppe in #38071sage.combinat: Modularization fixes (imports), update# needsby @mkoeppe in #38074- remove inheritance from Algebra in FreeAlgebras by @fchapoton in #38078
- fix pep8 E302 in algebras and categories (scripted) by @fchapoton in #38079
- fixing superfluous empty lines in libs folder by @fchapoton in #38080
- Fix sage.symbolic feature after libs/pynac removal by @antonio-rojas in #38081
- CI fix: broken livedoc by @kwankyu in #38082
all*.pyfiles: Use 'del lazy_import', 'del install_doc' by @mkoeppe in #38086- Still add rpath to our own libstdc++, in case we built our own toolchain by @vbraun in #38087
- CI Build&Test: Split test-long into multiple jobs, repair Coverage.py upload by @mkoeppe in #38090
- Fix doctest when the optional benzene is installed by @vbraun in #38091
doc: Updatehelp()outputs by @gmou3 in #38092- add doc on egf_to_ogf and inverse by @fchapoton in #38093
src/sage/algebras/steenrod/all.py: Use lazy_import, remove deprecated global import by @mkoeppe in #38095- Remove nitpick_patch_config function by @kwankyu in #38100
sage.coding: Update# needsby @mkoeppe in #38104- Fixing the index set of a rank 1 Cartan matrix by @tscrim in #38105
- GH Actions: Fix upload of macOS wheels to PyPI by @mkoeppe in #38111
- Implement all G(r,p,m) complex reflection groups by @tscrim in #37848
- Replace special handling of optional extensions (bliss, coxeter3, ....) by @mkoeppe in #37857
- Implement Drinfeld modular forms by @DavidAyotte in #36538
- some care for blank lines (pep E30) in groups/ and numerical/ by @fchapoton in #38132
- some care for blank lines in coding and modules by @fchapoton in #38133
- some care for blank lines in matrix/ by @fchapoton in #38134
- Fix building fflas, linbox on 32-bit by disabling SSE, AVX by @vbraun in #38136
- some care for blank lines in pyx in rings by @fchapoton in #38137
sage.monoids: Modularization fixes,# needsby @mkoeppe in #38143- CI: Fix handling of deletions/renames; Build&Test: Uninstall/build changed packages; Linux Incremental: Update platforms by @mkoeppe in #38144
- docstrings: INPUT formatting by @gmou3 in #38145
- src/sage/categories/hecke_modules.py: Fix
# needsby @mkoeppe in #38146 build/pkgs/scip9.0.1,soplex7.0.1,papilo2.2.1,onetbb2021.12.0 by @mkoeppe in #38147- Fix test failure on 32-bit where a different element is picked by @vbraun in #38148
- many pep8 fixes in misc by @fchapoton in #38149
- Improve performance of computing columns of matrices over GF(2) by @GiacomoPope in #38152
- just a few details in permutation.py by @fchapoton in #38156
build/pkgs/openssl: Update to 3.2.2 by @mkoeppe in #38157- Add parameter
sort_neighborsto methodinit_short_digraphby @dcoudert in #37662 - update (py)cryptominisat to version 5.11.21, remove no longer needed cryptominisat spkg by @dimpase in #37669
- Implement the solvable and nil radicals of a finite dimensional Lie algebra by @tscrim in #37697
- Implementing the faithful representation of a generic Lie algebra in positive characteristic by @tscrim in #37779
igraph: Update to 0.10.12, fix spkg-check;python_igraph: Update to 0.11.5, remove spkg-install workarounds by @mkoeppe in #37819- Reverted changes from #36986 by @amanmoon in #37850
- Construct the composition series of Garsia-Procesi modules by @tscrim in #37871
- ⬆️ Bump dev-hanz-ops/install-gh-cli-action from 0.1.0 to 0.2.0 by @dependabot in #37945
- Add a method to enumerate cographs by @dcoudert in #37977
sage.libs.giac: Compile with std=c++11 by @mkoeppe in #38034- work on letterplace algebras by @fchapoton in #38053
matroids: Declare function input and return types by @gmou3 in #38057- Deprecate
is_Element, ... by @mkoeppe in #38077 - Add
# sage_setup: distributiondirectives for the files of existing distributions sagemath-{categories,...,tdlib} by @mkoeppe in #38088 - Deprecate
is_Map,is_...Morphismby @mkoeppe in #38103 - Fixed bug in size labeler by @amanmoon in #38114
- Add small examples of common docstring styles by @kwankyu in #38117
- Fix hashing for Weyl algebra elements by @darijgr in #38119
sage.doctest.control: In doctests, use Python floats for stats by @mkoeppe in #38122- Deprecate
is_NumberFieldOrder,is_AbsoluteNumberField,is_RelativeNumberField,is_NumberFieldIdeal,is_NumberFieldFractionalIdeal,is_NumberFieldFractionalIdeal_relby @mkoeppe in #38124 - Deprecate
is_MutablePosetby @mkoeppe in #38125 - Deprecate
is_Fan,is_NefPartition,is_PointCollection,is_ToricLattice,is_ToricLatticeElement,is_ToricLatticeQuotientby @mkoeppe in #38126 - Add links to the PR in doc preview by @kwankyu in #38127
- code polishing using list comprehension by @fchapoton in #38131
- Fix
monomial_coefficientsfor submodules of free modules from sage.modules by @mkoeppe in #37526 - Use equality '==' instead of 'is' for strings comparison by @cyrilbouvier in #38196
- Column and row stabilizers for skew tableaux by @darijgr in #38197
- build/pkgs/sagemath_{categories,environment,objects,repl}: Change to optional by @mkoeppe in #38200
- Lint: Install tox from ubuntu, as done in CI Build&Test etc. by @mkoeppe in #38206
- bump prompt_toolkit/version_requirements.txt, more spkg-configures by @dimpase in #38212
- Fix regex to remove spurious diffs in doc preview by @kwankyu in #38213
- test that #38159 is fixed by @dimpase in #38214
- Fix typo "sage.ring" in docstrings by @jeriedel24 in #38215
- fix trivial typos in graphs/traversals.pyx by @mantepse in #38225
- Activate/fix rpy2 tests by @mkoeppe in #35396
- Specht modules for Ariki-Koike algebras by @tscrim in #36980
sage.plot.animate: Use FFmpeg.absolute_filename;sage.features: Remove deprecated methods by @mkoeppe in #37312- Refactor
bootstrap,bootstrap-conda,m4/sage_spkg_collect.m4,sage-spkg-infothroughsage --package properties,sage-get-system-packagesby @mkoeppe in #37430 - Drop custom GLPK patch and error handling by @orlitzky in #37801
- Implement the Schur functors applied to semigroup representations by @tscrim in #37830
build/pkgs/python3: Update to 3.12.4; declare support of Python 3.12.x stable by @mkoeppe in #37834- find integral solutions to matrix equations over PIDs by @yyyyx4 in #38019
- Steinhaus-Johnson-Trotter algorithm for permutations by @JosePisco in https://github.com/sagemath/sage/pull/38064
- Implemented a generator for Möbius ladder graph by @janmenjayap in https://github.com/sagemath/sage/pull/38084
sage.combinat,sage.games: Use morelazy_importin all.py files by @mkoeppe in https://github.com/sagemath/sage/pull/38096- Refactor
CachedRepresentationthrough new classWithPicklingByInitArgsby @mkoeppe in https://github.com/sagemath/sage/pull/38097 - Various Python package upgrades by @mkoeppe in https://github.com/sagemath/sage/pull/38101
- Implement the intrinsic arrangement of a Specht module by @tscrim in https://github.com/sagemath/sage/pull/38102
- Deprecate
is_AlgebraicNumber,is_AlgebraicReal,is_ComplexDoubleElement,is_ComplexIntervalFieldElement,is_ComplexNumber,is_FractionField,is_FractionFieldElement,is_Integer,is_IntegerMod,is_IntegerRing,is_Rational,is_RationalField,is_RealDoubleElement,is_RealIntervalField,is_RealIntervalFieldElement,is_RealNumberby @mkoeppe in https://github.com/sagemath/sage/pull/38128 - Fix live doc build by saving runner space by @kwankyu in https://github.com/sagemath/sage/pull/38129
- e_antic 2.0.2, normaliz 3.10.3, pynormaliz 2.20, polymake 4.12 by @mkoeppe in https://github.com/sagemath/sage/pull/38140
- build/pkgs/sympy: Update to 1.12.1, change to wheel package by @mkoeppe in https://github.com/sagemath/sage/pull/38141
- Remove imports pyx by @fchapoton in https://github.com/sagemath/sage/pull/38153
- details in partition.py (code and pep8) by @fchapoton in https://github.com/sagemath/sage/pull/38160
build/pkgs/tdlib: Update to 0.9.3 by @mkoeppe in https://github.com/sagemath/sage/pull/38163- simplify some calls to join by @fchapoton in https://github.com/sagemath/sage/pull/38165
- New methods for sparse graphs backend to enumerate neighbors in linear time by @cyrilbouvier in https://github.com/sagemath/sage/pull/38167
- some care about the documentation of graph generators by @dcoudert in https://github.com/sagemath/sage/pull/38168
sage.categories: Update# needs, modularization fixes (imports) by @mkoeppe in https://github.com/sagemath/sage/pull/38170- fix some details in the documentation of digraph generators by @dcoudert in https://github.com/sagemath/sage/pull/38171
- fix and activate E305 in pyx files by @fchapoton in https://github.com/sagemath/sage/pull/38176
- some care for blanklines in pyx in stats by @fchapoton in https://github.com/sagemath/sage/pull/38177
- some care for blank lines in pyx in padics by @fchapoton in https://github.com/sagemath/sage/pull/38178
tox.ini,.github/workflows,.devcontainer: Remove centos-stream-8 (EOL) by @mkoeppe in https://github.com/sagemath/sage/pull/38179sage.interfaces: Morelazy_importby @mkoeppe in https://github.com/sagemath/sage/pull/38180sage.plot,sage.repl: Modularization fixes (imports),# needsby @mkoeppe in https://github.com/sagemath/sage/pull/38181- Deprecate
is_FreeAlgebraQuotientElement, ... by @mkoeppe in https://github.com/sagemath/sage/pull/38184 - Improve DiGraph neighbor iterators by @cyrilbouvier in https://github.com/sagemath/sage/pull/38189
sage.algebras...sage.topology: Doctest cosmetics,# needs, import fixes by @mkoeppe in https://github.com/sagemath/sage/pull/38193- Improve complexity comments for graphs by @cyrilbouvier in https://github.com/sagemath/sage/pull/38198
- Fix infinite loop bug in doctest from #36581 by @grhkm21 in https://github.com/sagemath/sage/pull/38209
sage.rings: Modularization fixes (imports),# needsby @mkoeppe in https://github.com/sagemath/sage/pull/38210- Update conda-lock files, rename macOS conda-lock files to match CI Conda, remove unexplained duplicate lock files by @mkoeppe in https://github.com/sagemath/sage/pull/37998
- Reject system gap 4.13 by @mkoeppe in https://github.com/sagemath/sage/pull/38222
build/pkgs/pynormaliz: Fix tarball name, version_requirements.txt by @mkoeppe in https://github.com/sagemath/sage/pull/38260- Replace uses of
setup.py bdist_wheeland direct uses ofpython3 -m buildby @mkoeppe in https://github.com/sagemath/sage/pull/38201 - Fix doc deployment to netlify for releases by @kwankyu in https://github.com/sagemath/sage/pull/38220
- Fix broken anchors in CHANGES.html of doc preview by @kwankyu in https://github.com/sagemath/sage/pull/38274
- Fix sagelib install with
configure --disable-editableby @mkoeppe in https://github.com/sagemath/sage/pull/38304 - fixin' the ruff linter by @fchapoton in https://github.com/sagemath/sage/pull/38309
- Use
magickcommand instead of the deprecatedconvertif available by @antonio-rojas in https://github.com/sagemath/sage/pull/38135 build/pkgs/setuptools_scm: Upgrade to 8.1.0, fix dependency typing_extensions, change some packages towheelby @mkoeppe in https://github.com/sagemath/sage/pull/38226- Add version selector to doc by @kwankyu in https://github.com/sagemath/sage/pull/38285
- Add announcement banner also for PRs over stable release by @kwankyu in https://github.com/sagemath/sage/pull/38332
- Filter out R warnings by @antonio-rojas in https://github.com/sagemath/sage/pull/38294
build/pkgs/sage_numerical_backends_coin,sage_numerical_backends_cplex,sage_numerical_backends_gurobi: Update to 10.4 (includes fix for Cython 3) by @mkoeppe in https://github.com/sagemath/sage/pull/38319- Fix a bug that breaks CHANGES.html again by @kwankyu in https://github.com/sagemath/sage/pull/38353
- CI: Create doc directory regardless of develop or PR by @kwankyu in https://github.com/sagemath/sage/pull/38378
New Contributors
- @janmenjayap made their first contribution in #37331
- @jtcc2 made their first contribution in #37100
- @hdehr made their first contribution in #37549
- @explorest made their first contribution in #37617
- @Feyorsh made their first contribution in #37646
- @marco-perin made their first contribution in #37423
- @DisneyHogg made their first contribution in #37440
- @SandwichGouda made their first contribution in #37721
- @faisalfakhro made their first contribution in #37725
- @DennisYurichev made their first contribution in #37688
- @Dhrumil07 made their first contribution in #37506
- @Nolord made their first contribution in #37733
- @vamshipy made their first contribution in #37057
- @rrueger made their first contribution in #37953
- @seewoo5 made their first contribution in #36269
- @vincentmacri made their first contribution in #37972
- @culler made their first contribution in #37886
- @darijgr made their first contribution in #38119
- @jeriedel24 made their first contribution in #38215
- @JosePisco made their first contribution in https://github.com/sagemath/sage/pull/38064
Full Changelog: 10.3...10.4