Differences between revisions 4 and 78 (spanning 74 versions)
Revision 4 as of 2020-04-11 19:55:11
Size: 2998
Editor: mkoeppe
Comment: update portability section
Revision 78 as of 2024-08-20 05:31:02
Size: 0
Editor: mkoeppe
Comment: migrated to https://github.com/sagemath/sage/releases/tag/9.1 (including attachment)
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= Sage 9.1 Release Tour =

in progress (2020)

<<TableOfContents>>

== Python 3 transition ==

SageMath 9.0 was the first version of Sage running on Python 3 by default. Sage 9.1 continues to support Python 2.

See [[Python3-Switch]] for more details

== Portability improvements, increased use of system packages ==

The SageMath distribution continues to vendor versions of required software packages ("SPKGs") that work well together.

In order to reduce compilation times and the size of the SageMath installation,
a [[https://trac.sagemath.org/ticket/27330|development effort ongoing since the 8.x release series]]
has made it possible to '''use many system packages provided by the OS distribution''' instead of building
SageMath's own copies. This so-called "spkg-configure" mechanism runs at the beginning of a build
from source, during the `./configure` phase.

Sage 9.1 is adding many packages to this mechanism.

New in Sage 9.1 is also a '''database of system packages''' equivalent to our SPKGs. At the end of a `./configure` run, you will see messages like the following:

{{{
  configure: notice: the following SPKGs did not find equivalent system packages: arb boost boost_cropped bzip2 ... yasm zeromq zlib
  checking for the package system in use... debian
  configure: hint: installing the following system packages is recommended and may avoid building some of the above SPKGs from source:
  configure: $ sudo apt-get install libflint-arb-dev ... yasm libzmq3-dev libz-dev
  configure: After installation, re-run configure using:
  configure: $ ./config.status --recheck && ./config.status
}}}

For developers who wish to help improve the portability of SageMath, there is a new power tool: A '''tox configuration''' that automatically builds and tests SageMath within Docker containers running various Linux distributions (`ubuntu-trusty` through `-focal`, `debian-jessie` through `-sid`, `linuxmint-17` through `-19.3`, `fedora-26` through `-32`, `centos-7` and `-8`, `archlinux`, `slackware-14.2`), each in several configurations regarding what system packages are installed. Thus, it is no longer necessary for developers to have access to a machine running `fedora-29`, say, to verify whether the Sage distribution works there; instead, you just type:
{{{
  tox -e docker-fedora-29-standard -- build ptest`
}}}
The `Dockerfile`s are generated automatically by using the same database of system packages that provides information to users. See the new section on "portability testing" in the Developer's Guide for details.

== Availability of Sage 9.1 in distributions ==

(TBD)

== More details ==

- Release announcements: See https://groups.google.com/forum/#!forum/sage-release

- [[https://trac.sagemath.org/query?milestone=sage-9.1&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.1]]