Welcome to the Sage Developer’s Guide!

Everybody who uses Sage is encouraged to contribute something back to Sage at some point. You could:

  • Add examples to the documentation

  • Find bugs or typos

  • Fix a bug

  • Implement a new function

  • Contribute a useful tutorial for a mathematical topic

  • Translate an existing document to a new language

  • Create a new class, create a fast new C library, etc.

This document tells you what you need to know to do all the above, from reporting bugs to modifying and extending Sage and its documentation. We also discuss how to share your new and modified code with other Sage users around the globe.

Here are brief overviews of each part; for more details, see the extended table of contents below. No matter where you start, good luck and welcome to Sage development!

Git for Sage development

First Steps with Git

Sage uses git for version control.

The git-trac command

Putting your local changes on a Trac ticket.

Git Tricks & Tips

When git trac is not enough.

Sage Trac and tickets

All changes to Sage source code require a ticket on the Sage trac server.

Writing Code for Sage

Running Sage’s tests

Testing on multiple platforms

Additional development and testing tools

Contributing to Manuals and Tutorials

Sage Coding Details

Packaging the Sage Library

Packaging Third-Party Code

Indices and tables

This work is licensed under a Creative Commons Attribution-Share Alike 3.0 License.