From c74efc56e4766a78292168d34fad61c5476d99a7 Mon Sep 17 00:00:00 2001 From: Mohamed Barakat Date: Fri, 16 Jan 2026 10:11:55 +0100 Subject: [PATCH 1/5] Julia 1.12.4 --- examples/julia/notebooks/1LoopBox_using_Ore_algebra.ipynb | 2 +- examples/notebooks/1LoopBox.ipynb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/julia/notebooks/1LoopBox_using_Ore_algebra.ipynb b/examples/julia/notebooks/1LoopBox_using_Ore_algebra.ipynb index 0f787c8..b51b2f1 100644 --- a/examples/julia/notebooks/1LoopBox_using_Ore_algebra.ipynb +++ b/examples/julia/notebooks/1LoopBox_using_Ore_algebra.ipynb @@ -1340,7 +1340,7 @@ "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", - "version": "1.12.1" + "version": "1.12.4" } }, "nbformat": 4, diff --git a/examples/notebooks/1LoopBox.ipynb b/examples/notebooks/1LoopBox.ipynb index c954159..ffbf331 100644 --- a/examples/notebooks/1LoopBox.ipynb +++ b/examples/notebooks/1LoopBox.ipynb @@ -1035,7 +1035,7 @@ "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", - "version": "1.12.3" + "version": "1.12.4" } }, "nbformat": 4, From 92dcf85a7b694db8728314e244e380c464cfffa2 Mon Sep 17 00:00:00 2001 From: Mohamed Barakat Date: Sun, 10 May 2026 13:01:29 +0200 Subject: [PATCH 2/5] applied PackageJanitor --- .github/workflows/Codecov.yml | 51 +++++++++++++++++++++++++++++++++++ .github/workflows/Tests.yml | 29 +++++++++++++------- dev/upload_codecov.sh | 14 +++++++++- 3 files changed, 83 insertions(+), 11 deletions(-) create mode 100644 .github/workflows/Codecov.yml diff --git a/.github/workflows/Codecov.yml b/.github/workflows/Codecov.yml new file mode 100644 index 0000000..0a6156c --- /dev/null +++ b/.github/workflows/Codecov.yml @@ -0,0 +1,51 @@ +name: Codecov + +on: + workflow_run: + workflows: ["Tests"] + types: + - completed + +jobs: + upload: + if: >- + github.event.workflow_run.conclusion == 'success' && + github.event.workflow_run.event != 'schedule' + permissions: + actions: read + contents: read + pull-requests: read + runs-on: ubuntu-latest + steps: + - name: Check out repo + uses: actions/checkout@v4 + - name: Download coverage artifacts + uses: actions/download-artifact@v4 + with: + pattern: coverage + path: /tmp/coverage-artifacts + merge-multiple: true + run-id: ${{ github.event.workflow_run.id }} + github-token: ${{ secrets.GITHUB_TOKEN }} + - name: Restore coverage files + run: | + cp -v /tmp/coverage-artifacts/*.json . 2>/dev/null || true + - name: Resolve PR number on PR events + id: resolve_pr + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + PR_NUMBER="" + if [ "${{ github.event.workflow_run.event }}" = "pull_request" ]; then + HEAD="${{ github.event.workflow_run.head_repository.owner.login }}:${{ github.event.workflow_run.head_branch }}" + PR_NUMBER=$(gh api "repos/${{ github.repository }}/pulls?state=all&head=${HEAD}" --jq ".[0].number // empty") + fi + echo "pr_number=${PR_NUMBER}" >> "$GITHUB_OUTPUT" + echo "Resolved PR: ${PR_NUMBER:-(none)}" + - name: Upload to Codecov + env: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + CODECOV_COMMIT_SHA: ${{ github.event.workflow_run.head_sha }} + CODECOV_BRANCH: ${{ github.event.workflow_run.head_branch }} + CODECOV_PR: ${{ steps.resolve_pr.outputs.pr_number }} + run: ./dev/upload_codecov.sh diff --git a/.github/workflows/Tests.yml b/.github/workflows/Tests.yml index 44c4a85..7652eb8 100644 --- a/.github/workflows/Tests.yml +++ b/.github/workflows/Tests.yml @@ -37,9 +37,8 @@ jobs: run: | curl --fail -X PUT -H "Accept: application/vnd.github.v3+json" -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" "https://api.github.com/repos/$GITHUB_REPOSITORY/actions/workflows/Tests.yml/enable" - name: Check out repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: - # the persisted token interferes with the subsplit token used below persist-credentials: false fetch-depth: 0 - name: Move checked out repo to GAP user root dir @@ -66,10 +65,27 @@ jobs: - name: Test LoopIntegrals run: | make -C LoopIntegrals --trace -j $(nproc) --output-sync ci-test - - name: Release package or simulate release + - name: Process coverage files + if: always() && matrix.image == 'ghcr.io/homalg-project/gap-docker:latest' run: | cd LoopIntegrals python3 dev/process_coverage.py + - name: Collect coverage files + if: always() && github.event_name != 'schedule' && matrix.image == 'ghcr.io/homalg-project/gap-docker:latest' + run: | + mkdir -p /tmp/coverage-collect + cp LoopIntegrals/coverage*.json /tmp/coverage-collect/ 2>/dev/null || true + - name: Upload coverage artifact + if: always() && github.event_name != 'schedule' && matrix.image == 'ghcr.io/homalg-project/gap-docker:latest' + uses: actions/upload-artifact@v4 + with: + name: coverage + path: /tmp/coverage-collect/ + if-no-files-found: ignore + retention-days: 1 + - name: Release package or simulate release + run: | + cd LoopIntegrals git config --global user.name "Bot" git config --global user.email "empty" CUR_SHA=$(git rev-parse --verify HEAD) @@ -81,10 +97,3 @@ jobs: else \ TOKEN="${{ secrets.GITHUB_TOKEN }}" ./dev/simulate_dist.sh; \ fi - - name: Upload code coverage - if: github.event_name != 'schedule' && matrix.image == 'ghcr.io/homalg-project/gap-docker:latest' - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - run: | - cd LoopIntegrals - ./dev/upload_codecov.sh diff --git a/dev/upload_codecov.sh b/dev/upload_codecov.sh index ff3812c..18d0d66 100755 --- a/dev/upload_codecov.sh +++ b/dev/upload_codecov.sh @@ -28,9 +28,21 @@ else echo -e "\033[0;32mUsing CODECOV_TOKEN from environment variable.\033[0m" fi +# build extra args for commit/branch/PR override (used by workflow_run context) +EXTRA_ARGS="" +if [ -n "$CODECOV_COMMIT_SHA" ]; then + EXTRA_ARGS="$EXTRA_ARGS -C $CODECOV_COMMIT_SHA" +fi +if [ -n "$CODECOV_BRANCH" ]; then + EXTRA_ARGS="$EXTRA_ARGS -B $CODECOV_BRANCH" +fi +if [ -n "$CODECOV_PR" ]; then + EXTRA_ARGS="$EXTRA_ARGS -P $CODECOV_PR" +fi + # execute chmod +x codecov -while ! ./codecov -Z -v -s ../ -t $CODECOV_TOKEN; do +while ! ./codecov -Z -v -s ../ -t $CODECOV_TOKEN $EXTRA_ARGS; do echo "Codecov upload failed, retrying in 60s" sleep 60 done From d079f2c5f32b24b9288caa421af298a4d465ca65 Mon Sep 17 00:00:00 2001 From: Mohamed Barakat Date: Sun, 10 May 2026 13:07:01 +0200 Subject: [PATCH 3/5] Julia 1.12.4 -> 1.12.6 --- examples/julia/notebooks/1LoopBox.ipynb | 2 +- examples/julia/notebooks/1LoopBox_using_Ore_algebra.ipynb | 2 +- examples/julia/notebooks/1LoopTadpole.ipynb | 2 +- examples/notebooks/1LoopBox.ipynb | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/julia/notebooks/1LoopBox.ipynb b/examples/julia/notebooks/1LoopBox.ipynb index 1c963a4..a92d81c 100644 --- a/examples/julia/notebooks/1LoopBox.ipynb +++ b/examples/julia/notebooks/1LoopBox.ipynb @@ -955,7 +955,7 @@ "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", - "version": "1.12.1" + "version": "1.12.6" } }, "nbformat": 4, diff --git a/examples/julia/notebooks/1LoopBox_using_Ore_algebra.ipynb b/examples/julia/notebooks/1LoopBox_using_Ore_algebra.ipynb index b51b2f1..e89b505 100644 --- a/examples/julia/notebooks/1LoopBox_using_Ore_algebra.ipynb +++ b/examples/julia/notebooks/1LoopBox_using_Ore_algebra.ipynb @@ -1340,7 +1340,7 @@ "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", - "version": "1.12.4" + "version": "1.12.6" } }, "nbformat": 4, diff --git a/examples/julia/notebooks/1LoopTadpole.ipynb b/examples/julia/notebooks/1LoopTadpole.ipynb index 4925c0e..87822e5 100644 --- a/examples/julia/notebooks/1LoopTadpole.ipynb +++ b/examples/julia/notebooks/1LoopTadpole.ipynb @@ -857,7 +857,7 @@ "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", - "version": "1.12.1" + "version": "1.12.6" } }, "nbformat": 4, diff --git a/examples/notebooks/1LoopBox.ipynb b/examples/notebooks/1LoopBox.ipynb index ffbf331..b1a2a56 100644 --- a/examples/notebooks/1LoopBox.ipynb +++ b/examples/notebooks/1LoopBox.ipynb @@ -1035,7 +1035,7 @@ "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", - "version": "1.12.4" + "version": "1.12.6" } }, "nbformat": 4, From 00c512321c752851828c148a3b1050cddc16288c Mon Sep 17 00:00:00 2001 From: Mohamed Barakat Date: Sun, 10 May 2026 13:08:08 +0200 Subject: [PATCH 4/5] CapAndHomalg 1.6.8 -> 1.6.10 --- PackageInfo.g | 2 +- examples/julia/notebooks/1LoopBox.ipynb | 2 +- .../julia/notebooks/1LoopBox_using_Ore_algebra.ipynb | 2 +- examples/julia/notebooks/1LoopTadpole.ipynb | 2 +- examples/notebooks/1LoopBox.ipynb | 9 ++++++++- 5 files changed, 12 insertions(+), 5 deletions(-) diff --git a/PackageInfo.g b/PackageInfo.g index 375859a..0f28335 100644 --- a/PackageInfo.g +++ b/PackageInfo.g @@ -10,7 +10,7 @@ SetPackageInfo( rec( PackageName := "LoopIntegrals", Subtitle := "Compute master integrals using commutative and noncommutative methods from computational algebraic geometry", -Version := "2025.12-01", +Version := "2026.05-01", Date := (function ( ) if IsBound( GAPInfo.SystemEnvironment.GAP_PKG_RELEASE_DATE ) then return GAPInfo.SystemEnvironment.GAP_PKG_RELEASE_DATE; else return Concatenation( ~.Version{[ 1 .. 4 ]}, "-", ~.Version{[ 6, 7 ]}, "-01" ); fi; end)( ), diff --git a/examples/julia/notebooks/1LoopBox.ipynb b/examples/julia/notebooks/1LoopBox.ipynb index a92d81c..5aa7ee4 100644 --- a/examples/julia/notebooks/1LoopBox.ipynb +++ b/examples/julia/notebooks/1LoopBox.ipynb @@ -10,7 +10,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "CapAndHomalg v\u001b[32m1.6.8\u001b[39m\n", + "CapAndHomalg v\u001b[32m1.6.10\u001b[39m\n", "Imported OSCAR's components GAP and Singular_jll\n", "Type: ?CapAndHomalg for more information\n" ] diff --git a/examples/julia/notebooks/1LoopBox_using_Ore_algebra.ipynb b/examples/julia/notebooks/1LoopBox_using_Ore_algebra.ipynb index e89b505..5d2ee02 100644 --- a/examples/julia/notebooks/1LoopBox_using_Ore_algebra.ipynb +++ b/examples/julia/notebooks/1LoopBox_using_Ore_algebra.ipynb @@ -50,7 +50,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "CapAndHomalg v\u001b[32m1.6.8\u001b[39m\n", + "CapAndHomalg v\u001b[32m1.6.10\u001b[39m\n", "Imported OSCAR's components GAP and Singular_jll\n", "Type: ?CapAndHomalg for more information\n" ] diff --git a/examples/julia/notebooks/1LoopTadpole.ipynb b/examples/julia/notebooks/1LoopTadpole.ipynb index 87822e5..025da9f 100644 --- a/examples/julia/notebooks/1LoopTadpole.ipynb +++ b/examples/julia/notebooks/1LoopTadpole.ipynb @@ -10,7 +10,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "CapAndHomalg v\u001b[32m1.6.8\u001b[39m\n", + "CapAndHomalg v\u001b[32m1.6.10\u001b[39m\n", "Imported OSCAR's components GAP and Singular_jll\n", "Type: ?CapAndHomalg for more information\n" ] diff --git a/examples/notebooks/1LoopBox.ipynb b/examples/notebooks/1LoopBox.ipynb index b1a2a56..5a6c032 100644 --- a/examples/notebooks/1LoopBox.ipynb +++ b/examples/notebooks/1LoopBox.ipynb @@ -50,7 +50,14 @@ "name": "stdout", "output_type": "stream", "text": [ - "CapAndHomalg v\u001b[32m1.6.8\u001b[39m\n", + "\r", + "CapAndHomalg v\u001b[32m1.6.10\u001b[39m\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "Imported OSCAR's components GAP and Singular_jll\n", "Type: ?CapAndHomalg for more information\n" ] From 62813de2eb5d474fc1672fc7514ae8e3cce1ccf8 Mon Sep 17 00:00:00 2001 From: Mohamed Barakat Date: Sun, 10 May 2026 14:53:55 +0200 Subject: [PATCH 5/5] comply with latest Singular version 4.4.1 (44105, 64 bit) --- PackageInfo.g | 2 +- examples/1LoopBox.g | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/PackageInfo.g b/PackageInfo.g index 0f28335..41a6790 100644 --- a/PackageInfo.g +++ b/PackageInfo.g @@ -10,7 +10,7 @@ SetPackageInfo( rec( PackageName := "LoopIntegrals", Subtitle := "Compute master integrals using commutative and noncommutative methods from computational algebraic geometry", -Version := "2026.05-01", +Version := "2026.05-02", Date := (function ( ) if IsBound( GAPInfo.SystemEnvironment.GAP_PKG_RELEASE_DATE ) then return GAPInfo.SystemEnvironment.GAP_PKG_RELEASE_DATE; else return Concatenation( ~.Version{[ 1 .. 4 ]}, "-", ~.Version{[ 6, 7 ]}, "-01" ); fi; end)( ), diff --git a/examples/1LoopBox.g b/examples/1LoopBox.g index ca70548..91efc15 100644 --- a/examples/1LoopBox.g +++ b/examples/1LoopBox.g @@ -121,8 +121,9 @@ gen2 := GeneratorsOfScalelessSectors( LD, [ 2, 2, 2, 2 ] ); Display( gen2 ); #! D1*D2*D3^2*D4^2,D1^2*D2*D3*D4^2,D1*D2^2*D3^2*D4,D1^2*D2^2*D3*D4 prel2 := ColumnReversedMatrixOfCoefficientsOfParametricIBPs( LD, 2 ); -#! [ , -#! [ D1_*D3_, D1_*D4_, D2_*D4_, D3_*D4_, D1_, D2_, D3_, D4_, 1, D1, D2 ] ] +#! [ , +#! [ D1_*D2_, D1_*D3_, D2_*D3_, D1_*D4_, D2_*D4_, D3_*D4_, D1_, D2_, D3_, D4_, +#! 1, D1, D2 ] ] dibps := MatrixOfIBPRelationsWithDimensionShift( LD ); #! Display( dibps );