From 7b501eda716d54eb8071d25e61775a67de6827fa Mon Sep 17 00:00:00 2001 From: Lee Dogeon Date: Wed, 14 Jan 2026 04:29:22 +0900 Subject: [PATCH 1/7] Use shared PYTHON_VERSION in cron-ci benchmark job --- .github/workflows/cron-ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cron-ci.yaml b/.github/workflows/cron-ci.yaml index 59d664e0ea1..bf3fbde0026 100644 --- a/.github/workflows/cron-ci.yaml +++ b/.github/workflows/cron-ci.yaml @@ -141,7 +141,7 @@ jobs: - uses: dtolnay/rust-toolchain@stable - uses: actions/setup-python@v6.1.0 with: - python-version: 3.9 + python-version: ${{ env.PYTHON_VERSION }} - run: cargo install cargo-criterion - name: build benchmarks run: cargo build --release --benches From a22ae082798cf9e1819b5f431aa364e738cac82c Mon Sep 17 00:00:00 2001 From: Lee Dogeon Date: Wed, 14 Jan 2026 05:06:10 +0900 Subject: [PATCH 2/7] Correct extra-tests/jsontests.py script When the `extra_tests/jsontests.py` script was added, it was presumably during the time when Python versions 3.5 to 3.8 were in use. At that time, `test.libregrtest.runtest` was a valid path, but from CPython version 3.11 onwards, the path changed to `test.libregrtest.findtests`. --- extra_tests/jsontests.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extra_tests/jsontests.py b/extra_tests/jsontests.py index c1f92509fe7..f3213ac09d1 100644 --- a/extra_tests/jsontests.py +++ b/extra_tests/jsontests.py @@ -2,7 +2,7 @@ import unittest from custom_text_test_runner import CustomTextTestRunner as Runner -from test.libregrtest.runtest import findtests +from test.libregrtest.findtests import findtests testnames = findtests() # idk why this fixes the hanging, if it does From eb415bcfab8d510dfb4c5636aa7adb2011899ef2 Mon Sep 17 00:00:00 2001 From: Lee Dogeon Date: Wed, 14 Jan 2026 05:15:05 +0900 Subject: [PATCH 3/7] Use ssl-rustls feature instead of ssl in cron-ci workflow Replace the ssl feature with ssl-rustls in both the CARGO_ARGS environment variable and the cargo-llvm-cov test command to fix the cron-ci workflow. Since 1a783fc9ec16bd824967449bc9899661a5ee5761, it is disallowed to use ssl manually. --- .github/workflows/cron-ci.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cron-ci.yaml b/.github/workflows/cron-ci.yaml index bf3fbde0026..00c0282447f 100644 --- a/.github/workflows/cron-ci.yaml +++ b/.github/workflows/cron-ci.yaml @@ -9,7 +9,7 @@ on: name: Periodic checks/tasks env: - CARGO_ARGS: --no-default-features --features stdlib,importlib,encodings,ssl,jit + CARGO_ARGS: --no-default-features --features stdlib,importlib,encodings,ssl-rustls,jit PYTHON_VERSION: "3.13.1" jobs: @@ -29,7 +29,7 @@ jobs: python-version: ${{ env.PYTHON_VERSION }} - run: sudo apt-get update && sudo apt-get -y install lcov - name: Run cargo-llvm-cov with Rust tests. - run: cargo llvm-cov --no-report --workspace --exclude rustpython_wasm --verbose --no-default-features --features stdlib,importlib,encodings,ssl,jit + run: cargo llvm-cov --no-report --workspace --exclude rustpython_wasm --verbose --no-default-features --features stdlib,importlib,encodings,ssl-rustls,jit - name: Run cargo-llvm-cov with Python snippets. run: python scripts/cargo-llvm-cov.py continue-on-error: true From c6eb6105d74effa0ce2d4ec12276877fb952809d Mon Sep 17 00:00:00 2001 From: Lee Dogeon Date: Wed, 14 Jan 2026 05:32:57 +0900 Subject: [PATCH 4/7] Replace inspect.getargspec with inspect.getfullargspec in custom_text_test_runner inspect.getargspec() was removed in Python 3.11, causing jsontests.py to fail with "TypeError: 'NoneType' object is not iterable" when running on RustPython (which targets Python 3.13). The get_function_args() function was silently catching the AttributeError and returning None, which then caused the error in store_class_fields() when trying to iterate over None. > https://docs.python.org/3/whatsnew/3.11.html > The getargspec() function, deprecated since Python 3.0; use > inspect.signature() or inspect.getfullargspec() instead. Co-Authored-By: Claude Opus 4.5 --- extra_tests/custom_text_test_runner.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extra_tests/custom_text_test_runner.py b/extra_tests/custom_text_test_runner.py index 018121f0da4..afec493a66c 100644 --- a/extra_tests/custom_text_test_runner.py +++ b/extra_tests/custom_text_test_runner.py @@ -112,7 +112,7 @@ def __call__(self, data_list, totals=None): def get_function_args(func_ref): try: - return [p for p in inspect.getargspec(func_ref).args if p != "self"] + return [p for p in inspect.getfullargspec(func_ref).args if p != "self"] except: return None From be78d7065c8f1616494acc01dbdb5b4423754e7f Mon Sep 17 00:00:00 2001 From: Lee Dogeon Date: Wed, 14 Jan 2026 05:51:10 +0900 Subject: [PATCH 5/7] Exclude rustpython-venvlauncher in cron-ci workflow Since rustpython-venvlauncher is Windows-only, it disables the project in the cron-ci workflow. --- .github/workflows/cron-ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cron-ci.yaml b/.github/workflows/cron-ci.yaml index 00c0282447f..1bea29a615c 100644 --- a/.github/workflows/cron-ci.yaml +++ b/.github/workflows/cron-ci.yaml @@ -29,7 +29,7 @@ jobs: python-version: ${{ env.PYTHON_VERSION }} - run: sudo apt-get update && sudo apt-get -y install lcov - name: Run cargo-llvm-cov with Rust tests. - run: cargo llvm-cov --no-report --workspace --exclude rustpython_wasm --verbose --no-default-features --features stdlib,importlib,encodings,ssl-rustls,jit + run: cargo llvm-cov --no-report --workspace --exclude rustpython_wasm --exclude rustpython-venvlauncher --verbose --no-default-features --features stdlib,importlib,encodings,ssl-rustls,jit - name: Run cargo-llvm-cov with Python snippets. run: python scripts/cargo-llvm-cov.py continue-on-error: true From 801113c347a954b69ed5d9064635992897d1521f Mon Sep 17 00:00:00 2001 From: "Jeong, YunWon" <69878+youknowone@users.noreply.github.com> Date: Wed, 14 Jan 2026 09:00:29 +0900 Subject: [PATCH 6/7] Apply suggestion from @fanninpm Co-authored-by: fanninpm --- .github/workflows/cron-ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cron-ci.yaml b/.github/workflows/cron-ci.yaml index 1bea29a615c..db158e1b01d 100644 --- a/.github/workflows/cron-ci.yaml +++ b/.github/workflows/cron-ci.yaml @@ -29,7 +29,7 @@ jobs: python-version: ${{ env.PYTHON_VERSION }} - run: sudo apt-get update && sudo apt-get -y install lcov - name: Run cargo-llvm-cov with Rust tests. - run: cargo llvm-cov --no-report --workspace --exclude rustpython_wasm --exclude rustpython-venvlauncher --verbose --no-default-features --features stdlib,importlib,encodings,ssl-rustls,jit + run: cargo llvm-cov --no-report --workspace --exclude rustpython_wasm --exclude rustpython-compiler-source --exclude rustpython-venvlauncher --verbose --no-default-features --features stdlib,importlib,encodings,ssl-rustls,jit - name: Run cargo-llvm-cov with Python snippets. run: python scripts/cargo-llvm-cov.py continue-on-error: true From 2b6e11219fa2d09645b9ba2b98329eda054da770 Mon Sep 17 00:00:00 2001 From: Lee Dogeon Date: Wed, 14 Jan 2026 10:06:08 +0900 Subject: [PATCH 7/7] Trigger cron-ci workflow in pull_request --- .github/workflows/cron-ci.yaml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/cron-ci.yaml b/.github/workflows/cron-ci.yaml index db158e1b01d..d48c5e4cfeb 100644 --- a/.github/workflows/cron-ci.yaml +++ b/.github/workflows/cron-ci.yaml @@ -5,6 +5,9 @@ on: push: paths: - .github/workflows/cron-ci.yaml + pull_request: + paths: + - .github/workflows/cron-ci.yaml name: Periodic checks/tasks @@ -39,6 +42,7 @@ jobs: - name: Prepare code coverage data run: cargo llvm-cov report --lcov --output-path='codecov.lcov' - name: Upload to Codecov + if: ${{ github.event_name != 'pull_request' }} uses: codecov/codecov-action@v5 with: file: ./codecov.lcov @@ -58,6 +62,7 @@ jobs: env: RUSTPYTHONPATH: ${{ github.workspace }}/Lib - name: upload tests data to the website + if: ${{ github.event_name != 'pull_request' }} env: SSHKEY: ${{ secrets.ACTIONS_TESTS_DATA_DEPLOY_KEY }} GITHUB_ACTOR: ${{ github.actor }} @@ -94,6 +99,7 @@ jobs: env: RUSTPYTHONPATH: ${{ github.workspace }}/Lib - name: Upload data to the website + if: ${{ github.event_name != 'pull_request' }} env: SSHKEY: ${{ secrets.ACTIONS_TESTS_DATA_DEPLOY_KEY }} GITHUB_ACTOR: ${{ github.actor }} @@ -162,6 +168,7 @@ jobs: mv reports/* . rmdir reports - name: upload benchmark data to the website + if: ${{ github.event_name != 'pull_request' }} env: SSHKEY: ${{ secrets.ACTIONS_TESTS_DATA_DEPLOY_KEY }} run: |