From 1022dc878a438b831a26da50459c32e2420eb9f4 Mon Sep 17 00:00:00 2001 From: Chris Burr Date: Thu, 15 Jan 2026 17:13:34 +0100 Subject: [PATCH 1/9] Update Python version from 3.11 to 3.14 --- construct.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/construct.yaml b/construct.yaml index 7452d40..62aea19 100644 --- a/construct.yaml +++ b/construct.yaml @@ -34,7 +34,7 @@ ignore_duplicate_files: true # happening when an old version has incorrect version pins specs: - micromamba - - python 3.11.* + - python 3.14.* - pip - openssl >=3 # Security From 785d8c4388c4443e359b48dbbf108328c21bae83 Mon Sep 17 00:00:00 2001 From: Chris Burr Date: Thu, 22 Jan 2026 21:08:06 +0100 Subject: [PATCH 2/9] Removed obsolete elasticsearch package constraints --- construct.yaml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/construct.yaml b/construct.yaml index 62aea19..b3378cd 100644 --- a/construct.yaml +++ b/construct.yaml @@ -48,11 +48,7 @@ specs: - opensearch-py - opensearch-dsl - mysql-client - # elasticsearch packages can be removed once DIRAC 7.3 is not used anymore - replaced by opensearch - # They can't actually be removed yet as DIRAC stil has it in the dependencies - - elasticsearch <7.14 - - elasticsearch-dsl - - numpy <2 # elasticsearch<7.14 needs numpy 1.x, remove this constraint when elasticsearch is removed + - numpy # Earlier versions of mysqlclient were build with older MySQL versions - mysqlclient >=2.0.3,<2.1 - sqlalchemy >=1.4.36 From 482485b0c044f435639b5ce183211a6c4fc4187a Mon Sep 17 00:00:00 2001 From: Chris Burr Date: Thu, 22 Jan 2026 21:51:59 +0100 Subject: [PATCH 3/9] fix: Disable fail-fast for build-installer jobs Allow all platform builds to complete independently so that a failure on one platform doesn't cancel the others. --- .github/workflows/build-and-test.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 7bb84d9..1642655 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -19,6 +19,7 @@ jobs: if: github.repository == 'DIRACGrid/DIRACOS2' runs-on: ${{ matrix.os }} strategy: + fail-fast: false matrix: include: - target_arch: linux-64 From 9b04323b6e09ac1b98ecfa6275acd5e77fca8bdc Mon Sep 17 00:00:00 2001 From: Chris Burr Date: Thu, 9 Jul 2026 15:26:18 +0200 Subject: [PATCH 4/9] fix: Enable rrdtool on osx-arm64 now that builds are available --- construct.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/construct.yaml b/construct.yaml index b3378cd..3f14e1f 100644 --- a/construct.yaml +++ b/construct.yaml @@ -91,7 +91,7 @@ specs: - python-json-logger >=0.1.8 - pytz >=2015.7 - requests >=2.9.1 - - rrdtool # [not (osx and arm64)] + - rrdtool - apptainer >=1.3.6 # [not osx] # pin setuptools for installing all v8 releases not patched with https://github.com/DIRACGrid/DIRAC/pull/8492/changes - setuptools <82.0 From 186edeac3e4844d632eda8ebf1a863f65d34d277 Mon Sep 17 00:00:00 2001 From: Chris Burr Date: Thu, 9 Jul 2026 15:43:34 +0200 Subject: [PATCH 5/9] fix: Drop cgi, imp and elasticsearch_dsl from import tests for Python 3.14 --- tests/test_import.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/tests/test_import.py b/tests/test_import.py index 0a9e99d..5cda68b 100644 --- a/tests/test_import.py +++ b/tests/test_import.py @@ -49,7 +49,6 @@ "bz2", "calendar", "certifi", - "cgi", "cmd", "collections", "contextlib", @@ -59,7 +58,6 @@ "difflib", "distutils.spawn", "elasticsearch", - "elasticsearch_dsl", "errno", "fcntl", "filecmp", @@ -76,7 +74,6 @@ "hashlib", "http.client", "hypothesis", - "imp", "importlib", "inspect", "io", From 892f0e12911d0659466e13bfb9ccc6b8625034c8 Mon Sep 17 00:00:00 2001 From: Chris Burr Date: Fri, 10 Jul 2026 10:39:31 +0200 Subject: [PATCH 6/9] ci: Free up runner disk space before integration tests --- .github/workflows/build-and-test.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 1642655..ef851e4 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -188,6 +188,15 @@ jobs: - integration steps: - uses: actions/checkout@v7 + - name: Free up disk space + # The integration tests install DIRACOS twice (server + client) on the + # same runner. The Python 3.14 environment is large enough that the + # second install can exhaust the default runner disk, so remove some of + # the bulky pre-installed toolchains we don't need. + run: | + df -h / + sudo rm -rf /usr/local/lib/android /usr/share/dotnet /opt/ghc /usr/local/share/boost + df -h / - uses: actions/setup-python@v6 with: python-version: '3.14' From dfba7e91b3055f9ed296861cfde8f875da31d217 Mon Sep 17 00:00:00 2001 From: Chris Burr Date: Sun, 12 Jul 2026 11:02:23 +0200 Subject: [PATCH 7/9] TEMP: record rel-v8r0 plots from fork branch to regenerate references --- .github/workflows/build-and-test.yml | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index ef851e4..f9fd398 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -205,9 +205,15 @@ jobs: with: name: installer-linux-64 - name: Prepare environment + # TEMP (do not merge): rel-v8r0 is pulled from a fork branch that records + # the generated plots so we can regenerate reference images matching the + # native CI rendering. Other branches stay on DIRACGrid/DIRAC. + env: + DIRAC_REPO: ${{ matrix.dirac-branch == 'rel-v8r0' && 'https://github.com/chrisburr/DIRAC.git' || 'https://github.com/DIRACGrid/DIRAC.git' }} + DIRAC_REF: ${{ matrix.dirac-branch == 'rel-v8r0' && 'fix/python-3.14-plot-references-v8r0' || matrix.dirac-branch }} run: | pip install typer pyyaml gitpython packaging - git clone https://github.com/DIRACGrid/DIRAC.git -b "${{ matrix.dirac-branch }}" DIRACRepo + git clone "$DIRAC_REPO" -b "$DIRAC_REF" DIRACRepo - name: Run tests run: | DIRACOS_TARBALL_PATH=$(echo ${PWD}/DIRACOS-*.sh) @@ -215,3 +221,16 @@ jobs: cd DIRACRepo ./integration_tests.py create \ "DIRACOS_TARBALL_PATH=${DIRACOS_TARBALL_PATH}" + - name: Collect generated plots (TEMP rel-v8r0 reference regeneration) + if: ${{ always() && matrix.dirac-branch == 'rel-v8r0' }} + run: | + docker ps -a + docker cp server:/home/dirac/plot_records ./plot_records || true + ls -la ./plot_records || echo "no plot_records directory found" + - name: Upload generated plots (TEMP rel-v8r0 reference regeneration) + if: ${{ always() && matrix.dirac-branch == 'rel-v8r0' }} + uses: actions/upload-artifact@v7 + with: + name: generated-plots-rel-v8r0 + path: plot_records + if-no-files-found: warn From c41f023188ad166fc8c77a9112be75cc9d65a797 Mon Sep 17 00:00:00 2001 From: Chris Burr Date: Sun, 12 Jul 2026 13:37:38 +0200 Subject: [PATCH 8/9] TEMP: verify rel-v8r0 UTC plot fix via fork branch --- .github/workflows/build-and-test.yml | 21 ++++----------------- 1 file changed, 4 insertions(+), 17 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index f9fd398..c935c7f 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -205,12 +205,12 @@ jobs: with: name: installer-linux-64 - name: Prepare environment - # TEMP (do not merge): rel-v8r0 is pulled from a fork branch that records - # the generated plots so we can regenerate reference images matching the - # native CI rendering. Other branches stay on DIRACGrid/DIRAC. + # TEMP (do not merge): rel-v8r0 is pulled from a fork branch carrying the + # UTC pin for the accounting plot tests (DIRAC PR pending). Other branches + # stay on DIRACGrid/DIRAC. Revert once the fix is merged into rel-v8r0. env: DIRAC_REPO: ${{ matrix.dirac-branch == 'rel-v8r0' && 'https://github.com/chrisburr/DIRAC.git' || 'https://github.com/DIRACGrid/DIRAC.git' }} - DIRAC_REF: ${{ matrix.dirac-branch == 'rel-v8r0' && 'fix/python-3.14-plot-references-v8r0' || matrix.dirac-branch }} + DIRAC_REF: ${{ matrix.dirac-branch == 'rel-v8r0' && 'fix/plot-tests-utc-v8r0' || matrix.dirac-branch }} run: | pip install typer pyyaml gitpython packaging git clone "$DIRAC_REPO" -b "$DIRAC_REF" DIRACRepo @@ -221,16 +221,3 @@ jobs: cd DIRACRepo ./integration_tests.py create \ "DIRACOS_TARBALL_PATH=${DIRACOS_TARBALL_PATH}" - - name: Collect generated plots (TEMP rel-v8r0 reference regeneration) - if: ${{ always() && matrix.dirac-branch == 'rel-v8r0' }} - run: | - docker ps -a - docker cp server:/home/dirac/plot_records ./plot_records || true - ls -la ./plot_records || echo "no plot_records directory found" - - name: Upload generated plots (TEMP rel-v8r0 reference regeneration) - if: ${{ always() && matrix.dirac-branch == 'rel-v8r0' }} - uses: actions/upload-artifact@v7 - with: - name: generated-plots-rel-v8r0 - path: plot_records - if-no-files-found: warn From 48bfb6a50ea351bf2522267023086a52402d7fa4 Mon Sep 17 00:00:00 2001 From: Chris Burr Date: Sun, 12 Jul 2026 21:10:52 +0200 Subject: [PATCH 9/9] Revert temporary rel-v8r0 fork test harness The UTC plot-test fix is verified and lives in a DIRAC PR to rel-v8r0; restore the workflow to clone DIRACGrid/DIRAC for all branches. --- .github/workflows/build-and-test.yml | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index c935c7f..ef851e4 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -205,15 +205,9 @@ jobs: with: name: installer-linux-64 - name: Prepare environment - # TEMP (do not merge): rel-v8r0 is pulled from a fork branch carrying the - # UTC pin for the accounting plot tests (DIRAC PR pending). Other branches - # stay on DIRACGrid/DIRAC. Revert once the fix is merged into rel-v8r0. - env: - DIRAC_REPO: ${{ matrix.dirac-branch == 'rel-v8r0' && 'https://github.com/chrisburr/DIRAC.git' || 'https://github.com/DIRACGrid/DIRAC.git' }} - DIRAC_REF: ${{ matrix.dirac-branch == 'rel-v8r0' && 'fix/plot-tests-utc-v8r0' || matrix.dirac-branch }} run: | pip install typer pyyaml gitpython packaging - git clone "$DIRAC_REPO" -b "$DIRAC_REF" DIRACRepo + git clone https://github.com/DIRACGrid/DIRAC.git -b "${{ matrix.dirac-branch }}" DIRACRepo - name: Run tests run: | DIRACOS_TARBALL_PATH=$(echo ${PWD}/DIRACOS-*.sh)