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
- Create a new class, create a fast new C library, etc.
This document describes how to write programs using Sage, how to modify
and extend the core Sage libraries, and how to modify Sage’s
documentation. We also discuss how to share your new and modified code
with other Sage users around the globe.
All development takes place on or via the Sage Trac server,
including bug reports, fixes, new functionality, and discussions about
approaches to particular tickets. Once you start writing code for Sage,
you will want to carefully read
conventions and guidelines we use.
Depending on your previous knowledge, there are several places you can
start learning about the source code revision control process.
- First, although it is possible to try out bugfixes and explore the
code without having a developer account (see Readonly Access), it is best to acquire a Trac
account first, then configure git for use with Trac.
- An overview of the Sage development process, assuming you have git
installed and know the basics of how to use it, is in the concise
- More advanced tricks and tips for
git are linked below.
- For those unfamiliar with revision control, please start by reading
about collaborative development with Git-Trac,
which provides some easier interface with git and Trac, both for newbies
and power users.
- Alternately, one can do certain amounts of Sage development without
having git installed, by using Sage’s own internal installation of git
and the Sage dev scripts. This is mainly
intended as a bridge to full use of git once one becomes more comfortable
with the system.
- Finally, if you’ve never worked on software before, don’t forget you
will need the prerequisites to compile
in order to make your changes in the source code work.
No matter where you start, good luck and welcome to Sage development!
Walk-Through and First Steps
Sage Notebook Developer Guide