• Stars
    star
    1,398
  • Rank 33,617 (Top 0.7 %)
  • Language
    Python
  • License
    Other
  • Created over 12 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Main repository of SageMath

Sage: Open Source Mathematical Software

"Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, and MATLAB"

Copyright (C) 2005-2023 The Sage Development Team

https://www.sagemath.org

The Sage Library is free software released under the GNU General Public Licence GPLv2+, and included packages have compatible software licenses. Over 800 people have contributed code to Sage. In many cases, documentation for modules and functions list the authors.

Getting Started

The Sage Installation Guide provides a decision tree that guides you to the type of installation that will work best for you. This includes building from source, obtaining Sage from a package manager, using a container image, or using Sage in the cloud.

This README contains self-contained instructions for building Sage from source. It assumes that you have already cloned the git repository or downloaded the sources in the form of a tarball.

If you have questions or encounter problems, please do not hesitate to email the sage-support mailing list or ask on the Ask Sage questions and answers site.

Supported Platforms

Sage attempts to support all major Linux distributions, recent versions of macOS, and Windows (using Windows Subsystem for Linux or virtualization).

Detailed information on supported platforms for a specific version of Sage can be found in the section "Availability and installation help" of the release tour for this version.

We highly appreciate contributions to Sage that fix portability bugs and help port Sage to new platforms; let us know at the sage-devel mailing list.

[Windows] Preparing the Platform

The preferred way to run Sage on Windows is using the Windows Subsystem for Linux, a.k.a. WSL, which allows you to install a standard Linux distribution such as Ubuntu within your Windows. Make sure you allocate WSL sufficient RAM; 5GB is known to work, while 2GB might be not enough for building Sage from source. Then all instructions for installation in Linux apply.

As an alternative, you can also run Linux on Windows using Docker (see below) or other virtualization solutions.

[macOS] Preparing the Platform

If your Mac uses the Apple Silicon (M1, arm64) architecture:

  • If you set up your Mac by transfering files from an older Mac, make sure that the directory /usr/local does not contain an old copy of Homebrew (or other software) for the x86_64 architecture that you may have copied over. Note that Homebrew for the M1 is installed in /opt/homebrew, not /usr/local.

  • If you wish to use conda, please see the section on conda in the Sage Installation Manual for guidance.

  • Otherwise, using Homebrew ("the missing package manager for macOS") from https://brew.sh/ required because it provides a version of gfortran with necessary changes for this platform that are not in a released upstream version of GCC. (The gfortran package that comes with the Sage distribution is not suitable for the M1/M2.)

If your Mac uses the Intel (x86_64) architecture:

  • If you wish to use conda, please see the section on conda in the Sage Installation Manual for guidance.

  • Otherwise, we strongly recommend to use Homebrew ("the missing package manager for macOS") from https://brew.sh/, which provides the gfortran compiler and many libraries.

  • Otherwise, if you do not wish to install Homebrew, you will need to install the latest version of Xcode Command Line Tools. Open a terminal window and run xcode-select --install; then click "Install" in the pop-up window. If the Xcode Command Line Tools are already installed, you may want to check if they need to be updated by typing softwareupdate -l.

Instructions to Build from Source

Like many other software packages, Sage is built from source using ./configure, followed by make. However, we strongly recommend to read the following step-by-step instructions for building Sage.

The instructions cover all of Linux, macOS, and WSL.

More details, providing a background for these instructions, can be found in the section "Install from Source Code". in the Installation Guide.

  1. Decide on the source/build directory (SAGE_ROOT):

    • On personal computers, any subdirectory of your :envvar:HOME directory should do.

    • For example, you could use SAGE_ROOT=~/sage/sage-x.y, which we will use as the running example below, where x.y is the current Sage version.

    • You need at least 10 GB of free disk space.

    • The full path to the source directory must contain no spaces.

    • After starting the build, you cannot move the source/build directory without breaking things.

    • You may want to avoid slow filesystems such as network file systems (NFS) and the like.

    • [macOS] macOS allows changing directories without using exact capitalization. Beware of this convenience when compiling for macOS. Ignoring exact capitalization when changing into :envvar:SAGE_ROOT can lead to build errors for dependencies requiring exact capitalization in path names.

  2. Download/unpack or clone the sources.

    • Go to https://www.sagemath.org/download-source.html, select a mirror, and download the file :file:sage-x.y.tar.gz.

      This compressed archive file contains the source code for Sage and the source for all programs on which Sage depends.

    • After downloading the source tarball sage-x.y.tar.gz into ~/sage/:

        $ cd ~/sage/
        $ tar xf sage-x.y.tar.gz  # adapt x.y; takes a while
      

      This creates the subdirectory sage-x.y. Now change into it:

        $ cd sage-x.y/  # adapt x.y
      
    • [Git] Alternatively, and required for Sage development, clone the Sage git repository:

        $ ORIG=https://github.com/sagemath/sage.git
        $ git clone -c core.symlinks=true --branch develop --tags $ORIG
      

      This will create the directory sage. (See the section Setting up git and the following sections in the Sage Developer's Guide for more information.)

      Change into it and pick the branch you need, typically the latest development branch:

        $ cd sage
        $ git checkout develop
      
    • [Windows] The Sage source tree contains symbolic links, and the build will not work if Windows line endings rather than UNIX line endings are used.

      Therefore it is crucial that you unpack the source tree from the WSL bash using the WSL tar utility and not using other Windows tools (including mingw). Likewise, when using git, it is recommended (but not necessary) to use the WSL version of git.

  3. [Linux, WSL] Install the required minimal build prerequisites.

    • Compilers: gcc, gfortran, g++ (GCC 8.x to 12.x and recent versions of Clang (LLVM) are supported). See build/pkgs/gcc/SPKG.rst and build/pkgs/gfortran/SPKG.rst for a discussion of suitable compilers.

    • Build tools: GNU make, GNU m4, perl (including ExtUtils::MakeMaker), ranlib, git, tar, bc. See build/pkgs/_prereq/SPKG.rst for more details.

    • Python 3.4 or later, or Python 2.7, a full installation including urllib; but ideally version 3.8.x, 3.9.x, or 3.10.x, which will avoid having to build Sage's own copy of Python 3. See build/pkgs/python3/SPKG.rst for more details.

    We have collected lists of system packages that provide these build prerequisites. See, in the folder build/pkgs/_prereq/distros, the files arch.txt, debian.txt (also for Ubuntu, Linux Mint, etc.), fedora.txt (also for Red Hat, CentOS), opensuse.txt, slackware.txt, and void.txt, or visit https://doc.sagemath.org/html/en/reference/spkg/_prereq.html#spkg-prereq

  4. [Git] If you plan to do Sage development or otherwise work with ticket branches and not only releases, install the bootstrapping prerequisites. See the files in the folder build/pkgs/_bootstrap/distros, or visit https://doc.sagemath.org/html/en/reference/spkg/_bootstrap.html#spkg-bootstrap

  5. [Git] If you cloned the Sage repository using git, bootstrap the source tree using the following command:

    $ make configure
    

    (If the bootstrapping prerequisites are not installed, this command will download a package providing pre-built bootstrap output instead.)

  6. Sanitize the build environment. Use the command

    $ env
    

    to inspect the current environment variables, in particular PATH, PKG_CONFIG_PATH, LD_LIBRARY_PATH, CFLAGS, CPPFLAGS, CXXFLAGS, and LDFLAGS (if set).

    Remove items from these (colon-separated) environment variables that Sage should not use for its own build. In particular, remove items if they refer to a previous Sage installation.

    • [WSL] In particular, WSL imports many items from the Windows PATH variable into the Linux environment, which can lead to confusing build errors. These items typically start with /mnt/c. It is best to remove all of them from the environment variables. For example, you can set PATH using the command:

        $ export PATH=/usr/sbin/:/sbin/:/bin/:/usr/lib/wsl/lib/
      
    • [macOS with homebrew] Set required environment variables for the build:

        $ source ./.homebrew-build-env
      

      This is to make some of Homebrew's packages (so-called keg-only packages) available for the build. Run it once to apply the suggestions for the current terminal session. You may need to repeat this command before you rebuild Sage from a new terminal session, or after installing additional homebrew packages. (You can also add it to your shell profile so that it gets run automatically in all future sessions.)

  7. Optionally, decide on the installation prefix (SAGE_LOCAL):

    • Traditionally, and by default, Sage is installed into the subdirectory hierarchy rooted at SAGE_ROOT/local/.

    • This can be changed using ./configure --prefix=SAGE_LOCAL, where SAGE_LOCAL is the desired installation prefix, which must be writable by the user.

      If you use this option in combination with --disable-editable, you can delete the entire Sage source tree after completing the build process. What is installed in SAGE_LOCAL will be a self-contained installation of Sage.

    • Note that in Sage's build process, make builds and installs (make install is a no-op). Therefore the installation hierarchy must be writable by the user.

    • See the installation manual for options if you want to install into shared locations such as /usr/local/. Do not attempt to build Sage as root.

  8. Optional: It is recommended that you have both LaTeX and the ImageMagick tools (e.g. the "convert" command) installed since some plotting functionality benefits from them.

  9. Optionally, review the configuration options, which includes many optional packages:

    $ ./configure --help
    

    A notable option for Sage developers is the following:

    • Use ./configure --enable-download-from-upstream-url to allow downloading packages from their upstream URL if they cannot (yet) be found on the Sage mirrors. This is useful for trying out ticket branches that make package upgrades.
  10. Optional, but highly recommended: Set some environment variables to customize the build.

    For example, the MAKE environment variable controls whether to run several jobs in parallel. On a machine with 4 processors, say, typing export MAKE="make -j4" will configure the build script to perform a parallel compilation of Sage using 4 jobs. On some powerful machines, you might even consider -j16, as building with more jobs than CPU cores can speed things up further.

    To reduce the terminal output during the build, type export V=0. (V stands for "verbosity".)

    Some environment variables deserve a special mention: CC, CXX and FC. These variables defining your compilers can be set at configuration time and their values will be recorded for further use at build time and runtime.

    For an in-depth discussion of more environment variables for building Sage, see the installation guide.

  11. Type ./configure, followed by any options that you wish to use. For example, to build Sage with gf2x package supplied by Sage, use ./configure --with-system-gf2x=no.

    At the end of a successful ./configure run, you may see messages recommending to install extra system packages using your package manager.

    For a large list of Sage packages, Sage is able to detect whether an installed system package is suitable for use with Sage; in that case, Sage will not build another copy from source.

    Sometimes, the messages will recommend to install packages that are already installed on your system. See the earlier configure messages or the file config.log for explanation. Also, the messages may recommend to install packages that are actually not available; only the most recent releases of your distribution will have all of these recommended packages.

  12. Optional: If you choose to install the additional system packages, a re-run of ./configure will test whether the versions installed are usable for Sage; if they are, this will reduce the compilation time and disk space needed by Sage. The usage of packages may be adjusted by ./configure parameters (check again the output of ./configure --help).

  13. Type make. That's it! Everything is automatic and non-interactive.

    If you followed the above instructions, in particular regarding the installation of system packages recommended by the output of ./configure (step 10), and regarding the parallel build (step 9), building Sage takes less than one hour on a modern computer. (Otherwise, it can take much longer.)

    The build should work fine on all fully supported platforms. If it does not, we want to know!

  14. Type ./sage to try it out. In Sage, try for example 2 + 2, plot(x^2), plot3d(lambda x, y: x*y, (-1, 1), (-1, 1)) to test a simple computation and plotting in 2D and 3D. Type Ctrl+D or quit to quit Sage.

  15. Optional: Type make ptestlong to test all examples in the documentation (over 200,000 lines of input!) -- this takes from 10 minutes to several hours. Don't get too disturbed if there are 2 to 3 failures, but always feel free to email the section of logs/ptestlong.log that contains errors to the sage-support mailing list. If there are numerous failures, there was a serious problem with your build.

  16. The HTML version of the documentation is built during the compilation process of Sage and resides in the directory local/share/doc/sage/html/. You may want to bookmark it in your browser.

  17. Optional: If you want to build the PDF version of the documentation, run make doc-pdf (this requires LaTeX to be installed).

  18. Optional: Install optional packages of interest to you: get a list by typing ./sage --optional or by visiting the packages documentation page.

  19. Optional: Create a symlink to the installed sage script in a directory in your PATH, for example /usr/local. This will allow you to start Sage by typing sage from anywhere rather than having to either type the full path or navigate to the Sage directory and type ./sage. This can be done by running:

    $ sudo ln -s $(./sage -sh -c 'ls $SAGE_ROOT/venv/bin/sage') /usr/local/bin
    
  20. Optional: Set up SageMath as a Jupyter kernel in an existing Jupyter notebook or JupyterLab installation, as described in section "Launching SageMath" in the installation manual.

Alternative Installation using PyPI

For installation of sage in python using pip you need to install sagemath-standard. First, activate your python virtual environment and follow these steps:

        $ python3 -m pip install sage_conf
        $ ls $(sage-config SAGE_SPKG_WHEELS)
        $ python3 -m pip install $(sage-config SAGE_SPKG_WHEELS)/*.whl 
        $ python3 -m pip install sagemath-standard

You need to install sage_conf, a wheelhouse of various python packages. You can list the wheels using ls $(sage-config SAGE_SPKG_WHEELS). After manual installation of these wheels, you can install the sage library, sagemath-standard.

NOTE: You can find sage and sagemath pip packages but with these packages, you will encounter ModuleNotFoundError.

SageMath Docker images

Docker Status

SageMath is available on Docker Hub and can be downloaded by:

docker pull sagemath/sagemath

Currently, only stable versions are kept up to date.

Troubleshooting

If you have problems building Sage, check the Sage Installation Guide, as well as the version-specific Sage Installation FAQ in the Sage Release Tour corresponding to the version that you are installing.

Please do not hesitate to ask for help in the SageMath forum or the sage-support mailing list. The Troubleshooting section in the Sage Installation Guide provides instructions on what information to provide so that we can provide help more effectively.

Contributing to Sage

If you'd like to contribute to Sage, we strongly recommend that you read the Developer's Guide.

Sage has significant components written in the following languages: C/C++, Python, Cython, Common Lisp, Fortran, and a bit of Perl.

Directory Layout

Simplified directory layout (only essential files/directories):

SAGE_ROOT                 Root directory (sage-x.y in Sage tarball)
β”œβ”€β”€ build
β”‚   └── pkgs              Every package is a subdirectory here
β”‚       β”œβ”€β”€ 4ti2/
β”‚       …
β”‚       └── zlib/
β”œβ”€β”€ configure             Top-level configure script
β”œβ”€β”€ COPYING.txt           Copyright information
β”œβ”€β”€ pkgs                  Source trees of Python distribution packages
β”‚   β”œβ”€β”€ sage-conf
β”‚   β”‚   β”œβ”€β”€ sage_conf.py
β”‚   β”‚   └── setup.py
β”‚   β”œβ”€β”€ sage-docbuild
β”‚   β”‚   β”œβ”€β”€ sage_docbuild/
β”‚   β”‚   └── setup.py
β”‚   β”œβ”€β”€ sage-setup
β”‚   β”‚   β”œβ”€β”€ sage_setup/
β”‚   β”‚   └── setup.py
β”‚   β”œβ”€β”€ sage-sws2rst
β”‚   β”‚   β”œβ”€β”€ sage_sws2rst/
β”‚   β”‚   └── setup.py
β”‚   └── sagemath-standard
β”‚       β”œβ”€β”€ bin/
β”‚       β”œβ”€β”€ sage -> ../../src/sage
β”‚       └── setup.py
β”œβ”€β”€ local  (SAGE_LOCAL)   Installation hierarchy for non-Python packages
β”‚   β”œβ”€β”€ bin               Executables
β”‚   β”œβ”€β”€ include           C/C++ headers
β”‚   β”œβ”€β”€ lib               Shared libraries, architecture-dependent data
β”‚   β”œβ”€β”€ share             Databases, architecture-independent data, docs
β”‚   β”‚   └── doc           Viewable docs of Sage and of some components
β”‚   └── var
β”‚       β”œβ”€β”€ lib/sage
β”‚       β”‚   β”œβ”€β”€ installed/
β”‚       β”‚   β”‚             Records of installed non-Python packages
β”‚       β”‚   β”œβ”€β”€ scripts/  Scripts for uninstalling installed packages
β”‚       β”‚   └── venv-python3.9  (SAGE_VENV)
β”‚       β”‚       β”‚         Installation hierarchy (virtual environment)
β”‚       β”‚       β”‚         for Python packages
β”‚       β”‚       β”œβ”€β”€ bin/  Executables and installed scripts
β”‚       β”‚       β”œβ”€β”€ lib/python3.9/site-packages/
β”‚       β”‚       β”‚         Python modules/packages are installed here
β”‚       β”‚       └── var/lib/sage/
β”‚       β”‚           └── wheels/
β”‚       β”‚                 Python wheels for all installed Python packages
β”‚       β”‚
β”‚       └── tmp/sage/     Temporary files when building Sage
β”œβ”€β”€ logs
β”‚   β”œβ”€β”€ install.log       Full install log
β”‚   └── pkgs              Build logs of individual packages
β”‚       β”œβ”€β”€ alabaster-0.7.12.log
β”‚       …
β”‚       └── zlib-1.2.11.log
β”œβ”€β”€ m4                    M4 macros for generating the configure script
β”‚   └── *.m4
β”œβ”€β”€ Makefile              Running "make" uses this file
β”œβ”€β”€ prefix -> SAGE_LOCAL  Convenience symlink to the installation tree
β”œβ”€β”€ README.md             This file
β”œβ”€β”€ sage                  Script to start Sage
β”œβ”€β”€ src                   Monolithic Sage library source tree
β”‚   β”œβ”€β”€ bin/              Scripts that Sage uses internally
β”‚   β”œβ”€β”€ doc/              Sage documentation sources
β”‚   └── sage/             The Sage library source code
β”œβ”€β”€ upstream              Source tarballs of packages
β”‚   β”œβ”€β”€ Babel-2.9.1.tar.gz
β”‚   …
β”‚   └── zlib-1.2.11.tar.gz
β”œβ”€β”€ venv -> SAGE_VENV     Convenience symlink to the virtual environment
└── VERSION.txt

For more details see our Developer's Guide.

Build System

This is a brief summary of the Sage software distribution's build system. There are two components to the full Sage system--the Sage Python library and its associated user interfaces, and the larger software distribution of Sage's main dependencies (for those dependencies not supplied by the user's system).

Sage's Python library is built and installed using a setup.py script as is standard for Python packages (Sage's setup.py is non-trivial, but not unusual).

Most of the rest of the build system is concerned with building all of Sage's dependencies in the correct order in relation to each other. The dependencies included by Sage are referred to as SPKGs (i.e. "Sage Packages") and are listed under build/pkgs.

The main entrypoint to Sage's build system is the top-level Makefile at the root of the source tree. Unlike most normal projects that use autoconf (Sage does as well, as described below), this Makefile is not generated. Instead, it contains a few high-level targets and targets related to bootstrapping the system. Nonetheless, we still run make <target> from the root of the source tree--targets not explicitly defined in the top-level Makefile are passed through to another Makefile under build/make/Makefile.

The latter build/make/Makefile is generated by an autoconf-generated configure script, using the template in build/make/Makefile.in. This includes rules for building the Sage library itself (make sagelib), and for building and installing each of Sage's dependencies (e.g. make gf2x).

The configure script itself, if it is not already built, can be generated by running the bootstrap script (the latter requires GNU autotools being installed). The top-level Makefile also takes care of this automatically.

To summarize, running a command like make python3 at the top-level of the source tree goes something like this:

  1. make python3
  2. run ./bootstrap if configure needs updating
  3. run ./configure with any previously configured options if build/make/Makefile needs updating
  4. change directory into build/make and run the install script--this is little more than a front-end to running make -f build/make/Makefile python3, which sets some necessary environment variables and logs some information
  5. build/make/Makefile contains the actual rule for building python3; this includes building all of python3's dependencies first (and their dependencies, recursively); the actual package installation is performed with the sage-spkg program

Relocation

It is not supported to move the SAGE_ROOT or SAGE_LOCAL directory after building Sage. If you do move the directories, you will have to run make distclean and build Sage again from scratch.

For a system-wide installation, you have to build Sage as a "normal" user and then as root you can change permissions. See the Installation Guide for further information.

Redistribution

Your local Sage install is almost exactly the same as any "developer" install. You can make changes to documentation, source, etc., and very easily package the complete results up for redistribution just like we do.

  1. To make a binary distribution with your currently installed packages, visit sagemath/binary-pkg.

  2. To make your own source tarball of Sage, type:

    $ make dist
    

    The result is placed in the directory dist/.

Changes to Included Software

All software included with Sage is copyrighted by the respective authors and released under an open source license that is GPL version 3 or later compatible. See COPYING.txt for more details.

Sources are in unmodified (as far as possible) tarballs in the upstream/ directory. The remaining description, version information, patches, and build scripts are in the accompanying build/pkgs/<packagename> directory. This directory is part of the Sage git repository.

More Repositories

1

sage-archive-2023-02-01

This repository used to be the user-facing mirror of the Sage source tree. As Sage development migrated on 2023-02-01 from https://trac.sagemath.org/ to our new repository on GitHub, https://github.com/sagemath/sage, we have renamed and archived this repository.
Python
2,015
star
2

sage-windows-cygwin

Build tools for the Sagemath Windows installer
Shell
350
star
3

sagecell

The Sage Cell Server---providing a way to embed Sage computations into any web page.
Python
202
star
4

cloud

*MOVED TO* https://github.com/sagemathinc/cocalc
JavaScript
137
star
5

sagenb

Sage Notebook (flask), docs in $SAGE_LOCAL/share/doc/sagenb/index.html
Python
116
star
6

sage-shell-mode

Emacs front end for SageMath
Emacs Lisp
102
star
7

android

Sage's Android App (GSoC 2014)
Java
73
star
8

sagetex

Embed code, results of computations, and plots from the Sage mathematics software suite (https://www.sagemath.org) into LaTeX documents. Source repository for https://pypi.org/project/sagetex/ and https://ctan.org/pkg/sagetex
TeX
58
star
9

docker-images

Dockerfiles for Sage
Makefile
54
star
10

cysignals

cysignals: interrupt and signal handling for Cython. Source repository for https://pypi.org/project/cysignals/
Cython
43
star
11

website

Source for https://www.sagemath.org/; submit Issues/PRs here to update the website
HTML
39
star
12

sagelib

Git mirror of http://hg.sagemath.org/sage-main/
Python
38
star
13

ob-sagemath

org-babel integration with SageMath
Emacs Lisp
34
star
14

sagemath.github.io

Hosting https://www.sagemath.org files; send Issues/PRs to repositories https://github.com/sagemath/website, https://github.com/sagemath/publications, not this one here!
HTML
34
star
15

more-sagemath-tutorials

More SageMath Tutorials: A place to share and evolve tutorials for Sage, with the aim to contribute them to Sage
Jupyter Notebook
32
star
16

cypari2

Python interface to the number theory library PARI/GP. Source repository for https://pypi.org/project/cypari2/
Cython
30
star
17

sage-binder-env

A Binder repo for SageMath computing environment
Jupyter Notebook
27
star
18

publications

Source for https://www.sagemath.org/library-publications.html; submit Issues/PRs here to add/update citations of documents citing Sage
TeX
24
star
19

sage_sample

A sample project illustrating how to write and distribute SageMath extensions
Python
17
star
20

binary-pkg

Tools for creating binary tarballs
Python
14
star
21

git-trac-command

A "git trac" subcommand for git
Python
13
star
22

pari-jupyter

Jupyter kernel for PARI/GP. Source repository for https://pypi.org/project/pari-jupyter/
JavaScript
11
star
23

sagetrac-mirror

Archive of the git branches attached to tickets on https://trac.sagemath.org/ before the migration to GitHub (Jan 30, 2023)
Python
11
star
24

documentation

Only hosting https://doc.sagemath.org/ files. Updates to the documentation must be made with PRs to https://github.com/sagemath/sage, not here.
HTML
11
star
25

sage-workflow

script(s) to help with the transition to a single Sage repository
Python
10
star
26

git-developer-guide

Git version of the Sage developer manual
Python
10
star
27

sage-combinat-widgets

A collection of Jupyter widgets for combinatorial objects in SageMath
Python
8
star
28

sage-patchbot

Sage Patchbot
Python
8
star
29

auto-complete-sage

An auto-complete source for sage-shell-mode
Emacs Lisp
8
star
30

FlintQS

Quadratic Sieve
C++
8
star
31

memory_allocator

Cython extension class to allocate memory. Source repository for https://pypi.org/project/memory-allocator/
Cython
8
star
32

grant-europe

The H2020 Grant proposal.
TeX
7
star
33

pplpy

Python wrapper to the PPL library. Source repository for https://pypi.org/project/pplpy/
Cython
7
star
34

sage-explorer

A Jupyter widget for exploring SageMath objects
Python
6
star
35

sagesmc

The git repo for the SageMathCloud's system-wide Sage install
Python
6
star
36

threejs-sage

Custom build of Three.js for SageMath
6
star
37

sage-numerical-backends-gurobi

Gurobi mixed integer linear programming backend for SageMath. Source repository for https://pypi.org/project/sage-numerical-backends-gurobi/, can be installed on top of distributions providing SageMath. See also https://github.com/sagemath/sage-numerical-backends-cplex and https://github.com/sagemath/sage-numerical-backends-coin
Cython
6
star
38

helm-sage

A helm extension for sage-shell-mode
Emacs Lisp
5
star
39

strongly_regular_graphs_database

A database of strongly regular graphs for Sage
Python
5
star
40

sage-package

Utilities for authoring packages for SageMath. Source repository for https://pypi.org/project/sage-package/
HTML
5
star
41

sage_trac_plugin

Trac plugin used to support Sage development at trac.sagemath.org
Python
5
star
42

office-hours

Virtual office hours on youtube -- notes
4
star
43

sage-migration-preview-2023-02-02

Preview of the import of Trac tickets using https://github.com/sagemath/trac-to-github
4
star
44

p_group_cohomology

Sage package for computing modular cohomology rings of finite groups
Cython
4
star
45

planet

planet.sagemath.org: source in master, files in gh-pages
Python
4
star
46

modular_resolution

modular_resolution, a C library part of p_group_cohomology
Shell
4
star
47

pari-utils

Utility tools for PARI/GP
Python
3
star
48

anything-sage

An anything extension for sage-shell-mode
Emacs Lisp
3
star
49

database_stein_watkins

The Stein-Watkins database of elliptic curves
3
star
50

artwork

collection of various graphics related to SageMath
3
star
51

sage-numerical-backends-coin

COIN-OR mixed integer linear programming backend for SageMath. Source repository for https://pypi.org/project/sage-numerical-backends-coin/, can be installed on top of distributions providing SageMath. See also https://github.com/sagemath/sage-numerical-backends-gurobi and https://github.com/sagemath/sage-numerical-backends-cplex
Cython
3
star
52

sage_trac

Python
2
star
53

trac-githooks

Python
2
star
54

sage-numerical-backends-cplex

CPLEX mixed integer linear programming backend for SageMath. Source repository for https://pypi.org/project/sage-numerical-backends-cplex/, can be installed on top of distributions providing SageMath. See also https://github.com/sagemath/sage-numerical-backends-coin and https://github.com/sagemath/sage-numerical-backends-gurobi
Cython
2
star
55

utmost-website

UTMOST Website
Python
2
star
56

codemirror-sage-mode

for developing a codemirror sage mode
1
star
57

company-sage

Emacs Lisp
1
star
58

combinat

Website combinat.sagemath.org (redirect to https://wiki.sagemath.org/combinat)
HTML
1
star
59

files

skeleton repo for served files on the mirror network
1
star
60

asv-data

Collects doctest timings from the Sage repository for speed regression testing with Airspeed Velocity
1
star
61

giac

Fork of https://salsa.debian.org/science-team/giac for the purpose of tracking the upstream Giac sources at http://www-fourier.ujf-grenoble.fr/~parisse/debian/dists/stable/main/source – branch sagemath adds integration testing with SageMath on GH Actions
C++
1
star
62

trac.sagemath.org

GitHub pages for redirecting trac.sagemath.org to the new sagemath/sage GitHub repo
HTML
1
star
63

cloud.sagemath.org

redirect to cocalc
HTML
1
star
64

sage-wheels

Prebuilt wheels of the SageMath distribution
1
star
65

sage-release-management

Utility scripts for release managements
Python
1
star
66

binary-pkg-test

Test for the binary-pkg repo
C++
1
star
67

trac-dump

dump of sage's trac database
1
star
68

sagewiki_to_gh-2022-10-10

Output from the sagewiki-to-github migration script with input = an archive of https://wiki.sagemath.org/ from October 2022
Jupyter Notebook
1
star
69

conway-polynomials

Python interface to Frank LΓΌbeck's Conway polynomial database
Python
1
star