Information for Developers

SageMath is an open-source project and has a very welcoming developer community. We invite newcomers to help improve the code or contribute in other ways. A good start is the SageMath Developer's Guide and the SageMath FAQ.

Our mission is:
Creating a viable free open source alternative to
Magma, Maple, Mathematica and Matlab.


SageMath can give students and other contributors a wonderful experience in developing in a large-scale, supportive, and rigorous environment. All code is peer-reviewed, all functions must be documented and unit-tested on a variety of platforms and systems. Python is used as a base language, Mercurial is used as the source code revision system, and Trac is used to track all support/development issues. All of these tools are very capable and used in many other small and large-scale projects. The mailing lists are extremely supportive and responsive, as is the highly active IRC channel. There are around 150 people that have contributed code directly to SageMath, including many leaders in mathematics, as well as professionals (e.g., one main developer is a retired Apple kernel engineer, another works at machine vision company in Seattle, etc.), graduate students, and undergraduate students. There are releases about every 3-4 weeks, under the attitude of "release early, release often", so students could see their code in the real live software several times before the semester is over. Contributions of all sorts are heartily welcomed, but attention is paid to making sure that the system does not become bloated and disorganized. The mission statement allows for a very wide variety of contributions. From a software engineering standpoint, SageMath is a wonderful project to be engaged in.

Contributing to Sage

Contributing to SageMath from William Stein on Vimeo.

This is a video that describes how to contribute to the SageMath ( project, and includes many sources of ideas. [download presentation (pdf), download video (m4v)]