Opened 7 months ago
Last modified 4 months ago
#31164 new enhancement
Meta-ticket: Add user packages from https://wiki.sagemath.org/SageMathExternalPackages as optional/experimental packages
Reported by: | mkoeppe | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | sage-9.4 |
Component: | build | Keywords: | |
Cc: | slelievre, gh-mwageringel, vdelecroix, slabbe, tmonteil | Merged in: | |
Authors: | Reviewers: | https://github.com/mkoeppe/sage/actions/runs/489285128 | |
Report Upstream: | N/A | Work issues: | |
Branch: | Commit: | ||
Dependencies: | Stopgaps: |
Description (last modified by )
At least some of the packages listed at https://wiki.sagemath.org/SageMathExternalPackages are probably not in worse shape than many of our current optional/experimental packages.
By including them as optional/experimental packages in build/pkgs
:
- they would be automatically included in our reference manual and Sage website (see #29655)
- The GH Actions workflows
tox-optional.yml
andtox-experimental.yml
will run them, providing continuous integration that will allow use to catch unintended breaking changes during the Sage development cycle
In this ticket, only pip-installable packages listed on PyPI will be added.
This adds an incentive to package authors to bring their packages to this form.
The packages will be added as "pip" packages instead of "normal packages", https://doc.sagemath.org/html/en/developer/packaging.html#package-source-types These do not come with tarball information and do not have to pin the version, so by default the latest version on PyPI would be installed. Hence there is no additional maintenance burden from updating the packages.
Adding the packages is made easy by the new sage -package
commands described in https://wiki.sagemath.org/ReleaseTours/sage-9.3#For_developers:_Setting_up_Python_packages_from_PyPI_as_Sage_packages
Tickets:
- #31176 Add packages from 3-manifolds / computop (#31180: snappy)
- #31223 sage-train-track
- #31224 surface-dynamics
- #31235 sage-numerical-interactive-mip, cutgeneratingfunctionology
- #31237 slabbe
- #31238 admcycles
- #31239 ore_algebra
- #31240 sage-flatsurf
- #31416 multipolynomial-bases
Discussions:
- https://groups.google.com/g/sage-devel/c/ZNyLBKmc0EE/m/oUll3liBAwAJ - on version metadata
Change History (20)
comment:1 follow-up: ↓ 2 Changed 7 months ago by
comment:2 in reply to: ↑ 1 Changed 7 months ago by
Replying to vdelecroix:
Before proceeding, I would like to understand what package developers and package users would gain by declaring Python packages as sage optional packages. For now, I would only consider doing this if
- package versions were not tight to sage versions. In the curent setup a package upgrade needs a ticket review and, when merged, has to wait for a new sage version.
The solution here is to use pip packages instead of normal packages. https://doc.sagemath.org/html/en/developer/packaging.html#package-source-types
These do not come with tarball information and do not have to pin the version, so by default the latest version on PyPI would be installed.
- there is no serious continuous integration for packages (as they have eg for gap)
Well, we do have workflows on GH Actions that at least tries to install all optional and experimental packages!
comment:3 Changed 7 months ago by
- Description modified (diff)
comment:4 Changed 7 months ago by
- Description modified (diff)
comment:5 Changed 7 months ago by
- Description modified (diff)
comment:6 Changed 7 months ago by
- Description modified (diff)
- Summary changed from Add user packages from https://wiki.sagemath.org/SageMathExternalPackages as optional/experimental packages to Meta-ticket: Add user packages from https://wiki.sagemath.org/SageMathExternalPackages as optional/experimental packages
comment:7 Changed 7 months ago by
- Description modified (diff)
comment:8 Changed 7 months ago by
- Description modified (diff)
comment:9 Changed 7 months ago by
- Description modified (diff)
comment:10 Changed 7 months ago by
- Description modified (diff)
comment:11 Changed 7 months ago by
- Description modified (diff)
comment:12 Changed 7 months ago by
- Description modified (diff)
comment:13 Changed 7 months ago by
- Description modified (diff)
comment:14 Changed 7 months ago by
- Description modified (diff)
comment:15 Changed 7 months ago by
- Description modified (diff)
comment:16 Changed 7 months ago by
- Reviewers set to https://github.com/mkoeppe/sage/actions/runs/489285128
comment:17 Changed 6 months ago by
- Cc tmonteil added
- Description modified (diff)
comment:18 Changed 6 months ago by
- Description modified (diff)
comment:19 Changed 6 months ago by
- Description modified (diff)
comment:20 Changed 4 months ago by
- Milestone changed from sage-9.3 to sage-9.4
Sage development has entered the release candidate phase for 9.3. Setting a new milestone for this ticket based on a cursory review of ticket status, priority, and last modification date.
Before proceeding, I would like to understand what package developers and package users would gain by declaring Python packages as sage optional packages. For now, I would only consider doing this if