Releases: passagemath/passagemath
passagemath-10.6.40
MSYS2 packages for Windows on x86_64 and ARM
The downstream effort to package passagemath for MSYS2 has reached an important milestone. All packages for which passagemath provides Windows wheels are now available as MSYS2 packages, too.
After installing MSYS2, use pacman to install some of the available packages, for example:
$ pacman -S mingw-w64-ucrt-x86_64-python-passagemath-{cmr,repl}Then start the Sage REPL:
$ sage
...
sage: from passagemath_cmr import *First binary wheels for Windows on ARM
passagemath-flint updates
FLINT has been upgraded to version 3.4.0; blog post, release notes.
passagemath-planarity updates
The Edge Addition Planarity Suite has been upgraded to version 4.0.1.0; release notes.
New package for linear inequality systems
The new package certlin by @MarcusAichmayr computes certificates for the solvability or insolvability of systems of linear inequalities.
What's Changed
- ci-downstream-mingw.yml: Add -homfly, -nauty, upload logs artifacts by @mkoeppe in #1842
- Fix build with flint 3.4 by @antonio-rojas, backported by @mkoeppe in #1845
- .github/workflows/dist-wheels-windows.yml: Build 3.14 wheels by @mkoeppe in #1846
- ci-downstream-mingw.yml: Test passagemath-rankwidth by @mkoeppe in #1847
build/pkgs/flint: Update to 3.4.0 by @mkoeppe in #1833- build/pkgs/cylp: Update to 0.94 by @mkoeppe in #1848
- build/pkgs/cython: Update to 3.2.2 by @mkoeppe in #1795
- build/pkgs/planarity: Update to 4.0.1.0 by @mkoeppe in #1849
- build/pkgs/certlin: New by @mkoeppe in #1850
- build/pkgs/_cibuildwheel_local_windows: New by @mkoeppe in #1851
- [Windows] Unpin cysignals by @mkoeppe in #1852
- ci-downstream-mingw.yml: Test passagemath-{cliquer,planarity} by @mkoeppe in #1853
- Windows normaliz by @mkoeppe in #1191
build/pkgs/nauty[Windows]: Fix installation by @mkoeppe in #1854sage.doctest: Only warn if stats cannot be written by @mkoeppe in #1855- ci-downstream-mingw.yml: Add testing of passagemath-plot by @mkoeppe in #1856
- sagelib fixes for pyodide / emscripten by @mkoeppe in #287
- dist-wheels-windows.yml: Continue building wheels on error by @mkoeppe in #1858
- README.md: Update from org by @mkoeppe in #1859
- README.md: Add section '[Windows] Installation from MSYS2 Packages' by @mkoeppe in #1857
Full Changelog: passagemath-10.6.39...passagemath-10.6.40
passagemath-10.6.39
Simplified installation in Python 3.14
Binary wheels are now available for all dependency packages.
New package for calculations in the curve complex
The new package curver by @MarkCBell enables calculations in the curve complex. It implements the Bell–Webb algorithm to determine the Nielsen–Thurston type of a mapping class.
Next release series: passagemath-10.8.x
The next release series, passagemath-10.8.x, will merge the compatible changes from upstream SageMath 10.8, expected by late December 2025, and support Python 3.11–3.14.
The current series, passagemath-10.6.x, will be supported until October 2026.
What's Changed
- build/pkgs/realalg: New by @mkoeppe in #1823
- build/pkgs/curver: New by @mkoeppe in #1827
- .github/workflows/ci-downstream-mingw.yml: New by @mkoeppe in #1829
- ci-wheels.yml: Tighten glob pattern for constraints by @mkoeppe in #1830
- README.md, ci-wheels.yml: No more wheelhouse for Python 3.14 by @mkoeppe in #1807
- build/pkgs/cibuildwheel, dist-wheels-windows.yml: Update to 3.3.0 by @mkoeppe in #1826
- README.md: Next series is 10.8.x, not 10.7.x by @mkoeppe in #1831
- build/pkgs/4ti2: Update to 1.6.14 by @mkoeppe in #1834
- CONTRIBUTING.md: Expand and clarify by @mkoeppe in #1835
- .github/workflows/ci-downstream-mingw.yml: Run tox by @mkoeppe in #1832
- src/sage/doctest [Windows]: Do not use
multiprocessing.set_start_method('fork')by @mkoeppe in #1836 - build/pkgs/gmpy2: Update to 2.2.2 by @mkoeppe in #1837
- Revert "build/pkgs/4ti2: Update to 1.6.14" by @mkoeppe in #1839
- build/pkgs/mpfr: Update to 4.2.2 by @mkoeppe in #1838
- tox.ini, .devcontainer: Add ubuntu-resolute by @mkoeppe in #1840
Full Changelog: passagemath-10.6.38...passagemath-10.6.39
passagemath-10.6.38
passagemath-linbox updates
The passagemath-linbox wheels are now more portable.
passagemath-ntl updates
NTL was updated to version 11.6.0; release notes.
New package for sign vectors, oriented matroids, chirotopes
The new package sign_vectors by @MarcusAichmayr provides operations for sign vectors, oriented matroids, and chirotopes.
What's Changed
- m4/sage_spkg_collect.m4: Make the column for package names wider by @mkoeppe in #1818
- build/pkgs/sign_vectors: New by @mkoeppe in #1817
- build/pkgs/{givaro,linbox} [SAGE_FAT_BINARY]: Update configure options by @mkoeppe in #1820
- build/pkgs/ntl: Update to 11.6.0 by @mkoeppe in #1782
- sage_setup.autogen: Do not generate an
__init__.pyfile by @mkoeppe in #1816 - build/pkgs/fflas_ffpack [SAGE_FAT_BINARY]: Update configure flags by @mkoeppe in #1822
Full Changelog: passagemath-10.6.37...passagemath-10.6.38
passagemath-10.6.37
New top-level import names for the modularized pip-installable packages
The top-level bindings of each of the modularized pip-installable packages of the Sage library can now be accessed using the same import name as the distribution name. This is, in particular, convenient when using the marimo notebook, as marimo will infer what package needs to be installed from PyPI based on the import name.
For example, for passagemath-modules, you can use
from passagemath_modules import *This is equivalent to from sage.all__sagemath_modules import *. Likewise, for the passagemath-standard distribution, you can now use
from passagemath_standard import *instead of from sage.all import *.
All of the above is intended for interactive use only. Libraries should instead import specific bindings from the sage namespace.
Downstream packages for MSYS2 / mingw-w64 available
A downstream packaging effort for Windows (MSYS2 / mingw-w64) has begun, see msys2/MINGW-packages#24738. See the MSYS2 package search for the passagemath packages already available.
What's Changed
- build/pkgs/cysignals: Update to 1.12.6 + Python 3.10 compatibility by @mkoeppe in #1806
- README.md, ci-wheels.yml: Update wheelhouse packages needed for Python 3.14 by @mkoeppe in #1808
- src/sage/combinat/designs/incidence_structures.py: Add
# needsby @mkoeppe in #1812 - Add toplevel packages
passagemath_*by @mkoeppe in #1811 - src/sage/combinat/matrices/hadamard_matrix.py: Replace use of
evalby @mkoeppe in #1814
Full Changelog: passagemath-10.6.36...passagemath-10.6.37
passagemath-10.6.36
passagemath-graphs updates
Graphs and hypergraphs now have a method is_unimodular(), using Seymour's decomposition from passagemath-cmr.
sage: W6 = graphs.WheelGraph(7); W6
Wheel graph: Graph on 7 vertices
sage: W6.is_unimodular()
True
sage: W6.is_unimodular(certificate=True)
(True, CographicNode (6×7))
sage: C5 = graphs.CycleGraph(5); C5
Cycle graph: Graph on 5 vertices
sage: C5.is_unimodular(certificate=True)
(False,
(ThreeConnectedIrregularNode (5×5),
((frozenset({3, 4}), frozenset({2, 3}), frozenset({1, 2}), frozenset({0, 4}), frozenset({0, 1})),
(4, 3, 2, 1, 0))))passagemath-macaulay2 updates
Macaulay2 was updated to version 1.25.11; release notes.
What's Changed
- ci-linux.yml: Disambiguate log artifact names for 'optional', 'experimental' jobs by @mkoeppe in #1801
- sage.features: Add
planarityfeature by @mkoeppe in #1804 - src/sage/combinat/designs/incidence_structures.py (incidence_matrix): Optionally create a free module morphism by @mkoeppe in #1802
- src/sage/combinat/designs/incidence_structures.py (is_unimodular): New by @mkoeppe in #1800
- build/pkgs/macaulay2: Update to 1.25.11 by @mkoeppe in #1803
- src/sage/graphs/graph.py (is_unimodular): New by @mkoeppe in #1799
- is_totally_unimodular: Map back submatrix certificate using
row_keys,column_keysby @mkoeppe in #1805
Full Changelog: passagemath-10.6.35...passagemath-10.6.36
passagemath-10.6.35
passagemath-modules updates
The matrix() constructor, when supplied with keyword arguments row_keys=... and/or column_keys=..., creates morphisms of free modules instead of plain matrices. The constructor now handles more cases, such as specifying the matrix entries using a callable.
sage: M = matrix(entries=lambda i, j: i + j, row_keys=[1, 2, 3], column_keys=[10, 20, 30]); M
Generic morphism:
From: Free module generated by {10, 20, 30} over Integer Ring
To: Free module generated by {1, 2, 3} over Integer Ring
sage: M._unicode_art_matrix()
10 20 30
1⎛11 21 31⎞
2⎜12 22 32⎟
3⎝13 23 33⎠
sage: W6 = graphs.WheelGraph(7); W6
Wheel graph: Graph on 7 vertices
sage: max_cliques = [frozenset(Q) for Q in W6.cliques_maximal()]; max_cliques
[frozenset({0, 1, 2}),
frozenset({0, 1, 6}),
frozenset({0, 2, 3}),
frozenset({0, 3, 4}),
frozenset({0, 4, 5}),
frozenset({0, 5, 6})]
sage: W6_clique_vertex_incidence_matrix = matrix(entries=lambda clique, vertex: 1 if vertex in clique else 0,
row_keys=max_cliques, column_keys=W6.vertices())
sage: W6_clique_vertex_incidence_matrix
Generic morphism:
From: Free module generated by {1, 2, 3, 4, 5, 6, 0} over Integer Ring
To: Free module generated by {frozenset({0, 1, 2}), frozenset({0, 1, 6}), frozenset({0, 2, 3}),
frozenset({0, 3, 4}), frozenset({0, 4, 5}), frozenset({0, 5, 6})}
over Integer Ring
sage: W6_clique_vertex_incidence_matrix._unicode_art_matrix()
1 2 3 4 5 6 0
frozenset({0, 1, 2})⎛1 1 0 0 0 0 1⎞
frozenset({0, 1, 6})⎜1 0 0 0 0 1 1⎟
frozenset({0, 2, 3})⎜0 1 1 0 0 0 1⎟
frozenset({0, 3, 4})⎜0 0 1 1 0 0 1⎟
frozenset({0, 4, 5})⎜0 0 0 1 1 0 1⎟
frozenset({0, 5, 6})⎝0 0 0 0 1 1 1⎠New package for two-stage euclidean real quadratic fields
The new package twostage by @mmasdeu provides algorithms for proving that class-number-one real quadratic fields are 2-stage euclidean and to find continued fraction expansions in them.
What's Changed
- Improved handling of
matrix(row_keys=..., column_keys=...)by @mkoeppe in #1789 - src/sage/matroids/matroid.pyx: Add
# needsby @mkoeppe in #1790 sage.matrix: Modularization fix; add# needsby @mkoeppe in #1791- Fix placement of
# needsin multi-line doctests by @mkoeppe in #1792 build/pkgs/arrow: Fix dependencies;tzdata: Update to 2025.2 by @mkoeppe in #1793- build/pkgs/cbc: Use std=c++14 by @mkoeppe in #1796
- .github/workflows/dist.yml (wheels): Run strip only after make was run by @mkoeppe in #1794
- build/pkgs/twostage: New by @mkoeppe in #1797
- Improved handling of
matrix(row_keys=..., column_keys=...)for callables by @mkoeppe in #1798
Full Changelog: passagemath-10.6.34...passagemath-10.6.35
passagemath-10.6.34
Support for reactive marimo notebooks
The command for launching notebooks (sage -n) now supports reactive marimo notebooks (sage -n marimo) after installing marimo in the virtual environment.
When passagemath is installed in the traditional mode as Sage-the-distribution, you can now use the command sage -i marimo to install marimo.
The updated README now also includes a section on running passagemath in the molab.marimo.io cloud.
What's Changed
- tox.ini, .devcontainer: Add opensuse-16.0-python3.13 by @mkoeppe in #1785
- Matroid._max_independent: Fix call of _rank by @mkoeppe in #1786
- build/pkgs/marimo: New by @mkoeppe in #1788
Full Changelog: passagemath-10.6.33...passagemath-10.6.34
passagemath-10.6.33
This release adds support for IPython 9.7.
What's Changed
- dist.yml (wheels) [macos]: Our delocate no longer needs joblib by @mkoeppe in #1772
- Add float function from upstream by @cxzhong in #1765
- sage.algebras.fusion_rings: Add
# needsby @mkoeppe in #1774 - src/sage/algebras/letterplace: Add
# needsby @mkoeppe in #1775 - Fix the is_free incorrect output for new version Singular by @cxzhong in #1768
- sage.matrix, sage.modules: Add
# needsby @mkoeppe in #1777 - src/sage/all__sagemath_symbolics.py: Import from sagemath-singular by @mkoeppe in #1778
- src/sage/crypto/mq/rijndael_gf.py: Add # needs by @mkoeppe in #1780
- src/sage/repl/display/formatter.py: Remove import of unicode_to_str by @mkoeppe in #1781
- Update some doctest output for Singular 4.4.1p4 by @mkoeppe in #1779
Full Changelog: passagemath-10.6.32...passagemath-10.6.33
passagemath-10.6.32
Initial support for free-threaded Python 3.14
Wheels are now made available also for free-threaded Python 3.14 (cp314-cp314t). Because not all upstream packages have published wheels for this version yet, the wheelhouse procedure needs to be used.
What's Changed
- build/pkgs/qhull/spkg-install.in [macos]: Fix install name dir by @mkoeppe in #1740
- build/pkgs/flint: Apply upstream patch for ubuntu-bionic-toolchain-gcc_9-i386 by @mkoeppe in #1741
- README.md: 10.5.x now EOL by @mkoeppe in #1754
- Fix typos discovered by codespell by @cclauss in #1757
- Refactor
atexit.pyxby @cxzhong, backported (part 2) by @mkoeppe in #1758 - Make tests pass with GAP 4.15 by @antonio-rojas, backported by @mkoeppe in #1760
- Refactor reference counting to use _Py_REFCNT by @cxzhong in #1761
- Clarify latex_options comment in loop_crystals.py by @cxzhong in #1763
- fix doctest in load.py by @cxzhong in #1764
- dist.yml: Build free-threaded Python 3.14 wheels by @mkoeppe in #1759
- OrderElement_quadratic: override
canonical_associateby @mkoeppe in #1770 - pkgs/sagemath-pari/cypari2: Use _Py_REFCNT instead of direct ob_refcnt access by @tobiasdiez, backported by @mkoeppe in #1771
New Contributors
Full Changelog: passagemath-10.6.31...passagemath-10.6.32
passagemath-10.5.49
This is the final release of the passagemath-10.5.x series.
What's Changed
- [passagemath-10.5.x] Merge pull request #1312 from passagemath/tox-docker--fix-failed-tag-push-2 by @github-actions[bot] in #1313
- [passagemath-10.5.x] Merge pull request #1314 from passagemath/configure--disable-gcc-version-check by @github-actions[bot] in #1315
- [passagemath-10.5.x] Merge pull request #1335 from passagemath/ecm-use-feature by @github-actions[bot] in #1336
- [passagemath-10.5.x] Merge pull request #1343 from passagemath/libsemigroups-patch-fix by @github-actions[bot] in #1344
- build/pkgs/python3: Update to 3.12.12 by @mkoeppe in #1742
- [passagemath-10.5.x] Merge pull request #1637 from passagemath/macaulay2--ld-classic by @github-actions[bot] in #1745
- [passagemath-10.5.x] Merge pull request #1658 from passagemath/singular-no-rpath by @github-actions[bot] in #1746
- [passagemath-10.5.x] Merge pull request #1664 from passagemath/singular-no-rpath-2 by @github-actions[bot] in #1747
- [passagemath-10.5.x] Merge pull request #1690 from passagemath/normaliz-3.11.0 by @github-actions[bot] in #1748
- [passagemath-10.5.x] Merge pull request #1685 from passagemath/libxml2-opensuse by @github-actions[bot] in #1749
- [passagemath-10.5.x] Merge pull request #1727 from passagemath/tachyon--use-pkgconf-for-libpng by @github-actions[bot] in #1750
- [passagemath-10.5.x] Merge pull request #1706 from passagemath/scip-9.2.4 by @github-actions[bot] in #1753
- [passagemath-10.5.x] Merge pull request #1616 from passagemath/gsl--build-aux by @github-actions[bot] in #1752
- [passagemath-10.5.x] Merge pull request #1726 from passagemath/ntl--build-aux by @github-actions[bot] in #1751
- [passagemath-10.5.x] Merge pull request #1640 from passagemath/macaulay2-no-quadmath by @github-actions[bot] in #1744
- [passagemath-10.5.x] Merge pull request #1579 from passagemath/eol-10.5.x by @github-actions[bot] in #1743
Full Changelog: passagemath-10.5.48...passagemath-10.5.49