Skip to content
Matthias Köppe edited this page Jul 10, 2024 · 31 revisions

Application for NumFOCUS affiliation of SageMath

sage-devel post Jan 13, 2024 with draft application, links to previous discussions.

Expanded below. Next target date: Apr 15, 2024

Q1: Does your project have a contributor Code of Conduct?

Yes

Q2: What is the name of your project?

SageMath

Q3: Please provide the url of your project's (primary) repo:

https://github.com/sagemath/sage

Q4: Your project's website:

https://www.sagemath.org/

Q5: Please provide a summary description of your project in a few sentences:

SageMath is a comprehensive mathematical software system, developed since 2005. Its scope ranges from general untyped symbolic computation to research-level computational tools in numerous areas of mathematics. Sage makes use of hundreds of third-party, separately maintained packages written either in Python/Cython or in other languages (C, C++, Common Lisp). The Sage library consists of about 3000 first-party Python and Cython modules.

Q6: Does your project have a logo?

Yes

Q7: Please upload a .svg file of your project's logo. A "square" format is best.

982721.png

Q8: Your project's Twitter handle or other social media handles/urls:

https://twitter.com/sagemath, https://mathstodon.xyz/@sagemath, https://www.facebook.com/pages/Sage-Math/26593144945,

Q9: Why do you want your project to join NumFOCUS?

Our project will benefit from engaging closely with projects and organizations that have modern open-source governance structures.

Our project, although based on Python, was for most of its existence designed and maintained as a standalone application with its own separate ecosystem. In the past few years, however, our project has worked on transforming itself to a system of reusable Python libraries. To advertise this successful transition and new development focus of the project, the NumFOCUS Affiliation will be most valuable for our project.

Q10: Are you applying for Fiscal Sponsorship or Affiliation? For more information, see https://numfocus.org/projects-overview

B. affiliation

Q11: Integration with the existing ecosystem of NumFOCUS tools

Cython, CVXpy, igraph, IPython, Jupyter, Matplotlib, NetworkX, NumPy, SciPy, SymPy are dependencies of SageMath. Additionally, volunteers maintain conda-forge packaging of SageMath.

Details: Integration with NumFOCUS Sponsored Projects

The sponsored projects IPython, Jupyter, Matplotlib, NetworkX, NumPy, SciPy, SymPy are dependencies of SageMath. Additionally, volunteers maintain conda-forge packaging of SageMath.

IPython and Project Jupyter are essential dependencies of SageMath.

Possible future integration with scikit-image

  • #37494 add scikit-image as a Sage package
  • Examples using scikit-image could refresh some SageMath tutorials, for example on linear algebra

Details: Integration with NumFOCUS Affiliated Projects

The affiliated projects CVXPY, Cython, igraph are dependencies of SageMath.

Cython is an essential dependency of SageMath:

Possible integration with Spack, package manager for HPC systems:

  • This could improve the reach of SageMath to use on HPC systems, although viable alternatives such as conda-forge exist.
  • Using Spack Packages as an upstream for SageMath's dependencies:
    • Add system package information files SAGE_ROOT/build/pkgs/*/distros/spack.txt
    • Add portability tests for building in Spack environments, e.g. based on spack containerize
  • Downstream packaging of SageMath in Spack Packages: Various dependencies of SageMath already exist but are not up to date (e.g. gmp, suite-sparse) and are marked as "looking for a maintainer".

Q12: Describe how your project furthers the NumFOCUS mission: https://numfocus.org/community/mission

SageMath is mathematical software with an integration mission. SageMath brings together many different projects under a high-level mathematical interface and rigorously tests and documents the interplay between different implementations and the mathematical abstractions and applications.

Q13(new): Please list your project's maintainers (i.e., anyone with write access to the repository).

  1. their username on the repository hosting service (e.g., Github, Gitlab, or Bitbucket);
  2. their affiliations (e.g., UC Berkeley or Argonne National Labs); and
  3. the date of their last commit to the codebase.
  • Matthias Köppe, @mkoeppe, UC Davis, 2024-04-13
  • Frédéric Chapoton, @fchapoton, Université de Strasbourg, 2024-04-10
  • Volker Braun, @vbraun, Talque.com, 2024-04-07
  • Julian Rüth, @saraedum, Miaplaza Inc., 2024-04-04
  • Travis Scrimshaw, @tscrim, Hokkaido University, 2024-04-03
  • Kwankyu Lee, @kwankyu, Chosun University, 2024-03-29
  • John H. Palmieri, @jhpalmieri, University of Washington, 2024-03-27
  • David Roe, @roed314, MIT, 2023-03-03
  • Nicolas M. Thiéry, @nthiery, Université Paris Saclay, 2022-03-09
  • William Stein, @williamstein, SageMath Inc., 2014-09-01
  • Harald Schilly, @haraldschilly, SageMath Inc., 2010-03-24

Q14(new): Does your project have any significant contributors who are not maintainers?

Please list up to 5, providing the same information as requested in the previous question.

Yes, numerous, see https://github.com/sagemath/sage/graphs/contributors

Q13(old): How many active contributors does your project currently have?

70

Q14(old): Any comments you’d like to make on the number of your active contributors:

as per https://github.com/sagemath/sage/graphs/contributors?from=2023-02-09&to=2024-01-13&type=c

Q15: What is your project doing to attract and/or mentor new contributors and maintainers?

  1. The project participates regularly in Google Summer of Code (https://wiki.sagemath.org/GSoC).
  2. Groups of individuals in our project organize virtual and in-person workshops (several per year; see https://wiki.sagemath.org/Workshops for a list) that often include introductory lectures or hands-on tutorials.
  3. Individuals in academic positions train their students and postdocs to become contributors.
  4. Individuals participate in academic conferences and include tutorials or demonstrations either as parts of their academic presentations or as standalone presentations.

Q16: Where do you host conversations about project development and governance (e.g. mailing lists, forums, etc.), and how many participants do you have?

Public discussions take place in https://groups.google.com/g/sage-devel, a list with about 2600 subscribers. Actual participation in questions of project governance is much sparser. Examples:

Q17: What license(s) does your project currently use?

GPL v2+, GPL v3+, Creative Commons 3.0 BY-SA License

Q18: Projects must adopt the NumFOCUS Code of Conduct or one similar in spirit. Please tell us how you plan to meet this requirement: https://numfocus.org/code-of-conduct

A code of conduct was adopted by vote in the community in 2014. The current version of the code of conduct, https://github.com/sagemath/sage/blob/develop/CODE_OF_CONDUCT.md, is a minor revision that was approved by the Sage community by a vote which ended on March 31, 2024. The revision also added an enforcement manual, https://github.com/sagemath/sage/blob/develop/CODE_OF_CONDUCT_COMMITTEE.md

Q19(new): Please provide a link to your Code of Conduct:

https://github.com/sagemath/sage/blob/develop/CODE_OF_CONDUCT.md

Q20: Your Name (First & Last):

Matthias Köppe

Q20: Your Email:

[email protected]

Q21: Questions or Comments:

Additional items that would be required for an application for Sponsored Project status (not part of the application; possible target: 2025)

Project governance

see also https://github.com/sagemath/sage/wiki/Infrastructure

TODO: Describe the Maintainers role: Duties, privileges, appointment procedure

see https://github.com/sagemath/sage/wiki/Infrastructure:-GitHub-organization

TODO: Document governance of the main repository https://github.com/sagemath/sage

TODO: Document governance of other projects hosted on https://github.com/sagemath/ and https://gitlab.com/sagemath

Clone this wiki locally