From c01b94a2ea7313b2d8c10e0c405828da959296d5 Mon Sep 17 00:00:00 2001 From: CyrilFerlicot Date: Thu, 1 Oct 2026 17:26:56 +0200 Subject: [PATCH 1/4] Test FAST-Python in the CI MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit FAST-Python uses a lot of generic mechanisms of FAST. I think it's worth launching its tests when updating FAST to ensure we have no unforeseen regressions --- .github/workflows/fast-python-baseline.st | 7 +++++ .github/workflows/fast-python-config.ston | 13 +++++++++ .github/workflows/fast-python.yml | 33 +++++++++++++++++++++++ README.md | 2 +- 4 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/fast-python-baseline.st create mode 100644 .github/workflows/fast-python-config.ston create mode 100644 .github/workflows/fast-python.yml diff --git a/.github/workflows/fast-python-baseline.st b/.github/workflows/fast-python-baseline.st new file mode 100644 index 0000000..ef688e2 --- /dev/null +++ b/.github/workflows/fast-python-baseline.st @@ -0,0 +1,7 @@ +"FAST-Python declares its FAST dependency with the repository github://moosetechnology/FAST:v3/src. Since the spec above already loaded baseline 'FAST' from this checkout, Metacello reuses that local registration: the Python tests run against the branch under test and not against the released FAST." + +Metacello new + baseline: 'FASTPython'; + repository: 'github://moosetechnology/FAST-Python:main/src'; + loads: #( 'default' 'Tests' ); + load \ No newline at end of file diff --git a/.github/workflows/fast-python-config.ston b/.github/workflows/fast-python-config.ston new file mode 100644 index 0000000..d92af59 --- /dev/null +++ b/.github/workflows/fast-python-config.ston @@ -0,0 +1,13 @@ +SmalltalkCISpec { + #loading : [ + SCIMetacelloLoadSpec { + #baseline : 'FAST', + #directory : '../../src', + #load : [ 'core', 'tools' ], + } + ], + #postLoading : 'fast-python-baseline.st', + #testing : { + #categories : [ 'FAST-Python-Tools-Tests' ] + } +} \ No newline at end of file diff --git a/.github/workflows/fast-python.yml b/.github/workflows/fast-python.yml new file mode 100644 index 0000000..252e327 --- /dev/null +++ b/.github/workflows/fast-python.yml @@ -0,0 +1,33 @@ +# FAST-Python is a heavy consumer of FAST: its test suite exercises a large part +# of the FAST utilities -- the CFG builder (FASTTCFGUtility), the local resolver, +# the SSA transform (FASTCFGTVisitor) and the visitors -- through a real language +# front-end. Running its tests here catches FAST regressions that FAST's own unit +# tests do not cover. +# +# This mirrors what moosetechnology/Famix does for its FamixCpp and Fortran +# baselines: load the project under test from the checkout, then load the +# dependent baseline from GitHub and run only its tests. +name: CI FAST-Python + +on: [push, pull_request, workflow_dispatch] + +env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + +jobs: + build: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + smalltalk: [ Moose64-13 ] + name: FAST-Python - ${{ matrix.smalltalk }} + steps: + - uses: actions/checkout@v6 + - uses: hpi-swa/setup-smalltalkCI@v1 + id: smalltalkci + with: + smalltalk-image: ${{ matrix.smalltalk }} + - run: smalltalkci -s ${{ steps.smalltalkci.outputs.smalltalk-image }} .github/workflows/fast-python-config.ston + shell: bash + timeout-minutes: 45 \ No newline at end of file diff --git a/README.md b/README.md index 232f91c..b3cb7b7 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # FAST -[![Moose 11 and 12 CI](https://github.com/moosetechnology/FAST/actions/workflows/tests.yml/badge.svg)](https://github.com/moosetechnology/FAST/actions/workflows/testAndBuild-moose10.yml) +[![FAST CI](https://github.com/moosetechnology/FAST/actions/workflows/tests.yml/badge.svg)](https://github.com/moosetechnology/FAST/actions/workflows/tests.yml) [![FAST-Python CI](https://github.com/moosetechnology/FAST/actions/workflows/fast-python.yml/badge.svg)](https://github.com/moosetechnology/FAST/actions/workflows/fast-python.yml) Supported Moose Versions: [![Moose version](https://img.shields.io/badge/Moose-11-%23aac9ff.svg)](https://github.com/moosetechnology/Moose) [![Moose version](https://img.shields.io/badge/Moose-12-%23aac9ff.svg)](https://github.com/moosetechnology/Moose) From 70861efbed6f7499134a70be467b6afa882c7ed0 Mon Sep 17 00:00:00 2001 From: CyrilFerlicot Date: Thu, 1 Oct 2026 17:30:57 +0200 Subject: [PATCH 2/4] Fix typo --- .github/workflows/fast-python-config.ston | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/fast-python-config.ston b/.github/workflows/fast-python-config.ston index d92af59..63190e4 100644 --- a/.github/workflows/fast-python-config.ston +++ b/.github/workflows/fast-python-config.ston @@ -3,7 +3,7 @@ SmalltalkCISpec { SCIMetacelloLoadSpec { #baseline : 'FAST', #directory : '../../src', - #load : [ 'core', 'tools' ], + #load : [ 'core', 'tools' ] } ], #postLoading : 'fast-python-baseline.st', From 6d76596d015d2c64d66979dfc412b027f2552882 Mon Sep 17 00:00:00 2001 From: CyrilFerlicot Date: Thu, 1 Oct 2026 17:36:30 +0200 Subject: [PATCH 3/4] Fix typo --- .github/workflows/fast-python-baseline.st | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/fast-python-baseline.st b/.github/workflows/fast-python-baseline.st index ef688e2..3778311 100644 --- a/.github/workflows/fast-python-baseline.st +++ b/.github/workflows/fast-python-baseline.st @@ -3,5 +3,4 @@ Metacello new baseline: 'FASTPython'; repository: 'github://moosetechnology/FAST-Python:main/src'; - loads: #( 'default' 'Tests' ); - load \ No newline at end of file + load: #( 'default' 'Tests' ) \ No newline at end of file From d2192afbaaac26b8097829e7caf9b09bb0d1f5a8 Mon Sep 17 00:00:00 2001 From: CyrilFerlicot Date: Thu, 1 Oct 2026 17:39:47 +0200 Subject: [PATCH 4/4] Solve conflict --- .github/workflows/fast-python-baseline.st | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/fast-python-baseline.st b/.github/workflows/fast-python-baseline.st index 3778311..1fcdd40 100644 --- a/.github/workflows/fast-python-baseline.st +++ b/.github/workflows/fast-python-baseline.st @@ -3,4 +3,5 @@ Metacello new baseline: 'FASTPython'; repository: 'github://moosetechnology/FAST-Python:main/src'; + onConflictUseLoaded; load: #( 'default' 'Tests' ) \ No newline at end of file