Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
51 changes: 51 additions & 0 deletions .github/workflows/Codecov.yml
Original file line number Diff line number Diff line change
@@ -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
29 changes: 19 additions & 10 deletions .github/workflows/Tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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)
Expand All @@ -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
2 changes: 1 addition & 1 deletion PackageInfo.g
Original file line number Diff line number Diff line change
Expand Up @@ -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-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)( ),

Expand Down
14 changes: 13 additions & 1 deletion dev/upload_codecov.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
5 changes: 3 additions & 2 deletions examples/1LoopBox.g
Original file line number Diff line number Diff line change
Expand Up @@ -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 );
#! [ <A non-zero 7 x 11 matrix over an external ring>,
#! [ D1_*D3_, D1_*D4_, D2_*D4_, D3_*D4_, D1_, D2_, D3_, D4_, 1, D1, D2 ] ]
#! [ <A non-zero 9 x 13 matrix over an external ring>,
#! [ D1_*D2_, D1_*D3_, D2_*D3_, D1_*D4_, D2_*D4_, D3_*D4_, D1_, D2_, D3_, D4_,
#! 1, D1, D2 ] ]
dibps := MatrixOfIBPRelationsWithDimensionShift( LD );
#! <An unevaluated 5 x 1 matrix over a residue class ring>
Display( dibps );
Expand Down
4 changes: 2 additions & 2 deletions examples/julia/notebooks/1LoopBox.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -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"
]
Expand Down Expand Up @@ -955,7 +955,7 @@
"file_extension": ".jl",
"mimetype": "application/julia",
"name": "julia",
"version": "1.12.1"
"version": "1.12.6"
}
},
"nbformat": 4,
Expand Down
4 changes: 2 additions & 2 deletions examples/julia/notebooks/1LoopBox_using_Ore_algebra.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -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"
]
Expand Down Expand Up @@ -1340,7 +1340,7 @@
"file_extension": ".jl",
"mimetype": "application/julia",
"name": "julia",
"version": "1.12.1"
"version": "1.12.6"
}
},
"nbformat": 4,
Expand Down
4 changes: 2 additions & 2 deletions examples/julia/notebooks/1LoopTadpole.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -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"
]
Expand Down Expand Up @@ -857,7 +857,7 @@
"file_extension": ".jl",
"mimetype": "application/julia",
"name": "julia",
"version": "1.12.1"
"version": "1.12.6"
}
},
"nbformat": 4,
Expand Down
11 changes: 9 additions & 2 deletions examples/notebooks/1LoopBox.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -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"
]
Expand Down Expand Up @@ -1035,7 +1042,7 @@
"file_extension": ".jl",
"mimetype": "application/julia",
"name": "julia",
"version": "1.12.3"
"version": "1.12.6"
}
},
"nbformat": 4,
Expand Down
Loading