Skip to content

Commit ec29b8b

Browse files
authored
Merge pull request #342 from fabio-rovai/land/oo-2026-10-28
Land #317, #337, #338 and fixes for #333, #334, #336, #339, #340, #341
2 parents 9e73d95 + 24bbf06 commit ec29b8b

41 files changed

Lines changed: 3428 additions & 360 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.github/workflows/benchmark.yml‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@ jobs:
88
env:
99
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
1010
steps:
11-
- uses: actions/checkout@v4
11+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0
1212
- uses: dtolnay/rust-toolchain@stable
13-
- uses: Swatinem/rust-cache@v2
14-
- uses: actions/setup-java@v4
13+
- uses: Swatinem/rust-cache@d1527c8f67ef9af357290475d4af4b0fab8f12e0 # v2.9.3
14+
- uses: actions/setup-java@cf277c60eb25467037889841efdb72551f06f6c3 # v4.9.1
1515
with:
1616
distribution: 'temurin'
1717
java-version: '21'
18-
- uses: actions/setup-python@v5
18+
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
1919
with:
2020
python-version: '3.12'
2121
- name: Install Python deps
@@ -33,7 +33,7 @@ jobs:
3333
export OO_BIN=./target/release/open-ontologies
3434
cd benchmark/reasoner && bash run_lubm_performance.sh
3535
- name: Upload results
36-
uses: actions/upload-artifact@v4
36+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
3737
with:
3838
name: benchmark-results
3939
path: benchmark/reasoner/results/

‎.github/workflows/ci.yml‎

Lines changed: 28 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ jobs:
3030
CARGO_INCREMENTAL: 0
3131
CARGO_PROFILE_DEV_DEBUG: 0
3232
steps:
33-
- uses: actions/checkout@v4
33+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0
3434
- name: Free disk space
3535
if: runner.os == 'Linux'
3636
run: |
@@ -40,7 +40,7 @@ jobs:
4040
- uses: dtolnay/rust-toolchain@stable
4141
with:
4242
components: clippy
43-
- uses: Swatinem/rust-cache@v2
43+
- uses: Swatinem/rust-cache@d1527c8f67ef9af357290475d4af4b0fab8f12e0 # v2.9.3
4444
with:
4545
# Save the build cache even when the job fails. The default discards
4646
# it, and these jobs fail most often on a lint or a single test leg
@@ -119,7 +119,7 @@ jobs:
119119
name: paths / windows-safe
120120
runs-on: ubuntu-latest
121121
steps:
122-
- uses: actions/checkout@v4
122+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0
123123
- name: Reject paths Windows cannot check out
124124
run: |
125125
bad=$(git ls-files -z | tr '\0' '\n' \
@@ -174,7 +174,7 @@ jobs:
174174
CARGO_INCREMENTAL: 0
175175
CARGO_PROFILE_DEV_DEBUG: 0
176176
steps:
177-
- uses: actions/checkout@v4
177+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0
178178
- name: Free disk space
179179
run: |
180180
sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc /usr/local/share/powershell /usr/local/share/chromium /usr/local/share/edge
@@ -210,7 +210,7 @@ jobs:
210210
- uses: dtolnay/rust-toolchain@stable
211211
with:
212212
components: clippy
213-
- uses: Swatinem/rust-cache@v2
213+
- uses: Swatinem/rust-cache@d1527c8f67ef9af357290475d4af4b0fab8f12e0 # v2.9.3
214214
with:
215215
# Save the build cache even when the job fails. The default discards
216216
# it, and these jobs fail most often on a lint or a single test leg
@@ -279,9 +279,9 @@ jobs:
279279
PYSHACL_VERSION: "0.40.1"
280280
RDFLIB_VERSION: "7.6.0"
281281
steps:
282-
- uses: actions/checkout@v4
282+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0
283283
- uses: dtolnay/rust-toolchain@stable
284-
- uses: Swatinem/rust-cache@v2
284+
- uses: Swatinem/rust-cache@d1527c8f67ef9af357290475d4af4b0fab8f12e0 # v2.9.3
285285
with:
286286
# Save the build cache even when the job fails. The default discards
287287
# it, and these jobs fail most often on a lint or a single test leg
@@ -291,7 +291,7 @@ jobs:
291291
# after a full build, and the lean job rebuilt a release binary from
292292
# cold for twelve minutes on a rerun that changed one line.
293293
cache-on-failure: true
294-
- uses: actions/setup-python@v5
294+
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
295295
with:
296296
python-version: '3.11'
297297
- name: Install the pinned oracle
@@ -307,7 +307,7 @@ jobs:
307307
--json shacl-differential.json
308308
- name: Upload the report
309309
if: always()
310-
uses: actions/upload-artifact@v4
310+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
311311
with:
312312
name: shacl-differential
313313
path: shacl-differential.json
@@ -345,9 +345,9 @@ jobs:
345345
env:
346346
CARGO_INCREMENTAL: 0
347347
steps:
348-
- uses: actions/checkout@v4
349-
- uses: astral-sh/setup-uv@v5
350-
- uses: actions/setup-python@v5
348+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0
349+
- uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5.4.2
350+
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
351351
with:
352352
python-version: '3.10' # the floor declared by requires-python
353353
# The Lean checker. Same action and same inputs as the `lean` job; building
@@ -359,7 +359,7 @@ jobs:
359359
# second is the one that decides the job, so a real proof failure still
360360
# fails it, only later.
361361
- id: lean1
362-
uses: leanprover/lean-action@v1
362+
uses: leanprover/lean-action@24581d74d674803a25a81b10b059c5c0cdd344c6 # v1.6.2
363363
continue-on-error: true
364364
with:
365365
lake-package-directory: lean
@@ -370,15 +370,15 @@ jobs:
370370
- if: steps.lean1.outcome == 'failure'
371371
run: sleep 90
372372
- if: steps.lean1.outcome == 'failure'
373-
uses: leanprover/lean-action@v1
373+
uses: leanprover/lean-action@24581d74d674803a25a81b10b059c5c0cdd344c6 # v1.6.2
374374
with:
375375
lake-package-directory: lean
376376
build: true
377377
test: false
378378
lint: false
379379
use-github-cache: true
380380
- uses: dtolnay/rust-toolchain@stable
381-
- uses: Swatinem/rust-cache@v2
381+
- uses: Swatinem/rust-cache@d1527c8f67ef9af357290475d4af4b0fab8f12e0 # v2.9.3
382382
with:
383383
# Save the build cache even when the job fails. The default discards
384384
# it, and these jobs fail most often on a lint or a single test leg
@@ -455,8 +455,8 @@ jobs:
455455
name: studio (typecheck)
456456
runs-on: ubuntu-latest
457457
steps:
458-
- uses: actions/checkout@v4
459-
- uses: actions/setup-node@v4
458+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0
459+
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
460460
with:
461461
node-version: '20'
462462
cache: npm
@@ -493,14 +493,14 @@ jobs:
493493
CARGO_INCREMENTAL: 0
494494
CARGO_PROFILE_DEV_DEBUG: 0
495495
steps:
496-
- uses: actions/checkout@v4
496+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0
497497
# releases.lean-lang.org has dropped TLS connections for minutes at a
498498
# time (19 Oct 2026: every python and lean job failed fetching the
499499
# toolchain, with no code at fault). The first attempt may fail; the
500500
# second is the one that decides the job, so a real proof failure still
501501
# fails it, only later.
502502
- id: lean2
503-
uses: leanprover/lean-action@v1
503+
uses: leanprover/lean-action@24581d74d674803a25a81b10b059c5c0cdd344c6 # v1.6.2
504504
continue-on-error: true
505505
with:
506506
lake-package-directory: lean
@@ -511,15 +511,15 @@ jobs:
511511
- if: steps.lean2.outcome == 'failure'
512512
run: sleep 90
513513
- if: steps.lean2.outcome == 'failure'
514-
uses: leanprover/lean-action@v1
514+
uses: leanprover/lean-action@24581d74d674803a25a81b10b059c5c0cdd344c6 # v1.6.2
515515
with:
516516
lake-package-directory: lean
517517
build: true
518518
test: false
519519
lint: false
520520
use-github-cache: true
521521
- uses: dtolnay/rust-toolchain@stable
522-
- uses: Swatinem/rust-cache@v2
522+
- uses: Swatinem/rust-cache@d1527c8f67ef9af357290475d4af4b0fab8f12e0 # v2.9.3
523523
with:
524524
# Save the build cache even when the job fails. The default discards
525525
# it, and these jobs fail most often on a lint or a single test leg
@@ -837,7 +837,7 @@ jobs:
837837
# test fails on any row at all.
838838
- name: Cache Poly/ML
839839
id: polyml
840-
uses: actions/cache@v4
840+
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
841841
with:
842842
path: ~/polyml
843843
key: polyml-5.9.2-2-${{ runner.arch }}
@@ -939,7 +939,9 @@ jobs:
939939
# and no named PASS may regress against tests/w3c_shacl_baseline.json, in each
940940
# of two columns: the (focus, source shape, component) set, 61 of 120 PASS on
941941
# 24 Oct 2026, and the full tuple with path, value and severity as a multiset,
942-
# 51 of 120 (#319; 12 before #318 put sh:value on default-path results).
942+
# 53 of 120 on 28 Oct 2026 (#319; 12 before #318 put sh:value on default-path
943+
# results, 51 before #333 fixed the sh:or datatype false negative, 52 before
944+
# #334 kept a custom severity's namespace).
943945
# Pretending otherwise would be exactly the silent success
944946
# this repository keeps finding elsewhere. See the module docs in
945947
# tests/w3c_shacl_conformance_test.rs.
@@ -956,9 +958,9 @@ jobs:
956958
CARGO_INCREMENTAL: 0
957959
CARGO_PROFILE_DEV_DEBUG: 0
958960
steps:
959-
- uses: actions/checkout@v4
961+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0
960962
- uses: dtolnay/rust-toolchain@stable
961-
- uses: Swatinem/rust-cache@v2
963+
- uses: Swatinem/rust-cache@d1527c8f67ef9af357290475d4af4b0fab8f12e0 # v2.9.3
962964
with:
963965
# Save the build cache even when the job fails. The default discards
964966
# it, and these jobs fail most often on a lint or a single test leg
@@ -979,7 +981,7 @@ jobs:
979981
run: OO_REQUIRE_FIXTURES=1 cargo test --test shacl_validation_report_w3c_test -- --nocapture
980982
- name: Upload the per-test report
981983
if: always()
982-
uses: actions/upload-artifact@v4
984+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
983985
with:
984986
name: w3c-shacl-conformance
985987
path: w3c-shacl-conformance.log

‎.github/workflows/demo-artifacts.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ jobs:
44
manifest:
55
runs-on: ubuntu-latest
66
steps:
7-
- uses: actions/checkout@v4
7+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0
88
- name: Verify committed artifacts match their manifest
99
run: cd demo/precomputed && shasum -a 256 -c MANIFEST.sha256
1010
# MANIFEST.sha256 only proves each committed file matches its OWN

‎.github/workflows/docker.yml‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ jobs:
2626
CARGO_INCREMENTAL: 0
2727
CARGO_PROFILE_RELEASE_DEBUG: 0
2828
steps:
29-
- uses: actions/checkout@v4
29+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0
3030

3131
# Only on a tag push, where this workflow publishes an image. A tag that
3232
# does not carry its own version produces an image whose binary reports
@@ -42,15 +42,15 @@ jobs:
4242
df -h
4343
4444
- name: Set up Buildx
45-
uses: docker/setup-buildx-action@v3
45+
uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3.12.0
4646

4747
# Build into the local daemon first so the image can be smoke-tested
4848
# before anything is pushed. A plain build only proves the layers
4949
# assemble; running the binary proves the dynamic linker can resolve
5050
# every shared library, which is exactly what was missing in issue #59
5151
# (libz.so.1). Nothing validated the published image before this.
5252
- name: Build image
53-
uses: docker/build-push-action@v6
53+
uses: docker/build-push-action@10e90e3645eae34f1e60eeb005ba3a3d33f178e8 # v6.19.2
5454
with:
5555
context: .
5656
load: true
@@ -63,7 +63,7 @@ jobs:
6363

6464
- name: Log in to GHCR
6565
if: startsWith(github.ref, 'refs/tags/v')
66-
uses: docker/login-action@v3
66+
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3.7.0
6767
with:
6868
registry: ${{ env.REGISTRY }}
6969
username: ${{ github.actor }}
@@ -72,7 +72,7 @@ jobs:
7272
- name: Extract metadata
7373
if: startsWith(github.ref, 'refs/tags/v')
7474
id: meta
75-
uses: docker/metadata-action@v5
75+
uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v5.10.0
7676
with:
7777
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
7878
tags: |
@@ -82,7 +82,7 @@ jobs:
8282
8383
- name: Push image
8484
if: startsWith(github.ref, 'refs/tags/v')
85-
uses: docker/build-push-action@v6
85+
uses: docker/build-push-action@10e90e3645eae34f1e60eeb005ba3a3d33f178e8 # v6.19.2
8686
with:
8787
context: .
8888
push: true

‎.github/workflows/python-release.yml‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,15 @@ jobs:
1818
build:
1919
runs-on: ubuntu-latest
2020
steps:
21-
- uses: actions/checkout@v4
22-
- uses: astral-sh/setup-uv@v5
21+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0
22+
- uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5.4.2
2323
- name: Build wheel + sdist
2424
working-directory: python
2525
run: uv build
2626
- name: Check metadata
2727
working-directory: python
2828
run: uvx twine check dist/*
29-
- uses: actions/upload-artifact@v4
29+
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
3030
with:
3131
name: dist
3232
path: python/dist/
@@ -38,9 +38,9 @@ jobs:
3838
permissions:
3939
id-token: write # OIDC token for Trusted Publishing; no secret needed
4040
steps:
41-
- uses: actions/download-artifact@v4
41+
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
4242
with:
4343
name: dist
4444
path: dist/
4545
- name: Publish to PyPI
46-
uses: pypa/gh-action-pypi-publish@release/v1
46+
uses: pypa/gh-action-pypi-publish@7245906fb61fa33a13554f9d5fb856fe61758086 # v1.14.3

0 commit comments

Comments
 (0)