UC Davis mathematics professor Matthias Köppe has completed a five-year project to modularize the open-source, Python-based software SageMath, widely used in mathematical research and instruction, culminating in the release of Passagemath 10.5.29 (https://github.com/passagemath/passagemath). Köppe last spoke about this work as a plenary speaker at the July 2024 International Congress on Mathematical Software (https://maths.dur.ac.uk/icms2024/ICMS2024.html) in Durham, UK.
SageMath, originally created by William Stein in 2005 as the “System for Algebra and Geometry Experimentation,” is an open-source mathematical software system built on Python and released under the GNU General Public License. The project’s two initial development streams—experimental research in arithmetic geometry and free software for lower-division mathematics classes—have since expanded to encompass a broad range of mathematical domains, thanks to contributions from hundreds of individuals.
The Sage library comprises approximately 3,000 first-party Python and Cython modules. In keeping with a longstanding development principle, SageMath also integrates hundreds of third-party, independently maintained packages written in Python, Cython, C, C++, Common Lisp, Fortran, and various custom or domain-specific languages. This makes Sage a major integrating force in the mathematical software world, downstream of numerous tributaries.
In recent years, Sage has undergone significant modernization. It completed its migration to Python 3 in 2020; retired the pioneering Sage Notebook (2006–2019) in favor of the Jupyter Notebook and JupyterLab; embraced modern Python packaging practices; migrated its development workflow to GitHub in 2023; and developed a continuous integration system capable of working upstream with projects that Sage depends on.
The most recent milestone—delivered through Köppe’s fork “passagemath” (https://github.com/passagemath/passagemath)—marks a potential turning point. It addresses a longstanding concern: SageMath’s rapid early growth and close integration with numerous upstream systems had created a rigid system of dependencies, limiting downstream ecosystem development and isolating SageMath from the broader scientific Python community.
Since May 2020, Köppe’s effort to restore and revitalize the software ecosystem has reshaped the Sage library into a modular system of pip-installable packages, which can now be built, developed, used, and tested independently. Integration across mathematical subfields is achieved through runtime interactions among the modular packages. Some packages, such as passagemath-gap or passagemath-singular, explicitly acknowledge their upstream dependencies—offering both credit and renewed opportunity for collaboration.
By making parts of the Sage library reusable within the broader scientific Python ecosystem, this modular architecture may finally unlock the full potential of Sage’s early decision to adopt Python—now the world’s most widely used programming language—as its implementation and interface.