Skip to content
Draft
Changes from 1 commit
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
a67bd8a
Prototyping 5974
reactive-firewall Jul 17, 2025
bc3d741
Prototype test of Check_Tests.yml
reactive-firewall Jul 17, 2025
579df4a
Update Check_Tests.yml
reactive-firewall Jul 17, 2025
3b0b622
Update Check_Tests.yml
reactive-firewall Jul 17, 2025
8fb83bb
Update Check_Tests.yml
reactive-firewall Jul 17, 2025
370eeb9
Tweaked Check_Tests.yml
reactive-firewall Jul 17, 2025
7032a3c
Update Check_Tests.yml
reactive-firewall Jul 17, 2025
c984045
DEBUG for Check_Tests.yml
reactive-firewall Jul 17, 2025
42e6bd1
DEBUG Check_Tests.yml
reactive-firewall Jul 17, 2025
da5c6b6
DEBUG Check_Tests.yml builds
reactive-firewall Jul 17, 2025
7b84e63
Update Check_Tests.yml
reactive-firewall Jul 17, 2025
e8dd40a
Fixup Check_Tests.yml more
reactive-firewall Jul 17, 2025
e4ea145
Update envs for OS in Check_Tests.yml
reactive-firewall Jul 17, 2025
62b2159
First just-integrate Cpython into Rustpython Automation test for Rust…
reactive-firewall Jul 17, 2025
16908ce
Second-Attempt for GHI RustPython/RustPython#5974
reactive-firewall Jul 17, 2025
7650576
Remove ulimit and re-test
reactive-firewall Jul 17, 2025
bcf6261
Update Check_Tests.yml to attempt auto-fix via fix_test.py
reactive-firewall Jul 21, 2025
ec878b6
STYLE fixes for Check_Tests.yml
reactive-firewall Jul 21, 2025
7a1122c
More Tweaking of Check_Tests.yml
reactive-firewall Jul 21, 2025
7b14fb8
Smarter filtering for direct invocation in Check_Tests.yml
reactive-firewall Jul 22, 2025
f1e1e1b
regression fix for Check_Tests.yml and re-test
reactive-firewall Jul 22, 2025
14b67ad
WIP - UNSTABLE
reactive-firewall Jul 22, 2025
d638f06
Update Check_Tests.yml with unittest logic
reactive-firewall Jul 23, 2025
5706652
Update Check_Tests.yml with shorter timeout limit
reactive-firewall Jul 23, 2025
ab1ab43
DEBUG Check_Tests.yml
reactive-firewall Jul 23, 2025
5e12149
WIP DEBUG STEP
reactive-firewall Jul 23, 2025
c1f6dfd
Expand to recurse Lib/test (WIP)
reactive-firewall Jul 23, 2025
3e65b53
Initial Refactor for CI-5974
reactive-firewall Jul 24, 2025
d1a9d08
Re:re: Fixup for overlooked regression from initial refactor
reactive-firewall Jul 24, 2025
cad55c6
:see_no_evil: Oops! No globbing sparse checkouts, must enumerate
reactive-firewall Jul 24, 2025
c5b556e
DEBUG sparse checkout for actions
reactive-firewall Jul 24, 2025
464eedb
Minor Regression fix for CI inputs
reactive-firewall Jul 24, 2025
d0469bd
DEBUG Refactor a bit
reactive-firewall Jul 24, 2025
18ec6ed
DEBUG integration action a bit more
reactive-firewall Jul 24, 2025
c3f5651
Refactored Smoke-testing experiment into re-useable action
reactive-firewall Jul 24, 2025
32583f5
Fix typo regression.
reactive-firewall Jul 24, 2025
e4dd8ce
:rocket: Prototype
reactive-firewall Jul 24, 2025
f2ab013
:see_no_evil: More minor fixes for CI actions
reactive-firewall Jul 24, 2025
708a78a
Oops! forgot the expansion - retry post-proc summary
reactive-firewall Jul 25, 2025
9e7a8ec
Improved the final output slightly
reactive-firewall Jul 25, 2025
7c8894a
:sparkle: Improved post-proc some more.
reactive-firewall Jul 25, 2025
101b653
Add quotes?
reactive-firewall Jul 25, 2025
ebd23cf
More cleanup of new actions
reactive-firewall Jul 25, 2025
918fb9d
Small improvements to the new actions reporting logic WIP
reactive-firewall Jul 26, 2025
7d3dc3d
Revert triggers for now
reactive-firewall Jul 28, 2025
63c6f61
Issue with chickens and eggs and the order of things.
reactive-firewall Jul 28, 2025
6a2353c
More minor fixes
reactive-firewall Jul 28, 2025
d36c8ca
Oops Missed one.
reactive-firewall Jul 28, 2025
6534d1c
[DEMO] Protoytpe from GHI #5974 with rpau from PR #6089
reactive-firewall Aug 25, 2025
aa209d4
[DEBUG] Opps misunderstood location of tools dir.
reactive-firewall Aug 25, 2025
cf5e371
[DEBUG] Attempt to -c invoke rpau tool with modified import (WIP PR #…
reactive-firewall Aug 27, 2025
cd3dc0a
[DEBUG] possible workaround for braindead windows runners
reactive-firewall Aug 28, 2025
42254c7
[DEBUG] Minor Regression fix for double entries. Oops.
reactive-firewall Aug 28, 2025
8b8398b
[STYLE] Cleaning up the report for CI runs a bit.
reactive-firewall Aug 28, 2025
e79c13b
[DEBUG] Adjust output path to upload at end
reactive-firewall Aug 28, 2025
b211032
[PATCH] workaround for elusive patched files
reactive-firewall Aug 28, 2025
d65b890
Testing based on examples from PR RustPython/RustPython#6089
reactive-firewall Aug 31, 2025
e20f6c5
Oops! forgot to mkdir in setup phase re-try test.
reactive-firewall Aug 31, 2025
3dd549f
Test for new Lib_updater.py script in integration phase (for Lib/test…
reactive-firewall Sep 3, 2025
64728df
[PATCH] Template Regression check in CI/CD
reactive-firewall Sep 28, 2025
b87cb8a
Apply suggestions from code review with AI assistant
reactive-firewall Sep 28, 2025
1960425
[PATCH] Cleanup from automated review in PR #6176
reactive-firewall Sep 28, 2025
874c2b5
Merge branch 'RustPython:main' into main
reactive-firewall Jan 15, 2026
73daf64
Merge branch 'RustPython:main' into main
reactive-firewall Jan 19, 2026
da38067
Merge branch 'RustPython:main' into main
reactive-firewall Jan 27, 2026
d39c6ec
[CI] Add primitive json format of results as uploaded artifact
reactive-firewall Feb 11, 2026
82104f8
[CI] regression fix
reactive-firewall Feb 11, 2026
6ef67db
[CI] RERERE more churn (sorry)
reactive-firewall Feb 11, 2026
67750ef
[CI] RERERE more churn (sorry)
reactive-firewall Feb 11, 2026
ed8daaf
Merge pull request #4 from RustPython/main
reactive-firewall Feb 11, 2026
e29ce48
[CI] Improved generation of json files
reactive-firewall Feb 11, 2026
e7fd918
[CI] debugging the JSON format
reactive-firewall Feb 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Expand to recurse Lib/test (WIP)
* expand to use pattern "Lib/test/*.py Lib/test/**/*.py"
* see #5974 for context
  • Loading branch information
reactive-firewall committed Sep 28, 2025
commit c1f6dfd3c9dadd343f63faed1ba576be1d9e726f
43 changes: 23 additions & 20 deletions .github/workflows/Check_Tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@ env:
# define how mush time before assuming the test has hung in seconds (parsed by sleep)
SUBSHELL_TIMEOUT: 30
# Define the referance files to pull as a file glob pattern
TEST_MATCH_PATTERN: "Lib/test/*.py"
TEST_MATCH_PATTERN: "Lib/test/*.py Lib/test/**/*.py"
TEST_IGNORE_LIST: |
Lib/test/test_builtin.py
Lib/test/*.pyc

# TODO: cordnate with @arihant2math - to really build out the migration logic

Expand Down Expand Up @@ -79,14 +79,14 @@ jobs:
PYTHON_VERSION: ${{ matrix.python-version }}
# TODO: move to seperate action
steps:
- name: Checkout RustPython repository
- name: Checkout RustPython repository on ${{ matrix.os }}
id: rpython
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
# repository: "RustPython/RustPython"
path: rustpython
# ref:
# ref: main
sparse-checkout-cone-mode: false
- name: Pre-Test Build check
id: build_testing
Expand Down Expand Up @@ -135,7 +135,7 @@ jobs:
cd cpython || exit 14 ;
FILES=$(git ls-files --exclude-standard -- ${{ env.TEST_MATCH_PATTERN }} )
if [ -z "$FILES" ]; then
printf "%s\n" "::warning file=.github/workflows/Check_Tests.yml:: No Lib/Test Referance files found."
printf "%s\n" "::warning file=.github/workflows/Check_Tests.yml:: No Lib/Test Referance files found for Cpython ${{ matrix.python-version }} on ${{ matrix.os }}." ;
printf "%s\n" "files=" >> "$GITHUB_OUTPUT"
else
printf "%s\n" "Lib/Test Referance files found:"
Expand All @@ -157,7 +157,7 @@ jobs:
cat <LICENSE ;
printf "\n\n"
else
printf "%s\n" "::warning title=UNLICENSED:: This is an UNLICENSED Build"
printf "%s\n" "::warning title=UNLICENSED:: This is an UNLICENSED Build for Cpython ${{ matrix.python-version }} on ${{ matrix.os }}"
fi
cd .. ;
# this next part is WIP and needs to be updated with filtering for more control of what parts of the referance lib is used
Expand All @@ -166,25 +166,27 @@ jobs:
shell: bash
if: ${{ !cancelled() }}
run: |
printf "::group:: Copy Referance Implementation Tests"
printf "::group::%s\n" "Copy Referance Implementation Tests" ;
for referance_file in ${{ steps.reftestfiles.outputs.files }} ; do
cp -vf cpython/"${referance_file}" rustpython/"${referance_file}" || printf "::warning file='%s',title='integration failure':: Could not integrate file.\n" "${referance_file}" ;
# TODO: attempt test with rustpython/scripts/fix_test.py || revert by re-checkout
cp -vf cpython/"${referance_file}" rustpython/"${referance_file}" || printf "::warning file='%s',title='integration failure':: Could not integrate file for Cpython %s on %s.\n" "${referance_file}" '${{ matrix.python-version }}' '${{ matrix.os }}' ;
done
printf "\n::endgroup::\n\n" ;
- id: output_python
name: "bootstrap Python"
if: ${{ !cancelled() }}
shell: bash
run: |
printf "%s\n" "::group::bootstrap-python-env"
printf "python-version=%s\n" "${{ matrix.python-version }}" >> "$GITHUB_OUTPUT"
printf "Configured Cpython %s on %s.\n" '${{ matrix.python-version }}' '${{ matrix.os }}' ;
printf "PYTHON_VERSION=%s\n" "${{ matrix.python-version }}" >> "$GITHUB_ENV"
printf "%s\n" "::endgroup::"
- name: Try Smoke Testing
id: smoke_testing
shell: bash
env:
OS: ${{ runner.os }}
CONTEXT_PHRASE: 'for Cpython ${{ matrix.python-version }} on ${{ matrix.os }}'
if: ${{ success() }}
run: |
# Custom timeout function (GH-5974 - because ulimit is restricted and windows can't ulimit at all)
Expand All @@ -202,12 +204,12 @@ jobs:
printf "::debug::%s\n" "Command completed successfully."
true ; # force success result
elif [ $status -eq 143 ]; then
printf "%s\n" "The command was terminated due to timeout."
printf "::warning title='Timeout'::%s\n" "The command \`$@\` ${CONTEXT_PHRASE} was terminated due to timeout."
false ;
else
printf "%s\n" "The command failed with status $status."
printf "%s\n" "The command failed with status $status ${CONTEXT_PHRASE}."
false ;
fi
fi ;
}

export -f run_with_timeout ;
Expand All @@ -230,12 +232,12 @@ jobs:
export RUSTPYTHONPATH=Lib ;
run_with_timeout ${SUBSHELL_TIMEOUT} cargo run --release -- Lib/test/"${REF_FILE_NAME}" || RAW_COPY_OUTCOME='failing'
if [[ ( -n ${RAW_COPY_OUTCOME} ) ]] ; then
printf "::warning file='%s',title='test-warning':: Could not copy and pass tests for file.\n" "${referance_file}" ;
printf "::warning file='%s',title='test-warning':: Could not copy file %s unmodified, and pass tests %s.\n" "${referance_file}" "${referance_file}" "${CONTEXT_PHRASE}" ;
(
run_with_timeout ${SUBSHELL_TIMEOUT} cargo run --release -- ./scripts/fix_test.py --path ./Lib/test/"${REF_FILE_NAME}" || FIX_COPY_OUTCOME='unfixed' ;
) ;
if [[ ( -n ${FIX_COPY_OUTCOME} ) ]] ; then
printf "::error file='%s',title='testing-failure':: Could not copy and auto-fix tests for file.\n" "${referance_file}" >>2 ;
printf "::error file='%s',title='testing-failure':: Could not copy and auto-fix tests %s.\n" "${referance_file}" "${CONTEXT_PHRASE}" >&2 ;
# reset broken integration to last rustpython copy
git restore --ignore-unmerged --worktree --staged "${referance_file}" || : ;
git checkout -f --ignore-unmerged -- "${referance_file}" || : ;
Expand Down Expand Up @@ -268,7 +270,7 @@ jobs:
if grep -qE "^[^cC]*([cC]lass)\s*(.+)(Test)" "${referance_file}" 2>/dev/null ; then
printf "Now Testing test-cases in '%s'\n" "${referance_file}"
# vars for subshell but not for workflow
export REF_TEST_NAME=$(basename -s "py" "${referance_file}") ;
export REF_TEST_NAME=$(basename -s ".py" "${referance_file}") ;
printf "%s\n" "Selected testcase test.${REF_TEST_NAME}"
printf "::group::%s\n" "${REF_FILE_NAME}" ;
# TODO: test with cpython first for baseline
Expand All @@ -278,12 +280,12 @@ jobs:
export RUSTPYTHONPATH=Lib ;
run_with_timeout ${SUBSHELL_TIMEOUT} cargo run --release -- -m unittest -v test.${REF_TEST_NAME} || RAW_COPY_OUTCOME='failing'
if [[ ( -n ${RAW_COPY_OUTCOME} ) ]] ; then
printf "::warning file='%s',title='test-warning':: Could not copy and pass tests for file.\n" "${referance_file}" ;
printf "::warning file='%s',title='test-warning':: Could not copy file %s unmodified, and pass tests %s.\n" "${referance_file}" "${referance_file}" "${CONTEXT_PHRASE}" ;
(
run_with_timeout ${SUBSHELL_TIMEOUT} cargo run --release -- ./scripts/fix_test.py --test test.${REF_TEST_NAME} --path ./Lib/test/"${REF_FILE_NAME}".py || FIX_COPY_OUTCOME='unfixed' ;
run_with_timeout ${SUBSHELL_TIMEOUT} cargo run --release -- ./scripts/fix_test.py --path ./Lib/test/"${REF_FILE_NAME}".py || FIX_COPY_OUTCOME='unfixed' ;
) ;
if [[ ( -n ${FIX_COPY_OUTCOME} ) ]] ; then
printf "::error file='%s',title='testing-failure':: Could not copy and auto-fix tests for file.\n" "${referance_file}" >>2 ;
printf "::error file='%s',title='testing-failure':: Could not copy and auto-fix tests for file.\n" "${referance_file}" >&2 ;
# reset broken integration to last rustpython copy
git restore --ignore-unmerged --worktree --staged "${referance_file}" || : ;
git checkout -f --ignore-unmerged -- "${referance_file}" || : ;
Expand All @@ -298,7 +300,7 @@ jobs:
RAW_COPY_OUTCOME="compatable"
fi ;
printf "\n---\n%s Outcome:\n\tDirectly:%s\n\tAuto-Fix:%s\n\n" "${REF_TEST_NAME}" "${RAW_COPY_OUTCOME}" "${FIX_COPY_OUTCOME}" ;
wait ; # used to force boundry for std out read/write race in UI
wait ; # used to force boundry for std out read/write race in UI
printf "FIX_COPY_%s.py_OUTCOME=%s\n" "${REF_TEST_NAME}" "${FIX_COPY_OUTCOME}" >> "$GITHUB_ENV" ;
printf "RAW_COPY_%s.py_OUTCOME=%s\n" "${REF_TEST_NAME}" "${RAW_COPY_OUTCOME}" >> "$GITHUB_ENV" ;
# should dump a diff or something here
Expand All @@ -313,6 +315,7 @@ jobs:
wait ;
else
printf "\nNow Skipping '%s'\n\n" "${referance_file}" ;
# TODO: record this skip status too
fi ;
fi ; # TODO: else can not be run directly and needs to be invoked with -m unittest -v test.
fi ;
Expand All @@ -321,6 +324,6 @@ jobs:
- name: Post-Clean
id: post-bootstrap
run: |
exit 0 ; # don't break on regression
exit 0 ; # don't break CI on regression
if: ${{ always() }}
shell: bash