Differences between revisions 1 and 13 (spanning 12 versions)
Revision 1 as of 2020-05-04 19:03:42
Size: 1153
Editor: mkoeppe
Comment: New page for Sage 9.3 release planning
Revision 13 as of 2021-01-14 02:06:10
Size: 4758
Editor: mkoeppe
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
in planning (2020) in progress (2021)
Line 7: Line 7:
== Package upgrades, system packages ==

=== FLINT, Arb ===

=== GAP ===

=== Other package upgrades ===

=== System package information for OpenSUSE ===

In particular, users of OpenSUSE Tumbleweed will notice the information about system packages that the Sage distribution can use.

=== For developers and packagers: Version constraints for Python packages ===

For all Python packages in the Sage distribution, `build/pkgs/SPKG/install-requires.txt` now encodes version constraints (such as lower and upper bounds) [[https://trac.sagemath.org/ticket/30719|#30719]].
The constraints are in the format of the `install_requires` key of [[https://setuptools.readthedocs.io/en/latest/userguide/declarative_config.html|setup.cfg]] or [[https://packaging.python.org/discussions/install-requires-vs-requirements/#id5|setup.py]].

The files may include comments (starting with `#`) that explain why a particular lower bound is warranted or why we wish to include or reject certain versions.
For example:
{{{
$ cat build/pkgs/sphinx/package-version.txt
3.1.2.p0
$ cat build/pkgs/sphinx/install-requires.txt
# gentoo uses 3.2.1
sphinx >=3, <3.3
}}}
The comments may include links to Trac tickets, as in the following example:
{{{
$ cat build/pkgs/packaging/install-requires.txt
packaging >=18.0
# Trac #30975: packaging 20.5 is known to work but we have to silence "DeprecationWarning: Creating a LegacyVersion"
}}}
The currently encoded version constraints are merely a starting point.
Downstream packagers and developers are invited to refine the version constraints based on their experience and tests. When a package update is made in order to pick up a critical bug fix from a newer version, then the lower bound should be adjusted.

In Sage 9.3, the new files are included only for documentation purposes and to facilitate development and packaging. An effort is underway in [[https://trac.sagemath.org/ticket/30913|#30913]] to use the new files to generate dependency metadata for the Sage library.
There is no mechanism yet to use system Python packages; see [[https://trac.sagemath.org/ticket/29023|Meta-ticket #29013]] for this task.

=== For developers: Setting up Python packages from PyPI as Sage packages ===

Setting up Python packages from PyPI as Sage packages has become easier [[https://trac.sagemath.org/ticket/30974|#30974]].
{{{
$ ./sage -package create scikit_spatial --pypi
Downloading tarball to /Users/mkoeppe/s/sage/sage-rebasing/worktree-algebraic-2018-spring/upstream/scikit-spatial-5.0.0.tar.gz
[......................................................................]
$ ls build/pkgs/scikit_spatial/
SPKG.rst dependencies package-version.txt type
checksums.ini install-requires.txt spkg-install.in
$ cat build/pkgs/scikit_spatial/SPKG.rst
scikit_spatial: Spatial objects and computations based on NumPy arrays
======================================================================

Description
-----------

Spatial objects and computations based on NumPy arrays.

License
-------

BSD license

Upstream Contact
----------------

https://pypi.org/project/scikit-spatial/
}}}

Note that this new command does not check the dependencies of the Python package; this still needs to be done manually.

The above command creates a [[https://doc.sagemath.org/html/en/developer/packaging.html#package-source-types|"normal" package]] (with tarball information in `checksums.ini`).
To create a package as a "pip" package (which will be obtained directly from PyPI on an install), use `./sage -package create scikit_spatial --pypi --source pip` instead.

Line 9: Line 83:
 * [[https://groups.google.com/d/msg/sage-devel/M9QTWtln6zU/UHwkrmTKBQAJ|sage-devel: Proposal for Sage 9.3: Modularization of sagelib; in particular, splitting out a sage_objects package]]  * [[https://trac.sagemath.org/ticket/29705|Meta-ticket #29705: Modularize sagelib into separate distutils packages]]
Line 11: Line 85:
 * [[https://trac.sagemath.org/ticket/21507|Meta-ticket #21507: Make sagelib a pip-installable Python source package, listed on PyPI]] == Use of system Jupyter notebook / JupyterLab ==

 * [[https://trac.sagemath.org/ticket/30306|Meta-ticket #30306: Use system Jupyter notebook / JupyterLab]]
Line 17: Line 94:
 * [[https://trac.sagemath.org/query?milestone=sage-9.2&groupdesc=1&group=status&max=1500&col=id&col=summary&col=author&col=reviewer&col=time&col=changetime&col=component&col=keywords&order=component|Trac tickets with milestone 9.3]]  * [[https://trac.sagemath.org/query?milestone=sage-9.3&groupdesc=1&group=status&max=1500&col=id&col=summary&col=author&col=reviewer&col=time&col=changetime&col=component&col=keywords&order=component|Trac tickets with milestone 9.3]]
Line 21: Line 98:
The Sage 9.3 series has not been started yet.   Development of the Sage 9.3 series has begun.

Sage 9.3 Release Tour

in progress (2021)

Package upgrades, system packages

FLINT, Arb

GAP

Other package upgrades

System package information for OpenSUSE

In particular, users of OpenSUSE Tumbleweed will notice the information about system packages that the Sage distribution can use.

For developers and packagers: Version constraints for Python packages

For all Python packages in the Sage distribution, build/pkgs/SPKG/install-requires.txt now encodes version constraints (such as lower and upper bounds) #30719. The constraints are in the format of the install_requires key of setup.cfg or setup.py.

The files may include comments (starting with #) that explain why a particular lower bound is warranted or why we wish to include or reject certain versions. For example:

$ cat build/pkgs/sphinx/package-version.txt 
3.1.2.p0
$ cat build/pkgs/sphinx/install-requires.txt
# gentoo uses 3.2.1
sphinx >=3, <3.3

The comments may include links to Trac tickets, as in the following example:

$ cat build/pkgs/packaging/install-requires.txt
packaging >=18.0
# Trac #30975: packaging 20.5 is known to work but we have to silence "DeprecationWarning: Creating a LegacyVersion"

The currently encoded version constraints are merely a starting point. Downstream packagers and developers are invited to refine the version constraints based on their experience and tests. When a package update is made in order to pick up a critical bug fix from a newer version, then the lower bound should be adjusted.

In Sage 9.3, the new files are included only for documentation purposes and to facilitate development and packaging. An effort is underway in #30913 to use the new files to generate dependency metadata for the Sage library. There is no mechanism yet to use system Python packages; see Meta-ticket #29013 for this task.

For developers: Setting up Python packages from PyPI as Sage packages

Setting up Python packages from PyPI as Sage packages has become easier #30974.

$ ./sage -package create scikit_spatial --pypi
Downloading tarball to /Users/mkoeppe/s/sage/sage-rebasing/worktree-algebraic-2018-spring/upstream/scikit-spatial-5.0.0.tar.gz
[......................................................................]
$ ls build/pkgs/scikit_spatial/
SPKG.rst                dependencies            package-version.txt     type
checksums.ini           install-requires.txt    spkg-install.in
$ cat build/pkgs/scikit_spatial/SPKG.rst 
scikit_spatial: Spatial objects and computations based on NumPy arrays
======================================================================

Description
-----------

Spatial objects and computations based on NumPy arrays.

License
-------

BSD license

Upstream Contact
----------------

https://pypi.org/project/scikit-spatial/

Note that this new command does not check the dependencies of the Python package; this still needs to be done manually.

The above command creates a "normal" package (with tarball information in checksums.ini). To create a package as a "pip" package (which will be obtained directly from PyPI on an install), use ./sage -package create scikit_spatial --pypi --source pip instead.

Modularization and packaging of sagelib

Use of system Jupyter notebook / JupyterLab

Tickets

Availability of Sage 9.3 and installation help

Development of the Sage 9.3 series has begun.

ReleaseTours/sage-9.3 (last edited 2022-05-14 16:52:08 by mkoeppe)