From b0cb67163c29966131438cd4ba66c2a70f854951 Mon Sep 17 00:00:00 2001 From: Michael Griffith Date: Tue, 17 Feb 2026 14:01:09 -0500 Subject: [PATCH 01/27] testing airspeedvelocity --- .forgejo/workflows/asv.yml | 101 +++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 .forgejo/workflows/asv.yml diff --git a/.forgejo/workflows/asv.yml b/.forgejo/workflows/asv.yml new file mode 100644 index 000000000..76e358bb0 --- /dev/null +++ b/.forgejo/workflows/asv.yml @@ -0,0 +1,101 @@ +name: asv + +on: + pull_request: + push: + branches: + - master + - mngrif-asv-test + +jobs: + asv-pr: + if: github.event_name == 'pull_request' + runs-on: docker + container: python:3.13 + steps: + - name: Checkout full history + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Install dependencies + run: | + python -m pip install -U pip + python -m pip install asv virtualenv + python -m pip install -e ".[tests]" + + - name: ASV machine info + run: asv machine --yes --config=asv.conf.json + + - name: Compute base commit + run: | + git fetch origin "${{ github.base_ref }}" --depth=200 + BASE_SHA=$(git merge-base HEAD "origin/${{ github.base_ref }}") + echo "ASV_BASE_SHA=${BASE_SHA}" >> $GITHUB_ENV + + - name: Run ASV continuous (gate on regressions) + run: | + # Factor 1.10 means 10% regression threshold + asv continuous --config=asv.conf.json --factor 1.10 "$ASV_BASE_SHA" HEAD + + - name: Upload ASV artifacts (optional) + if: always() + uses: actions/upload-artifact@v4 + with: + name: asv-results-pr + path: build/asv + + asv-publish: + if: github.event_name == 'push' && github.ref == 'refs/heads/master' + runs-on: docker + container: python:3.13 + steps: + - name: Checkout full history + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Install dependencies + run: | + python -m pip install -U pip + python -m pip install asv virtualenv + python -m pip install -e ".[tests]" + + - name: Restore prior ASV results (S3) + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} + ASV_S3_BUCKET: ${{ secrets.ASV_S3_BUCKET }} + run: | + python -m pip install awscli + mkdir -p build/asv/results + aws s3 sync "s3://${ASV_S3_BUCKET}/asv/results" buil d/asv/results --delete || true + + - name: ASV machine info + run: asv machine --yes --config=asv.conf.json + + - name: Run ASV and publish HTML + run: | + asv run --config=asv.conf.json --show-stderr --verbose + asv publish --config=asv.conf.json + + - name: Upload updated results (S3) + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} + ASV_S3_BUCKET: ${{ secrets.ASV_S3_BUCKET }} + run: | + python -m pip install awscli + aws s3 sync build/asv/results "s3://${ASV_S3_BUCKET}/asv/results" --delete + + - name: Upload HTML (S3 website) + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} + ASV_S3_BUCKET: ${{ secrets.ASV_S3_BUCKET }} + run: | + python -m pip install awscli + aws s3 sync build/asv/html "s3://${ASV_S3_BUCKET}/asv/html" --delete -- 2.52.0 From 4b4df78ff94304c95137848513b640e53e1be65d Mon Sep 17 00:00:00 2001 From: Michael Griffith Date: Tue, 17 Feb 2026 14:10:16 -0500 Subject: [PATCH 02/27] testing airspeedvelocity --- .forgejo/workflows/asv.yml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.forgejo/workflows/asv.yml b/.forgejo/workflows/asv.yml index 76e358bb0..8cef71771 100644 --- a/.forgejo/workflows/asv.yml +++ b/.forgejo/workflows/asv.yml @@ -2,14 +2,15 @@ name: asv on: pull_request: + branches: + - mngrif-asv-test push: branches: - master - - mngrif-asv-test jobs: asv-pr: - if: github.event_name == 'pull_request' + if: forgejo.event_name == 'pull_request' runs-on: docker container: python:3.13 steps: @@ -29,8 +30,8 @@ jobs: - name: Compute base commit run: | - git fetch origin "${{ github.base_ref }}" --depth=200 - BASE_SHA=$(git merge-base HEAD "origin/${{ github.base_ref }}") + git fetch origin "${{ forgejo.base_ref }}" --depth=200 + BASE_SHA=$(git merge-base HEAD "origin/${{ forgejo.base_ref }}") echo "ASV_BASE_SHA=${BASE_SHA}" >> $GITHUB_ENV - name: Run ASV continuous (gate on regressions) @@ -46,7 +47,7 @@ jobs: path: build/asv asv-publish: - if: github.event_name == 'push' && github.ref == 'refs/heads/master' + if: forgejo.event_name == 'push' && forgejo.ref == 'refs/heads/master' runs-on: docker container: python:3.13 steps: -- 2.52.0 From 8e2cd0f2e817bad52003f8fd8479bb0ad93ded85 Mon Sep 17 00:00:00 2001 From: Michael Griffith Date: Tue, 17 Feb 2026 14:12:52 -0500 Subject: [PATCH 03/27] testing airspeedvelocity --- .forgejo/workflows/asv.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.forgejo/workflows/asv.yml b/.forgejo/workflows/asv.yml index 8cef71771..20347fcd8 100644 --- a/.forgejo/workflows/asv.yml +++ b/.forgejo/workflows/asv.yml @@ -2,11 +2,10 @@ name: asv on: pull_request: - branches: - - mngrif-asv-test push: branches: - - master + # - master + - mngrif-asv-test jobs: asv-pr: -- 2.52.0 From f07afb23c7746567b8f8d3d2e6fab056875cda34 Mon Sep 17 00:00:00 2001 From: Michael Griffith Date: Tue, 17 Feb 2026 14:15:04 -0500 Subject: [PATCH 04/27] testing airspeedvelocity --- .forgejo/workflows/asv.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/asv.yml b/.forgejo/workflows/asv.yml index 20347fcd8..5c3ce0e6f 100644 --- a/.forgejo/workflows/asv.yml +++ b/.forgejo/workflows/asv.yml @@ -46,7 +46,7 @@ jobs: path: build/asv asv-publish: - if: forgejo.event_name == 'push' && forgejo.ref == 'refs/heads/master' + if: forgejo.event_name == 'push' runs-on: docker container: python:3.13 steps: -- 2.52.0 From 1f0db6e43a28340ac8be94b573d3ce8e24a0c86f Mon Sep 17 00:00:00 2001 From: Michael Griffith Date: Tue, 17 Feb 2026 14:36:07 -0500 Subject: [PATCH 05/27] testing airspeedvelocity --- .forgejo/workflows/asv.yml | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/.forgejo/workflows/asv.yml b/.forgejo/workflows/asv.yml index 5c3ce0e6f..1c9523c04 100644 --- a/.forgejo/workflows/asv.yml +++ b/.forgejo/workflows/asv.yml @@ -1,5 +1,9 @@ name: asv +env: + UV_VERSION: "0.8.0" + NOX_DEFAULT_VENV_BACKEND: "uv" + on: pull_request: push: @@ -11,8 +15,12 @@ jobs: asv-pr: if: forgejo.event_name == 'pull_request' runs-on: docker - container: python:3.13 + container: python:3.13-slim steps: + - name: Install Node.js (required by actions/checkout) + run: | + apt-get update && apt-get install -y -qq nodejs && rm -rf /var/lib/apt/lists/* + - name: Checkout full history uses: actions/checkout@v4 with: @@ -21,7 +29,7 @@ jobs: - name: Install dependencies run: | python -m pip install -U pip - python -m pip install asv virtualenv + python -m pip install asv virtualenv uv==${{ env.UV_VERSION }} nox python -m pip install -e ".[tests]" - name: ASV machine info @@ -48,8 +56,12 @@ jobs: asv-publish: if: forgejo.event_name == 'push' runs-on: docker - container: python:3.13 + container: python:3.13-slim steps: + - name: Install Node.js (required by actions/checkout) + run: | + apt-get update && apt-get install -y -qq nodejs && rm -rf /var/lib/apt/lists/* + - name: Checkout full history uses: actions/checkout@v4 with: @@ -58,7 +70,7 @@ jobs: - name: Install dependencies run: | python -m pip install -U pip - python -m pip install asv virtualenv + python -m pip install asv virtualenv uv==${{ env.UV_VERSION }} nox python -m pip install -e ".[tests]" - name: Restore prior ASV results (S3) @@ -70,7 +82,7 @@ jobs: run: | python -m pip install awscli mkdir -p build/asv/results - aws s3 sync "s3://${ASV_S3_BUCKET}/asv/results" buil d/asv/results --delete || true + aws s3 sync "s3://${ASV_S3_BUCKET}/asv/results" build/asv/results --delete || true - name: ASV machine info run: asv machine --yes --config=asv.conf.json -- 2.52.0 From 033bfd04a7cedc79e4849d1e1c0d87c3dd7ff43b Mon Sep 17 00:00:00 2001 From: Michael Griffith Date: Tue, 17 Feb 2026 15:30:07 -0500 Subject: [PATCH 06/27] testing airspeedvelocity --- .forgejo/workflows/asv.yml | 36 ++++++++++++------------------------ noxfile.py | 9 +++++++++ 2 files changed, 21 insertions(+), 24 deletions(-) diff --git a/.forgejo/workflows/asv.yml b/.forgejo/workflows/asv.yml index 1c9523c04..b410e18fd 100644 --- a/.forgejo/workflows/asv.yml +++ b/.forgejo/workflows/asv.yml @@ -32,26 +32,18 @@ jobs: python -m pip install asv virtualenv uv==${{ env.UV_VERSION }} nox python -m pip install -e ".[tests]" - - name: ASV machine info - run: asv machine --yes --config=asv.conf.json - - - name: Compute base commit + - name: Run ASV continuous via nox + env: + - ASV_FACTOR: "1.10" run: | - git fetch origin "${{ forgejo.base_ref }}" --depth=200 - BASE_SHA=$(git merge-base HEAD "origin/${{ forgejo.base_ref }}") - echo "ASV_BASE_SHA=${BASE_SHA}" >> $GITHUB_ENV + nox -s benchmark_regression - - name: Run ASV continuous (gate on regressions) - run: | - # Factor 1.10 means 10% regression threshold - asv continuous --config=asv.conf.json --factor 1.10 "$ASV_BASE_SHA" HEAD - - - name: Upload ASV artifacts (optional) - if: always() - uses: actions/upload-artifact@v4 - with: - name: asv-results-pr - path: build/asv + # - name: Upload ASV artifacts (optional) + # if: always() + # uses: actions/upload-artifact@v4 + # with: + # name: asv-results-pr + # path: build/asv asv-publish: if: forgejo.event_name == 'push' @@ -84,13 +76,9 @@ jobs: mkdir -p build/asv/results aws s3 sync "s3://${ASV_S3_BUCKET}/asv/results" build/asv/results --delete || true - - name: ASV machine info - run: asv machine --yes --config=asv.conf.json - - - name: Run ASV and publish HTML + - name: ASV via nox run: | - asv run --config=asv.conf.json --show-stderr --verbose - asv publish --config=asv.conf.json + nox -s benchmark - name: Upload updated results (S3) env: diff --git a/noxfile.py b/noxfile.py index 6ade00d46..4cf3a4704 100644 --- a/noxfile.py +++ b/noxfile.py @@ -599,6 +599,15 @@ def benchmark(session: nox.Session): session.run("asv", "run", "--show-stderr", "--verbose", f"--config={config_path}") session.run("asv", "publish", f"--config={config_path}") +@nox.session(python=DEFAULT_PYTHON, reuse_venv=True, venv_backend="uv") +def benchmark_regresssion(session: nox.Session): + """Run Airspeed Velocity benchmarks regression test.""" + session.install("-e", ".[tests]") + config_path = "asv.conf.json" + asv_factor = os.environ.get(ASV_FACTOR) + asv_base_sha = os.environ.get(ASV_BASE_SHA) + session.run("asv", "machine", "--yes", f"--config={config_path}") + session.run("asv", "continuous", "--show-stderr", "--verbose", f"--factor={asv_factor}", f"--config={config_path}", asv_base_sha, "HEAD") # Sessions to run by default when running `nox` without arguments nox.options.sessions = [ -- 2.52.0 From fb055193c5fde73c4d83063c6022a9a5146fe90d Mon Sep 17 00:00:00 2001 From: Michael Griffith Date: Tue, 17 Feb 2026 15:43:46 -0500 Subject: [PATCH 07/27] testing airspeedvelocity --- .forgejo/workflows/asv.yml | 23 +++++++++++++++++------ noxfile.py | 2 +- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/.forgejo/workflows/asv.yml b/.forgejo/workflows/asv.yml index b410e18fd..837e7b9e6 100644 --- a/.forgejo/workflows/asv.yml +++ b/.forgejo/workflows/asv.yml @@ -32,18 +32,29 @@ jobs: python -m pip install asv virtualenv uv==${{ env.UV_VERSION }} nox python -m pip install -e ".[tests]" + - name: Restore prior ASV results (S3) + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} + ASV_S3_BUCKET: ${{ secrets.ASV_S3_BUCKET }} + run: | + python -m pip install awscli + mkdir -p build/asv/results + aws s3 sync "s3://${ASV_S3_BUCKET}/asv/results" build/asv/results --delete || true + - name: Run ASV continuous via nox env: - ASV_FACTOR: "1.10" run: | nox -s benchmark_regression - # - name: Upload ASV artifacts (optional) - # if: always() - # uses: actions/upload-artifact@v4 - # with: - # name: asv-results-pr - # path: build/asv + - name: Upload ASV artifacts (optional) + if: always() + uses: actions/upload-artifact@v4 + with: + name: asv-results-pr + path: build/asv asv-publish: if: forgejo.event_name == 'push' diff --git a/noxfile.py b/noxfile.py index 4cf3a4704..90def144e 100644 --- a/noxfile.py +++ b/noxfile.py @@ -607,7 +607,7 @@ def benchmark_regresssion(session: nox.Session): asv_factor = os.environ.get(ASV_FACTOR) asv_base_sha = os.environ.get(ASV_BASE_SHA) session.run("asv", "machine", "--yes", f"--config={config_path}") - session.run("asv", "continuous", "--show-stderr", "--verbose", f"--factor={asv_factor}", f"--config={config_path}", asv_base_sha, "HEAD") + session.run("asv", "continuous", "--append-samples", "--show-stderr", "--verbose", f"--factor={asv_factor}", f"--config={config_path}", asv_base_sha, "HEAD") # Sessions to run by default when running `nox` without arguments nox.options.sessions = [ -- 2.52.0 From 642f757d02f897e9102637474b45ba5e3517d56f Mon Sep 17 00:00:00 2001 From: Michael Griffith Date: Tue, 17 Feb 2026 15:59:21 -0500 Subject: [PATCH 08/27] testing airspeedvelocity --- .forgejo/workflows/asv.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/asv.yml b/.forgejo/workflows/asv.yml index 837e7b9e6..48b48f7bd 100644 --- a/.forgejo/workflows/asv.yml +++ b/.forgejo/workflows/asv.yml @@ -45,7 +45,7 @@ jobs: - name: Run ASV continuous via nox env: - - ASV_FACTOR: "1.10" + ASV_FACTOR: "1.10" run: | nox -s benchmark_regression -- 2.52.0 From 2f7472650929f2dc77c76a2745684ee16f72f25d Mon Sep 17 00:00:00 2001 From: Michael Griffith Date: Wed, 18 Feb 2026 09:57:50 -0500 Subject: [PATCH 09/27] testing airspeedvelocity --- .forgejo/workflows/asv.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.forgejo/workflows/asv.yml b/.forgejo/workflows/asv.yml index 48b48f7bd..e26643208 100644 --- a/.forgejo/workflows/asv.yml +++ b/.forgejo/workflows/asv.yml @@ -47,7 +47,7 @@ jobs: env: ASV_FACTOR: "1.10" run: | - nox -s benchmark_regression + nox -e benchmark_regression - name: Upload ASV artifacts (optional) if: always() @@ -89,7 +89,7 @@ jobs: - name: ASV via nox run: | - nox -s benchmark + nox -e benchmark - name: Upload updated results (S3) env: -- 2.52.0 From 1c8a3f4a1ebf1801e1ce0e7d7cfe37eeb9c80ba7 Mon Sep 17 00:00:00 2001 From: Michael Griffith Date: Wed, 18 Feb 2026 10:02:40 -0500 Subject: [PATCH 10/27] testing airspeedvelocity --- asv.conf.json | 1 + 1 file changed, 1 insertion(+) diff --git a/asv.conf.json b/asv.conf.json index 25c8145ae..cf6f46f70 100644 --- a/asv.conf.json +++ b/asv.conf.json @@ -10,5 +10,6 @@ "benchmark_dir": "benchmarks", "env_dir": "build/asv/env", "results_dir": "build/asv/results", + "dvcs": "git", "html_dir": "build/asv/html" } -- 2.52.0 From 86604db0d16b636fa0fbc0af73a0c3af4733aea0 Mon Sep 17 00:00:00 2001 From: Michael Griffith Date: Wed, 18 Feb 2026 10:04:27 -0500 Subject: [PATCH 11/27] testing airspeedvelocity --- .forgejo/workflows/asv.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.forgejo/workflows/asv.yml b/.forgejo/workflows/asv.yml index e26643208..4e6cd8ad7 100644 --- a/.forgejo/workflows/asv.yml +++ b/.forgejo/workflows/asv.yml @@ -19,7 +19,7 @@ jobs: steps: - name: Install Node.js (required by actions/checkout) run: | - apt-get update && apt-get install -y -qq nodejs && rm -rf /var/lib/apt/lists/* + apt-get update && apt-get install -y -qq nodejs git && rm -rf /var/lib/apt/lists/* - name: Checkout full history uses: actions/checkout@v4 @@ -63,7 +63,7 @@ jobs: steps: - name: Install Node.js (required by actions/checkout) run: | - apt-get update && apt-get install -y -qq nodejs && rm -rf /var/lib/apt/lists/* + apt-get update && apt-get install -y -qq nodejs git && rm -rf /var/lib/apt/lists/* - name: Checkout full history uses: actions/checkout@v4 -- 2.52.0 From 41e02ca01c4e4d3e12acdb78156a31dad9186d8e Mon Sep 17 00:00:00 2001 From: Michael Griffith Date: Wed, 18 Feb 2026 12:51:02 -0500 Subject: [PATCH 12/27] testing airspeedvelocity --- .forgejo/workflows/asv.yml | 6 ++---- asv.conf.json | 1 - 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/.forgejo/workflows/asv.yml b/.forgejo/workflows/asv.yml index 4e6cd8ad7..fb511d894 100644 --- a/.forgejo/workflows/asv.yml +++ b/.forgejo/workflows/asv.yml @@ -30,7 +30,6 @@ jobs: run: | python -m pip install -U pip python -m pip install asv virtualenv uv==${{ env.UV_VERSION }} nox - python -m pip install -e ".[tests]" - name: Restore prior ASV results (S3) env: @@ -47,7 +46,7 @@ jobs: env: ASV_FACTOR: "1.10" run: | - nox -e benchmark_regression + nox -s benchmark_regression - name: Upload ASV artifacts (optional) if: always() @@ -74,7 +73,6 @@ jobs: run: | python -m pip install -U pip python -m pip install asv virtualenv uv==${{ env.UV_VERSION }} nox - python -m pip install -e ".[tests]" - name: Restore prior ASV results (S3) env: @@ -89,7 +87,7 @@ jobs: - name: ASV via nox run: | - nox -e benchmark + nox -s benchmark - name: Upload updated results (S3) env: diff --git a/asv.conf.json b/asv.conf.json index cf6f46f70..25c8145ae 100644 --- a/asv.conf.json +++ b/asv.conf.json @@ -10,6 +10,5 @@ "benchmark_dir": "benchmarks", "env_dir": "build/asv/env", "results_dir": "build/asv/results", - "dvcs": "git", "html_dir": "build/asv/html" } -- 2.52.0 From 8f6b2a29b8d69203cd825804c67a6e6e8b63556f Mon Sep 17 00:00:00 2001 From: Michael Griffith Date: Wed, 18 Feb 2026 13:00:15 -0500 Subject: [PATCH 13/27] testing airspeedvelocity --- noxfile.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/noxfile.py b/noxfile.py index 90def144e..f744d1138 100644 --- a/noxfile.py +++ b/noxfile.py @@ -596,7 +596,7 @@ def benchmark(session: nox.Session): session.install("-e", ".[tests]") config_path = "asv.conf.json" session.run("asv", "machine", "--yes", f"--config={config_path}") - session.run("asv", "run", "--show-stderr", "--verbose", f"--config={config_path}") + session.run("asv", "run", "--show-stderr", "--verbose", f"--config={config_path}", success_codes=[0, 2]) session.run("asv", "publish", f"--config={config_path}") @nox.session(python=DEFAULT_PYTHON, reuse_venv=True, venv_backend="uv") @@ -607,7 +607,7 @@ def benchmark_regresssion(session: nox.Session): asv_factor = os.environ.get(ASV_FACTOR) asv_base_sha = os.environ.get(ASV_BASE_SHA) session.run("asv", "machine", "--yes", f"--config={config_path}") - session.run("asv", "continuous", "--append-samples", "--show-stderr", "--verbose", f"--factor={asv_factor}", f"--config={config_path}", asv_base_sha, "HEAD") + session.run("asv", "continuous", "--append-samples", "--show-stderr", "--verbose", f"--factor={asv_factor}", f"--config={config_path}", asv_base_sha, "HEAD", success_codes=[0, 2]) # Sessions to run by default when running `nox` without arguments nox.options.sessions = [ -- 2.52.0 From 8ea70953e9fecfe04af58988b14dccbce476e0ea Mon Sep 17 00:00:00 2001 From: Michael Griffith Date: Wed, 18 Feb 2026 15:02:15 -0500 Subject: [PATCH 14/27] testing airspeedvelocity --- .forgejo/workflows/asv.yml | 110 ------------------------------------- .forgejo/workflows/ci.yml | 105 +++++++++++++++++++++++++++++++++++ noxfile.py | 2 +- 3 files changed, 106 insertions(+), 111 deletions(-) delete mode 100644 .forgejo/workflows/asv.yml diff --git a/.forgejo/workflows/asv.yml b/.forgejo/workflows/asv.yml deleted file mode 100644 index fb511d894..000000000 --- a/.forgejo/workflows/asv.yml +++ /dev/null @@ -1,110 +0,0 @@ -name: asv - -env: - UV_VERSION: "0.8.0" - NOX_DEFAULT_VENV_BACKEND: "uv" - -on: - pull_request: - push: - branches: - # - master - - mngrif-asv-test - -jobs: - asv-pr: - if: forgejo.event_name == 'pull_request' - runs-on: docker - container: python:3.13-slim - steps: - - name: Install Node.js (required by actions/checkout) - run: | - apt-get update && apt-get install -y -qq nodejs git && rm -rf /var/lib/apt/lists/* - - - name: Checkout full history - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Install dependencies - run: | - python -m pip install -U pip - python -m pip install asv virtualenv uv==${{ env.UV_VERSION }} nox - - - name: Restore prior ASV results (S3) - env: - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} - ASV_S3_BUCKET: ${{ secrets.ASV_S3_BUCKET }} - run: | - python -m pip install awscli - mkdir -p build/asv/results - aws s3 sync "s3://${ASV_S3_BUCKET}/asv/results" build/asv/results --delete || true - - - name: Run ASV continuous via nox - env: - ASV_FACTOR: "1.10" - run: | - nox -s benchmark_regression - - - name: Upload ASV artifacts (optional) - if: always() - uses: actions/upload-artifact@v4 - with: - name: asv-results-pr - path: build/asv - - asv-publish: - if: forgejo.event_name == 'push' - runs-on: docker - container: python:3.13-slim - steps: - - name: Install Node.js (required by actions/checkout) - run: | - apt-get update && apt-get install -y -qq nodejs git && rm -rf /var/lib/apt/lists/* - - - name: Checkout full history - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Install dependencies - run: | - python -m pip install -U pip - python -m pip install asv virtualenv uv==${{ env.UV_VERSION }} nox - - - name: Restore prior ASV results (S3) - env: - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} - ASV_S3_BUCKET: ${{ secrets.ASV_S3_BUCKET }} - run: | - python -m pip install awscli - mkdir -p build/asv/results - aws s3 sync "s3://${ASV_S3_BUCKET}/asv/results" build/asv/results --delete || true - - - name: ASV via nox - run: | - nox -s benchmark - - - name: Upload updated results (S3) - env: - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} - ASV_S3_BUCKET: ${{ secrets.ASV_S3_BUCKET }} - run: | - python -m pip install awscli - aws s3 sync build/asv/results "s3://${ASV_S3_BUCKET}/asv/results" --delete - - - name: Upload HTML (S3 website) - env: - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} - ASV_S3_BUCKET: ${{ secrets.ASV_S3_BUCKET }} - run: | - python -m pip install awscli - aws s3 sync build/asv/html "s3://${ASV_S3_BUCKET}/asv/html" --delete diff --git a/.forgejo/workflows/ci.yml b/.forgejo/workflows/ci.yml index 1bc071dc8..8d2577ac9 100644 --- a/.forgejo/workflows/ci.yml +++ b/.forgejo/workflows/ci.yml @@ -182,6 +182,111 @@ jobs: build/htmlcov/ retention-days: 30 + benchmark-regression: + if: forgejo.event_name == 'pull_request' + runs-on: docker + container: + image: python:3.13-slim + needs: [lint, typecheck] + steps: + - name: Install system dependencies (nodejs for checkout, git for merge tests) + run: | + apt-get update && apt-get install -y -qq nodejs git && rm -rf /var/lib/apt/lists/* + + - name: Checkout full history + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Compute base commit + run: | + git fetch origin "${{ forgejo.base_ref }}" --depth=200 + BASE_SHA=$(git merge-base HEAD "origin/${{ forgejo.base_ref }}") + echo "ASV_BASE_SHA=${BASE_SHA}" >> $FORGEJO_ENV + + - name: Install dependencies + run: | + python -m pip install -U pip + python -m pip install asv virtualenv uv==${{ env.UV_VERSION }} nox + + - name: Restore prior ASV benchmarks + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} + ASV_S3_BUCKET: ${{ secrets.ASV_S3_BUCKET }} + run: | + python -m pip install awscli + mkdir -p build/asv/results + aws s3 sync "s3://${ASV_S3_BUCKET}/asv/results" build/asv/results --delete || true + + - name: Run asv continuous via nox + env: + ASV_FACTOR: "1.10" + run: | + nox -s benchmark_regression + + - name: Upload benchmark artifacts + if: always() + uses: actions/upload-artifact@v4 + with: + name: asv-results-pr + path: build/asv + rentention-days: 30 + + benchmark-publish: + if: forgejo.event_name == 'push' && ( forgejo.ref == 'refs/heads/master' || forgejo.ref == 'refs/heads/develop' ) + runs-on: docker + container: python:3.13-slim + steps: + - name: Install system dependencies (nodejs for checkout, git for merge tests) + run: | + apt-get update && apt-get install -y -qq nodejs git && rm -rf /var/lib/apt/lists/* + + - name: Checkout full history + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Install dependencies + run: | + python -m pip install -U pip + python -m pip install asv virtualenv uv==${{ env.UV_VERSION }} nox + + - name: Restore prior ASV benchmarks + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} + ASV_S3_BUCKET: ${{ secrets.ASV_S3_BUCKET }} + run: | + python -m pip install awscli + mkdir -p build/asv/results + aws s3 sync "s3://${ASV_S3_BUCKET}/asv/results" build/asv/results --delete || true + + - name: Run asv via nox + run: | + nox -s benchmark + + - name: Upload updated benchmarks and website to S3 + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} + ASV_S3_BUCKET: ${{ secrets.ASV_S3_BUCKET }} + run: | + python -m pip install awscli + aws s3 sync build/asv/results "s3://${ASV_S3_BUCKET}/asv/results" --delete + aws s3 sync build/asv/html "s3://${ASV_S3_BUCKET}/asv/html" --delete + + - name: Upload benchmark artifacts + if: always() + uses: actions/upload-artifact@v4 + with: + name: asv-results + path: build/asv + rentention-days: 0 + build: runs-on: docker container: diff --git a/noxfile.py b/noxfile.py index f744d1138..5431cdf78 100644 --- a/noxfile.py +++ b/noxfile.py @@ -596,7 +596,7 @@ def benchmark(session: nox.Session): session.install("-e", ".[tests]") config_path = "asv.conf.json" session.run("asv", "machine", "--yes", f"--config={config_path}") - session.run("asv", "run", "--show-stderr", "--verbose", f"--config={config_path}", success_codes=[0, 2]) + session.run("asv", "run", "--append-samples", "--show-stderr", "--verbose", f"--config={config_path}", success_codes=[0, 2]) session.run("asv", "publish", f"--config={config_path}") @nox.session(python=DEFAULT_PYTHON, reuse_venv=True, venv_backend="uv") -- 2.52.0 From 7c30e5bb6eb263148fb6a4bd3aa1cd01c174f26f Mon Sep 17 00:00:00 2001 From: Michael Griffith Date: Wed, 18 Feb 2026 15:09:39 -0500 Subject: [PATCH 15/27] testing airspeedvelocity --- .forgejo/workflows/ci.yml | 118 +++++++++++++++++++------------------- 1 file changed, 59 insertions(+), 59 deletions(-) diff --git a/.forgejo/workflows/ci.yml b/.forgejo/workflows/ci.yml index 8d2577ac9..7d26aad82 100644 --- a/.forgejo/workflows/ci.yml +++ b/.forgejo/workflows/ci.yml @@ -190,49 +190,49 @@ jobs: needs: [lint, typecheck] steps: - name: Install system dependencies (nodejs for checkout, git for merge tests) - run: | + run: | apt-get update && apt-get install -y -qq nodejs git && rm -rf /var/lib/apt/lists/* - name: Checkout full history - uses: actions/checkout@v4 - with: - fetch-depth: 0 + uses: actions/checkout@v4 + with: + fetch-depth: 0 - name: Compute base commit - run: | + run: | git fetch origin "${{ forgejo.base_ref }}" --depth=200 BASE_SHA=$(git merge-base HEAD "origin/${{ forgejo.base_ref }}") echo "ASV_BASE_SHA=${BASE_SHA}" >> $FORGEJO_ENV - name: Install dependencies - run: | + run: | python -m pip install -U pip python -m pip install asv virtualenv uv==${{ env.UV_VERSION }} nox - name: Restore prior ASV benchmarks - env: - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} - ASV_S3_BUCKET: ${{ secrets.ASV_S3_BUCKET }} - run: | - python -m pip install awscli - mkdir -p build/asv/results - aws s3 sync "s3://${ASV_S3_BUCKET}/asv/results" build/asv/results --delete || true + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} + ASV_S3_BUCKET: ${{ secrets.ASV_S3_BUCKET }} + run: | + python -m pip install awscli + mkdir -p build/asv/results + aws s3 sync "s3://${ASV_S3_BUCKET}/asv/results" build/asv/results --delete || true - name: Run asv continuous via nox - env: - ASV_FACTOR: "1.10" - run: | - nox -s benchmark_regression + env: + ASV_FACTOR: "1.10" + run: | + nox -s benchmark_regression - name: Upload benchmark artifacts - if: always() - uses: actions/upload-artifact@v4 - with: - name: asv-results-pr - path: build/asv - rentention-days: 30 + if: always() + uses: actions/upload-artifact@v4 + with: + name: asv-results-pr + path: build/asv + rentention-days: 30 benchmark-publish: if: forgejo.event_name == 'push' && ( forgejo.ref == 'refs/heads/master' || forgejo.ref == 'refs/heads/develop' ) @@ -240,52 +240,52 @@ jobs: container: python:3.13-slim steps: - name: Install system dependencies (nodejs for checkout, git for merge tests) - run: | - apt-get update && apt-get install -y -qq nodejs git && rm -rf /var/lib/apt/lists/* + run: | + apt-get update && apt-get install -y -qq nodejs git && rm -rf /var/lib/apt/lists/* - name: Checkout full history - uses: actions/checkout@v4 - with: - fetch-depth: 0 + uses: actions/checkout@v4 + with: + fetch-depth: 0 - name: Install dependencies - run: | - python -m pip install -U pip - python -m pip install asv virtualenv uv==${{ env.UV_VERSION }} nox + run: | + python -m pip install -U pip + python -m pip install asv virtualenv uv==${{ env.UV_VERSION }} nox - name: Restore prior ASV benchmarks - env: - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} - ASV_S3_BUCKET: ${{ secrets.ASV_S3_BUCKET }} - run: | - python -m pip install awscli - mkdir -p build/asv/results - aws s3 sync "s3://${ASV_S3_BUCKET}/asv/results" build/asv/results --delete || true + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} + ASV_S3_BUCKET: ${{ secrets.ASV_S3_BUCKET }} + run: | + python -m pip install awscli + mkdir -p build/asv/results + aws s3 sync "s3://${ASV_S3_BUCKET}/asv/results" build/asv/results --delete || true - name: Run asv via nox - run: | - nox -s benchmark + run: | + nox -s benchmark - name: Upload updated benchmarks and website to S3 - env: - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} - ASV_S3_BUCKET: ${{ secrets.ASV_S3_BUCKET }} - run: | - python -m pip install awscli - aws s3 sync build/asv/results "s3://${ASV_S3_BUCKET}/asv/results" --delete - aws s3 sync build/asv/html "s3://${ASV_S3_BUCKET}/asv/html" --delete + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} + ASV_S3_BUCKET: ${{ secrets.ASV_S3_BUCKET }} + run: | + python -m pip install awscli + aws s3 sync build/asv/results "s3://${ASV_S3_BUCKET}/asv/results" --delete + aws s3 sync build/asv/html "s3://${ASV_S3_BUCKET}/asv/html" --delete - name: Upload benchmark artifacts - if: always() - uses: actions/upload-artifact@v4 - with: - name: asv-results - path: build/asv - rentention-days: 0 + if: always() + uses: actions/upload-artifact@v4 + with: + name: asv-results + path: build/asv + rentention-days: 0 build: runs-on: docker -- 2.52.0 From e9530ffae095ad21a54c399dd1944be3a0ea6f32 Mon Sep 17 00:00:00 2001 From: Michael Griffith Date: Wed, 18 Feb 2026 15:13:22 -0500 Subject: [PATCH 16/27] testing airspeedvelocity --- .forgejo/workflows/ci.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.forgejo/workflows/ci.yml b/.forgejo/workflows/ci.yml index 7d26aad82..390fb6dfe 100644 --- a/.forgejo/workflows/ci.yml +++ b/.forgejo/workflows/ci.yml @@ -191,7 +191,7 @@ jobs: steps: - name: Install system dependencies (nodejs for checkout, git for merge tests) run: | - apt-get update && apt-get install -y -qq nodejs git && rm -rf /var/lib/apt/lists/* + apt-get update && apt-get install -y -qq nodejs git && rm -rf /var/lib/apt/lists/* - name: Checkout full history uses: actions/checkout@v4 @@ -200,14 +200,14 @@ jobs: - name: Compute base commit run: | - git fetch origin "${{ forgejo.base_ref }}" --depth=200 - BASE_SHA=$(git merge-base HEAD "origin/${{ forgejo.base_ref }}") - echo "ASV_BASE_SHA=${BASE_SHA}" >> $FORGEJO_ENV + git fetch origin "${{ forgejo.base_ref }}" --depth=200 + BASE_SHA=$(git merge-base HEAD "origin/${{ forgejo.base_ref }}") + echo "ASV_BASE_SHA=${BASE_SHA}" >> $FORGEJO_ENV - name: Install dependencies run: | - python -m pip install -U pip - python -m pip install asv virtualenv uv==${{ env.UV_VERSION }} nox + python -m pip install -U pip + python -m pip install asv virtualenv uv==${{ env.UV_VERSION }} nox - name: Restore prior ASV benchmarks env: -- 2.52.0 From 05f4007462ef38a1016ffdbf029e350848c622d3 Mon Sep 17 00:00:00 2001 From: Michael Griffith Date: Wed, 18 Feb 2026 15:21:22 -0500 Subject: [PATCH 17/27] testing airspeedvelocity --- .forgejo/workflows/ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.forgejo/workflows/ci.yml b/.forgejo/workflows/ci.yml index 390fb6dfe..94ad41196 100644 --- a/.forgejo/workflows/ci.yml +++ b/.forgejo/workflows/ci.yml @@ -183,7 +183,6 @@ jobs: retention-days: 30 benchmark-regression: - if: forgejo.event_name == 'pull_request' runs-on: docker container: image: python:3.13-slim -- 2.52.0 From 114c798e61bc30e27a5b18c10f4cfdf3ecf5bf2b Mon Sep 17 00:00:00 2001 From: Michael Griffith Date: Wed, 18 Feb 2026 15:22:22 -0500 Subject: [PATCH 18/27] testing airspeedvelocity --- .forgejo/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.forgejo/workflows/ci.yml b/.forgejo/workflows/ci.yml index 94ad41196..390fb6dfe 100644 --- a/.forgejo/workflows/ci.yml +++ b/.forgejo/workflows/ci.yml @@ -183,6 +183,7 @@ jobs: retention-days: 30 benchmark-regression: + if: forgejo.event_name == 'pull_request' runs-on: docker container: image: python:3.13-slim -- 2.52.0 From 341495769de2aa1ac4ddd0398944920d53be916b Mon Sep 17 00:00:00 2001 From: Michael Griffith Date: Wed, 18 Feb 2026 17:24:04 -0500 Subject: [PATCH 19/27] testing airspeedvelocity --- noxfile.py | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/noxfile.py b/noxfile.py index 5431cdf78..7f6cfea4f 100644 --- a/noxfile.py +++ b/noxfile.py @@ -596,9 +596,18 @@ def benchmark(session: nox.Session): session.install("-e", ".[tests]") config_path = "asv.conf.json" session.run("asv", "machine", "--yes", f"--config={config_path}") - session.run("asv", "run", "--append-samples", "--show-stderr", "--verbose", f"--config={config_path}", success_codes=[0, 2]) + session.run( + "asv", + "run", + "--append-samples", + "--show-stderr", + "--verbose", + f"--config={config_path}", + success_codes=[0, 2], + ) session.run("asv", "publish", f"--config={config_path}") + @nox.session(python=DEFAULT_PYTHON, reuse_venv=True, venv_backend="uv") def benchmark_regresssion(session: nox.Session): """Run Airspeed Velocity benchmarks regression test.""" @@ -607,7 +616,19 @@ def benchmark_regresssion(session: nox.Session): asv_factor = os.environ.get(ASV_FACTOR) asv_base_sha = os.environ.get(ASV_BASE_SHA) session.run("asv", "machine", "--yes", f"--config={config_path}") - session.run("asv", "continuous", "--append-samples", "--show-stderr", "--verbose", f"--factor={asv_factor}", f"--config={config_path}", asv_base_sha, "HEAD", success_codes=[0, 2]) + session.run( + "asv", + "continuous", + "--append-samples", + "--show-stderr", + "--verbose", + f"--factor={asv_factor}", + f"--config={config_path}", + asv_base_sha, + "HEAD", + success_codes=[0, 2], + ) + # Sessions to run by default when running `nox` without arguments nox.options.sessions = [ -- 2.52.0 From 745228e7c6ff29ed4295071a5692c4688c83eb16 Mon Sep 17 00:00:00 2001 From: Michael Griffith Date: Wed, 18 Feb 2026 17:30:18 -0500 Subject: [PATCH 20/27] testing airspeedvelocity --- noxfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/noxfile.py b/noxfile.py index 7f6cfea4f..265edfe6a 100644 --- a/noxfile.py +++ b/noxfile.py @@ -609,7 +609,7 @@ def benchmark(session: nox.Session): @nox.session(python=DEFAULT_PYTHON, reuse_venv=True, venv_backend="uv") -def benchmark_regresssion(session: nox.Session): +def benchmark_regression(session: nox.Session): """Run Airspeed Velocity benchmarks regression test.""" session.install("-e", ".[tests]") config_path = "asv.conf.json" -- 2.52.0 From de447d4bd7116656079ff8ece04a06129611eed9 Mon Sep 17 00:00:00 2001 From: Michael Griffith Date: Wed, 18 Feb 2026 17:33:45 -0500 Subject: [PATCH 21/27] testing airspeedvelocity --- .forgejo/workflows/ci.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.forgejo/workflows/ci.yml b/.forgejo/workflows/ci.yml index 390fb6dfe..30994ff06 100644 --- a/.forgejo/workflows/ci.yml +++ b/.forgejo/workflows/ci.yml @@ -221,10 +221,8 @@ jobs: aws s3 sync "s3://${ASV_S3_BUCKET}/asv/results" build/asv/results --delete || true - name: Run asv continuous via nox - env: - ASV_FACTOR: "1.10" run: | - nox -s benchmark_regression + ASV_FACTOR="1.10" nox -s benchmark_regression - name: Upload benchmark artifacts if: always() -- 2.52.0 From 396038549156d8050759025d9f04ff4800a4d9a7 Mon Sep 17 00:00:00 2001 From: Michael Griffith Date: Wed, 18 Feb 2026 17:41:45 -0500 Subject: [PATCH 22/27] testing airspeedvelocity --- .forgejo/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.forgejo/workflows/ci.yml b/.forgejo/workflows/ci.yml index 30994ff06..4d090721a 100644 --- a/.forgejo/workflows/ci.yml +++ b/.forgejo/workflows/ci.yml @@ -10,6 +10,7 @@ env: UV_VERSION: "0.8.0" PYTHON_VERSION: "3.13" NOX_DEFAULT_VENV_BACKEND: "uv" + ASV_FACTOR: "1.10" jobs: lint: @@ -222,7 +223,7 @@ jobs: - name: Run asv continuous via nox run: | - ASV_FACTOR="1.10" nox -s benchmark_regression + nox -s benchmark_regression - name: Upload benchmark artifacts if: always() -- 2.52.0 From f9f4503c6c0d3b9dd6f4cc1a03d9703ea9851fa3 Mon Sep 17 00:00:00 2001 From: Michael Griffith Date: Wed, 18 Feb 2026 17:45:07 -0500 Subject: [PATCH 23/27] testing airspeedvelocity --- .forgejo/workflows/ci.yml | 1 - noxfile.py | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/.forgejo/workflows/ci.yml b/.forgejo/workflows/ci.yml index 4d090721a..f66cd4568 100644 --- a/.forgejo/workflows/ci.yml +++ b/.forgejo/workflows/ci.yml @@ -10,7 +10,6 @@ env: UV_VERSION: "0.8.0" PYTHON_VERSION: "3.13" NOX_DEFAULT_VENV_BACKEND: "uv" - ASV_FACTOR: "1.10" jobs: lint: diff --git a/noxfile.py b/noxfile.py index 265edfe6a..37a4bd276 100644 --- a/noxfile.py +++ b/noxfile.py @@ -613,7 +613,6 @@ def benchmark_regression(session: nox.Session): """Run Airspeed Velocity benchmarks regression test.""" session.install("-e", ".[tests]") config_path = "asv.conf.json" - asv_factor = os.environ.get(ASV_FACTOR) asv_base_sha = os.environ.get(ASV_BASE_SHA) session.run("asv", "machine", "--yes", f"--config={config_path}") session.run( @@ -622,7 +621,7 @@ def benchmark_regression(session: nox.Session): "--append-samples", "--show-stderr", "--verbose", - f"--factor={asv_factor}", + f"--factor=1.10", f"--config={config_path}", asv_base_sha, "HEAD", -- 2.52.0 From c4c4fd154497ee2a47794ec4906f2e138df73eee Mon Sep 17 00:00:00 2001 From: Michael Griffith Date: Wed, 18 Feb 2026 17:57:27 -0500 Subject: [PATCH 24/27] testing airspeedvelocity --- .forgejo/workflows/ci.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.forgejo/workflows/ci.yml b/.forgejo/workflows/ci.yml index f66cd4568..b51b8c41c 100644 --- a/.forgejo/workflows/ci.yml +++ b/.forgejo/workflows/ci.yml @@ -199,10 +199,11 @@ jobs: fetch-depth: 0 - name: Compute base commit + id: hash run: | git fetch origin "${{ forgejo.base_ref }}" --depth=200 BASE_SHA=$(git merge-base HEAD "origin/${{ forgejo.base_ref }}") - echo "ASV_BASE_SHA=${BASE_SHA}" >> $FORGEJO_ENV + echo "ASV_BASE_SHA=${BASE_SHA}" >> $FORGEJO_OUTPUT - name: Install dependencies run: | @@ -221,6 +222,8 @@ jobs: aws s3 sync "s3://${ASV_S3_BUCKET}/asv/results" build/asv/results --delete || true - name: Run asv continuous via nox + env: + ASV_BASE_SHA: ${{ steps.hash.outputs.ASV_BASE_SHA }} run: | nox -s benchmark_regression -- 2.52.0 From c2d6e71563a792606db397745b029c29013c3051 Mon Sep 17 00:00:00 2001 From: Michael Griffith Date: Wed, 18 Feb 2026 18:25:28 -0500 Subject: [PATCH 25/27] testing airspeedvelocity --- noxfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/noxfile.py b/noxfile.py index 37a4bd276..1ee9414e1 100644 --- a/noxfile.py +++ b/noxfile.py @@ -613,7 +613,7 @@ def benchmark_regression(session: nox.Session): """Run Airspeed Velocity benchmarks regression test.""" session.install("-e", ".[tests]") config_path = "asv.conf.json" - asv_base_sha = os.environ.get(ASV_BASE_SHA) + asv_base_sha = os.environ.get("ASV_BASE_SHA") session.run("asv", "machine", "--yes", f"--config={config_path}") session.run( "asv", -- 2.52.0 From e25d73cca0a46f021c95695f42222ac3b72400de Mon Sep 17 00:00:00 2001 From: Michael Griffith Date: Wed, 18 Feb 2026 18:40:44 -0500 Subject: [PATCH 26/27] testing airspeedvelocity --- .forgejo/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.forgejo/workflows/ci.yml b/.forgejo/workflows/ci.yml index b51b8c41c..6af38f60c 100644 --- a/.forgejo/workflows/ci.yml +++ b/.forgejo/workflows/ci.yml @@ -229,7 +229,7 @@ jobs: - name: Upload benchmark artifacts if: always() - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v3 with: name: asv-results-pr path: build/asv @@ -282,7 +282,7 @@ jobs: - name: Upload benchmark artifacts if: always() - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v3 with: name: asv-results path: build/asv -- 2.52.0 From 805a4b9374d38537ab14c72658e773a114192b1c Mon Sep 17 00:00:00 2001 From: Michael Griffith Date: Wed, 18 Feb 2026 18:49:45 -0500 Subject: [PATCH 27/27] testing airspeedvelocity --- .forgejo/workflows/ci.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.forgejo/workflows/ci.yml b/.forgejo/workflows/ci.yml index 6af38f60c..1c38643fc 100644 --- a/.forgejo/workflows/ci.yml +++ b/.forgejo/workflows/ci.yml @@ -232,7 +232,9 @@ jobs: uses: actions/upload-artifact@v3 with: name: asv-results-pr - path: build/asv + path: | + build/asv/results + build/asv/html rentention-days: 30 benchmark-publish: @@ -285,7 +287,9 @@ jobs: uses: actions/upload-artifact@v3 with: name: asv-results - path: build/asv + path: | + build/asv/results + build/asv/html rentention-days: 0 build: -- 2.52.0