Differences between revisions 3 and 4
Revision 3 as of 2020-04-11 19:45:24
Size: 2859
Editor: mkoeppe
Comment: Add portability testing
Revision 4 as of 2020-04-11 19:55:11
Size: 2998
Editor: mkoeppe
Comment: update portability section
Deletions are marked like this. Additions are marked like this.
Line 36: Line 36:
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. The `Dockerfile`s are generated automatically by using the database of system packages.  See the new section on "portability testing" in the Developer's Guide. 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.

Sage 9.1 Release Tour

in progress (2020)

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 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 Dockerfiles 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

- Trac tickets with milestone 9.1