wiki:WikiStart

SageMath Development Organization Page (archived)

SageMath is free and open software that supports research and teaching in algebra, geometry, number theory, cryptography, etc. Both the SageMath development model and the technology in SageMath itself are distinguished by an extremely strong emphasis on openness, community, cooperation, and collaboration: we are building the car, not reinventing the wheel. View our Code of Conduct.

SageMath is moving to GitHub: Jan 30 to Feb 4, 2023

As announced on sage-devel:

  1. Starting Monday Jan 30, 2023 at 13:00 UTC, the Trac website and the Trac git server will be temporarily offline.
  1. By Monday Jan 30, 2023 at 23:00 UTC, the Trac website is planned to be available again, but in public read-only mode only.
    • Logins to the Trac website, whether by Trac account or by GitHub credentials, will no longer work.
    • It will no longer be possible to use SSH to access the Trac git server. In particular, it will no longer be possible to push to the Trac git server.
    • You can continue to make commits on your computer.
  1. By Saturday Feb 4, 2023 at 23:00 UTC, the migration to the SageMath organization on GitHub is planned to be completed.

The information below is outdated and is preserved for archival purposes only.

Getting started (obsolete)

The Sage Trac server (this web page) manages tickets, the equivalents of Issues and Pull Requests (PRs). In addition to bug reports, also ideas for features to add to SageMath are appropriate as tickets.

To create tickets, add comments on tickets, and edit wiki pages on this site, you need either a GitHub account or a legacy sage-trac account.

Users with GitHub accounts should use the GitHub Login link. (If you do not have an account on GitHub yet, choose a user name and create a GitHub account.)

Users with legacy sage-trac accounts (account names not starting with "gh-") should use the Login link. Do not to use GitHub login, as it will be treated as a separate user from their original account (unless you actively prefer to switch).

The Help/Guide link in the top right corner provides help with the Trac server.

Reporting a bug (obsolete)

Please help SageMath development by reporting bugs that you encounter, no matter how trivial. If you need to open a ticket, please use the {{{ and }}} tags to add code snippets and SageMath session transcripts. For example:

Markup Displays as
{{{
sage: 1 + 2
3
}}}
sage: 1 + 2
3

You can also use backticks (`) to demarcate inline code snippets, etc. This is useful around names like DiGraph to avoid an automatic wikilink (DiGraph?), like so: `DiGraph`.

SageMath makes use of many upstream projects, which have their own bug tracking pages. A selection: Cython, fflas-ffpack, GAP, GCC (instructions), Givaro, JMol, LinBox, Maxima, Numpy, PARI/GP (instructions), Python, Singular.

Following the pulse of development (obsolete)

Follow the Trac development timeline or active tickets by time, or view other ticket reports.

Help by reviewing Tickets needing review (see checklist).

Catch up on Open tickets you've participated in or make a Custom query.

Contribute to the Release notes for the current development series by collaborative editing.

Explore the Open meta-tickets on larger tasks or topical pages on Algebra, Coding Theory, Combinatorics, Manifolds, Optimization, Polyhedral Geometry, Symbolics.

Discuss in sage-devel or one of our other development groups.

Contributing by working on tickets (obsolete)

Our FAQ on contributing to SageMath will take you to sections Working on tickets and Working with git in the Developer's Guide. Make sure you understand the review process, and the procedures for opening and closing tickets.

When opening a ticket to make a feature request or to plan a project, you may find our Feature request guidelines helpful.

After pushing a branch to a ticket, the ticket will show badges linking to results of automated tests that run on the patchbot and other tests that run on GitHub Actions.

Surveying the mathematical software landscape

The SageMath project is a major integrating force in the math software landscape. Follow the ticket numbers to see how you can help; for example, by surveying software, building or extending interfaces, or contributing to distribution packaging.

In the SageMath distribution Not in the SageMath distribution
Unused math software SymEngine, cocoalib, isl, CyLP, ... #33773 sagemath.org links, Open-source CAS, SoftwareToIntegrate, SoftwareSurveys #33725, Python optimization packages #26511, polyhedral geometry packages, swMATH.org, math databases #30914
Upstream non-Python math software Packages: GMP, FLINT #31408, arb, Singular, GAP, PARI, Maxima, R, FPLLL, LinBox, GSL, polymake, ... Free software that Sage interfaces to: Macaulay2, Octave, ...; Non-free software that Sage interfaces to: Magma, Maple, Mathematica, CPLEX, Gurobi, SCIP, ...
Upstream Python math software Packages: NumPy, SciPy, SymPy, CVXOPT, NetworkX, ...
Upstream distributions Distributions providing system packages: homebrew, conda-forge, archlinux, ... #27330
Absorbed libraries GiNaC/Pynac #33401, giacpy, sage_brial
SageMath library Source: sage.algebras.*, sage.categories.*, sage.combinat.*, sage.crypto.*, sage.geometry.*, sage.graphs.*, sage.groups.*, sage.manifolds.*, sage.modular.*, sage.rings.*, sage.schemes.*, sage.symbolic.*, sage.tensor.*, sage.topology.*, ...
Absorbed SageMath extensions Sage-Combinat, SageManifolds
Downstream software SageTeX, In-distribution Sage user packages: admcycles, sage-flatsurf, ... External Sage user packages #31164, GAP-homalg
User interfaces Jupyter, JupyterLab #30399 Emacs sage-shell-mode, Interfaces, IDEs #30500
Downstream distributions SageMath distribution #33774, Sage Docker images, modularized distributions on PyPI #29705, wheels #31251 Distributions carrying SageMath: conda-forge, archlinux, debian/ubuntu, fedora, sage-on-gentoo, nix, voidlinux, ... #33775; Third-party Docker images
Downstream deployments Gitpod #33113 Running SageMath in the cloud: CoCalc, SageCell, Binder
Downstream of downstream Devcontainers #33671, #34363

This table is being moved to the Sage developer's guide in #34526; do not edit.

Maintaining the social and technical infrastructure

Participate in or help organize Workshops and other activities, or contribute to the Sage community by answering questions.

You can also help maintain the Technical project infrastructure.

Additional formatting hints (obsolete)

You can enable syntax highlighting in these code snippets by using a hashbang (#!) followed by the name of the syntax. This also makes inline diff viewers if you choose the syntax name diff.

Markup Displays as
{{{
#!python
def spam ():
    eggs = 3
    return 1
pine_for_fjords()
}}}
def spam ():
    eggs = 3
    return 1
pine_for_fjords()
{{{
#!diff
foo

diff --git a/bar b/bar
--- a/bar
+++ b/bar
@@ -1,2 +1,3 @@
 baz
 quux
+xyzzy
}}}
  • bar

    foo
    
    diff --git a/bar b/bar
    a b  
    11baz
    22quux
     3xyzzy

To avoid an automatic wikilink for non-code names like GitHub, prepend it with an exclamation mark: !GitHub. See WikiFormatting for more information.

Account Names Mapped to Real Names (obsolete)

The list of over 600 account holders in Sage's Trac that was here is now merged to the contributors.xml through Github PR. The merged developers list is at SageMath developer world map.

Legacy sage-trac Account Request for editing the SageMath Wiki

If you need to edit the SageMath Wiki, you may request a local account on this site, by reading the trac guidelines, then sending an email to sage-trac-account AT googlegroups DOT com that contains all of the following:

  • your full name
  • the default username is the first letter of the name followed by the family name (i.e. mjohnson for Mike Johnson). If you really want something else you can make a reasonable suggestion some examples
  • contact email
Last modified 9 days ago Last modified on Jan 30, 2023, 6:17:45 AM

Attachments (1)

Download all attachments as: .zip