Sage 10.8.beta4 released

104 views
Skip to first unread message

Volker Braun

unread,
Sep 21, 2025, 2:19:32 PM (5 days ago) Sep 21
to sage-release
As always, you can get the latest beta version from the "develop" git branch. Alternatively, the self-contained source tarball is at http://www.sagemath.org/download-latest.html


83b52a79bab (tag: 10.8.beta4, github/develop) Updated SageMath version to 10.8.beta4
9c1da99ac79 gh-40850: fixing a bug in perfect_power
4e5f1d9ee8b gh-40849: some details in arith/misc
d87f9dfd541 gh-40848: type annotation for is_simple and is_smooth
82925d244c4 gh-40842: git-ignore sagemath.egg-info
800f78b2067 gh-40837: adding a comment about chain_polynomial
872adfb54cd gh-40836: Fix BipartiteGraph.vertex_cover(value_only=True) for disconnected graphs
7271bd0e54b gh-40833: various details in coding
4f0a7283cb6 gh-40830: Add every path in XDG_DATA_DIRS to `sage_data_paths`
3c071b3869e gh-40829: a few fixes for pycodestyle
7bb0818d549 gh-40827: ⬆️ Bump astral-sh/setup-uv from 6.6.1 to 6.7.0
59139846046 gh-40826: Add some more "long time" annotations
3b76ec2a0b4 gh-40821: Devcontainer: use devcontainer id as key for venv and build directory
1eb2b9aec16 gh-40819: various details in algebras, categories
d5468257435 gh-40818: add Newton polytopes for Laurent polynomials
3142b99ddda gh-40817: some details about imports in combinat
4f4d6e7d419 gh-40815: Speed up computation of radical of polynomial
eb4f55ce2ca gh-40811: Fixes incorrect jordan form issue
d2e4be5bdf9 gh-40808: add Newton polytopes in one variable
f911c0bdbd3 gh-40799: Move typing imports to TYPE_CHECKING block and enable relevant ruff checks
2c1f272d743 gh-40797: Build metadata fixes 10.8.beta2
c55f6ae194c gh-40771: Don't fall back to pari to compute the discriminant of a maximal order.
861e13d46eb gh-40765: Fix include directories in editable installs
217acf3331b gh-40716: Make computation of LU decomposition of matrix over GF(2^e) interruptible
67330f3e735 gh-40702: add harmonic polytope to the library
57aa4b58d8f gh-40697: Fix bug in SkewPolynomialRing when twisting morphism is trivial
7562e51842b gh-40686: Install pyx sources with meson
3df6f01387d gh-40681: Add subsection Documentation Previews to developer guide
4758b85a182 gh-40587: Minor documentation formatting improvement
d5a1370ee51 gh-39905: Improve documentation of various gap-related methods
1b43bdbd8ab gh-39718: Add a note regarding element containment testing
02da09c8a2a gh-39512: Add test for github format of doctest report
ccd017ef506 gh-39364: bump gmpy2 to 2.2.1
53bea4cf004 gh-38589: FiniteField: make GF(p,n) the same as GF(p^n)
ad8740465a9 gh-36892: Decapitalize filenames in PREP doc
28b7af09866 (tag: 10.8.beta3) Updated SageMath version to 10.8.beta3

John H Palmieri

unread,
Sep 22, 2025, 1:57:45 PM (4 days ago) Sep 22
to sage-release
This fails to build for me. (By "this", I mean `./bootstrap && ./configure && make`.) I see this message in install.log:

make[3]: *** No rule to make target `/Users/palmieri/Sage/TESTING/clean/sage-10.8.beta3/pkgs/sage-conf/_sage_conf/_conf.py', needed by `/Users/palmieri/Sage/TESTING/clean/sage-10.8.beta3/local/var/lib/sage/venv-python3.13/var/lib/sage/installed/sage_conf-10.8.beta4'.  Stop.
make[3]: *** Waiting for unfinished jobs....

I'm guessing this is because someone deleted pkgs/sage-conf/_sage_conf/_conf.py.in.

John H Palmieri

unread,
Sep 22, 2025, 2:02:36 PM (4 days ago) Sep 22
to sage-release
(Despite the name of the directory, this is actually 10.8.beta4.)

Dima Pasechnik

unread,
Sep 22, 2025, 2:05:28 PM (4 days ago) Sep 22
to sage-r...@googlegroups.com
./configure --disable-sage_conf && make

should complete and work.
sage_conf isn't needed anymore, but I am not sure now what's wrong without this "disable"

John H Palmieri

unread,
Sep 22, 2025, 2:39:19 PM (4 days ago) Sep 22
to sage-release
As I said, I think the problem is the removal of the file `pkgs/sage-conf/_sage_conf/_conf.py.in`, which happened in https://github.com/sagemath/sage/pull/40765. You might try testing those PRs before positively reviewing them.

John H Palmieri

unread,
Sep 22, 2025, 5:05:46 PM (4 days ago) Sep 22
to sage-release
After using `./configure --disable-sage_conf` and running `make testlong`, I see the same failures as reported with earlier versions. I've opened issues #40869 (for the ninja warning message, which we should be able to suppress when doctesting) and #40873 for the other problem, which seems to be related to using homebrew's Singular. I see a few new failures:

**********************************************************************
File "src/sage/misc/package.py", line 280, in sage.misc.package.pkg_sources
Failed example:
    sage_conf_info.is_installed()
Expected:
    True
Got:
    False
**********************************************************************

and different failures in sage/env.py:

**********************************************************************
File "src/sage/env.py", line 22, in sage.env
Failed example:
    out = check_output([sys.executable, "-c", cmd], env=env).decode().strip()   # long time
Exception raised:
    Traceback (most recent call last):
      File "/Users/palmieri/Sage/TESTING/sage-10.8.beta4/src/sage/doctest/forker.py", line 733, in _run
        self.compile_and_execute(example, compiler, test.globs)
        ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/Users/palmieri/Sage/TESTING/sage-10.8.beta4/src/sage/doctest/forker.py", line 1157, in compile_and_execute
        exec(compiled, globs)
        ~~~~^^^^^^^^^^^^^^^^^
      File "<doctest sage.env[8]>", line 1, in <module>
        out = check_output([sys.executable, "-c", cmd], env=env).decode().strip()   # long time
              ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/opt/homebrew/Cellar/pyt...@3.13/3.13.7/Frameworks/Python.framework/Versions/3.13/lib/python3.13/subprocess.py", line 472, in check_output
        return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
               ~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                   **kwargs).stdout
                   ^^^^^^^^^
      File "/opt/homebrew/Cellar/pyt...@3.13/3.13.7/Frameworks/Python.framework/Versions/3.13/lib/python3.13/subprocess.py", line 577, in run
        raise CalledProcessError(retcode, process.args,
                                 output=stdout, stderr=stderr)
    subprocess.CalledProcessError: Command '['/Users/palmieri/Sage/TESTING/sage-10.8.beta4/local/var/lib/sage/venv-python3.13/bin/python3', '-c', "from sage.all import SAGE_ROOT, SAGE_LOCAL;from os.path import samefile;s1 = samefile(SAGE_ROOT, '/Users/palmieri/Sage/TESTING/sage-10.8.beta4');s2 = samefile(SAGE_LOCAL, '/Users/palmieri/Sage/TESTING/sage-10.8.beta4/local');print(s1 and s2);"]' returned non-zero exit status 1.
**********************************************************************
File "src/sage/env.py", line 23, in sage.env
Failed example:
    out == "True"                                                               # long time
Exception raised:
    Traceback (most recent call last):
      File "/Users/palmieri/Sage/TESTING/sage-10.8.beta4/src/sage/doctest/forker.py", line 733, in _run
        self.compile_and_execute(example, compiler, test.globs)
        ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/Users/palmieri/Sage/TESTING/sage-10.8.beta4/src/sage/doctest/forker.py", line 1157, in compile_and_execute
        exec(compiled, globs)
        ~~~~^^^^^^^^^^^^^^^^^
      File "<doctest sage.env[9]>", line 1, in <module>
        out == "True"                                                               # long time
        ^^^
    NameError: name 'out' is not defined
**********************************************************************
File "src/sage/env.py", line 406, in sage.env.cython_aliases
Failed example:
    cython(                                               # optional - sage.misc.cython
    '''
    #distutils: extra_compile_args = OPENMP_CFLAGS
    #distutils: extra_link_args = OPENMP_CFLAGS
    from cython.parallel import prange

    cdef int i
    cdef int n = 30
    cdef int sum = 0

    for i in prange(n, num_threads=4, nogil=True):
        sum += i

    print(sum)
    ''')
Exception raised:
    Traceback (most recent call last):
      File "/Users/palmieri/Sage/TESTING/sage-10.8.beta4/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/setuptools/_distutils/spawn.py", line 87, in spawn
        subprocess.check_call(cmd, env=_inject_macos_ver(env))
        ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/opt/homebrew/Cellar/pyt...@3.13/3.13.7/Frameworks/Python.framework/Versions/3.13/lib/python3.13/subprocess.py", line 419, in check_call
        raise CalledProcessError(retcode, cmd)
    subprocess.CalledProcessError: Command '['/usr/bin/gcc', '-fno-strict-overflow', '-Wsign-compare', '-Wunreachable-code', '-fno-common', '-dynamic', '-DNDEBUG', '-g', '-O3', '-Wall', '-I/Users/palmieri/Sage/TESTING/sage-10.8.beta4', '-I/Users/palmieri/Sage/TESTING/sage-10.8.beta4/src', '-I/Users/palmieri/Sage/TESTING/sage-10.8.beta4/build/sage-distro/src', '-I/Users/palmieri/Sage/TESTING/sage-10.8.beta4/local/var/lib/sage/venv-python3.13/include', '-I/opt/homebrew/opt/pyt...@3.13/Frameworks/Python.framework/Versions/3.13/include/python3.13', '-c', '/var/folders/z6/yjw_7s357yx3_mhh81__lplc0000gn/T/sage_pqs5osot/spyx_w_aj7dbn/_var_folders_z6_yjw_7s357yx3_mhh81__lplc0000gn_T_sage_pqs5osot_tmp_8u17pu64_pyx/_var_folders_z6_yjw_7s357yx3_mhh81__lplc0000gn_T_sage_pqs5osot_tmp_8u17pu64_pyx_0.c', '-o', '/var/folders/z6/yjw_7s357yx3_mhh81__lplc0000gn/T/sage_pqs5osot/spyx_w_aj7dbn/_var_folders_z6_yjw_7s357yx3_mhh81__lplc0000gn_T_sage_pqs5osot_tmp_8u17pu64_pyx/build/temp.macosx-15.0-arm64-cpython-313/var/folders/z6/yjw_7s357yx3_mhh81__lplc0000gn/T/sage_pqs5osot/spyx_w_aj7dbn/_var_folders_z6_yjw_7s357yx3_mhh81__lplc0000gn_T_sage_pqs5osot_tmp_8u17pu64_pyx/_var_folders_z6_yjw_7s357yx3_mhh81__lplc0000gn_T_sage_pqs5osot_tmp_8u17pu64_pyx_0.o', '-fopenmp', '-w']' returned non-zero exit status 1.

    The above exception was the direct cause of the following exception:

    Traceback (most recent call last):
      File "/Users/palmieri/Sage/TESTING/sage-10.8.beta4/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/setuptools/_distutils/compilers/C/unix.py", line 221, in _compile
        self.spawn(compiler_so + cc_args + [src, '-o', obj] + extra_postargs)
        ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/Users/palmieri/Sage/TESTING/sage-10.8.beta4/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/setuptools/_distutils/compilers/C/base.py", line 1158, in spawn
        spawn(cmd, dry_run=self.dry_run, **kwargs)
        ~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/Users/palmieri/Sage/TESTING/sage-10.8.beta4/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/setuptools/_distutils/spawn.py", line 93, in spawn
        raise DistutilsExecError(
            f"command {_debug(cmd)!r} failed with exit code {err.returncode}"
        ) from err
    distutils.errors.DistutilsExecError: command '/usr/bin/gcc' failed with exit code 1

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "/Users/palmieri/Sage/TESTING/sage-10.8.beta4/src/sage/misc/cython.py", line 461, in cython
        dist.run_command("build")
        ~~~~~~~~~~~~~~~~^^^^^^^^^
      File "/Users/palmieri/Sage/TESTING/sage-10.8.beta4/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/setuptools/dist.py", line 1102, in run_command
        super().run_command(command)
        ~~~~~~~~~~~~~~~~~~~^^^^^^^^^
      File "/Users/palmieri/Sage/TESTING/sage-10.8.beta4/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/setuptools/_distutils/dist.py", line 1021, in run_command
        cmd_obj.run()
        ~~~~~~~~~~~^^
      File "/Users/palmieri/Sage/TESTING/sage-10.8.beta4/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/setuptools/_distutils/command/build.py", line 135, in run
        self.run_command(cmd_name)
        ~~~~~~~~~~~~~~~~^^^^^^^^^^
      File "/Users/palmieri/Sage/TESTING/sage-10.8.beta4/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/setuptools/_distutils/cmd.py", line 357, in run_command
        self.distribution.run_command(command)
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
      File "/Users/palmieri/Sage/TESTING/sage-10.8.beta4/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/setuptools/dist.py", line 1102, in run_command
        super().run_command(command)
        ~~~~~~~~~~~~~~~~~~~^^^^^^^^^
      File "/Users/palmieri/Sage/TESTING/sage-10.8.beta4/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/setuptools/_distutils/dist.py", line 1021, in run_command
        cmd_obj.run()
        ~~~~~~~~~~~^^
      File "/Users/palmieri/Sage/TESTING/sage-10.8.beta4/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/setuptools/command/build_ext.py", line 96, in run
        _build_ext.run(self)
        ~~~~~~~~~~~~~~^^^^^^
      File "/Users/palmieri/Sage/TESTING/sage-10.8.beta4/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/setuptools/_distutils/command/build_ext.py", line 368, in run
        self.build_extensions()
        ~~~~~~~~~~~~~~~~~~~~~^^
      File "/Users/palmieri/Sage/TESTING/sage-10.8.beta4/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/setuptools/_distutils/command/build_ext.py", line 484, in build_extensions
        self._build_extensions_serial()
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
      File "/Users/palmieri/Sage/TESTING/sage-10.8.beta4/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/setuptools/_distutils/command/build_ext.py", line 510, in _build_extensions_serial
        self.build_extension(ext)
        ~~~~~~~~~~~~~~~~~~~~^^^^^
      File "/Users/palmieri/Sage/TESTING/sage-10.8.beta4/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/setuptools/command/build_ext.py", line 261, in build_extension
        _build_ext.build_extension(self, ext)
        ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
      File "/Users/palmieri/Sage/TESTING/sage-10.8.beta4/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/Cython/Distutils/build_ext.py", line 136, in build_extension
        super().build_extension(ext)
        ~~~~~~~~~~~~~~~~~~~~~~~^^^^^
      File "/Users/palmieri/Sage/TESTING/sage-10.8.beta4/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/setuptools/_distutils/command/build_ext.py", line 565, in build_extension
        objects = self.compiler.compile(
            sources,
        ...<5 lines>...
            depends=ext.depends,
        )
      File "/Users/palmieri/Sage/TESTING/sage-10.8.beta4/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/setuptools/_distutils/compilers/C/base.py", line 655, in compile
        self._compile(obj, src, ext, cc_args, extra_postargs, pp_opts)
        ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/Users/palmieri/Sage/TESTING/sage-10.8.beta4/local/var/lib/sage/venv-python3.13/lib/python3.13/site-packages/setuptools/_distutils/compilers/C/unix.py", line 223, in _compile
        raise CompileError(msg)
    distutils.compilers.C.errors.CompileError: command '/usr/bin/gcc' failed with exit code 1

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "/Users/palmieri/Sage/TESTING/sage-10.8.beta4/src/sage/doctest/forker.py", line 733, in _run
        self.compile_and_execute(example, compiler, test.globs)
        ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/Users/palmieri/Sage/TESTING/sage-10.8.beta4/src/sage/doctest/forker.py", line 1157, in compile_and_execute
        exec(compiled, globs)
        ~~~~^^^^^^^^^^^^^^^^^
      File "<doctest sage.env.cython_aliases[5]>", line 1, in <module>
        cython(                                               # optional - sage.misc.cython
        ~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        '''
        ^^^
        ...<11 lines>...
        print(sum)
        ^^^^^^^^^^
        ''')
        ^^^^
      File "sage/misc/lazy_import.pyx", line 414, in sage.misc.lazy_import.LazyImport.__call__
      File "/Users/palmieri/Sage/TESTING/sage-10.8.beta4/src/sage/misc/cython.py", line 734, in cython_compile
        return cython_import_all(tmpfile, get_globals(), **kwds)
      File "/Users/palmieri/Sage/TESTING/sage-10.8.beta4/src/sage/misc/cython.py", line 620, in cython_import_all
        m = cython_import(filename, **kwds)
      File "/Users/palmieri/Sage/TESTING/sage-10.8.beta4/src/sage/misc/cython.py", line 588, in cython_import
        name, build_dir = cython(filename, **kwds)
                          ~~~~~~^^^^^^^^^^^^^^^^^^
      File "/Users/palmieri/Sage/TESTING/sage-10.8.beta4/src/sage/misc/cython.py", line 467, in cython
        raise RuntimeError(msg.strip())
    RuntimeError: command '/usr/bin/gcc' failed with exit code 1
    clang: error: unsupported option '-fopenmp'
**********************************************************************

Dima Pasechnik

unread,
Sep 22, 2025, 5:31:04 PM (4 days ago) Sep 22
to sage-r...@googlegroups.com
tested by reviewers, by the release manager, by the CI - it's just too long to test from a clean repo checkout. Sorry.

Volker Braun

unread,
Sep 23, 2025, 4:36:06 PM (3 days ago) Sep 23
to sage-release
Thanks, I'll revert the offending PR it in https://github.com/sagemath/sage/pull/40877

I'm running "make distclean" semi-regularly, but apparently distclean doesn't delete enough artifacts to trigger this particular fail

nbr...@sfu.ca

unread,
Sep 25, 2025, 7:41:56 PM (23 hours ago) Sep 25
to sage-release
Thanks. This is the kind of break that is to be expected in an alpha, but normally something like this in a beta is a pretty big deal. It would instill confidence if this were followed up very quickly with a release aimed (purely) at fixing the rather bad regression.

In fact, for reassurance, it would be better if a straight-out revert was merged and then a careful new attempt was tried. It can help to have a public fumble like this explicitly acknowledged and fixed.

Dima Pasechnik

unread,
Sep 25, 2025, 10:20:32 PM (21 hours ago) Sep 25
to sage-r...@googlegroups.com


On September 25, 2025 6:41:56 PM CDT, "nbr...@sfu.ca" <nbr...@sfu.ca> wrote:
>Thanks. This is the kind of break that is to be expected in an alpha, but
>normally something like this in a beta is a pretty big deal.

Maybe you should help with testing more often? When was the last time you reviewed a Sage PR?


> It would
>instill confidence if this were followed up very quickly with a release
>aimed (purely) at fixing the rather bad regression.
>
>In fact, for reassurance, it would be better if a straight-out revert was
>merged and then a careful new attempt was tried.

Please, no. We already have a fix for this, well tested and positively reviewed.

No need to revert anything - in particular as this saddles other people, not you or others who ask for revert, with unneeded extra work.


> It can help to have a
>public fumble like this explicitly acknowledged and fixed.

I feel like you want punishment for these responsible for this minor screwup, in the form of extra labour?

We have a clear way forward already, there is absolutely no need for these suggestions.

Antonio Rojas

unread,
2:19 AM (17 hours ago) 2:19 AM
to sage-release
El viernes, 26 de septiembre de 2025 a las 1:41:56 UTC+2, nbr...@sfu.ca escribió:
Thanks. This is the kind of break that is to be expected in an alpha, but normally something like this in a beta is a pretty big deal. It would instill confidence if this were followed up very quickly with a release aimed (purely) at fixing the rather bad regression.

Note that the word "beta" has a very unusual (and misleading) meaning in Sage development: a beta is just a development snapshot. This is wrong IMO and should be changed (sage is the only software project that uses "beta" in this way, that I know of), but it's nothing new: it's been like that since I can remember.

Dima Pasechnik

unread,
10:06 AM (9 hours ago) 10:06 AM
to sage-r...@googlegroups.com
That's a great point. Indeed, a much more standard development cycle
is where a development window is quite long, then comes a freeze (no
really new code, just fixes) with betas, then come RCs, and then a
release.

Our "betas" are an artifact of the release process, not anything
meaningful in terms of feature completeness.
It's a chunk that (hopefully) builds, no more than that.



>
> --
> You received this message because you are subscribed to the Google Groups "sage-release" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to sage-release...@googlegroups.com.
> To view this discussion visit https://groups.google.com/d/msgid/sage-release/1579357f-5dd7-45e9-8c87-73802840a90an%40googlegroups.com.

Dima Pasechnik

unread,
12:43 PM (6 hours ago) 12:43 PM
to sage-r...@googlegroups.com
Anyhow, the fix for the beta is ready, here:
https://github.com/sagemath/sage/pull/40882

Please merge and test if it works for you.
Reply all
Reply to author
Forward
0 new messages