From 9cba975913c9ca3a4c7f7ff69a8a39dba80c04cd Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sun, 26 Dec 2021 23:15:10 -0800 Subject: [PATCH 01/54] build/pkgs/{_prereq,python3}/distros/cygwin.txt: Switch to python 3.9 --- build/pkgs/_prereq/distros/cygwin.txt | 2 +- build/pkgs/python3/distros/cygwin.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build/pkgs/_prereq/distros/cygwin.txt b/build/pkgs/_prereq/distros/cygwin.txt index 635afe8f9c9..115d2555745 100644 --- a/build/pkgs/_prereq/distros/cygwin.txt +++ b/build/pkgs/_prereq/distros/cygwin.txt @@ -13,7 +13,7 @@ binutils make m4 # a system python is needed for downloading the sage packages, https://trac.sagemath.org/ticket/29090 -python37-urllib3 python37 +python39-urllib3 python39 perl perl-ExtUtils-MakeMaker tar diff --git a/build/pkgs/python3/distros/cygwin.txt b/build/pkgs/python3/distros/cygwin.txt index b8611cad54e..72e7cb73847 100644 --- a/build/pkgs/python3/distros/cygwin.txt +++ b/build/pkgs/python3/distros/cygwin.txt @@ -1,2 +1,2 @@ # as of #27824, we use python3 for venv as well -python38-devel +python39-devel From 65418dec55872e7daa196cd13d2568ed66552b45 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Tue, 28 Dec 2021 09:38:15 -0800 Subject: [PATCH 02/54] .github/workflows/ci-cygwin*.yml: Use python39 --- .github/workflows/ci-cygwin-minimal.yml | 30 ++++++++++++------------ .github/workflows/ci-cygwin-standard.yml | 30 ++++++++++++------------ 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/.github/workflows/ci-cygwin-minimal.yml b/.github/workflows/ci-cygwin-minimal.yml index 9e847e74740..2219fad576b 100644 --- a/.github/workflows/ci-cygwin-minimal.yml +++ b/.github/workflows/ci-cygwin-minimal.yml @@ -43,7 +43,7 @@ jobs: shell: bash {0} run: | choco --version - PACKAGES="python38 python38-pip" + PACKAGES="python39 python39-pip" choco install $PACKAGES --source cygwin - name: tox run: | @@ -103,7 +103,7 @@ jobs: shell: bash {0} run: | choco --version - PACKAGES="python38 python38-pip" + PACKAGES="python39 python39-pip" choco install $PACKAGES --source cygwin - name: tox run: | @@ -168,7 +168,7 @@ jobs: shell: bash {0} run: | choco --version - PACKAGES="python38 python38-pip" + PACKAGES="python39 python39-pip" choco install $PACKAGES --source cygwin - uses: actions/download-artifact@v2 with: @@ -238,7 +238,7 @@ jobs: shell: bash {0} run: | choco --version - PACKAGES="python38 python38-pip" + PACKAGES="python39 python39-pip" choco install $PACKAGES --source cygwin - uses: actions/download-artifact@v2 with: @@ -306,7 +306,7 @@ jobs: shell: bash {0} run: | choco --version - PACKAGES="python38 python38-pip" + PACKAGES="python39 python39-pip" choco install $PACKAGES --source cygwin - uses: actions/download-artifact@v2 with: @@ -374,7 +374,7 @@ jobs: shell: bash {0} run: | choco --version - PACKAGES="python38 python38-pip" + PACKAGES="python39 python39-pip" choco install $PACKAGES --source cygwin - uses: actions/download-artifact@v2 with: @@ -442,7 +442,7 @@ jobs: shell: bash {0} run: | choco --version - PACKAGES="python38 python38-pip" + PACKAGES="python39 python39-pip" choco install $PACKAGES --source cygwin - uses: actions/download-artifact@v2 with: @@ -514,7 +514,7 @@ jobs: shell: bash {0} run: | choco --version - PACKAGES="python38 python38-pip" + PACKAGES="python39 python39-pip" choco install $PACKAGES --source cygwin - uses: actions/download-artifact@v2 with: @@ -586,7 +586,7 @@ jobs: shell: bash {0} run: | choco --version - PACKAGES="python38 python38-pip" + PACKAGES="python39 python39-pip" choco install $PACKAGES --source cygwin - uses: actions/download-artifact@v2 with: @@ -658,7 +658,7 @@ jobs: shell: bash {0} run: | choco --version - PACKAGES="python38 python38-pip" + PACKAGES="python39 python39-pip" choco install $PACKAGES --source cygwin - uses: actions/download-artifact@v2 with: @@ -728,7 +728,7 @@ jobs: shell: bash {0} run: | choco --version - PACKAGES="python38 python38-pip" + PACKAGES="python39 python39-pip" choco install $PACKAGES --source cygwin - uses: actions/download-artifact@v2 with: @@ -796,7 +796,7 @@ jobs: shell: bash {0} run: | choco --version - PACKAGES="python38 python38-pip" + PACKAGES="python39 python39-pip" choco install $PACKAGES --source cygwin - uses: actions/download-artifact@v2 with: @@ -864,7 +864,7 @@ jobs: shell: bash {0} run: | choco --version - PACKAGES="python38 python38-pip" + PACKAGES="python39 python39-pip" choco install $PACKAGES --source cygwin - uses: actions/download-artifact@v2 with: @@ -932,7 +932,7 @@ jobs: shell: bash {0} run: | choco --version - PACKAGES="python38 python38-pip" + PACKAGES="python39 python39-pip" choco install $PACKAGES --source cygwin - uses: actions/download-artifact@v2 with: @@ -1000,7 +1000,7 @@ jobs: shell: bash {0} run: | choco --version - PACKAGES="python38 python38-pip" + PACKAGES="python39 python39-pip" choco install $PACKAGES --source cygwin - uses: actions/download-artifact@v2 with: diff --git a/.github/workflows/ci-cygwin-standard.yml b/.github/workflows/ci-cygwin-standard.yml index cbbe0f46a8b..38267d591f9 100644 --- a/.github/workflows/ci-cygwin-standard.yml +++ b/.github/workflows/ci-cygwin-standard.yml @@ -43,7 +43,7 @@ jobs: shell: bash {0} run: | choco --version - PACKAGES="python38 python38-pip" + PACKAGES="python39 python39-pip" choco install $PACKAGES --source cygwin - name: tox run: | @@ -103,7 +103,7 @@ jobs: shell: bash {0} run: | choco --version - PACKAGES="python38 python38-pip" + PACKAGES="python39 python39-pip" choco install $PACKAGES --source cygwin - name: tox run: | @@ -168,7 +168,7 @@ jobs: shell: bash {0} run: | choco --version - PACKAGES="python38 python38-pip" + PACKAGES="python39 python39-pip" choco install $PACKAGES --source cygwin - uses: actions/download-artifact@v2 with: @@ -238,7 +238,7 @@ jobs: shell: bash {0} run: | choco --version - PACKAGES="python38 python38-pip" + PACKAGES="python39 python39-pip" choco install $PACKAGES --source cygwin - uses: actions/download-artifact@v2 with: @@ -306,7 +306,7 @@ jobs: shell: bash {0} run: | choco --version - PACKAGES="python38 python38-pip" + PACKAGES="python39 python39-pip" choco install $PACKAGES --source cygwin - uses: actions/download-artifact@v2 with: @@ -374,7 +374,7 @@ jobs: shell: bash {0} run: | choco --version - PACKAGES="python38 python38-pip" + PACKAGES="python39 python39-pip" choco install $PACKAGES --source cygwin - uses: actions/download-artifact@v2 with: @@ -442,7 +442,7 @@ jobs: shell: bash {0} run: | choco --version - PACKAGES="python38 python38-pip" + PACKAGES="python39 python39-pip" choco install $PACKAGES --source cygwin - uses: actions/download-artifact@v2 with: @@ -514,7 +514,7 @@ jobs: shell: bash {0} run: | choco --version - PACKAGES="python38 python38-pip" + PACKAGES="python39 python39-pip" choco install $PACKAGES --source cygwin - uses: actions/download-artifact@v2 with: @@ -586,7 +586,7 @@ jobs: shell: bash {0} run: | choco --version - PACKAGES="python38 python38-pip" + PACKAGES="python39 python39-pip" choco install $PACKAGES --source cygwin - uses: actions/download-artifact@v2 with: @@ -658,7 +658,7 @@ jobs: shell: bash {0} run: | choco --version - PACKAGES="python38 python38-pip" + PACKAGES="python39 python39-pip" choco install $PACKAGES --source cygwin - uses: actions/download-artifact@v2 with: @@ -728,7 +728,7 @@ jobs: shell: bash {0} run: | choco --version - PACKAGES="python38 python38-pip" + PACKAGES="python39 python39-pip" choco install $PACKAGES --source cygwin - uses: actions/download-artifact@v2 with: @@ -796,7 +796,7 @@ jobs: shell: bash {0} run: | choco --version - PACKAGES="python38 python38-pip" + PACKAGES="python39 python39-pip" choco install $PACKAGES --source cygwin - uses: actions/download-artifact@v2 with: @@ -864,7 +864,7 @@ jobs: shell: bash {0} run: | choco --version - PACKAGES="python38 python38-pip" + PACKAGES="python39 python39-pip" choco install $PACKAGES --source cygwin - uses: actions/download-artifact@v2 with: @@ -932,7 +932,7 @@ jobs: shell: bash {0} run: | choco --version - PACKAGES="python38 python38-pip" + PACKAGES="python39 python39-pip" choco install $PACKAGES --source cygwin - uses: actions/download-artifact@v2 with: @@ -1000,7 +1000,7 @@ jobs: shell: bash {0} run: | choco --version - PACKAGES="python38 python38-pip" + PACKAGES="python39 python39-pip" choco install $PACKAGES --source cygwin - uses: actions/download-artifact@v2 with: From 22d159a913e6c2a6104e1b6a9d3de9f3e09522e3 Mon Sep 17 00:00:00 2001 From: Dima Pasechnik Date: Tue, 29 Mar 2022 18:16:24 +0100 Subject: [PATCH 03/54] better defaults for notebook launching --- build/pkgs/notebook/jupyter_notebook_config.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/build/pkgs/notebook/jupyter_notebook_config.py b/build/pkgs/notebook/jupyter_notebook_config.py index e8f44402396..723dd18940c 100644 --- a/build/pkgs/notebook/jupyter_notebook_config.py +++ b/build/pkgs/notebook/jupyter_notebook_config.py @@ -10,3 +10,7 @@ # See https://github.com/jupyter/notebook/issues/3249 c.FileContentsManager.delete_to_trash = False + +# redirect file is not always working, e.g. with WSL, +# see https://github.com/jupyter/jupyter_core/issues/191 +c.NotebookApp.use_redirect_file=False From 88b04d4979b70f8b8b2fa58d9d0132f28c1f16de Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Fri, 8 Apr 2022 16:09:04 -0700 Subject: [PATCH 04/54] src/doc/en/developer/manual_git.rst: Do not recommend mixed sagetrac-mirror / trac operation when using VS Code --- src/doc/en/developer/manual_git.rst | 30 ++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/src/doc/en/developer/manual_git.rst b/src/doc/en/developer/manual_git.rst index 61404ffa7c5..b7fd1b96e34 100644 --- a/src/doc/en/developer/manual_git.rst +++ b/src/doc/en/developer/manual_git.rst @@ -42,16 +42,19 @@ repository, use these commands:: [user@localhost sage]$ git remote add trac https://github.com/sagemath/sagetrac-mirror.git -t master [user@localhost sage]$ git remote set-url --push trac git@trac.sagemath.org:sage.git + +Instead of ``trac`` you can use any other name you want, of course. +To verify that it is set up correctly:: + [user@localhost sage]$ git remote -v origin https://github.com/sagemath/sage.git (fetch) origin https://github.com/sagemath/sage.git (push) trac https://github.com/sagemath/sagetrac-mirror.git (fetch) trac git@trac.sagemath.org:sage.git (push) -Instead of ``trac`` you can use any local name you want, of course. It -is perfectly fine to have multiple remote repositories for git, think -of them as bookmarks. You can then use ``git pull`` to get changes and -``git push`` to upload your local changes using:: +It is perfectly fine to have multiple remote repositories for git, +think of them as bookmarks. You can then use ``git pull`` to get +changes and ``git push`` to upload your local changes using:: [user@localhost sage]$ git trac [ARGS] @@ -65,19 +68,20 @@ of them as bookmarks. You can then use ``git pull`` to get changes and tell git which branch you want to get from trac. See the :ref:`section-git-checkout` section for examples. -We set up the remote here to perform read-only operations (``fetch``) -using HTTPS from a mirror of the trac repository and write -operations (``push``) using the ssh protocol (specified by the ``git@`` -part). - -Note that to use the ssh protocol, you -need to have a trac account and to set up your ssh public key as -described in `Trac authentication through ssh +Note that write operations (``push``) use the ssh protocol (specified by the ``git@`` +part). For this to work, you need to have a trac account and to set up your ssh public +key as described in `Trac authentication through ssh `_. Authentication is necessary if you want to upload anything to ensure that it really is from you. -If you want to use ssh only, use the following commands instead:: +The above instructions set up the remote to perform read-only operations (``fetch``) +using HTTPS from a mirror of the trac repository instead. The mirror is faster and +more reliable than our git server. However, this configuration is not recommended if +you use VS Code as an IDE. + +If you want to use ssh only for both ``fetch`` and ``push``, use the +following commands instead:: [user@localhost sage]$ git remote add trac git@trac.sagemath.org:sage.git -t master [user@localhost sage]$ git remote -v From fc7aa4fec734969d09ab127a775a9501b74d1911 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Fri, 8 Apr 2022 18:10:46 -0700 Subject: [PATCH 05/54] src/doc/en/developer/advanced_git.rst: Mention git log --first-parent --- src/doc/en/developer/advanced_git.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/doc/en/developer/advanced_git.rst b/src/doc/en/developer/advanced_git.rst index 44794849a55..b9fa45d288a 100644 --- a/src/doc/en/developer/advanced_git.rst +++ b/src/doc/en/developer/advanced_git.rst @@ -171,7 +171,8 @@ successfully, it would be possible to merge in our branch ``some_code`` into develop. This would produce the same source files and avoid unnecessary recompilations. However, it makes reading git's history very unpleasant: For example, it is hard to keep track of changes etc., -as one cannot simply pursue the first parent of each git commit. +as one cannot simply pursue the first parent of each git commit +(``git log --first-parent``). .. _section-git-recovery: From aa9faaab875780c2e90f4edb51c98bdc9396bbc7 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Fri, 8 Apr 2022 18:21:23 -0700 Subject: [PATCH 06/54] src/doc/en/developer: move "git the hard way" earlier, present "git-trac" only as an additional convenience --- src/doc/en/developer/advanced_git.rst | 3 +- src/doc/en/developer/git_background.rst | 3 +- src/doc/en/developer/git_trac.rst | 41 +++++-------------------- src/doc/en/developer/index.rst | 38 ++++++----------------- src/doc/en/developer/manual_git.rst | 16 +++------- src/doc/en/developer/trac.rst | 14 ++++++--- src/doc/en/developer/walk_through.rst | 20 ++++++++---- 7 files changed, 48 insertions(+), 87 deletions(-) diff --git a/src/doc/en/developer/advanced_git.rst b/src/doc/en/developer/advanced_git.rst index b9fa45d288a..cb5422cfb3a 100644 --- a/src/doc/en/developer/advanced_git.rst +++ b/src/doc/en/developer/advanced_git.rst @@ -10,8 +10,7 @@ This chapter covers some advanced uses of git that go beyond what is required to work with branches. These features can be used in Sage development, but are not really necessary to contribute to Sage. If you are just getting started with Sage development, you should read -:ref:`chapter-walkthrough` instead. If you are new to git, please see -:ref:`chapter-manual-git`. +:ref:`chapter-walkthrough` and :ref:`chapter-manual-git` instead. Detached Heads and Reviewing Tickets diff --git a/src/doc/en/developer/git_background.rst b/src/doc/en/developer/git_background.rst index 7ec990ca365..dbea3ed11eb 100644 --- a/src/doc/en/developer/git_background.rst +++ b/src/doc/en/developer/git_background.rst @@ -7,8 +7,7 @@ Tips and References =================== This chapter contains additional material about the git revision -control system. It is not necessary if you stick with the Sage -development scripts. See :ref:`chapter-git-setup` for the minimal +control system. See :ref:`chapter-git-setup` for the minimal steps needed for Sage development. diff --git a/src/doc/en/developer/git_trac.rst b/src/doc/en/developer/git_trac.rst index 7b626e75239..580c791ce60 100644 --- a/src/doc/en/developer/git_trac.rst +++ b/src/doc/en/developer/git_trac.rst @@ -2,42 +2,21 @@ .. _chapter-git_trac: -======================================= -Collaborative Development with Git-Trac -======================================= - -Sometimes you will only want to work on local changes to Sage, for -your own private needs. However, typically it is beneficial to -share code and ideas with others; the manner in which the -`Sage project `_ does this (as well as fixing -bugs and upgrading components) is in a very collaborative and -public setting on `the Sage Trac server `_ -(the Sage bug and enhancement tracker). - -One can use ``git`` :ref:`the hard way ` for this, -but this section explains how to use the helper ``git trac`` command, which -simplifies many of the most common actions in collaboration on Sage. Some -of the :ref:`tutorials ` we suggest may be helpful -in navigating what they are for. - -Most of the commands in the following section will not work unless -you have an account on Trac. If you want to contribute to Sage, it -is a good idea to get an account now (see :ref:`section-trac-account`). +==================================== +Optional: Using the Git-Trac Command +==================================== +Git is a separate project from trac, and the two do not know how to +talk to each other. To simplify the development, we have a special +``git trac`` subcommand for the git suite. Note that this really is +only to simplify interaction with our trac issue management, you can +perform every development task with just git and a web browser. .. _section-git_trac-install: Installing the Git-Trac Command =============================== -Git is a separate project from trac, and the two do not know how to -talk to each other. To simplify the development, we have a special -``git trac`` subcommand for the git suite. Note that this really is -only to simplify interaction with our trac issue management, you can -perform every development task with just git and a web browser. See -:ref:`chapter-manual-git` instead if you prefer to do everything by -hand:: - [user@localhost]$ git clone https://github.com/sagemath/git-trac-command.git Cloning into 'git-trac-command'... [...] @@ -149,10 +128,6 @@ secured with SSH keys, which you must have set up as in :ref:`section-trac-ssh-key`. Read-only access happens through the fetch url and does not require SSH. -Finally, if you do not want to use the ``git trac`` subcommand at all -then you can set up the remote by hand as described in the section on -:ref:`section-git-trac`. - Trac Tickets and Git Branches ============================= diff --git a/src/doc/en/developer/index.rst b/src/doc/en/developer/index.rst index c15983ba378..de24e3e3b7e 100644 --- a/src/doc/en/developer/index.rst +++ b/src/doc/en/developer/index.rst @@ -59,13 +59,12 @@ development! need to learn about revision control; we use the software Git for this purpose. - - :ref:`Here is ` an overview of our development flow. - - :ref:`Unfamiliar with Git or revision control? ` - :ref:`How to install it? ` - :ref:`How to configure it for use with Trac? ` + - :ref:`Here is ` an overview of our development flow. -Git for Sage development -======================== +Git and Trac for Sage development +================================= First Steps with Git -------------------- @@ -78,41 +77,24 @@ Sage uses git for version control. git_setup walk_through -The git-trac command --------------------- - -Putting your local changes on a Trac ticket. - -.. toctree:: - :maxdepth: 2 - - git_trac - .. _section-git-tricks-and-tips: -Git Tricks & Tips ------------------ +Using Git with Trac +------------------- -When ``git trac`` is not enough. +To contribute back your changes to Sage source code to the project, +you will need a ticket on the +`Sage trac server `_. .. toctree:: :maxdepth: 2 + trac manual_git git_background advanced_git workflows - -Sage Trac and tickets -===================== - -All changes to Sage source code require a ticket on the -`Sage trac server `_. - -.. toctree:: - :maxdepth: 2 - - trac + git_trac .. _section-writing-code-for-sage: diff --git a/src/doc/en/developer/manual_git.rst b/src/doc/en/developer/manual_git.rst index b7fd1b96e34..f82d557758e 100644 --- a/src/doc/en/developer/manual_git.rst +++ b/src/doc/en/developer/manual_git.rst @@ -2,19 +2,11 @@ .. _chapter-manual-git: -================ -Git the Hard Way -================ +=================================== +Using Git with the Sage Trac Server +=================================== -If you have no ``git`` experience, we recommend you to read the -:ref:`chapter-git_trac` chapter instead. The ``git-trac`` simplifies the -interaction with our git and trac servers. - -If you want to contribute using ``git`` only, you are at the right place. This -chapter will tell you how to do so, assuming some basic familiarity with ``git``. In -particular, you should have read :ref:`chapter-walkthrough` first. - -Randall Munroe has provided a `basic overview `_. +Now we continue our introduction to git from :ref:`chapter-walkthrough`. In the following, we assume that you are in the source directory of Sage (``SAGE_ROOT``), obtained either from a source tarball or by cloning a Sage git repository diff --git a/src/doc/en/developer/trac.rst b/src/doc/en/developer/trac.rst index 7d1eb749f71..ad7b5f1db8a 100644 --- a/src/doc/en/developer/trac.rst +++ b/src/doc/en/developer/trac.rst @@ -6,9 +6,15 @@ The Sage Trac Server ==================== -All changes to Sage source code have to go through the `Sage Trac -development server `_. The purpose -of the Sage trac server is to +Sometimes you will only want to work on local changes to Sage, for +your own private needs. However, typically it is beneficial to +share code and ideas with others; the manner in which the +`Sage project `_ does this (as well as fixing +bugs and upgrading components) is in a very collaborative and +public setting on `the Sage Trac server `_ +(the Sage bug and enhancement tracker). + +The purpose of the Sage trac server is to 1. Provide a place for discussion on issues and store a permanent record. @@ -413,7 +419,7 @@ Only the Sage release manager will close tickets. Most likely, this is not you nor will your trac account have the necessary permissions. If you feel strongly that a ticket should be closed or deleted, then change the status of the ticket to *needs review* and change the -milestone to *sage-duplictate/invalid/wontfix*. You should also +milestone to *sage-duplicate/invalid/wontfix*. You should also comment on the ticket, explaining why it should be closed. If another developer agrees, he sets the ticket to *positive review*. diff --git a/src/doc/en/developer/walk_through.rst b/src/doc/en/developer/walk_through.rst index bea22fd5c4c..a4de6f5f138 100644 --- a/src/doc/en/developer/walk_through.rst +++ b/src/doc/en/developer/walk_through.rst @@ -10,17 +10,25 @@ This section is a concise overview of the Sage development process. In it, we will see how to make changes to the Sage source code and record them in the ``git`` revision control system. -In the following section on :ref:`chapter-git_trac` we will look at -communicating these changes back to the Sage project. We also have a handy -`one-page "cheat sheet" +We also have a handy `one-page "cheat sheet" `_ of commonly used git commands that you can print out and leave on your desk. We have some :ref:`recommended references and tutorials ` as well. -You can alternatively fork and create a merge request at -`GitLab `_ which will automatically fetch -your code and open a ticket on our trac server. +In the following sections on :ref:`chapter-sage-trac` and +:ref:`section-git-tricks-and-tips` we will look at communicating these +changes back to the Sage project. All changes to Sage source code +have to go through the `Sage Trac development server +`_. + +As an alternative to using the Trac server directly, you can fork and +create a Merge Request (MR) at `GitLab `_ +which will automatically fetch your code and open a ticket on our trac +server. + +Pull Requests (PR) on GitHub are currently not supported by the +SageMath project. .. _section-walkthrough-setup-git: From 35c4dc6d8b8f8d7ee079a455b8cbab0cc8708633 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sun, 10 Apr 2022 15:06:25 -0700 Subject: [PATCH 07/54] m4/sage_check_python_for_venv.m4: Suppress error output from python3 --- m4/sage_check_python_for_venv.m4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/m4/sage_check_python_for_venv.m4 b/m4/sage_check_python_for_venv.m4 index a6da1f84167..da89e93a7ed 100644 --- a/m4/sage_check_python_for_venv.m4 +++ b/m4/sage_check_python_for_venv.m4 @@ -20,7 +20,7 @@ AC_DEFUN([SAGE_CHECK_PYTHON_FOR_VENV], [ dnl Otherwise, some system site-package may be providing this module to the system python. dnl m4_define([conftest_venv], [config-venv]) .... for debugging only rm -rf conftest_venv - AS_IF(["]PYTHON_EXE[" build/bin/sage-venv conftest_venv && conftest_venv/bin/python3 -c "import ]REQUIRED_MODULES["], [ + AS_IF(["]PYTHON_EXE[" build/bin/sage-venv conftest_venv && conftest_venv/bin/python3 -c "import ]REQUIRED_MODULES[" 2>& ]AS_MESSAGE_LOG_FD, [ AS_VAR_SET([python3_result], [yes]) SAGE_PYTHON_CHECK_DISTUTILS([CC="$CC" CXX="$CXX" conftest_venv/bin/python3], [ SAGE_ARCHFLAGS="unset" From f635ad162226a544c0348f2affa0fd9516565035 Mon Sep 17 00:00:00 2001 From: Jonathan Kliem Date: Sun, 10 Apr 2022 11:33:22 +0200 Subject: [PATCH 08/54] clear cache after catching type error when obtaining Vrepresentation --- src/sage/geometry/polyhedron/backend_ppl.py | 69 ++++++++++++++++++++- 1 file changed, 67 insertions(+), 2 deletions(-) diff --git a/src/sage/geometry/polyhedron/backend_ppl.py b/src/sage/geometry/polyhedron/backend_ppl.py index 3ac2bb267f7..6ac7a21ce65 100644 --- a/src/sage/geometry/polyhedron/backend_ppl.py +++ b/src/sage/geometry/polyhedron/backend_ppl.py @@ -178,9 +178,38 @@ def set_immutable(self): sage: p.set_immutable() sage: hasattr(p, "_Vrepresentation") True + + TESTS: + + Check that :trac:`33666` is fixed:: + + sage: cube = polytopes.cube() + sage: parent = cube.parent() + sage: smaller_cube_ZZ = parent._element_constructor_(1/2 * cube, mutable=True) + sage: smaller_cube_ZZ.set_immutable() + Traceback (most recent call last): + ... + TypeError: the polyhedron is not integral; do a base extension ``self.base_extend(QQ)`` + sage: smaller_cube_ZZ.is_immutable() + False + sage: smaller_cube_ZZ.set_immutable() + Traceback (most recent call last): + ... + TypeError: the polyhedron is not integral; do a base extension ``self.base_extend(QQ)`` + sage: smaller_cube_ZZ.is_immutable() + False + sage: smaller_cube_QQ = smaller_cube_ZZ.base_extend(QQ) + sage: smaller_cube_QQ.set_immutable() + sage: smaller_cube_QQ.is_immutable() + True """ if not hasattr(self, '_Vrepresentation'): - self._init_Vrepresentation_from_ppl(True) + try: + self._init_Vrepresentation_from_ppl(True) + except TypeError: + # Apparently the polyhedron is (no longer) integral. + self._clear_cache() + raise TypeError("the polyhedron is not integral; do a base extension ``self.base_extend(QQ)``") if not hasattr(self, '_Hrepresentation'): self._init_Hrepresentation_from_ppl(True) self._is_mutable = False @@ -221,9 +250,45 @@ def Vrepresentation(self, index=None): sage: p.Vrepresentation(0) A vertex at (-1, -1, -1) sage: TestSuite(p).run() + + TESTS: + + Check that :trac:`33666` is fixed:: + + sage: cube = polytopes.cube() + sage: parent = cube.parent() + sage: smaller_cube_ZZ = parent._element_constructor_(1/2 * cube, mutable=True) + sage: smaller_cube_ZZ.Hrepresentation() + (An inequality (0, 0, -2) x + 1 >= 0, + An inequality (0, -2, 0) x + 1 >= 0, + An inequality (-2, 0, 0) x + 1 >= 0, + An inequality (2, 0, 0) x + 1 >= 0, + An inequality (0, 0, 2) x + 1 >= 0, + An inequality (0, 2, 0) x + 1 >= 0) + sage: smaller_cube_ZZ.Vrepresentation() + Traceback (most recent call last): + ... + TypeError: the polyhedron is not integral; do a base extension ``self.base_extend(QQ)`` + sage: smaller_cube_ZZ.Vrepresentation() + Traceback (most recent call last): + ... + TypeError: the polyhedron is not integral; do a base extension ``self.base_extend(QQ)`` + sage: smaller_cube_QQ = smaller_cube_ZZ.base_extend(QQ) + sage: smaller_cube_QQ.Hrepresentation() + (An inequality (0, 0, -2) x + 1 >= 0, + An inequality (0, -2, 0) x + 1 >= 0, + An inequality (-2, 0, 0) x + 1 >= 0, + An inequality (2, 0, 0) x + 1 >= 0, + An inequality (0, 0, 2) x + 1 >= 0, + An inequality (0, 2, 0) x + 1 >= 0) """ if not hasattr(self, '_Vrepresentation'): - self._init_Vrepresentation_from_ppl(True) + try: + self._init_Vrepresentation_from_ppl(True) + except TypeError: + # Apparently the polyhedron is (no longer) integral. + self._clear_cache() + raise TypeError("the polyhedron is not integral; do a base extension ``self.base_extend(QQ)``") if index is None: return self._Vrepresentation else: From ed109aea4e7b1a7d334ce64de12542547954d5ed Mon Sep 17 00:00:00 2001 From: Jonathan Kliem Date: Mon, 11 Apr 2022 08:10:48 +0200 Subject: [PATCH 09/54] keep old type error at initialization --- src/sage/geometry/polyhedron/backend_ppl.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/sage/geometry/polyhedron/backend_ppl.py b/src/sage/geometry/polyhedron/backend_ppl.py index 6ac7a21ce65..3a5b7aa94b6 100644 --- a/src/sage/geometry/polyhedron/backend_ppl.py +++ b/src/sage/geometry/polyhedron/backend_ppl.py @@ -189,13 +189,13 @@ def set_immutable(self): sage: smaller_cube_ZZ.set_immutable() Traceback (most recent call last): ... - TypeError: the polyhedron is not integral; do a base extension ``self.base_extend(QQ)`` + TypeError: no conversion of this rational to integer sage: smaller_cube_ZZ.is_immutable() False sage: smaller_cube_ZZ.set_immutable() Traceback (most recent call last): ... - TypeError: the polyhedron is not integral; do a base extension ``self.base_extend(QQ)`` + TypeError: no conversion of this rational to integer sage: smaller_cube_ZZ.is_immutable() False sage: smaller_cube_QQ = smaller_cube_ZZ.base_extend(QQ) @@ -206,10 +206,10 @@ def set_immutable(self): if not hasattr(self, '_Vrepresentation'): try: self._init_Vrepresentation_from_ppl(True) - except TypeError: + except TypeError as e: # Apparently the polyhedron is (no longer) integral. self._clear_cache() - raise TypeError("the polyhedron is not integral; do a base extension ``self.base_extend(QQ)``") + raise e if not hasattr(self, '_Hrepresentation'): self._init_Hrepresentation_from_ppl(True) self._is_mutable = False From 7c46c086cf81fe32ae8e1210a89650d869831111 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Fri, 25 Mar 2022 11:45:00 -0700 Subject: [PATCH 10/54] src/bin/sage-runtests: Do not run pytest if the pytest configuration is not available --- src/bin/sage-runtests | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/bin/sage-runtests b/src/bin/sage-runtests index b45eb1949a7..15d7ffcd4a0 100755 --- a/src/bin/sage-runtests +++ b/src/bin/sage-runtests @@ -150,6 +150,14 @@ if __name__ == "__main__": DC = DocTestController(args, args.filenames) err = DC.run() + # Trac #33521: Do not run pytest if the pytest configuration is not available. + # This happens when the source tree is not available and SAGE_SRC falls back + # to SAGE_LIB. + from sage.env import SAGE_SRC + if not all(os.path.isfile(os.path.join(SAGE_SRC, f)) + for f in ["conftest.py", "tox.ini"]): + sys.exit(err) + try: exit_code_pytest = 0 import pytest From 84d3d9e5ca7b6d15355743f94c6c917359136998 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Mon, 11 Apr 2022 19:48:09 -0700 Subject: [PATCH 11/54] src/bin/sage-runtests: Clarify where pytest would have to be installed --- src/bin/sage-runtests | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/sage-runtests b/src/bin/sage-runtests index 15d7ffcd4a0..1976bcee5d8 100755 --- a/src/bin/sage-runtests +++ b/src/bin/sage-runtests @@ -177,7 +177,7 @@ if __name__ == "__main__": exit_code_pytest = 0 except ModuleNotFoundError: - print("Pytest is not installed, skip checking tests that rely on it.") + print("pytest is not installed in the venv, skip checking tests that rely on it") if err == 0: sys.exit(exit_code_pytest) From 9a7edb904e68eff3fa39363470b95182e820deb0 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Tue, 12 Apr 2022 09:33:16 -0700 Subject: [PATCH 12/54] Remove mention of src/module_list.py removed in #29701 --- build/pkgs/meataxe/spkg-install.in | 2 +- src/doc/en/developer/coding_basics.rst | 4 ---- src/doc/en/developer/coding_in_cython.rst | 19 +------------------ src/sage_setup/clean.py | 3 +-- 4 files changed, 3 insertions(+), 25 deletions(-) diff --git a/build/pkgs/meataxe/spkg-install.in b/build/pkgs/meataxe/spkg-install.in index 0c795517cd8..09028160aa9 100644 --- a/build/pkgs/meataxe/spkg-install.in +++ b/build/pkgs/meataxe/spkg-install.in @@ -1,7 +1,7 @@ # Delete old (Shared)MeatAxe libraries. This ensures a sane state if # installation of this package fails: the mtx library should exist if # and only if meataxe is installed. In detail: the build-time check in -# src/module_list.py checks whether or not the "meataxe" package is +# src/setup.py checks whether or not the "meataxe" package is # marked as installed but the run-time check for the matrix_gfpn_dense # module checks whether it can be imported. We need to ensure that these # two conditions are equivalent, otherwise strange things can happen. diff --git a/src/doc/en/developer/coding_basics.rst b/src/doc/en/developer/coding_basics.rst index 3dc549e71a7..96192406d7b 100644 --- a/src/doc/en/developer/coding_basics.rst +++ b/src/doc/en/developer/coding_basics.rst @@ -103,13 +103,9 @@ of the directory containing the Sage sources: sage # the Sage launcher Makefile # top level Makefile build/ # Sage's build system - deps - install - ... pkgs/ # install, patch, and metadata from spkgs src/ setup.py - module_list.py ... sage/ # Sage library ext_data/ # extra Sage resources (formerly src/ext) diff --git a/src/doc/en/developer/coding_in_cython.rst b/src/doc/en/developer/coding_in_cython.rst index 397758e0fba..f5aa767c3cc 100644 --- a/src/doc/en/developer/coding_in_cython.rst +++ b/src/doc/en/developer/coding_in_cython.rst @@ -66,24 +66,7 @@ There are several ways to create and build Cython code in Sage. the notebook). #. Create a ``.pyx`` file and add it to the Sage library. - - #. First, add a listing for the Cython extension to the variable - ``ext_modules`` in the file - ``SAGE_ROOT/src/module_list.py``. See the - ``distutils.extension.Extension`` class for more information on - creating a new Cython extension. - - #. Run ``sage -b`` to rebuild Sage. - - For example, in order to compile - ``SAGE_ROOT/src/sage/graphs/chrompoly.pyx``, we see the following - lines in ``module_list.py``: - - .. CODE-BLOCK:: python - - Extension('sage.graphs.chrompoly', - sources = ['sage/graphs/chrompoly.pyx'], - libraries = ['gmp']), + Then run ``sage -b`` to rebuild Sage. Attaching or Loading .spyx Files diff --git a/src/sage_setup/clean.py b/src/sage_setup/clean.py index 2c82806f75b..e37e6c9c52c 100644 --- a/src/sage_setup/clean.py +++ b/src/sage_setup/clean.py @@ -87,8 +87,7 @@ def _find_stale_files(site_packages, python_packages, python_modules, ext_module ....: ['sage', 'sage_setup'], cythonized_dir, []).items()) sage: from sage_setup.clean import _find_stale_files - TODO: move ``module_list.py`` into ``sage_setup`` and also check - extension modules:: + TODO: Also check extension modules:: sage: stale_iter = _find_stale_files(SAGE_LIB, python_packages, python_modules, [], extra_files) sage: from importlib.machinery import EXTENSION_SUFFIXES From 3480069e02d3021e9c3b42b247c9a3667cb46b75 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 16 Apr 2022 10:35:47 -0700 Subject: [PATCH 13/54] build/pkgs/symengine/spkg-install.in: Use sdh_cmake so that CMAKE_INSTALL_PREFIX is set --- build/pkgs/symengine/spkg-install.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/pkgs/symengine/spkg-install.in b/build/pkgs/symengine/spkg-install.in index d617d634e46..8eaaf6fbcbe 100644 --- a/build/pkgs/symengine/spkg-install.in +++ b/build/pkgs/symengine/spkg-install.in @@ -1,7 +1,7 @@ cd src mkdir build cd build -cmake -DCMAKE_PREFIX_PATH="$SAGE_LOCAL" \ +sdh_cmake -DCMAKE_PREFIX_PATH="$SAGE_LOCAL" \ -DWITH_SYMENGINE_THREAD_SAFE=yes \ -DWITH_ECM=yes \ -DWITH_FLINT=yes \ From ca1dc9c68bbd36e06f7c2aef17f172640bda7e83 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sat, 16 Apr 2022 17:32:25 +0000 Subject: [PATCH 14/54] Add enable-download-from-upstream-url to github actions --- .github/workflows/build.yml | 2 +- .github/workflows/doc-build.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8267f3de1b0..e795a9e7ad9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -31,7 +31,7 @@ jobs: run: | # Reuse built SAGE_LOCAL contained in the Docker image ./bootstrap - ./configure --enable-build-as-root --prefix=/sage/local --with-sage-venv --enable-editable + ./configure --enable-build-as-root --prefix=/sage/local --with-sage-venv --enable-editable --enable-download-from-upstream-url # Install test tools apt-get install -y git ./sage -python -m pip install coverage diff --git a/.github/workflows/doc-build.yml b/.github/workflows/doc-build.yml index 1b501600e67..32cab1e0ffb 100644 --- a/.github/workflows/doc-build.yml +++ b/.github/workflows/doc-build.yml @@ -23,7 +23,7 @@ jobs: run: | # Reuse built SAGE_LOCAL contained in the Docker image ./bootstrap - ./configure --enable-build-as-root --prefix=/sage/local --with-sage-venv + ./configure --enable-build-as-root --prefix=/sage/local --with-sage-venv --enable-download-from-upstream-url - name: Build run: make doc-html From 11f7a34ba66dc5c3407b45c360aea1cad97ef975 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Labb=C3=A9?= Date: Thu, 7 Apr 2022 16:28:24 +0200 Subject: [PATCH 15/54] 33588: adding do_fixup method in the SageOutputChecker --- src/sage/doctest/parsing.py | 65 ++++++++++++++++++++++++++++++++++--- 1 file changed, 60 insertions(+), 5 deletions(-) diff --git a/src/sage/doctest/parsing.py b/src/sage/doctest/parsing.py index 98cb73b3753..eae22ae6c05 100644 --- a/src/sage/doctest/parsing.py +++ b/src/sage/doctest/parsing.py @@ -946,18 +946,73 @@ def check_output(self, want, got, optionflags): if ok: return ok + # Last resort: try to fix-up the got string removing few typical warnings + did_fixup, want, got = self.do_fixup(want, got) + + if not did_fixup: + # Return the same result as before + return ok + + return doctest.OutputChecker.check_output(self, want, got, optionflags) + + def do_fixup(self, want, got): + r""" + Performs few changes to the strings ``want`` and ``got``. + + For example, remove warnings to be ignored. + + INPUT: + + - ``want`` -- a string or :class:`MarkedOutput` + - ``got`` -- a string + + OUTPUT: + + A tuple: + + - bool, True when some fixup were performed + - string, (unchanged) wanted string + - string, edited got string + + EXAMPLES:: + + sage: from sage.doctest.parsing import SageOutputChecker + sage: OC = SageOutputChecker() + sage: OC.do_fixup('1.3090169943749475','1.3090169943749475') + (False, '1.3090169943749475', '1.3090169943749475') + sage: OC.do_fixup('1.3090169943749475','ANYTHING1.3090169943749475') + (False, '1.3090169943749475', 'ANYTHING1.3090169943749475') + sage: OC.do_fixup('1.3090169943749475','Long-step dual simplex will be used\n1.3090169943749475') + (True, '1.3090169943749475', '\n1.3090169943749475') + + When ``want`` is an instance of class :class:`MarkedOutput`:: + + sage: from sage.doctest.parsing import SageOutputChecker, SageDocTestParser + sage: import doctest + sage: optflag = doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS + sage: DTP = SageDocTestParser(('sage','magma','guava')) + sage: OC = SageOutputChecker() + sage: example = "sage: 1.3090169943749475\n1.3090169943749475" + sage: ex = DTP.parse(example)[1] + sage: ex.want + '1.3090169943749475\n' + sage: OC.do_fixup(ex.want,'1.3090169943749475') + (False, '1.3090169943749475\n', '1.3090169943749475') + sage: OC.do_fixup(ex.want,'ANYTHING1.3090169943749475') + (False, '1.3090169943749475\n', 'ANYTHING1.3090169943749475') + sage: OC.do_fixup(ex.want,'Long-step dual simplex will be used\n1.3090169943749475') + (True, '1.3090169943749475\n', '\n1.3090169943749475') + + """ did_fixup = False + for quick_check, fixup in _repr_fixups: do_fixup = quick_check(got, want) if do_fixup: got, want = fixup(got, want) did_fixup = True - if not did_fixup: - # Return the same result as before - return ok - - return doctest.OutputChecker.check_output(self, want, got, optionflags) + return did_fixup, want, got def output_difference(self, example, got, optionflags): r""" From 1d337e4ef96af446735eff7ffd52576f2d4cb24c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Labb=C3=A9?= Date: Thu, 7 Apr 2022 17:07:32 +0200 Subject: [PATCH 16/54] 33588: continue to compare the non-floats part of doctests when tolerance is given --- src/sage/doctest/parsing.py | 43 +++++++++++++++++++++++++------------ 1 file changed, 29 insertions(+), 14 deletions(-) diff --git a/src/sage/doctest/parsing.py b/src/sage/doctest/parsing.py index eae22ae6c05..f320d507c52 100644 --- a/src/sage/doctest/parsing.py +++ b/src/sage/doctest/parsing.py @@ -916,6 +916,22 @@ def check_output(self, want, got, optionflags): ['Fermat', 'Euler'] sage: c = 'you'; c 'you' + + This illustrates that :trac:`33588` is fixed:: + + sage: from sage.doctest.parsing import SageOutputChecker, SageDocTestParser + sage: import doctest + sage: optflag = doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS + sage: DTP = SageDocTestParser(('sage','magma','guava')) + sage: OC = SageOutputChecker() + sage: example = "sage: 1.3090169943749475 # tol 1e-8\n1.3090169943749475" + sage: ex = DTP.parse(example)[1] + sage: OC.check_output(ex.want, '1.3090169943749475', optflag) + True + sage: OC.check_output(ex.want, 'ANYTHING1.3090169943749475', optflag) + False + sage: OC.check_output(ex.want, 'Long-step dual simplex will be used\n1.3090169943749475', optflag) + True """ got = self.human_readable_escape_sequences(got) @@ -923,35 +939,34 @@ def check_output(self, want, got, optionflags): if want.random: return True elif want.tol or want.rel_tol or want.abs_tol: - # First check the doctest without the numbers + # First check that the number of float appearing match want_str = [g[0] for g in float_regex.findall(want)] got_str = [g[0] for g in float_regex.findall(got)] if len(want_str) != len(got_str): return False - starwant = float_regex.sub('*', want) - stargot = float_regex.sub('*', got) - if not doctest.OutputChecker.check_output(self, starwant, stargot, optionflags): - return False - # Now check the numbers + # Then check the numbers want_values = [RIFtol(g) for g in want_str] want_intervals = [self.add_tolerance(v, want) for v in want_values] got_values = [RIFtol(g) for g in got_str] - # The doctest is successful if the "want" and "got" - # intervals have a non-empty intersection - return all(a.overlaps(b) for a, b in zip(want_intervals, got_values)) + # The doctest is not successful if one of the "want" and "got" + # intervals have an empty intersection + if not all(a.overlaps(b) for a, b in zip(want_intervals, got_values)): + return False - ok = doctest.OutputChecker.check_output(self, want, got, optionflags) + # Then check the part of the doctests without the numbers + # Continue the check process with floats replaced by stars + want = float_regex.sub('*', want) + got = float_regex.sub('*', got) - if ok: - return ok + if doctest.OutputChecker.check_output(self, want, got, optionflags): + return True # Last resort: try to fix-up the got string removing few typical warnings did_fixup, want, got = self.do_fixup(want, got) if not did_fixup: - # Return the same result as before - return ok + return False return doctest.OutputChecker.check_output(self, want, got, optionflags) From 79071f527e440ecda24feb7d0ec303d204d8b6ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Labb=C3=A9?= Date: Thu, 7 Apr 2022 17:34:18 +0200 Subject: [PATCH 17/54] 33588: using if-else is better at showing the logic structure of the cases --- src/sage/doctest/parsing.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/sage/doctest/parsing.py b/src/sage/doctest/parsing.py index f320d507c52..ff008f3fa15 100644 --- a/src/sage/doctest/parsing.py +++ b/src/sage/doctest/parsing.py @@ -961,14 +961,13 @@ def check_output(self, want, got, optionflags): if doctest.OutputChecker.check_output(self, want, got, optionflags): return True - - # Last resort: try to fix-up the got string removing few typical warnings - did_fixup, want, got = self.do_fixup(want, got) - - if not did_fixup: - return False - - return doctest.OutputChecker.check_output(self, want, got, optionflags) + else: + # Last resort: try to fix-up the got string removing few typical warnings + did_fixup, want, got = self.do_fixup(want, got) + if did_fixup: + return doctest.OutputChecker.check_output(self, want, got, optionflags) + else: + return False def do_fixup(self, want, got): r""" From 2afb47293d0fb63f017d3e9acb6035166dfc92aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Labb=C3=A9?= Date: Mon, 18 Apr 2022 12:57:16 +0200 Subject: [PATCH 18/54] 33588: raw-string for documentation of check_output --- src/sage/doctest/parsing.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sage/doctest/parsing.py b/src/sage/doctest/parsing.py index ff008f3fa15..d2939218bb9 100644 --- a/src/sage/doctest/parsing.py +++ b/src/sage/doctest/parsing.py @@ -807,7 +807,7 @@ def add_tolerance(self, wantval, want): return wantval def check_output(self, want, got, optionflags): - """ + r""" Checks to see if the output matches the desired output. If ``want`` is a :class:`MarkedOutput` instance, takes into account the desired tolerance. From 8eb67b8d9de1ba7f1a48e4f443b05b8b0d7ce08b Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Wed, 20 Apr 2022 13:10:52 +0900 Subject: [PATCH 19/54] Add macro definitions recursively to latex output --- src/sage/misc/html.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/sage/misc/html.py b/src/sage/misc/html.py index 7a7e81eec60..68ddc5f3dfc 100644 --- a/src/sage/misc/html.py +++ b/src/sage/misc/html.py @@ -25,7 +25,7 @@ from sage.misc.sage_eval import sage_eval from sage.structure.sage_object import SageObject -macro_regex = re.compile(r'\\newcommand{(?P\\[a-zA-Z]+)}') +macro_regex = re.compile(r'\\newcommand{(?P\\[a-zA-Z]+)}(\[.+\])?{(?P.+)}') class HtmlFragment(str, SageObject): @@ -353,10 +353,16 @@ def eval(self, x, globals=None, locals=None, mode='display', combine_all=False): # add a macro definition only if it appears in the latex string macros_string = '' - for line in sage_latex_macros(): - m = macro_regex.match(line) - if m['name'] in latex_string: - macros_string += line + latex_macros = sage_latex_macros() + test_string = latex_string + while test_string: + new_test_string = '' + for line in latex_macros: + m = macro_regex.match(line) + if m['name'] in test_string: + macros_string += line + new_test_string += '{' + m['definition'] + '}' + test_string = new_test_string latex_string = macros_string + latex_string From 9e2190cc73f9c2064ec7001b2097b4bc805f52bf Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Wed, 20 Apr 2022 17:16:13 +0900 Subject: [PATCH 20/54] Add a test --- src/sage/misc/html.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/sage/misc/html.py b/src/sage/misc/html.py index 68ddc5f3dfc..0c7524674bc 100644 --- a/src/sage/misc/html.py +++ b/src/sage/misc/html.py @@ -299,6 +299,12 @@ def eval(self, x, globals=None, locals=None, mode='display', combine_all=False): \(3\) sage: MathJax().eval(type(3), mode='inline') \(\verb|<class|\verb| |\verb|'sage.rings.integer.Integer'>|\) + + TESTS: + + sage: from sage.misc.html import MathJax + sage: MathJax().eval(IntegerModRing(6)) + \[\newcommand{\ZZ}{\Bold{Z}}\newcommand{\Bold}[1]{\mathbf{#1}}\ZZ/6\ZZ\] """ # Get a regular LaTeX representation of x x = latex(x, combine_all=combine_all) From e7ff2a83a3718923588f56a06c073721b2d18d8b Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Wed, 20 Apr 2022 17:13:57 -0700 Subject: [PATCH 21/54] build/pkgs/gcc/spkg-configure.m4: Fixup --- build/pkgs/gcc/spkg-configure.m4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/pkgs/gcc/spkg-configure.m4 b/build/pkgs/gcc/spkg-configure.m4 index 29b26c968bc..959e499b68a 100644 --- a/build/pkgs/gcc/spkg-configure.m4 +++ b/build/pkgs/gcc/spkg-configure.m4 @@ -169,7 +169,7 @@ SAGE_SPKG_CONFIGURE_BASE([gcc], [ # Install our own GCC if the system-provided one is newer than 12.x. # See https://trac.sagemath.org/ticket/29456 SAGE_SHOULD_INSTALL_GCC([$CXX is g++ version $GXX_VERSION, which is too recent for this version of Sage]) - ] + ]) fi # The following tests check that the version of the compilers From 0713f534c47ec586e485bd2e688fdf7fe4a80f53 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Wed, 20 Apr 2022 23:13:08 -0700 Subject: [PATCH 22/54] .github/workflows/tox*.yml: Replace ubuntu-xenial by ubuntu-xenial-toolchain-gcc_9 --- .github/workflows/tox-experimental.yml | 2 +- .github/workflows/tox-optional.yml | 2 +- .github/workflows/tox.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/tox-experimental.yml b/.github/workflows/tox-experimental.yml index e5712591962..383a33dc4ec 100644 --- a/.github/workflows/tox-experimental.yml +++ b/.github/workflows/tox-experimental.yml @@ -38,7 +38,7 @@ jobs: fail-fast: false max-parallel: 6 matrix: - tox_system_factor: [gitpod, ubuntu-trusty-toolchain-gcc_9, ubuntu-xenial, ubuntu-bionic, ubuntu-focal, ubuntu-hirsute, ubuntu-impish, ubuntu-jammy, debian-stretch, debian-buster, debian-bullseye, debian-bookworm, debian-sid, linuxmint-19, linuxmint-19.3, linuxmint-20.1, linuxmint-20.2, linuxmint-20.3, fedora-26, fedora-27, fedora-28, fedora-29, fedora-30, fedora-31, fedora-32, fedora-33, fedora-34, fedora-35, fedora-36, centos-7-devtoolset-gcc_11, centos-stream-8, gentoo-python3.9, gentoo-python3.10, archlinux-latest, opensuse-15.3, opensuse-tumbleweed, conda-forge, ubuntu-bionic-i386, manylinux-2_24-i686, debian-buster-i386, centos-7-i386-devtoolset-gcc_11] + tox_system_factor: [gitpod, ubuntu-trusty-toolchain-gcc_9, ubuntu-xenial-toolchain-gcc_9, ubuntu-bionic, ubuntu-focal, ubuntu-hirsute, ubuntu-impish, ubuntu-jammy, debian-stretch, debian-buster, debian-bullseye, debian-bookworm, debian-sid, linuxmint-19, linuxmint-19.3, linuxmint-20.1, linuxmint-20.2, linuxmint-20.3, fedora-26, fedora-27, fedora-28, fedora-29, fedora-30, fedora-31, fedora-32, fedora-33, fedora-34, fedora-35, fedora-36, centos-7-devtoolset-gcc_11, centos-stream-8, gentoo-python3.9, gentoo-python3.10, archlinux-latest, opensuse-15.3, opensuse-tumbleweed, conda-forge, ubuntu-bionic-i386, manylinux-2_24-i686, debian-buster-i386, centos-7-i386-devtoolset-gcc_11] tox_packages_factor: [maximal] targets_pattern: [0-g, h-o, p, q-z] env: diff --git a/.github/workflows/tox-optional.yml b/.github/workflows/tox-optional.yml index 9c0c3416a9c..37da5a4a9d8 100644 --- a/.github/workflows/tox-optional.yml +++ b/.github/workflows/tox-optional.yml @@ -38,7 +38,7 @@ jobs: fail-fast: false max-parallel: 6 matrix: - tox_system_factor: [ubuntu-trusty-toolchain-gcc_9, ubuntu-xenial, ubuntu-bionic, ubuntu-focal, ubuntu-hirsute, ubuntu-impish, ubuntu-jammy, debian-stretch, debian-buster, debian-bullseye, debian-bookworm, debian-sid, linuxmint-19, linuxmint-19.3, linuxmint-20.1, linuxmint-20.2. linuxmint-20.3, fedora-26, fedora-27, fedora-28, fedora-29, fedora-30, fedora-31, fedora-32, fedora-33, fedora-34, fedora-35, fedora-36, centos-7-devtoolset-gcc_11, centos-stream-8, gentoo-python3.9, gentoo-python3.10, archlinux-latest, opensuse-15.3, opensuse-tumbleweed, slackware-14.2, conda-forge, ubuntu-bionic-i386, manylinux-2_24-i686, debian-buster-i386, centos-7-i386-devtoolset-gcc_11] + tox_system_factor: [ubuntu-trusty-toolchain-gcc_9, ubuntu-xenial-toolchain-gcc_9, ubuntu-bionic, ubuntu-focal, ubuntu-hirsute, ubuntu-impish, ubuntu-jammy, debian-stretch, debian-buster, debian-bullseye, debian-bookworm, debian-sid, linuxmint-19, linuxmint-19.3, linuxmint-20.1, linuxmint-20.2. linuxmint-20.3, fedora-26, fedora-27, fedora-28, fedora-29, fedora-30, fedora-31, fedora-32, fedora-33, fedora-34, fedora-35, fedora-36, centos-7-devtoolset-gcc_11, centos-stream-8, gentoo-python3.9, gentoo-python3.10, archlinux-latest, opensuse-15.3, opensuse-tumbleweed, slackware-14.2, conda-forge, ubuntu-bionic-i386, manylinux-2_24-i686, debian-buster-i386, centos-7-i386-devtoolset-gcc_11] tox_packages_factor: [maximal] targets_pattern: [0-g, h-o, p, q-z] env: diff --git a/.github/workflows/tox.yml b/.github/workflows/tox.yml index 23d0ec56b6a..02f622affc2 100644 --- a/.github/workflows/tox.yml +++ b/.github/workflows/tox.yml @@ -38,7 +38,7 @@ jobs: fail-fast: false max-parallel: 20 matrix: - tox_system_factor: [gitpod, ubuntu-trusty-toolchain-gcc_9, ubuntu-xenial, ubuntu-bionic, ubuntu-focal, ubuntu-hirsute, ubuntu-impish, ubuntu-jammy, debian-stretch, debian-buster, debian-bullseye, debian-bookworm, debian-sid, linuxmint-19, linuxmint-19.3, linuxmint-20.1, linuxmint-20.2, linuxmint-20.3, fedora-26, fedora-27, fedora-28, fedora-29, fedora-30, fedora-31, fedora-32, fedora-33, fedora-34, fedora-35, fedora-36, centos-7-devtoolset-gcc_11, centos-stream-8, gentoo-python3.9, gentoo-python3.10, archlinux-latest, opensuse-15.3, opensuse-tumbleweed, conda-forge, ubuntu-bionic-i386, manylinux-2_24-i686, debian-buster-i386, centos-7-i386-devtoolset-gcc_11] + tox_system_factor: [gitpod, ubuntu-trusty-toolchain-gcc_9, ubuntu-xenial-toolchain-gcc_9, ubuntu-bionic, ubuntu-focal, ubuntu-hirsute, ubuntu-impish, ubuntu-jammy, debian-stretch, debian-buster, debian-bullseye, debian-bookworm, debian-sid, linuxmint-19, linuxmint-19.3, linuxmint-20.1, linuxmint-20.2, linuxmint-20.3, fedora-26, fedora-27, fedora-28, fedora-29, fedora-30, fedora-31, fedora-32, fedora-33, fedora-34, fedora-35, fedora-36, centos-7-devtoolset-gcc_11, centos-stream-8, gentoo-python3.9, gentoo-python3.10, archlinux-latest, opensuse-15.3, opensuse-tumbleweed, conda-forge, ubuntu-bionic-i386, manylinux-2_24-i686, debian-buster-i386, centos-7-i386-devtoolset-gcc_11] tox_packages_factor: [minimal, standard] env: TOX_ENV: docker-${{ matrix.tox_system_factor }}-${{ matrix.tox_packages_factor }} From da79f27d3675ec1da331020561185fe57ca129f6 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Fri, 22 Apr 2022 14:25:30 -0700 Subject: [PATCH 23/54] build/pkgs/virtualenv: Update to 20.14.1 --- build/pkgs/virtualenv/checksums.ini | 6 +++--- build/pkgs/virtualenv/package-version.txt | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/build/pkgs/virtualenv/checksums.ini b/build/pkgs/virtualenv/checksums.ini index bc8df2a4f32..5e1728927f4 100644 --- a/build/pkgs/virtualenv/checksums.ini +++ b/build/pkgs/virtualenv/checksums.ini @@ -1,5 +1,5 @@ tarball=virtualenv-VERSION.tar.gz -sha1=b5e76bd08c1bebac54de72c7209d85fab8db9e08 -md5=0695fb2609140cedd0e7388ad8664296 -cksum=2836864806 +sha1=3c00a243652c2bdbf700828b2bca7733941e1453 +md5=1f7ddaff06a58ee4508bed1f03a5ce1c +cksum=2270354493 upstream_url=https://pypi.io/packages/source/v/virtualenv/virtualenv-VERSION.tar.gz diff --git a/build/pkgs/virtualenv/package-version.txt b/build/pkgs/virtualenv/package-version.txt index 936280a3a7c..418ef16ce2b 100644 --- a/build/pkgs/virtualenv/package-version.txt +++ b/build/pkgs/virtualenv/package-version.txt @@ -1 +1 @@ -20.7.2 +20.14.1 From dfbbd6a8e80f147a0645afad553843d460494e50 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Fri, 22 Apr 2022 14:26:51 -0700 Subject: [PATCH 24/54] build/pkgs/platformdirs: New, dependency of virtualenv --- build/pkgs/platformdirs/SPKG.rst | 16 ++++++++++++++++ build/pkgs/platformdirs/checksums.ini | 5 +++++ build/pkgs/platformdirs/dependencies | 4 ++++ build/pkgs/platformdirs/install-requires.txt | 1 + build/pkgs/platformdirs/package-version.txt | 1 + build/pkgs/platformdirs/spkg-install.in | 2 ++ build/pkgs/platformdirs/type | 1 + 7 files changed, 30 insertions(+) create mode 100644 build/pkgs/platformdirs/SPKG.rst create mode 100644 build/pkgs/platformdirs/checksums.ini create mode 100644 build/pkgs/platformdirs/dependencies create mode 100644 build/pkgs/platformdirs/install-requires.txt create mode 100644 build/pkgs/platformdirs/package-version.txt create mode 100644 build/pkgs/platformdirs/spkg-install.in create mode 100644 build/pkgs/platformdirs/type diff --git a/build/pkgs/platformdirs/SPKG.rst b/build/pkgs/platformdirs/SPKG.rst new file mode 100644 index 00000000000..ef40ff09e0c --- /dev/null +++ b/build/pkgs/platformdirs/SPKG.rst @@ -0,0 +1,16 @@ +platformdirs: A small Python module for determining appropriate platform-specific dirs, e.g. a "user data dir". +=============================================================================================================== + +Description +----------- + +A small Python module for determining appropriate platform-specific dirs, e.g. a "user data dir". + +License +------- + +Upstream Contact +---------------- + +https://pypi.org/project/platformdirs/ + diff --git a/build/pkgs/platformdirs/checksums.ini b/build/pkgs/platformdirs/checksums.ini new file mode 100644 index 00000000000..8dc4a85a66d --- /dev/null +++ b/build/pkgs/platformdirs/checksums.ini @@ -0,0 +1,5 @@ +tarball=platformdirs-VERSION.tar.gz +sha1=344841a3cd4eb5b1a1b8adb8a57e845e5a06b236 +md5=2301a8a29c3082a49ee293073d893887 +cksum=1100125935 +upstream_url=https://pypi.io/packages/source/p/platformdirs/platformdirs-VERSION.tar.gz diff --git a/build/pkgs/platformdirs/dependencies b/build/pkgs/platformdirs/dependencies new file mode 100644 index 00000000000..0738c2d7777 --- /dev/null +++ b/build/pkgs/platformdirs/dependencies @@ -0,0 +1,4 @@ +$(PYTHON) | $(PYTHON_TOOLCHAIN) + +---------- +All lines of this file are ignored except the first. diff --git a/build/pkgs/platformdirs/install-requires.txt b/build/pkgs/platformdirs/install-requires.txt new file mode 100644 index 00000000000..67fd014bbdd --- /dev/null +++ b/build/pkgs/platformdirs/install-requires.txt @@ -0,0 +1 @@ +platformdirs diff --git a/build/pkgs/platformdirs/package-version.txt b/build/pkgs/platformdirs/package-version.txt new file mode 100644 index 00000000000..f225a78adf0 --- /dev/null +++ b/build/pkgs/platformdirs/package-version.txt @@ -0,0 +1 @@ +2.5.2 diff --git a/build/pkgs/platformdirs/spkg-install.in b/build/pkgs/platformdirs/spkg-install.in new file mode 100644 index 00000000000..37ac1a53437 --- /dev/null +++ b/build/pkgs/platformdirs/spkg-install.in @@ -0,0 +1,2 @@ +cd src +sdh_pip_install . diff --git a/build/pkgs/platformdirs/type b/build/pkgs/platformdirs/type new file mode 100644 index 00000000000..a6a7b9cd726 --- /dev/null +++ b/build/pkgs/platformdirs/type @@ -0,0 +1 @@ +standard From ae25dd1ef48e16b628d840771c32127a6449327a Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Fri, 22 Apr 2022 14:27:35 -0700 Subject: [PATCH 25/54] build/pkgs/filelock: Update to 3.6.0, needed for virtualenv --- build/pkgs/filelock/checksums.ini | 6 +++--- build/pkgs/filelock/package-version.txt | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/build/pkgs/filelock/checksums.ini b/build/pkgs/filelock/checksums.ini index a7a437ebb3c..24a5e470bef 100644 --- a/build/pkgs/filelock/checksums.ini +++ b/build/pkgs/filelock/checksums.ini @@ -1,5 +1,5 @@ tarball=filelock-VERSION.tar.gz -sha1=ca03bf213ee1d7a9b6353cebc265072aae40fdcb -md5=c1fe6d9a7433a7ca6ce4f36e273317d1 -cksum=2927344437 +sha1=e0340015dcb7bbe19b5bf33ff8b9c94670994585 +md5=b1032075ddada92874377426337c38a6 +cksum=3903629392 upstream_url=https://pypi.io/packages/source/f/filelock/filelock-VERSION.tar.gz diff --git a/build/pkgs/filelock/package-version.txt b/build/pkgs/filelock/package-version.txt index f93fc9f42ea..40c341bdcdb 100644 --- a/build/pkgs/filelock/package-version.txt +++ b/build/pkgs/filelock/package-version.txt @@ -1 +1 @@ -3.0.12 +3.6.0 From 62cf7725638ca102aec476fa9b67836fa74de52c Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Fri, 22 Apr 2022 14:28:55 -0700 Subject: [PATCH 26/54] build/pkgs/virtualenv/dependencies: Add platformdirs --- build/pkgs/virtualenv/dependencies | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/pkgs/virtualenv/dependencies b/build/pkgs/virtualenv/dependencies index fe7890ee1d0..a8b8def7051 100644 --- a/build/pkgs/virtualenv/dependencies +++ b/build/pkgs/virtualenv/dependencies @@ -1,4 +1,4 @@ -$(PYTHON) appdirs distlib filelock six importlib_metadata importlib_resources | $(PYTHON_TOOLCHAIN) +$(PYTHON) appdirs distlib filelock six importlib_metadata importlib_resources platformdirs | $(PYTHON_TOOLCHAIN) ---------- All lines of this file are ignored except the first. From 8306b6071510a136cc9045b0c309dba95f17ed1d Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Fri, 22 Apr 2022 14:37:34 -0700 Subject: [PATCH 27/54] build/pkgs/platformdirs: Downgrade to 2.5.1, which still uses setuptools as the build system --- build/pkgs/platformdirs/checksums.ini | 6 +++--- build/pkgs/platformdirs/package-version.txt | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/build/pkgs/platformdirs/checksums.ini b/build/pkgs/platformdirs/checksums.ini index 8dc4a85a66d..e6a6c0613a8 100644 --- a/build/pkgs/platformdirs/checksums.ini +++ b/build/pkgs/platformdirs/checksums.ini @@ -1,5 +1,5 @@ tarball=platformdirs-VERSION.tar.gz -sha1=344841a3cd4eb5b1a1b8adb8a57e845e5a06b236 -md5=2301a8a29c3082a49ee293073d893887 -cksum=1100125935 +sha1=16e9a89587b4471041c6d1a2444d200a92292c73 +md5=83d3ce3feb4af1ccfaca24375574f44d +cksum=1234653032 upstream_url=https://pypi.io/packages/source/p/platformdirs/platformdirs-VERSION.tar.gz diff --git a/build/pkgs/platformdirs/package-version.txt b/build/pkgs/platformdirs/package-version.txt index f225a78adf0..73462a5a134 100644 --- a/build/pkgs/platformdirs/package-version.txt +++ b/build/pkgs/platformdirs/package-version.txt @@ -1 +1 @@ -2.5.2 +2.5.1 From 3e6d7183def10829e9c85ab942d7d5c9affe9ead Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Fri, 22 Apr 2022 14:47:28 -0700 Subject: [PATCH 28/54] build/pkgs/soupsieve: New --- build/pkgs/soupsieve/SPKG.rst | 16 ++++++++++++++++ build/pkgs/soupsieve/checksums.ini | 5 +++++ build/pkgs/soupsieve/dependencies | 4 ++++ build/pkgs/soupsieve/install-requires.txt | 1 + build/pkgs/soupsieve/package-version.txt | 1 + build/pkgs/soupsieve/spkg-install.in | 2 ++ build/pkgs/soupsieve/type | 1 + 7 files changed, 30 insertions(+) create mode 100644 build/pkgs/soupsieve/SPKG.rst create mode 100644 build/pkgs/soupsieve/checksums.ini create mode 100644 build/pkgs/soupsieve/dependencies create mode 100644 build/pkgs/soupsieve/install-requires.txt create mode 100644 build/pkgs/soupsieve/package-version.txt create mode 100644 build/pkgs/soupsieve/spkg-install.in create mode 100644 build/pkgs/soupsieve/type diff --git a/build/pkgs/soupsieve/SPKG.rst b/build/pkgs/soupsieve/SPKG.rst new file mode 100644 index 00000000000..401519ceec9 --- /dev/null +++ b/build/pkgs/soupsieve/SPKG.rst @@ -0,0 +1,16 @@ +soupsieve: A modern CSS selector implementation for Beautiful Soup. +=================================================================== + +Description +----------- + +A modern CSS selector implementation for Beautiful Soup. + +License +------- + +Upstream Contact +---------------- + +https://pypi.org/project/soupsieve/ + diff --git a/build/pkgs/soupsieve/checksums.ini b/build/pkgs/soupsieve/checksums.ini new file mode 100644 index 00000000000..973075eac93 --- /dev/null +++ b/build/pkgs/soupsieve/checksums.ini @@ -0,0 +1,5 @@ +tarball=soupsieve-VERSION.tar.gz +sha1=164c25b194b83750ddb6cf0085ebfbd8441955d2 +md5=f64640a3b112d3deb1d3469037bed5e3 +cksum=1782838732 +upstream_url=https://pypi.io/packages/source/s/soupsieve/soupsieve-VERSION.tar.gz diff --git a/build/pkgs/soupsieve/dependencies b/build/pkgs/soupsieve/dependencies new file mode 100644 index 00000000000..0738c2d7777 --- /dev/null +++ b/build/pkgs/soupsieve/dependencies @@ -0,0 +1,4 @@ +$(PYTHON) | $(PYTHON_TOOLCHAIN) + +---------- +All lines of this file are ignored except the first. diff --git a/build/pkgs/soupsieve/install-requires.txt b/build/pkgs/soupsieve/install-requires.txt new file mode 100644 index 00000000000..9eb997f7a10 --- /dev/null +++ b/build/pkgs/soupsieve/install-requires.txt @@ -0,0 +1 @@ +soupsieve diff --git a/build/pkgs/soupsieve/package-version.txt b/build/pkgs/soupsieve/package-version.txt new file mode 100644 index 00000000000..2bf1c1ccf36 --- /dev/null +++ b/build/pkgs/soupsieve/package-version.txt @@ -0,0 +1 @@ +2.3.1 diff --git a/build/pkgs/soupsieve/spkg-install.in b/build/pkgs/soupsieve/spkg-install.in new file mode 100644 index 00000000000..37ac1a53437 --- /dev/null +++ b/build/pkgs/soupsieve/spkg-install.in @@ -0,0 +1,2 @@ +cd src +sdh_pip_install . diff --git a/build/pkgs/soupsieve/type b/build/pkgs/soupsieve/type new file mode 100644 index 00000000000..a6a7b9cd726 --- /dev/null +++ b/build/pkgs/soupsieve/type @@ -0,0 +1 @@ +standard From 1f35d8535b90c2a3327adb7c9b6e91aa930c2f44 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Fri, 22 Apr 2022 14:47:55 -0700 Subject: [PATCH 29/54] build/pkgs/beautifulsoup4/dependencies: Add soupsieve --- build/pkgs/beautifulsoup4/dependencies | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/pkgs/beautifulsoup4/dependencies b/build/pkgs/beautifulsoup4/dependencies index 0738c2d7777..01af7f65566 100644 --- a/build/pkgs/beautifulsoup4/dependencies +++ b/build/pkgs/beautifulsoup4/dependencies @@ -1,4 +1,4 @@ -$(PYTHON) | $(PYTHON_TOOLCHAIN) +$(PYTHON) soupsieve | $(PYTHON_TOOLCHAIN) ---------- All lines of this file are ignored except the first. From 71e9a37894153053859e66d5bd6eb281fca65822 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Fri, 22 Apr 2022 15:05:16 -0700 Subject: [PATCH 30/54] .github/workflows/build.yml: Install coverage after the Sage venv has been created --- .github/workflows/build.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e795a9e7ad9..b8e901d82af 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -34,7 +34,6 @@ jobs: ./configure --enable-build-as-root --prefix=/sage/local --with-sage-venv --enable-editable --enable-download-from-upstream-url # Install test tools apt-get install -y git - ./sage -python -m pip install coverage - name: Static code check with pyright run: pyright @@ -46,7 +45,9 @@ jobs: SAGE_NUM_THREADS: 2 - name: Test - run: ../sage -python -m coverage run ./bin/sage-runtests --all -p2 + run: | + ../sage -python -m pip install coverage + ../sage -python -m coverage run ./bin/sage-runtests --all -p2 working-directory: ./src - name: Prepare coverage results From 9253649e75820ad4b51c4b5eef24ae38734c7ab4 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 23 Apr 2022 11:02:11 -0700 Subject: [PATCH 31/54] src/doc/it/faq/faq-contribute.rst: Remove mention of IRC --- src/doc/it/faq/faq-contribute.rst | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/doc/it/faq/faq-contribute.rst b/src/doc/it/faq/faq-contribute.rst index b953ef80b40..0acda9b03da 100644 --- a/src/doc/it/faq/faq-contribute.rst +++ b/src/doc/it/faq/faq-contribute.rst @@ -24,8 +24,7 @@ di Sage. Come minimo, la lettura del primo capitolo è richiesta per ogni svilluppatore di Sage. Inoltre sii molto attento alle `linee guida per trac `_. Puoi entrare nella lista email -`sage-devel `_ o nel canale IRC -``#sage-devel`` su `freenode `_. +`sage-devel `_. Mentre inizi a conoscere la comunità prendi una copia del codice sorgente di Sage e familiarizza con `git `_, un software per il controllo versione. @@ -200,8 +199,6 @@ Potrebbe esserci un prossimo evento "bug squash sprint" o "Sage days" che è in relazione alla tua correzione. Tieni d'occhio le mailing list relative e rispondi educatamente ad ogni scambio di email relativo, spiegando chiaramente perché la tua correzione ha importanza. -Tieni d'occhio il canale IRC ``#sage-devel``, avendo cura di rammentare -la questione al momento giusto. Ho scritto del codice sorgente e voglio venga incluso in Sage. Però dopo aver rinominato il mio file ``a.sage`` in ``a.py`` ho degli errori di sintassi. Devo riscrivere tutto il mio codice in Python anziché in Sage? From a6abec8aa7433214be4a4dda9b2afdc1f6426b13 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 23 Apr 2022 21:02:53 -0700 Subject: [PATCH 32/54] build/pkgs/gcc: Update to 11.3.0 --- build/pkgs/gcc/checksums.ini | 6 +++--- build/pkgs/gcc/package-version.txt | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/build/pkgs/gcc/checksums.ini b/build/pkgs/gcc/checksums.ini index b7bcc1ffafe..2ea976e85c1 100644 --- a/build/pkgs/gcc/checksums.ini +++ b/build/pkgs/gcc/checksums.ini @@ -1,5 +1,5 @@ tarball=gcc-VERSION.tar.xz -sha1=fb51ed1660c065898c75951fb38e1ebad7d49feb -md5=443c15b92614a3ce8f22e3b24ca2226a -cksum=990531701 +sha1=cf86a48278f9a6f4b03d4390550577b20353b4e9 +md5=4ee3e8c4c99e7b3444eb79f00f5f7a7e +cksum=215110545 upstream_url=https://mirrors.kernel.org/gnu/gcc/gcc-VERSION/gcc-VERSION.tar.xz diff --git a/build/pkgs/gcc/package-version.txt b/build/pkgs/gcc/package-version.txt index 0719d810258..f628d2eafc5 100644 --- a/build/pkgs/gcc/package-version.txt +++ b/build/pkgs/gcc/package-version.txt @@ -1 +1 @@ -10.3.0 +11.3.0 From 1c60dff211d5cdfbd48d4b47cb37bcdb1f1f6690 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sun, 24 Apr 2022 13:46:32 -0700 Subject: [PATCH 33/54] src/sage/repl/display/formatter.py: Do not import matplotlib when output is plain text --- src/sage/repl/display/formatter.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/sage/repl/display/formatter.py b/src/sage/repl/display/formatter.py index 9d7da8715eb..9cb0bd661ea 100644 --- a/src/sage/repl/display/formatter.py +++ b/src/sage/repl/display/formatter.py @@ -190,8 +190,9 @@ def format(self, obj, include=None, exclude=None): # use Sage rich output for any except those native to IPython, but only # if it is not plain and dull - if (not isinstance(obj, (IPYTHON_NATIVE_TYPES, Figure)) and - not set(sage_format.keys()).issubset([PLAIN_TEXT])): + if (not isinstance(obj, IPYTHON_NATIVE_TYPES) and + not set(sage_format.keys()).issubset([PLAIN_TEXT]) and + not isinstance(obj, Figure)): return sage_format, sage_metadata if self.ipython_display_formatter(obj): From 5d83275fa7cb12464494636c107b80887bbaf4ca Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Mon, 25 Apr 2022 11:41:57 -0700 Subject: [PATCH 34/54] src/doc/en/installation: Update 3-manifolds binary info --- src/doc/en/installation/index.rst | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/doc/en/installation/index.rst b/src/doc/en/installation/index.rst index 4eb3a660e09..7f8927f90d2 100644 --- a/src/doc/en/installation/index.rst +++ b/src/doc/en/installation/index.rst @@ -75,9 +75,11 @@ SageMath release. - **No development:** - Install the `binary build of SageMath `_ - from the 3-manifolds project. It is a signed and notarized app. - You can choose between two options: A 800 MB disk image with the standard Sage distribution, - and a 1 GB disk image that adds many optional packages. + from the 3-manifolds project. It is a signed and notarized app, which + works for macOS 10.12 and newer. It is completely self-contained and + provides the standard Sage distribution together with many optional + packages. Additional optional Python packages can be installed with the + ``%pip`` magic command and will go into your ``~/.sage`` directory. - Alternatively, install SageMath from the `conda-forge `_ project, as described in section From 8a8f0170b533b947c2420689bc2aae2640615df8 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Mon, 25 Apr 2022 11:43:49 -0700 Subject: [PATCH 35/54] src/doc/en/installation: Fix typo in section 'In the cloud' --- src/doc/en/installation/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/doc/en/installation/index.rst b/src/doc/en/installation/index.rst index 7f8927f90d2..ea0e120a369 100644 --- a/src/doc/en/installation/index.rst +++ b/src/doc/en/installation/index.rst @@ -114,7 +114,7 @@ SageMath release. - `CoCalc `_: an online service that provides SageMath and many other tools. -- On any system that can allows you to bring your own Docker images to run in +- On any system that allows you to bring your own Docker images to run in a container: Use the `Docker image sagemath/sagemath `_. - `Sage Cell Server `_: an online service for From 42b8143ec9038f00694632d9ff386fd9840e5271 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Mon, 25 Apr 2022 12:26:40 -0700 Subject: [PATCH 36/54] src/doc/en/installation: Do not install ancient distribution packages of Sage --- src/doc/en/installation/binary.rst | 1 + src/doc/en/installation/index.rst | 1 + src/doc/en/installation/linux.rst | 7 +++++-- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/doc/en/installation/binary.rst b/src/doc/en/installation/binary.rst index fbf371ad801..db9c4d3e69a 100644 --- a/src/doc/en/installation/binary.rst +++ b/src/doc/en/installation/binary.rst @@ -9,6 +9,7 @@ Linux SageMath used to provide pre-built binaries for several Linux flavors. This has been discontinued, as most major Linux distributions have up-to-date distribution packages providing SageMath. +See :ref:`sec-GNU-Linux` for information. macOS diff --git a/src/doc/en/installation/index.rst b/src/doc/en/installation/index.rst index ea0e120a369..2e12f22729f 100644 --- a/src/doc/en/installation/index.rst +++ b/src/doc/en/installation/index.rst @@ -46,6 +46,7 @@ SageMath release. If you are on an older version of your distribution and a recent version of SageMath is only available on a newer version of the distribution, consider upgrading your distribution. + In particular, do not install a version of Sage older than 9.2. - **No root access:** Install SageMath from the `conda-forge `_ project, as described in section diff --git a/src/doc/en/installation/linux.rst b/src/doc/en/installation/linux.rst index a212f8f25af..17aaa29286b 100644 --- a/src/doc/en/installation/linux.rst +++ b/src/doc/en/installation/linux.rst @@ -3,7 +3,7 @@ Linux package managers ====================== -On Debian GNU/Linux version >= 9, Ubuntu version >= 18.04, +On Debian GNU/Linux version >= 11, Ubuntu version >= 21.04, and Arch Linux there are three packages to install - ``sagemath`` (for the binaries) @@ -16,7 +16,10 @@ Arch Linux there are three packages to install See `repology.org: sagemath `_ for information about SageMath packages in other distributions, and their available -versions. +versions. Do not install a version of Sage older than 9.2. +If you are on an older version of your distribution and a recent +version of SageMath is only available on a newer version of the +distribution, consider upgrading your distribution. Gentoo users might want to give a try to `sage-on-gentoo `_. From 585a0886c8c777261f125b01a8cf109135cd345c Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Mon, 25 Apr 2022 12:55:39 -0700 Subject: [PATCH 37/54] src/doc/en/installation/linux.rst: Update URL for Distribution page --- src/doc/en/installation/linux.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/doc/en/installation/linux.rst b/src/doc/en/installation/linux.rst index 17aaa29286b..2e888a754f5 100644 --- a/src/doc/en/installation/linux.rst +++ b/src/doc/en/installation/linux.rst @@ -24,6 +24,6 @@ distribution, consider upgrading your distribution. Gentoo users might want to give a try to `sage-on-gentoo `_. -The SageMath wiki page `Distribution -`_ collects information +The Trac wiki page `Distribution +`_ collects information regarding packaging and distribution of SageMath. From 2d42b7df4bc288b9927b31bb283261c6b6c31adb Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Mon, 25 Apr 2022 14:05:42 -0700 Subject: [PATCH 38/54] src/doc/en/installation/conda.rst: Update instructions from https://wiki.sagemath.org/Conda --- src/doc/en/installation/conda.rst | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/src/doc/en/installation/conda.rst b/src/doc/en/installation/conda.rst index 2b2cda9bd12..73c028faf56 100644 --- a/src/doc/en/installation/conda.rst +++ b/src/doc/en/installation/conda.rst @@ -9,18 +9,27 @@ SageMath can be installed via Conda from the This works on Linux and macOS on ``x86_64`` processors, and on Linux on ``aarch64`` processors (using Miniforge). -This requires a working Conda installation: either Miniforge, Miniconda -or Anaconda. If you don't have one yet, we recommend installing -`Miniforge `_. +This requires a working Conda installation: either Mambaforge/Miniforge, +Miniconda or Anaconda. If you don't have one yet, we recommend installing +`Mambaforge `_ as +follows. In a terminal, -Miniforge uses conda-forge as the default channel. If you are -using Miniconda or Anaconda, set it up to use conda-forge: +.. code-block:: shell + + $ curl -L -O https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-\$(uname)-\$(uname -m).sh + $ sh Mambaforge-\$(uname)-\$(uname -m).sh + +* Mambaforge and Miniforge use conda-forge as the default channel. + +* If you are using Miniconda or Anaconda, set it up to use conda-forge: + + * Add the conda-forge channel: ``conda config --add channels conda-forge`` -* Add the conda-forge channel: ``conda config --add channels conda-forge`` -* Change channel priority to strict: ``conda config --set channel_priority strict`` + * Change channel priority to strict: ``conda config --set channel_priority strict`` Optionally, use `mamba `_ which uses a faster dependency solver than `conda`. +If you installed Mambaforge, it is already provided. Otherwise, use .. code-block:: shell @@ -36,8 +45,8 @@ Create a new conda environment containing SageMath, either with ``mamba`` or ``c .. code-block:: shell - mamba create -n sage sage python=X - conda create -n sage sage python=X + $ mamba create -n sage sage python=X # either + $ conda create -n sage sage python=X # or where ``X`` is version of Python, e.g. ``3.9``. From 02dc12e7f56de4edc34c6532a8c465979c658c1f Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Mon, 25 Apr 2022 14:38:33 -0700 Subject: [PATCH 39/54] src/doc: Fix 'hardcoded link could be replaced' --- src/doc/en/installation/linux.rst | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/doc/en/installation/linux.rst b/src/doc/en/installation/linux.rst index 2e888a754f5..56b8f98710d 100644 --- a/src/doc/en/installation/linux.rst +++ b/src/doc/en/installation/linux.rst @@ -24,6 +24,5 @@ distribution, consider upgrading your distribution. Gentoo users might want to give a try to `sage-on-gentoo `_. -The Trac wiki page `Distribution -`_ collects information +The :trac:`Trac wiki page Distribution ` collects information regarding packaging and distribution of SageMath. From 67c34fee1dc0ec0bddf4fa6a0e2633c8b9cf7fa2 Mon Sep 17 00:00:00 2001 From: Release Manager Date: Tue, 26 Apr 2022 00:29:17 +0200 Subject: [PATCH 40/54] Updated SageMath version to 9.6.rc2 --- .zenodo.json | 8 ++++---- VERSION.txt | 2 +- build/pkgs/configure/checksums.ini | 6 +++--- build/pkgs/configure/package-version.txt | 2 +- build/pkgs/sagelib/package-version.txt | 2 +- src/VERSION.txt | 2 +- src/bin/sage-version.sh | 6 +++--- src/sage/version.py | 6 +++--- 8 files changed, 17 insertions(+), 17 deletions(-) diff --git a/.zenodo.json b/.zenodo.json index b186023807f..92b3c3d5810 100644 --- a/.zenodo.json +++ b/.zenodo.json @@ -1,10 +1,10 @@ { "description": "Mirror of the Sage https://sagemath.org/ source tree", "license": "other-open", - "title": "sagemath/sage: 9.6.rc1", - "version": "9.6.rc1", + "title": "sagemath/sage: 9.6.rc2", + "version": "9.6.rc2", "upload_type": "software", - "publication_date": "2022-04-19", + "publication_date": "2022-04-25", "creators": [ { "affiliation": "SageMath.org", @@ -15,7 +15,7 @@ "related_identifiers": [ { "scheme": "url", - "identifier": "https://github.com/sagemath/sage/tree/9.6.rc1", + "identifier": "https://github.com/sagemath/sage/tree/9.6.rc2", "relation": "isSupplementTo" }, { diff --git a/VERSION.txt b/VERSION.txt index 3723a0332a0..d9a5b2a99a3 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -SageMath version 9.6.rc1, Release Date: 2022-04-19 +SageMath version 9.6.rc2, Release Date: 2022-04-25 diff --git a/build/pkgs/configure/checksums.ini b/build/pkgs/configure/checksums.ini index 08a41fab2ad..afc0eba20c0 100644 --- a/build/pkgs/configure/checksums.ini +++ b/build/pkgs/configure/checksums.ini @@ -1,4 +1,4 @@ tarball=configure-VERSION.tar.gz -sha1=daf3b443bb98c11c5b28432f96dec4a30b7bc56c -md5=c43bf6385cb898650fd84c21266b2346 -cksum=282325747 +sha1=586eb612f05d0bc8e37e63d6740d7e7104ae10e9 +md5=44f1f222057ebe2bdbb8c9dbf41fc034 +cksum=1590172438 diff --git a/build/pkgs/configure/package-version.txt b/build/pkgs/configure/package-version.txt index 66fec61003b..797778dbb82 100644 --- a/build/pkgs/configure/package-version.txt +++ b/build/pkgs/configure/package-version.txt @@ -1 +1 @@ -4cbe2dbc886452608a95b033679dc86425da72fe +9b2069cf00a00d955fc13cf7e3fbf8ea541aec5c diff --git a/build/pkgs/sagelib/package-version.txt b/build/pkgs/sagelib/package-version.txt index 491046ea819..f6c161a47f6 100644 --- a/build/pkgs/sagelib/package-version.txt +++ b/build/pkgs/sagelib/package-version.txt @@ -1 +1 @@ -9.6.rc1 +9.6.rc2 diff --git a/src/VERSION.txt b/src/VERSION.txt index 491046ea819..f6c161a47f6 100644 --- a/src/VERSION.txt +++ b/src/VERSION.txt @@ -1 +1 @@ -9.6.rc1 +9.6.rc2 diff --git a/src/bin/sage-version.sh b/src/bin/sage-version.sh index fc988085ac7..bf183ccb59d 100644 --- a/src/bin/sage-version.sh +++ b/src/bin/sage-version.sh @@ -1,5 +1,5 @@ # Sage version information for shell scripts # This file is auto-generated by the sage-update-version script, do not edit! -SAGE_VERSION='9.6.rc1' -SAGE_RELEASE_DATE='2022-04-19' -SAGE_VERSION_BANNER='SageMath version 9.6.rc1, Release Date: 2022-04-19' +SAGE_VERSION='9.6.rc2' +SAGE_RELEASE_DATE='2022-04-25' +SAGE_VERSION_BANNER='SageMath version 9.6.rc2, Release Date: 2022-04-25' diff --git a/src/sage/version.py b/src/sage/version.py index e00e4ce00ae..f62c878a15f 100644 --- a/src/sage/version.py +++ b/src/sage/version.py @@ -1,5 +1,5 @@ # Sage version information for Python scripts # This file is auto-generated by the sage-update-version script, do not edit! -version = '9.6.rc1' -date = '2022-04-19' -banner = 'SageMath version 9.6.rc1, Release Date: 2022-04-19' +version = '9.6.rc2' +date = '2022-04-25' +banner = 'SageMath version 9.6.rc2, Release Date: 2022-04-25' From 1f10de077786ae4c71c81c5c010b1456b90670d4 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Mon, 25 Apr 2022 16:21:43 -0700 Subject: [PATCH 41/54] src/doc/en/installation/conda.rst: Fix markup for shell commands --- src/doc/en/installation/conda.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/doc/en/installation/conda.rst b/src/doc/en/installation/conda.rst index 73c028faf56..98e343abc2f 100644 --- a/src/doc/en/installation/conda.rst +++ b/src/doc/en/installation/conda.rst @@ -16,8 +16,8 @@ follows. In a terminal, .. code-block:: shell - $ curl -L -O https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-\$(uname)-\$(uname -m).sh - $ sh Mambaforge-\$(uname)-\$(uname -m).sh + $ curl -L -O https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-$(uname)-$(uname -m).sh + $ sh Mambaforge-$(uname)-$(uname -m).sh * Mambaforge and Miniforge use conda-forge as the default channel. From 48d3615e2c20320fa23d841ce41caac25468f9c8 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Mon, 25 Apr 2022 16:24:29 -0700 Subject: [PATCH 42/54] src/doc/en/installation/conda.rst: Fix markup --- src/doc/en/installation/conda.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/doc/en/installation/conda.rst b/src/doc/en/installation/conda.rst index 98e343abc2f..02dc60a52e4 100644 --- a/src/doc/en/installation/conda.rst +++ b/src/doc/en/installation/conda.rst @@ -27,13 +27,13 @@ follows. In a terminal, * Change channel priority to strict: ``conda config --set channel_priority strict`` -Optionally, use `mamba `_ -which uses a faster dependency solver than `conda`. +Optionally, use `mamba `_, +which uses a faster dependency solver than ``conda``. If you installed Mambaforge, it is already provided. Otherwise, use .. code-block:: shell - conda install mamba + $ conda install mamba .. _sec-installation-conda-binary: From 9bc2838b841b476d81b56d95406add0db7ffa150 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Mon, 25 Apr 2022 17:24:19 -0700 Subject: [PATCH 43/54] src/doc/en/installation/conda.rst: Update supported archs --- src/doc/en/installation/conda.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/doc/en/installation/conda.rst b/src/doc/en/installation/conda.rst index 02dc60a52e4..2d5d8e7bdef 100644 --- a/src/doc/en/installation/conda.rst +++ b/src/doc/en/installation/conda.rst @@ -3,13 +3,13 @@ Install from conda-forge ======================== -SageMath can be installed via Conda from the +SageMath can be installed on Linux and macOS via Conda from the `conda-forge `_ conda channel. -This works on Linux and macOS on ``x86_64`` processors, -and on Linux on ``aarch64`` processors (using Miniforge). +Both the ``x86_64`` (Intel) architecture and the ``arm64``/``aarch64`` +architectures (including Apple Silicon, M1) are supported. -This requires a working Conda installation: either Mambaforge/Miniforge, +You will need a working Conda installation: either Mambaforge/Miniforge, Miniconda or Anaconda. If you don't have one yet, we recommend installing `Mambaforge `_ as follows. In a terminal, From f1a7f20c288b03a3438809996654ac907d75e6e1 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Mon, 25 Apr 2022 22:01:41 -0700 Subject: [PATCH 44/54] build/make/Makefile.in: Remove wrong uses of AM_V_at --- build/make/Makefile.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build/make/Makefile.in b/build/make/Makefile.in index d42b261b3d4..6b168c12e1f 100644 --- a/build/make/Makefile.in +++ b/build/make/Makefile.in @@ -505,7 +505,7 @@ $(1)-$(4)-no-deps: echo "$$($(4)_DISABLED_MESSAGE)" 2>&1; \ exit 1; \ else \ - $(AM_V_at)sage-logger -p 'SAGE_CHECK=$$(SAGE_CHECK_$(1)) PATH=$$($(4))/bin:$$$$PATH $$(SAGE_SPKG) $$(SAGE_SPKG_OPTIONS) \ + sage-logger -p 'SAGE_CHECK=$$(SAGE_CHECK_$(1)) PATH=$$($(4))/bin:$$$$PATH $$(SAGE_SPKG) $$(SAGE_SPKG_OPTIONS) \ $(if $(filter $(1),$(TOOLCHAIN_DEPS)),--keep-existing) \ $(1)-$(2) $$($(4))' '$$(SAGE_LOGS)/$(1)-$(2).log'; \ fi @@ -615,7 +615,7 @@ $(1)-$(4)-no-deps: echo "$$($(4)_DISABLED_MESSAGE)" 2>&1; \ exit 1; \ elif [ -x '$$(SAGE_ROOT)/build/pkgs/$(1)/spkg-install' ]; then \ - $(AM_V_at)cd '$$(SAGE_ROOT)/build/pkgs/$(1)' && \ + cd '$$(SAGE_ROOT)/build/pkgs/$(1)' && \ . '$$(SAGE_ROOT)/src/bin/sage-src-env-config' && \ . '$$(SAGE_ROOT)/src/bin/sage-env-config' && \ . '$$(SAGE_ROOT)/src/bin/sage-env' && \ From 95fec347242f2499c49f8af29c71b3da8bfe3fc4 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Tue, 26 Apr 2022 11:49:35 -0700 Subject: [PATCH 45/54] src/doc/en/installation/index.rst: 'no root access, or on an older distribution' --- src/doc/en/installation/index.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/doc/en/installation/index.rst b/src/doc/en/installation/index.rst index a0164563bc8..58ea85955eb 100644 --- a/src/doc/en/installation/index.rst +++ b/src/doc/en/installation/index.rst @@ -48,8 +48,8 @@ SageMath release. distribution, consider upgrading your distribution. In particular, do not install a version of Sage older than 9.2. - - **No root access:** Install SageMath from the `conda-forge - `_ project, as described in section + - **No root access, or on an older distribution** Install SageMath from + the `conda-forge `_ project, as described in section :ref:`sec-installation-conda`. - Alternatively, build SageMath from source as described in section From a4286040a065e3a9d147d22f3fefba50e0790c75 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Tue, 26 Apr 2022 12:02:27 -0700 Subject: [PATCH 46/54] src/doc/en/installation/index.rst: Make Linux, macOS, ... subsections --- src/doc/en/installation/index.rst | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/doc/en/installation/index.rst b/src/doc/en/installation/index.rst index 58ea85955eb..1e58723b160 100644 --- a/src/doc/en/installation/index.rst +++ b/src/doc/en/installation/index.rst @@ -14,9 +14,10 @@ may have become available afterwards and can be found in the section `release tour `_ for each SageMath release. -**Where would you like to run SageMath?** +**Where would you like to run SageMath?** Pick one of the following sections. -**On Linux:** +Linux +===== - **Do you want to do SageMath development?** @@ -55,7 +56,8 @@ SageMath release. - Alternatively, build SageMath from source as described in section :ref:`sec-installation-from-sources`. -**On macOS:** +macOS +===== - **Do you want to do SageMath development?** @@ -89,7 +91,8 @@ SageMath release. - Alternatively, build SageMath from source as described in section :ref:`sec-installation-from-sources`. -**On Windows:** +Windows +======= - **Do you want to do SageMath development?** @@ -110,7 +113,8 @@ SageMath release. `Cygwin `_ and then build SageMath from source as described in section :ref:`sec-installation-from-sources`. -**In the cloud:** +In the cloud +============ - `CoCalc `_: an online service that provides SageMath and many other tools. From 0755b40dd002cc03ce848f74fa096b25e4504336 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Tue, 26 Apr 2022 12:03:47 -0700 Subject: [PATCH 47/54] src/doc/en/installation/index.rst: Move Linux subsection after Windows --- src/doc/en/installation/index.rst | 82 +++++++++++++++---------------- 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/src/doc/en/installation/index.rst b/src/doc/en/installation/index.rst index 1e58723b160..2be1ed4bb1f 100644 --- a/src/doc/en/installation/index.rst +++ b/src/doc/en/installation/index.rst @@ -16,46 +16,6 @@ SageMath release. **Where would you like to run SageMath?** Pick one of the following sections. -Linux -===== - -- **Do you want to do SageMath development?** - - - **Yes, development:** - - Obtain the SageMath sources via ``git`` as described in `The Sage - Developer's Guide - `_. - - - Then build SageMath from source as described in section - :ref:`sec-installation-from-sources`. - - - Alternatively, follow the instructions in section - :ref:`sec-installation-conda-develop`; - these describe an experimental method that gets all required - packages, including Python packages, from conda-forge. - - - No development: **Do you have root access (sudo)?** - - - **Yes, root access:** Then the easiest way to install SageMath is - through a Linux distribution that provides it as a package. Most - major Linux distributions have up-to-date versions of SageMath, - see `repology.org: sagemath - `_ for an - overview. See :ref:`sec-GNU-Linux` for additional information. - - If you are on an older version of your distribution and a recent - version of SageMath is only available on a newer version of the - distribution, consider upgrading your distribution. - In particular, do not install a version of Sage older than 9.2. - - - **No root access, or on an older distribution** Install SageMath from - the `conda-forge `_ project, as described in section - :ref:`sec-installation-conda`. - - - Alternatively, build SageMath from source as described in section - :ref:`sec-installation-from-sources`. - macOS ===== @@ -100,7 +60,7 @@ Windows Enable Windows Subsystem for Linux (WSL), selecting any Linux distribution, for example Ubuntu. Then follow the instructions for - development on Linux. + development on Linux below. - **No development:** @@ -113,6 +73,46 @@ Windows `Cygwin `_ and then build SageMath from source as described in section :ref:`sec-installation-from-sources`. +Linux +===== + +- **Do you want to do SageMath development?** + + - **Yes, development:** + + Obtain the SageMath sources via ``git`` as described in `The Sage + Developer's Guide + `_. + + - Then build SageMath from source as described in section + :ref:`sec-installation-from-sources`. + + - Alternatively, follow the instructions in section + :ref:`sec-installation-conda-develop`; + these describe an experimental method that gets all required + packages, including Python packages, from conda-forge. + + - No development: **Do you have root access (sudo)?** + + - **Yes, root access:** Then the easiest way to install SageMath is + through a Linux distribution that provides it as a package. Most + major Linux distributions have up-to-date versions of SageMath, + see `repology.org: sagemath + `_ for an + overview. See :ref:`sec-GNU-Linux` for additional information. + + If you are on an older version of your distribution and a recent + version of SageMath is only available on a newer version of the + distribution, consider upgrading your distribution. + In particular, do not install a version of Sage older than 9.2. + + - **No root access, or on an older distribution** Install SageMath from + the `conda-forge `_ project, as described in section + :ref:`sec-installation-conda`. + + - Alternatively, build SageMath from source as described in section + :ref:`sec-installation-from-sources`. + In the cloud ============ From 07fb71d261b461a5a1ea47f183eda73e2f226b4f Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Tue, 26 Apr 2022 12:15:03 -0700 Subject: [PATCH 48/54] src/doc/en/installation/index.rst: Add links and details to WSL --- src/doc/en/installation/index.rst | 25 ++++++++++++++++++------- src/doc/en/installation/source.rst | 2 +- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/src/doc/en/installation/index.rst b/src/doc/en/installation/index.rst index 2be1ed4bb1f..3638f20cd11 100644 --- a/src/doc/en/installation/index.rst +++ b/src/doc/en/installation/index.rst @@ -58,16 +58,27 @@ Windows - **Yes, development:** - Enable Windows Subsystem for Linux (WSL), selecting any Linux - distribution, for example Ubuntu. Then follow the instructions for - development on Linux below. + Enable Windows Subsystem for Linux (WSL) by following the + `official WSL setup guide + `_. Be + sure to do the steps to install WSL2 and set it as default. + Then go to the Microsoft Store and install Ubuntu (or another + Linux distribution). Start Ubuntu from the start menu. + + Then follow the instructions for development on Linux below. - **No development:** - - Enable Windows Subsystem for Linux (WSL), selecting any Linux - distribution, for example Ubuntu. On the Linux running on WSL, - you always have root access, so you can use any of the - installation methods described above for Linux. + - Enable Windows Subsystem for Linux (WSL) by following the + `official WSL setup guide + `_. Be + sure to do the steps to install WSL2 and set it as default. + Then go to the Microsoft Store and install Ubuntu (or another + Linux distribution). Start Ubuntu from the start menu. + + On the Linux running on WSL, you always have root access, so you + can use any of the installation methods described above for + Linux. - Alternatively, in particular if you cannot use WSL, install `Cygwin `_ and then build SageMath from source diff --git a/src/doc/en/installation/source.rst b/src/doc/en/installation/source.rst index dc24eb9f0dd..8a97b1d2248 100644 --- a/src/doc/en/installation/source.rst +++ b/src/doc/en/installation/source.rst @@ -349,7 +349,7 @@ include: Ubuntu on Windows Subsystem for Linux (WSL) prerequisite installation ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Sage can be installed onto Linux running on Windows Subsystem for Linux (WSL). These instructions describe a fresh install of Ubuntu 20.10, but other distibutions or installation methods should work too, though have not been tested. +Sage can be installed onto Linux running on Windows Subsystem for Linux (WSL). These instructions describe a fresh install of Ubuntu 20.10, but other distributions or installation methods should work too, though have not been tested. - Enable hardware-assisted virtualization in the EFI or BIOS of your system. Refer to your system (or motherboard) maker's documentation for instructions on how to do this. From 7896a56df78170d5bab0f306d1a7230986a4206a Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Tue, 26 Apr 2022 15:44:08 -0700 Subject: [PATCH 49/54] src/doc/en/installation/index.rst: above->below --- src/doc/en/installation/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/doc/en/installation/index.rst b/src/doc/en/installation/index.rst index 3638f20cd11..6a0b439ac66 100644 --- a/src/doc/en/installation/index.rst +++ b/src/doc/en/installation/index.rst @@ -77,7 +77,7 @@ Windows Linux distribution). Start Ubuntu from the start menu. On the Linux running on WSL, you always have root access, so you - can use any of the installation methods described above for + can use any of the installation methods described below for Linux. - Alternatively, in particular if you cannot use WSL, install From eb1a786c04e7b487449b2f32af2b637654647a7c Mon Sep 17 00:00:00 2001 From: Release Manager Date: Sat, 30 Apr 2022 00:56:36 +0200 Subject: [PATCH 50/54] Updated SageMath version to 9.6.rc3 --- .zenodo.json | 8 ++++---- VERSION.txt | 2 +- build/pkgs/configure/checksums.ini | 6 +++--- build/pkgs/configure/package-version.txt | 2 +- build/pkgs/sagelib/package-version.txt | 2 +- src/VERSION.txt | 2 +- src/bin/sage-version.sh | 6 +++--- src/sage/version.py | 6 +++--- 8 files changed, 17 insertions(+), 17 deletions(-) diff --git a/.zenodo.json b/.zenodo.json index 92b3c3d5810..d2346f2f37f 100644 --- a/.zenodo.json +++ b/.zenodo.json @@ -1,10 +1,10 @@ { "description": "Mirror of the Sage https://sagemath.org/ source tree", "license": "other-open", - "title": "sagemath/sage: 9.6.rc2", - "version": "9.6.rc2", + "title": "sagemath/sage: 9.6.rc3", + "version": "9.6.rc3", "upload_type": "software", - "publication_date": "2022-04-25", + "publication_date": "2022-04-29", "creators": [ { "affiliation": "SageMath.org", @@ -15,7 +15,7 @@ "related_identifiers": [ { "scheme": "url", - "identifier": "https://github.com/sagemath/sage/tree/9.6.rc2", + "identifier": "https://github.com/sagemath/sage/tree/9.6.rc3", "relation": "isSupplementTo" }, { diff --git a/VERSION.txt b/VERSION.txt index d9a5b2a99a3..161f2afb9d7 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -SageMath version 9.6.rc2, Release Date: 2022-04-25 +SageMath version 9.6.rc3, Release Date: 2022-04-29 diff --git a/build/pkgs/configure/checksums.ini b/build/pkgs/configure/checksums.ini index 88cd14d644d..6b2485946dc 100644 --- a/build/pkgs/configure/checksums.ini +++ b/build/pkgs/configure/checksums.ini @@ -1,4 +1,4 @@ tarball=configure-VERSION.tar.gz -sha1=471681c23a65752234381869e8d7441a3a672a75 -md5=5214027a1f5268a45899e187baaf4aa8 -cksum=328581596 +sha1=625fcd35850a91e736c0e618ace82b8e09c8e605 +md5=db697a2f6460f5328f64cfaafdb58703 +cksum=2241741028 diff --git a/build/pkgs/configure/package-version.txt b/build/pkgs/configure/package-version.txt index 5926786dc05..7880a6f9cca 100644 --- a/build/pkgs/configure/package-version.txt +++ b/build/pkgs/configure/package-version.txt @@ -1 +1 @@ -140671a42e45db25422af9612d442fa238c944c5 +8e8d7b448d7dfe9b1c223a245e6d164507ddfe15 diff --git a/build/pkgs/sagelib/package-version.txt b/build/pkgs/sagelib/package-version.txt index f6c161a47f6..24562793a28 100644 --- a/build/pkgs/sagelib/package-version.txt +++ b/build/pkgs/sagelib/package-version.txt @@ -1 +1 @@ -9.6.rc2 +9.6.rc3 diff --git a/src/VERSION.txt b/src/VERSION.txt index f6c161a47f6..24562793a28 100644 --- a/src/VERSION.txt +++ b/src/VERSION.txt @@ -1 +1 @@ -9.6.rc2 +9.6.rc3 diff --git a/src/bin/sage-version.sh b/src/bin/sage-version.sh index bf183ccb59d..f34be5ac786 100644 --- a/src/bin/sage-version.sh +++ b/src/bin/sage-version.sh @@ -1,5 +1,5 @@ # Sage version information for shell scripts # This file is auto-generated by the sage-update-version script, do not edit! -SAGE_VERSION='9.6.rc2' -SAGE_RELEASE_DATE='2022-04-25' -SAGE_VERSION_BANNER='SageMath version 9.6.rc2, Release Date: 2022-04-25' +SAGE_VERSION='9.6.rc3' +SAGE_RELEASE_DATE='2022-04-29' +SAGE_VERSION_BANNER='SageMath version 9.6.rc3, Release Date: 2022-04-29' diff --git a/src/sage/version.py b/src/sage/version.py index f62c878a15f..5d921980573 100644 --- a/src/sage/version.py +++ b/src/sage/version.py @@ -1,5 +1,5 @@ # Sage version information for Python scripts # This file is auto-generated by the sage-update-version script, do not edit! -version = '9.6.rc2' -date = '2022-04-25' -banner = 'SageMath version 9.6.rc2, Release Date: 2022-04-25' +version = '9.6.rc3' +date = '2022-04-29' +banner = 'SageMath version 9.6.rc3, Release Date: 2022-04-29' From a0e037f4df2f303423855351c4d5fc5001cca69f Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Mon, 2 May 2022 15:42:51 -0700 Subject: [PATCH 51/54] build/bin/write-dockerfile.sh [debian]: Handle EXTRA_PATH, EXTRA_SYSTEM_PACKAGES --- build/bin/write-dockerfile.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/build/bin/write-dockerfile.sh b/build/bin/write-dockerfile.sh index 4e2f891d506..e61d94b8e92 100755 --- a/build/bin/write-dockerfile.sh +++ b/build/bin/write-dockerfile.sh @@ -13,7 +13,7 @@ EXTRA_SAGE_PACKAGES="${5:-_bootstrap}" STRIP_COMMENTS="sed s/#.*//;" SAGE_ROOT=. export PATH="$SAGE_ROOT"/build/bin:$PATH -SYSTEM_PACKAGES= +SYSTEM_PACKAGES=$EXTRA_SYSTEM_PACKAGES CONFIGURE_ARGS="--enable-option-checking " for PKG_BASE in $($SAGE_ROOT/sage -package list --has-file=distros/$SYSTEM.txt $SAGE_PACKAGE_LIST_ARGS) $EXTRA_SAGE_PACKAGES; do PKG_SCRIPTS="$SAGE_ROOT"/build/pkgs/$PKG_BASE @@ -60,6 +60,9 @@ RUN $UPDATE $INSTALL software-properties-common && ($INSTALL gpg gpg-agent || ec RUN $SUDO add-apt-repository $EXTRA_REPOSITORY EOF fi + if [ -n "$EXTRA_PATH" ]; then + RUN="RUN export PATH=$EXTRA_PATH:\$PATH && " + fi ;; fedora*|redhat*|centos*) cat < Date: Mon, 2 May 2022 15:43:21 -0700 Subject: [PATCH 52/54] tox.ini (ubuntu-trusty-toolchain): Use binutils-2.26 --- tox.ini | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tox.ini b/tox.ini index 47c10c364ef..a4cb0289d61 100644 --- a/tox.ini +++ b/tox.ini @@ -192,6 +192,8 @@ setenv = ubuntu: SYSTEM=debian ubuntu: BASE_IMAGE=ubuntu ubuntu-toolchain: EXTRA_REPOSITORY=ppa:ubuntu-toolchain-r/test + ubuntu-toolchain-trusty: EXTRA_SYSTEM_PACKAGES=binutils-2.26 + ubuntu-toolchain-trusty: EXTRA_PATH=/usr/lib/binutils-2.26/bin ubuntu-trusty: BASE_TAG=trusty ubuntu-trusty: IGNORE_MISSING_SYSTEM_PACKAGES=yes ubuntu-xenial: BASE_TAG=xenial From 33ca13187c3f29b009e5e93f01d0e42fde64a713 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Mon, 2 May 2022 23:31:33 -0700 Subject: [PATCH 53/54] tox.ini, .github/workflows/tox*.yml: Add ubuntu-kinetic, linuxmint-21, fedora-37 --- .github/workflows/tox-experimental.yml | 2 +- .github/workflows/tox-optional.yml | 2 +- .github/workflows/tox.yml | 2 +- tox.ini | 9 +++++++-- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/.github/workflows/tox-experimental.yml b/.github/workflows/tox-experimental.yml index 383a33dc4ec..080d578c5d7 100644 --- a/.github/workflows/tox-experimental.yml +++ b/.github/workflows/tox-experimental.yml @@ -38,7 +38,7 @@ jobs: fail-fast: false max-parallel: 6 matrix: - tox_system_factor: [gitpod, ubuntu-trusty-toolchain-gcc_9, ubuntu-xenial-toolchain-gcc_9, ubuntu-bionic, ubuntu-focal, ubuntu-hirsute, ubuntu-impish, ubuntu-jammy, debian-stretch, debian-buster, debian-bullseye, debian-bookworm, debian-sid, linuxmint-19, linuxmint-19.3, linuxmint-20.1, linuxmint-20.2, linuxmint-20.3, fedora-26, fedora-27, fedora-28, fedora-29, fedora-30, fedora-31, fedora-32, fedora-33, fedora-34, fedora-35, fedora-36, centos-7-devtoolset-gcc_11, centos-stream-8, gentoo-python3.9, gentoo-python3.10, archlinux-latest, opensuse-15.3, opensuse-tumbleweed, conda-forge, ubuntu-bionic-i386, manylinux-2_24-i686, debian-buster-i386, centos-7-i386-devtoolset-gcc_11] + tox_system_factor: [gitpod, ubuntu-trusty-toolchain-gcc_9, ubuntu-xenial-toolchain-gcc_9, ubuntu-bionic, ubuntu-focal, ubuntu-hirsute, ubuntu-impish, ubuntu-jammy, ubuntu-kinetic, debian-stretch, debian-buster, debian-bullseye, debian-bookworm, debian-sid, linuxmint-19, linuxmint-19.3, linuxmint-20.1, linuxmint-20.2, linuxmint-20.3, linuxmint-21, fedora-26, fedora-27, fedora-28, fedora-29, fedora-30, fedora-31, fedora-32, fedora-33, fedora-34, fedora-35, fedora-36, fedora-37, centos-7-devtoolset-gcc_11, centos-stream-8, gentoo-python3.9, gentoo-python3.10, archlinux-latest, opensuse-15.3, opensuse-tumbleweed, conda-forge, ubuntu-bionic-i386, manylinux-2_24-i686, debian-buster-i386, centos-7-i386-devtoolset-gcc_11] tox_packages_factor: [maximal] targets_pattern: [0-g, h-o, p, q-z] env: diff --git a/.github/workflows/tox-optional.yml b/.github/workflows/tox-optional.yml index 37da5a4a9d8..3a451faa0b4 100644 --- a/.github/workflows/tox-optional.yml +++ b/.github/workflows/tox-optional.yml @@ -38,7 +38,7 @@ jobs: fail-fast: false max-parallel: 6 matrix: - tox_system_factor: [ubuntu-trusty-toolchain-gcc_9, ubuntu-xenial-toolchain-gcc_9, ubuntu-bionic, ubuntu-focal, ubuntu-hirsute, ubuntu-impish, ubuntu-jammy, debian-stretch, debian-buster, debian-bullseye, debian-bookworm, debian-sid, linuxmint-19, linuxmint-19.3, linuxmint-20.1, linuxmint-20.2. linuxmint-20.3, fedora-26, fedora-27, fedora-28, fedora-29, fedora-30, fedora-31, fedora-32, fedora-33, fedora-34, fedora-35, fedora-36, centos-7-devtoolset-gcc_11, centos-stream-8, gentoo-python3.9, gentoo-python3.10, archlinux-latest, opensuse-15.3, opensuse-tumbleweed, slackware-14.2, conda-forge, ubuntu-bionic-i386, manylinux-2_24-i686, debian-buster-i386, centos-7-i386-devtoolset-gcc_11] + tox_system_factor: [gitpod, ubuntu-trusty-toolchain-gcc_9, ubuntu-xenial-toolchain-gcc_9, ubuntu-bionic, ubuntu-focal, ubuntu-hirsute, ubuntu-impish, ubuntu-jammy, ubuntu-kinetic, debian-stretch, debian-buster, debian-bullseye, debian-bookworm, debian-sid, linuxmint-19, linuxmint-19.3, linuxmint-20.1, linuxmint-20.2, linuxmint-20.3, linuxmint-21, fedora-26, fedora-27, fedora-28, fedora-29, fedora-30, fedora-31, fedora-32, fedora-33, fedora-34, fedora-35, fedora-36, fedora-37, centos-7-devtoolset-gcc_11, centos-stream-8, gentoo-python3.9, gentoo-python3.10, archlinux-latest, opensuse-15.3, opensuse-tumbleweed, conda-forge, ubuntu-bionic-i386, manylinux-2_24-i686, debian-buster-i386, centos-7-i386-devtoolset-gcc_11] tox_packages_factor: [maximal] targets_pattern: [0-g, h-o, p, q-z] env: diff --git a/.github/workflows/tox.yml b/.github/workflows/tox.yml index 02f622affc2..69f8450da00 100644 --- a/.github/workflows/tox.yml +++ b/.github/workflows/tox.yml @@ -38,7 +38,7 @@ jobs: fail-fast: false max-parallel: 20 matrix: - tox_system_factor: [gitpod, ubuntu-trusty-toolchain-gcc_9, ubuntu-xenial-toolchain-gcc_9, ubuntu-bionic, ubuntu-focal, ubuntu-hirsute, ubuntu-impish, ubuntu-jammy, debian-stretch, debian-buster, debian-bullseye, debian-bookworm, debian-sid, linuxmint-19, linuxmint-19.3, linuxmint-20.1, linuxmint-20.2, linuxmint-20.3, fedora-26, fedora-27, fedora-28, fedora-29, fedora-30, fedora-31, fedora-32, fedora-33, fedora-34, fedora-35, fedora-36, centos-7-devtoolset-gcc_11, centos-stream-8, gentoo-python3.9, gentoo-python3.10, archlinux-latest, opensuse-15.3, opensuse-tumbleweed, conda-forge, ubuntu-bionic-i386, manylinux-2_24-i686, debian-buster-i386, centos-7-i386-devtoolset-gcc_11] + tox_system_factor: [gitpod, ubuntu-trusty-toolchain-gcc_9, ubuntu-xenial-toolchain-gcc_9, ubuntu-bionic, ubuntu-focal, ubuntu-hirsute, ubuntu-impish, ubuntu-jammy, ubuntu-kinetic, debian-stretch, debian-buster, debian-bullseye, debian-bookworm, debian-sid, linuxmint-19, linuxmint-19.3, linuxmint-20.1, linuxmint-20.2, linuxmint-20.3, linuxmint-21, fedora-26, fedora-27, fedora-28, fedora-29, fedora-30, fedora-31, fedora-32, fedora-33, fedora-34, fedora-35, fedora-36, fedora-37, centos-7-devtoolset-gcc_11, centos-stream-8, gentoo-python3.9, gentoo-python3.10, archlinux-latest, opensuse-15.3, opensuse-tumbleweed, conda-forge, ubuntu-bionic-i386, manylinux-2_24-i686, debian-buster-i386, centos-7-i386-devtoolset-gcc_11] tox_packages_factor: [minimal, standard] env: TOX_ENV: docker-${{ matrix.tox_system_factor }}-${{ matrix.tox_packages_factor }} diff --git a/tox.ini b/tox.ini index a4cb0289d61..5ee6fb94f33 100644 --- a/tox.ini +++ b/tox.ini @@ -187,7 +187,7 @@ setenv = docker: BASE_TAG=latest # # https://hub.docker.com/_/ubuntu?tab=description - # as of 2021-11, latest=focal=20.04, rolling=impish=21.10, devel=jammy=22.04 + # as of 2022-05, latest=rolling=jammy=22.04, devel=kinetic=22.10 # ubuntu: SYSTEM=debian ubuntu: BASE_IMAGE=ubuntu @@ -207,6 +207,8 @@ setenv = ubuntu-impish: IGNORE_MISSING_SYSTEM_PACKAGES=yes ubuntu-jammy: BASE_TAG=jammy ubuntu-jammy: IGNORE_MISSING_SYSTEM_PACKAGES=yes + ubuntu-kinetic: BASE_TAG=kinetic + ubuntu-kinetic: IGNORE_MISSING_SYSTEM_PACKAGES=yes # # https://hub.docker.com/_/debian # debian-bullseye does not have libgiac-dev @@ -238,9 +240,10 @@ setenv = linuxmint-20.1: BASE_IMAGE=linuxmintd/mint20.1 linuxmint-20.2: BASE_IMAGE=linuxmintd/mint20.2 linuxmint-20.3: BASE_IMAGE=linuxmintd/mint20.3 + linuxmint-21: BASE_IMAGE=linuxmintd/mint21 # # https://hub.docker.com/_/fedora - # as of 2021-11, latest=35, rawhide=36 + # as of 2021-11, latest=35, rawhide=37 fedora: SYSTEM=fedora fedora: BASE_IMAGE=fedora fedora-26: BASE_TAG=26 @@ -263,6 +266,8 @@ setenv = fedora-35: IGNORE_MISSING_SYSTEM_PACKAGES=yes fedora-36: BASE_TAG=36 fedora-36: IGNORE_MISSING_SYSTEM_PACKAGES=yes + fedora-37: BASE_TAG=37 + fedora-37: IGNORE_MISSING_SYSTEM_PACKAGES=yes # # https://hub.docker.com/r/scientificlinux/sl # From 65cfa33b302d125d3920fc12ebf5bba914ac50b3 Mon Sep 17 00:00:00 2001 From: Dima Pasechnik Date: Thu, 12 May 2022 14:57:23 +0100 Subject: [PATCH 54/54] Python 3.7->3.8. in few places; bump Sage version to 9.7 in tutorial --- README.md | 2 +- src/doc/de/tutorial/interactive_shell.rst | 6 +++--- src/doc/en/installation/source.rst | 2 +- src/doc/en/tutorial/interactive_shell.rst | 6 +++--- src/doc/fr/tutorial/interactive_shell.rst | 6 +++--- src/doc/ja/tutorial/interactive_shell.rst | 6 +++--- src/doc/pt/tutorial/interactive_shell.rst | 6 +++--- src/doc/ru/tutorial/interactive_shell.rst | 6 +++--- 8 files changed, 20 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 307b2d64149..78036fd694a 100644 --- a/README.md +++ b/README.md @@ -251,7 +251,7 @@ in the Installation Guide. ``ExtUtils::MakeMaker``), `ranlib`, `git`, `tar`, `bc`. - Python 3.4 or later, or Python 2.7, a full installation including - `urllib`; but ideally version 3.7.x, 3.8.x, 3.9.x, or 3.10.x, which + `urllib`; but ideally version 3.8.x, 3.9.x, or 3.10.x, which will avoid having to build Sage's own copy of Python 3. We have collected lists of system packages that provide these build diff --git a/src/doc/de/tutorial/interactive_shell.rst b/src/doc/de/tutorial/interactive_shell.rst index 822fef4ec67..b356ea21f45 100644 --- a/src/doc/de/tutorial/interactive_shell.rst +++ b/src/doc/de/tutorial/interactive_shell.rst @@ -15,7 +15,7 @@ vornehmen. Nach dem Start von Sage sehen Sie etwa folgendes: :: ┌────────────────────────────────────────────────────────────────────┐ - │ SageMath version 9.0, Release Date: 2020-01-01 │ + │ SageMath version 9.7, Release Date: 2022-01-10 │ │ Using Python 3.10.4. Type "help()" for help. │ └────────────────────────────────────────────────────────────────────┘ @@ -175,7 +175,7 @@ in einer zukünftigen Sitzung (indem Sie einfach die Log-Datei laden). was@form:~$ sage ┌────────────────────────────────────────────────────────────────────┐ - │ SageMath version 9.0, Release Date: 2020-01-01 │ + │ SageMath version 9.7, Release Date: 2022-01-10 │ │ Using Python 3.10.4. Type "help()" for help. │ └────────────────────────────────────────────────────────────────────┘ @@ -194,7 +194,7 @@ in einer zukünftigen Sitzung (indem Sie einfach die Log-Datei laden). Exiting Sage (CPU time 0m0.61s, Wall time 0m50.39s). was@form:~$ sage ┌────────────────────────────────────────────────────────────────────┐ - │ SageMath version 9.0, Release Date: 2020-01-01 │ + │ SageMath version 9.7, Release Date: 2022-01-10 │ │ Using Python 3.10.4. Type "help()" for help. │ └────────────────────────────────────────────────────────────────────┘ diff --git a/src/doc/en/installation/source.rst b/src/doc/en/installation/source.rst index 0d5ee9e9f69..3ea54a60203 100644 --- a/src/doc/en/installation/source.rst +++ b/src/doc/en/installation/source.rst @@ -131,7 +131,7 @@ rather than building a Python 3 installation from scratch. Use the ``configure`` option ``--without-system-python3`` in case you want Python 3 built from scratch. -Sage will accept versions 3.7.x to 3.10.x. +Sage will accept versions 3.8.x to 3.10.x. You can also use ``--with-python=/path/to/python3_binary`` to tell Sage to use ``/path/to/python3_binary`` to set up the venv. Note that setting up venv requires diff --git a/src/doc/en/tutorial/interactive_shell.rst b/src/doc/en/tutorial/interactive_shell.rst index 8c7d340f5ac..7ae821e416d 100644 --- a/src/doc/en/tutorial/interactive_shell.rst +++ b/src/doc/en/tutorial/interactive_shell.rst @@ -13,7 +13,7 @@ Sage, you get output similar to the following: .. CODE-BLOCK:: text ┌────────────────────────────────────────────────────────────────────┐ - │ SageMath version 9.0, Release Date: 2020-01-01 │ + │ SageMath version 9.7, Release Date: 2022-01-10 │ │ Using Python 3.10.4. Type "help()" for help. │ └────────────────────────────────────────────────────────────────────┘ @@ -173,7 +173,7 @@ file). was@form:~$ sage ┌────────────────────────────────────────────────────────────────────┐ - │ SageMath version 9.0, Release Date: 2020-01-01 │ + │ SageMath version 9.7, Release Date: 2022-01-10 │ │ Using Python 3.10.4. Type "help()" for help. │ └────────────────────────────────────────────────────────────────────┘ @@ -192,7 +192,7 @@ file). Exiting Sage (CPU time 0m0.61s, Wall time 0m50.39s). was@form:~$ sage ┌────────────────────────────────────────────────────────────────────┐ - │ SageMath version 9.0, Release Date: 2020-01-01 │ + │ SageMath version 9.7, Release Date: 2022-01-10 │ │ Using Python 3.10.4. Type "help()" for help. │ └────────────────────────────────────────────────────────────────────┘ diff --git a/src/doc/fr/tutorial/interactive_shell.rst b/src/doc/fr/tutorial/interactive_shell.rst index 99e215391db..81235ccaab9 100644 --- a/src/doc/fr/tutorial/interactive_shell.rst +++ b/src/doc/fr/tutorial/interactive_shell.rst @@ -17,7 +17,7 @@ le shell Sage affiche un message de ce genre : :: ┌────────────────────────────────────────────────────────────────────┐ - │ SageMath version 9.0, Release Date: 2020-01-01 │ + │ SageMath version 9.7, Release Date: 2022-01-10 │ │ Using Python 3.10.4. Type "help()" for help. │ └────────────────────────────────────────────────────────────────────┘ @@ -182,7 +182,7 @@ session future (en rechargeant le fichier journal). was@form:~$ sage ┌────────────────────────────────────────────────────────────────────┐ - │ SageMath version 9.0, Release Date: 2020-01-01 │ + │ SageMath version 9.7, Release Date: 2022-01-10 │ │ Using Python 3.10.4. Type "help()" for help. │ └────────────────────────────────────────────────────────────────────┘ @@ -201,7 +201,7 @@ session future (en rechargeant le fichier journal). Exiting Sage (CPU time 0m0.61s, Wall time 0m50.39s). was@form:~$ sage ┌────────────────────────────────────────────────────────────────────┐ - │ SageMath version 9.0, Release Date: 2020-01-01 │ + │ SageMath version 9.7, Release Date: 2022-01-10 │ │ Using Python 3.10.4. Type "help()" for help. │ └────────────────────────────────────────────────────────────────────┘ diff --git a/src/doc/ja/tutorial/interactive_shell.rst b/src/doc/ja/tutorial/interactive_shell.rst index 4847d9b0775..38a5c2c4d3f 100644 --- a/src/doc/ja/tutorial/interactive_shell.rst +++ b/src/doc/ja/tutorial/interactive_shell.rst @@ -14,7 +14,7 @@ Sageを起動すると,すぐに次のような画面が現れる: :: ┌────────────────────────────────────────────────────────────────────┐ - │ SageMath version 9.0, Release Date: 2020-01-01 │ + │ SageMath version 9.7, Release Date: 2022-01-10 │ │ Using Python 3.10.4. Type "help()" for help. │ └────────────────────────────────────────────────────────────────────┘ @@ -163,7 +163,7 @@ Sageセッションのロギングと,セッションの保存(:ref:`section-s was@form:~$ sage ┌────────────────────────────────────────────────────────────────────┐ - │ SageMath version 9.0, Release Date: 2020-01-01 │ + │ SageMath version 9.7, Release Date: 2022-01-10 │ │ Using Python 3.10.4. Type "help()" for help. │ └────────────────────────────────────────────────────────────────────┘ @@ -182,7 +182,7 @@ Sageセッションのロギングと,セッションの保存(:ref:`section-s Exiting Sage (CPU time 0m0.61s, Wall time 0m50.39s). was@form:~$ sage ┌────────────────────────────────────────────────────────────────────┐ - │ SageMath version 9.0, Release Date: 2020-01-01 │ + │ SageMath version 9.7, Release Date: 2022-01-10 │ │ Using Python 3.10.4. Type "help()" for help. │ └────────────────────────────────────────────────────────────────────┘ diff --git a/src/doc/pt/tutorial/interactive_shell.rst b/src/doc/pt/tutorial/interactive_shell.rst index 1737498abaa..67d27269a1e 100644 --- a/src/doc/pt/tutorial/interactive_shell.rst +++ b/src/doc/pt/tutorial/interactive_shell.rst @@ -16,7 +16,7 @@ obtém o seguinte: :: ┌────────────────────────────────────────────────────────────────────┐ - │ SageMath version 9.0, Release Date: 2020-01-01 │ + │ SageMath version 9.7, Release Date: 2022-01-10 │ │ Using Python 3.10.4. Type "help()" for help. │ └────────────────────────────────────────────────────────────────────┘ sage: @@ -174,7 +174,7 @@ arquivo log). was@form:~$ sage ┌────────────────────────────────────────────────────────────────────┐ - │ SageMath version 9.0, Release Date: 2020-01-01 │ + │ SageMath version 9.7, Release Date: 2022-01-10 │ │ Using Python 3.10.4. Type "help()" for help. │ └────────────────────────────────────────────────────────────────────┘ @@ -193,7 +193,7 @@ arquivo log). Exiting Sage (CPU time 0m0.61s, Wall time 0m50.39s). was@form:~$ sage ┌────────────────────────────────────────────────────────────────────┐ - │ SageMath version 9.0, Release Date: 2020-01-01 │ + │ SageMath version 9.7, Release Date: 2022-01-10 │ │ Using Python 3.10.4. Type "help()" for help. │ └────────────────────────────────────────────────────────────────────┘ diff --git a/src/doc/ru/tutorial/interactive_shell.rst b/src/doc/ru/tutorial/interactive_shell.rst index 621426eda9b..e2d8a68cde6 100644 --- a/src/doc/ru/tutorial/interactive_shell.rst +++ b/src/doc/ru/tutorial/interactive_shell.rst @@ -16,7 +16,7 @@ Sage вы увидите вывод, похожий на следующий: :: ┌────────────────────────────────────────────────────────────────────┐ - │ SageMath version 9.0, Release Date: 2020-01-01 │ + │ SageMath version 9.7, Release Date: 2022-01-10 │ │ Using Python 3.10.4. Type "help()" for help. │ └────────────────────────────────────────────────────────────────────┘ @@ -166,7 +166,7 @@ Notebook), то вы можете ввести ``%hist``, чтобы вывес was@form:~$ sage ┌────────────────────────────────────────────────────────────────────┐ - │ SageMath version 9.0, Release Date: 2020-01-01 │ + │ SageMath version 9.7, Release Date: 2022-01-10 │ │ Using Python 3.10.4. Type "help()" for help. │ └────────────────────────────────────────────────────────────────────┘ @@ -185,7 +185,7 @@ Notebook), то вы можете ввести ``%hist``, чтобы вывес Exiting Sage (CPU time 0m0.61s, Wall time 0m50.39s). was@form:~$ sage ┌────────────────────────────────────────────────────────────────────┐ - │ SageMath version 9.0, Release Date: 2020-01-01 │ + │ SageMath version 9.7, Release Date: 2022-01-10 │ │ Using Python 3.10.4. Type "help()" for help. │ └────────────────────────────────────────────────────────────────────┘