-
-
Notifications
You must be signed in to change notification settings - Fork 491
NumFOCUS
sage-devel post Jan 13, 2024 with draft application, links to previous discussions.
Expanded below. Next target date: Apr 15, 2024
Yes
SageMath
https://github.com/sagemath/sage
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.
Yes
982721.png
https://twitter.com/sagemath, https://mathstodon.xyz/@sagemath, https://www.facebook.com/pages/Sage-Math/26593144945,
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
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.
- Recently, integration testing with Sage was added to the IPython repository (https://github.com/ipython/ipython/blob/main/.github/workflows/downstream.yml)
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:
- The Sage library contains over 500 Cython modules.
- Incubation in the Sage project contributed to the evolution from Pyrex (Cython's predecessor) to Cython, according to W. Stein's first-hand account in https://groups.google.com/g/sage-devel/c/kygNe70f3x0/m/Ej9s98QgAQAJ
- Sage switched to the Cython 3.0 series in Sage 10.2, released December 2023
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
- Add system package information files
- 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).
- their username on the repository hosting service (e.g., Github, Gitlab, or Bitbucket);
- their affiliations (e.g., UC Berkeley or Argonne National Labs); and
- 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
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
70
as per https://github.com/sagemath/sage/graphs/contributors?from=2023-02-09&to=2024-01-13&type=c
- The project participates regularly in Google Summer of Code (https://wiki.sagemath.org/GSoC).
- 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.
- Individuals in academic positions train their students and postdocs to become contributors.
- 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:
- An April 2024 governance proposal for a part of the main repository (https://groups.google.com/g/sage-devel/c/dEa3i2Fn3ZY) attracted 2 commenters.
- In a March 2024 vote on the revised Code of Conduct, 11 votes were received.
- A March 2024 vote on the use of labels on GitHub PRs received 14 votes. https://groups.google.com/g/sage-devel/c/OKwwUGyKveo
- A January 2024 discussion on seeking NumFOCUS affiliation had a total of 7 participants. https://groups.google.com/g/sage-devel/c/kygNe70f3x0
- A January 2024 discussion on conflict resolution had 11 participants. https://groups.google.com/g/sage-devel/c/XON6NTJa33o
- A series of 5 posts in June 2023 on a structural change to the Sage library (modularization) attracted a total of 9 commenters. (https://groups.google.com/g/sage-devel/c/lb1Eq8o0a5I); an earlier series in September-–November 2021 (https://groups.google.com/g/sage-devel/c/T0A4JCOg9DY, https://groups.google.com/g/sage-devel/c/AaKxoNQAWMg, https://groups.google.com/g/sage-devel/c/p4MO6L95s7E, https://groups.google.com/g/sage-devel/c/rpwoN3WwHao, https://groups.google.com/g/sage-devel/c/cTifWZOAfH8, https://groups.google.com/g/sage-devel/c/0q4abzOCsIM) attracted a total of 7 participants, and a March 2021 discussion on modularization and downstream packaging (https://groups.google.com/g/sage-devel/c/PVj0lfFcMlg) involved 6 participants.
- A May 2023 discussion and attempted vote on NEP 29 attracted a total of 10 participants (https://groups.google.com/g/sage-devel/c/3Zoq0CNE1hE).
- In September/October 2022 the topic of a migration of Sage development from Trac to GitHub attracted about 15 participants in discussions (https://groups.google.com/g/sage-devel/c/hX6ojxlNwOU, https://groups.google.com/g/sage-devel/c/ayOL8_bzOfk) and 57 votes (https://groups.google.com/g/sage-devel/c/7h5JoRgHpxY).
- An August 2021 proposal to absorb the Pynac library attracted 6 commenters. https://groups.google.com/g/sage-devel/c/ofi0eFhXqII
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
https://github.com/sagemath/sage/blob/develop/CODE_OF_CONDUCT.md
Matthias Köppe
Additional items that would be required for an application for Sponsored Project status (not part of the application; possible target: 2025)
see also https://github.com/sagemath/sage/wiki/Infrastructure
see https://github.com/sagemath/sage/wiki/Infrastructure:-GitHub-organization
TODO: Document governance of the main repository https://github.com/sagemath/sage
- Sage developer guide, section "Reviewing Code", includes description of the release process and therefore implicitly the role of the Release Manager in the project
- Governance proposal: Maintainer/code-owner model for .ci, .devcontainer, .github/workflows, tox.ini (sage-devel 2024-04)
TODO: Document governance of other projects hosted on https://github.com/sagemath/ and https://gitlab.com/sagemath
Readme | Version | Citation | Authors | Contributing | Code of Conduct | Copyright ©️ 2023 Sage Developer Community