-
-
Notifications
You must be signed in to change notification settings - Fork 572
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
Comprehensive mathematical software system
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.
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:
- TODO shared history
- 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.
- TODO shared history
- 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.
70
- 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?
https://groups.google.com/g/sage-devel, TBD participants
GPL v2+, GPL v3+
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
Matthias Köppe
Draft application, not submitted yet
Additional requirements for Sponsored Project status (not part of the application; possible target: 2025)
- Duty (daily): Approve workflow runs for PRs by new contributors that are waiting for approval
- to batch-delete workflow runs that never got approved and do not need to be run any more:
gh run list --status action_required --branch pol-quotient-deg --limit 200 --json databaseId --jq '.[].databaseId' | xargs -n 1 gh run delete
- to batch-delete workflow runs that never got approved and do not need to be run any more:
- Duty (weekly): Assign closed issues, merged PRs without release milestone to the current milestone
- Duty (weekly): Monitor the workflows CI Linux (default), push to Docker Hub, publish to GH Releases and PyPI; hot-fix and restart if necessary
- Duty (weekly): Monitor the long-running CI workflows of development releases (check for broken portability)
- Duty (monthly): Monitor the long-running CI workflows of development releases (check for broken optional packages)
- Duty (monthly): Organize preparation of Release Tours
- Duty (monthly): Open a new release milestone when it is time
- Duty: Add people to the Triage role when appropriate
- Duty: Create new labels when appropriate
- Duty: Monitor/configure the GH Actions workflow that updates labels https://groups.google.com/g/sage-devel/c/sulCa-6EZRA/m/6P6ZCCzkAAAJ
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)