Release Notes
- adds support for GCC 14; 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.py
by @janmenjayap in #37331 - some details in modules (ruff and pep) by @fchapoton in #37335
- Add simple methods to convert to and from bytes for
ZZ
and 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
configure
less 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_inexact
returns anInteger
by @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 time
totopology
by @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.py
by @GiacomoPope in #37489 - Include
random_element()
method toLaurentPolynomialRing
by @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.ini
by @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 ofFreeModuleElement
class 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 chronicle
insrc/sage/combinat/posets/posets.py
by @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
Integer
forMPolynomialRing_libsingular
class 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
Integer
type forMPolynomial_polydict
class 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 -b
equivalent tomake sagelib-no-deps
regarding parallelism by @mkoeppe in #37421 sage.parallel.ncpus
: Useos.sched_getaffinity
oros.cpu_count
by @mkoeppe in #37422- Fix docstring for polyhedron constructor by @marco-perin in #37423
- Edit hypellfrob.pyx by @kwankyu in #37424
setup.py
: Removelazy_import_cache
use 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.txt
by @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-check
for 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_vector
toIntegerLattice
, 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_polys
by @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.py
to 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.txt
toversion_requirements.txt
by @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
BUG
method and include a docstring formatrix_of_frobenius()
by @GiacomoPope in #37615 - Corrections in
.normalize_basis_at_p
and.maximal_order()
ofquaternion_algebra.py
by @S17A05 in #37644 sage.doctest
: Remove most uses of SAGE_SRC in doctests by @mkoeppe in #37648cypari2
2.1.5,memory_allocator
0.1.4 by @mkoeppe in #37665- Make matroid
copy
anddeepcopy
simply returnself
by @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_order
by @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.cfg
topyproject.toml
by @mkoeppe in #36951- Add
# sage_setup: distribution
directives to all files, remove remaining# coding: utf-8
by @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
SetPartition
return 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
groups
by @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
-Infinity
forLaurentPolynomialRing
by @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.py
to 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
relabel
by @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
SetSystem
representation 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
CombinatorialClass
by @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
DisjointSet
by @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.py
by @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,# needs
by @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/build
instead ofpip wheel
by @mkoeppe in #35618 - Cythonize
GraphicMatroid
by @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_extension
by @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_SymmetricFunctionAlgebra
by @mkoeppe in #37896 - Deprecate
is_Monoid
,is_FreeMonoid
,is_FreeAbelianMonoid
by @mkoeppe in #37897 - Deprecate
is_AbelianGroup
,is_DualAbelianGroup
,is_MatrixGroup
by @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.txt
files 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
Matroid
constructor 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.conway
in 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.py
by @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.BalancedTree
by @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.py
to 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
coefficients
forQuasiModularFormsElement
by @seewoo5 in #36269- Deprecate
is_Category
,is_Endset
,is_Homset
,is_Parent
,is_RingHomset
,is_SimplicialComplexHomset
by @mkoeppe in #37922 Makefile
,.ci/write-dockerfile.sh
: Update forsrc/pyproject.toml
after #36982 by @mkoeppe in #37926- Work on
CircuitsMatroid
by @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.all
by @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_spkg
from CI by @mkoeppe in #38008DualMatroid
: Addis_valid
andrelabel
methods by @gmou3 in #38013Arch Linux
: Removelibgiac
and renametexlive-collection-luatex
by @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
FlatsMatroid
by @gmou3 in #38027 - Relative to absolute imports,
del lazy_import
in.all
files by @mkoeppe in #38030 - Remove remaining
# coding: utf-8
lines insrc/sage
by @mkoeppe in #38031 - Avoid conflict with macro
minor
by @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/time
by bash keywordtime
by @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_VectorSpaceHomspace
by @mkoeppe in #37924 build/pkgs/flint
3.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-minimal
by @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_database
by @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 --new
by @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-*.time
files 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),# needs
by @mkoeppe in #38066.ci/write-dockerfile.sh
: Quoting fix forunminimize
by @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# needs
by @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*.py
files: 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# needs
by @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,# needs
by @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
# needs
by @mkoeppe in #38146 build/pkgs/scip
9.0.1,soplex
7.0.1,papilo
2.2.1,onetbb
2021.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_neighbors
to methodinit_short_digraph
by @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: distribution
directives for the files of existing distributions sagemath-{categories,...,tdlib} by @mkoeppe in #38088 - Deprecate
is_Map
,is_...Morphism
by @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_rel
by @mkoeppe in #38124 - Deprecate
is_MutablePoset
by @mkoeppe in #38125 - Deprecate
is_Fan
,is_NefPartition
,is_PointCollection
,is_ToricLattice
,is_ToricLatticeElement
,is_ToricLatticeQuotient
by @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_coefficients
for 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-info
throughsage --package properties
,sage-get-system-packages
by @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 #38064
- Implemented a generator for Möbius ladder graph by @janmenjayap in #38084
sage.combinat
,sage.games
: Use morelazy_import
in all.py files by @mkoeppe in #38096- Refactor
CachedRepresentation
through new classWithPicklingByInitArgs
by @mkoeppe in #38097 - Various Python package upgrades by @mkoeppe in #38101
- Implement the intrinsic arrangement of a Specht module by @tscrim in #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_RealNumber
by @mkoeppe in #38128 - Fix live doc build by saving runner space by @kwankyu in #38129
- e_antic 2.0.2, normaliz 3.10.3, pynormaliz 2.20, polymake 4.12 by @mkoeppe in #38140
- build/pkgs/sympy: Update to 1.12.1, change to wheel package by @mkoeppe in #38141
- Remove imports pyx by @fchapoton in #38153
- details in partition.py (code and pep8) by @fchapoton in #38160
build/pkgs/tdlib
: Update to 0.9.3 by @mkoeppe in #38163- simplify some calls to join by @fchapoton in #38165
- New methods for sparse graphs backend to enumerate neighbors in linear time by @cyrilbouvier in #38167
- some care about the documentation of graph generators by @dcoudert in #38168
sage.categories
: Update# needs
, modularization fixes (imports) by @mkoeppe in #38170- fix some details in the documentation of digraph generators by @dcoudert in #38171
- fix and activate E305 in pyx files by @fchapoton in #38176
- some care for blanklines in pyx in stats by @fchapoton in #38177
- some care for blank lines in pyx in padics by @fchapoton in #38178
tox.ini
,.github/workflows
,.devcontainer
: Remove centos-stream-8 (EOL) by @mkoeppe in #38179sage.interfaces
: Morelazy_import
by @mkoeppe in #38180sage.plot
,sage.repl
: Modularization fixes (imports),# needs
by @mkoeppe in #38181- Deprecate
is_FreeAlgebraQuotientElement
, ... by @mkoeppe in #38184 - Improve DiGraph neighbor iterators by @cyrilbouvier in #38189
sage.algebras
...sage.topology
: Doctest cosmetics,# needs
, import fixes by @mkoeppe in #38193- Improve complexity comments for graphs by @cyrilbouvier in #38198
- Fix infinite loop bug in doctest from #36581 by @grhkm21 in #38209
sage.rings
: Modularization fixes (imports),# needs
by @mkoeppe in #38210- Update conda-lock files, rename macOS conda-lock files to match CI Conda, remove unexplained duplicate lock files by @mkoeppe in #37998
- Reject system gap 4.13 by @mkoeppe in #38222
build/pkgs/pynormaliz
: Fix tarball name, version_requirements.txt by @mkoeppe in #38260- Replace uses of
setup.py bdist_wheel
and direct uses ofpython3 -m build
by @mkoeppe in #38201 - Fix doc deployment to netlify for releases by @kwankyu in #38220
- Fix broken anchors in CHANGES.html of doc preview by @kwankyu in #38274
- Fix sagelib install with
configure --disable-editable
by @mkoeppe in #38304 - fixin' the ruff linter by @fchapoton in #38309
- Use
magick
command instead of the deprecatedconvert
if available by @antonio-rojas in #38135 build/pkgs/setuptools_scm
: Upgrade to 8.1.0, fix dependency typing_extensions, change some packages towheel
by @mkoeppe in #38226- Add version selector to doc by @kwankyu in #38285
- Add announcement banner also for PRs over stable release by @kwankyu in #38332
- Filter out R warnings by @antonio-rojas in #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 #38319- Fix a bug that breaks CHANGES.html again by @kwankyu in #38353
- CI: Create doc directory regardless of develop or PR by @kwankyu in #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 #38064
Full Changelog: 10.3...10.4