groupoid 0.1.0.dev5__tar.gz → 0.1.0.dev7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/.github/dependabot.yml +0 -1
- groupoid-0.1.0.dev7/.github/workflows/artifact-transfer.yml +46 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/.github/workflows/auto-tag-release.yml +23 -5
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/.github/workflows/ci.yml +17 -37
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/.github/workflows/docs-deploy.yml +2 -3
- groupoid-0.1.0.dev7/.github/workflows/release.yml +630 -0
- groupoid-0.1.0.dev7/.zenodo.json +34 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/CHANGELOG.md +104 -1
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/CITATION.cff +2 -1
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/CONTRIBUTING.md +8 -6
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/LIMITATIONS.md +30 -13
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/PKG-INFO +14 -7
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/PROBLEMS.md +29 -5
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/README.md +13 -5
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/REPRODUCE.md +1 -1
- groupoid-0.1.0.dev7/SECURITY.md +31 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/STATUS.md +9 -7
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/codemeta.json +1 -1
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/groupoid/__init__.py +1 -1
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/groupoid/aggregation.py +29 -7
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/groupoid/cohomology.py +9 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/groupoid/persistence.py +34 -13
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/groupoid/transport.py +42 -23
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/groupoid.egg-info/PKG-INFO +14 -7
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/groupoid.egg-info/SOURCES.txt +2 -1
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/groupoid.egg-info/requires.txt +0 -1
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/pyproject.toml +5 -5
- groupoid-0.1.0.dev7/tests/test_audit_regressions.py +250 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/tests/test_persistence.py +22 -10
- groupoid-0.1.0.dev7/tests/test_release_workflow_integrity.py +784 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/tests/test_transport_validation.py +30 -18
- groupoid-0.1.0.dev5/.github/scripts/install_torch_cpu.sh +0 -25
- groupoid-0.1.0.dev5/.github/workflows/release.yml +0 -222
- groupoid-0.1.0.dev5/.zenodo.json +0 -39
- groupoid-0.1.0.dev5/SECURITY.md +0 -43
- groupoid-0.1.0.dev5/tests/test_release_workflow_integrity.py +0 -100
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/.github/ISSUE_TEMPLATE/mathematical_correction.md +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/.gitignore +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/.pre-commit-config.yaml +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/CORRECTION_NOTICE.md +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/LICENSE +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/benchmarks/__init__.py +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/benchmarks/conftest.py +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/benchmarks/test_karcher_benchmark.py +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/docs/api.md +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/docs/index.md +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/docs/overrides/404.html +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/docs/quickstart.md +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/docs/theory.md +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/examples/README.md +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/examples/__init__.py +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/examples/synthetic_curve_demo.py +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/experiments/PREREGISTRATION.md +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/experiments/README.md +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/experiments/RESULTS.md +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/experiments/analyze.py +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/experiments/results.json +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/experiments/run_benchmark.py +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/groupoid/groupoid.py +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/groupoid/laplacian.py +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/groupoid/manifold.py +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/groupoid/optimizer.py +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/groupoid/sheaf.py +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/groupoid.egg-info/dependency_links.txt +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/groupoid.egg-info/top_level.txt +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/mkdocs.yml +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/scripts/bind_release_sbom.py +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/scripts/reproduce_sheaf_laplacian.py +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/setup.cfg +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/tests/__init__.py +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/tests/test_aggregation_disconnected.py +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/tests/test_cohomology_cocycle.py +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/tests/test_coverage_gaps.py +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/tests/test_defensive_paths.py +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/tests/test_imports.py +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/tests/test_integration.py +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/tests/test_optimizer_validation.py +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/tests/test_persistence_dimension_labels.py +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/tests/test_pipeline_integration.py +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/tests/test_release_sbom_binding.py +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/tests/test_scientific_corrections.py +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/tests/test_sheaf_laplacian.py +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/tests/test_smoke.py +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/tests/theory/__init__.py +0 -0
- {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/tests/theory/test_mathematical_invariants.py +0 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
name: Artifact transfer integrity
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
paths: [".github/workflows/**"]
|
|
7
|
+
pull_request:
|
|
8
|
+
branches: [main]
|
|
9
|
+
paths: [".github/workflows/**"]
|
|
10
|
+
|
|
11
|
+
permissions:
|
|
12
|
+
contents: read
|
|
13
|
+
|
|
14
|
+
jobs:
|
|
15
|
+
round-trip:
|
|
16
|
+
runs-on: ubuntu-latest
|
|
17
|
+
timeout-minutes: 5
|
|
18
|
+
steps:
|
|
19
|
+
- name: Create fixture and independent expected checksum
|
|
20
|
+
shell: bash
|
|
21
|
+
run: |
|
|
22
|
+
set -euo pipefail
|
|
23
|
+
mkdir -p payload/nested
|
|
24
|
+
printf '%s\n' "$GITHUB_SHA" > payload/nested/fixture.txt
|
|
25
|
+
(cd payload && sha256sum nested/fixture.txt) > expected.sha256
|
|
26
|
+
- name: Upload fixture
|
|
27
|
+
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
|
|
28
|
+
with:
|
|
29
|
+
name: artifact-transfer-proof
|
|
30
|
+
path: payload/
|
|
31
|
+
if-no-files-found: error
|
|
32
|
+
retention-days: 1
|
|
33
|
+
- name: Remove original fixture before downloading
|
|
34
|
+
run: rm -r payload
|
|
35
|
+
- name: Download fixture
|
|
36
|
+
uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
|
|
37
|
+
with:
|
|
38
|
+
name: artifact-transfer-proof
|
|
39
|
+
path: restored/
|
|
40
|
+
- name: Verify restored bytes and directory layout
|
|
41
|
+
shell: bash
|
|
42
|
+
run: |
|
|
43
|
+
set -euo pipefail
|
|
44
|
+
cd restored
|
|
45
|
+
test "$(find . -type f | wc -l)" -eq 1
|
|
46
|
+
sha256sum --check ../expected.sha256
|
|
@@ -23,17 +23,23 @@ name: Auto Tag Release
|
|
|
23
23
|
# missing, so a pre-existing manual tag always takes precedence and this
|
|
24
24
|
# workflow becomes a no-op for that version.
|
|
25
25
|
|
|
26
|
+
# Tag only a main commit whose CI run succeeded. The tag-exists check below
|
|
27
|
+
# keeps this idempotent for CI runs on commits that did not bump the version.
|
|
26
28
|
on:
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
- pyproject.toml
|
|
29
|
+
workflow_run:
|
|
30
|
+
workflows: ["CI"]
|
|
31
|
+
types: [completed]
|
|
31
32
|
|
|
32
33
|
permissions:
|
|
33
34
|
contents: read
|
|
34
35
|
|
|
35
36
|
jobs:
|
|
36
37
|
tag:
|
|
38
|
+
if: >-
|
|
39
|
+
${{ github.event.workflow_run.conclusion == 'success' &&
|
|
40
|
+
github.event.workflow_run.event == 'push' &&
|
|
41
|
+
github.event.workflow_run.head_branch == 'main' &&
|
|
42
|
+
github.event.workflow_run.head_repository.full_name == github.repository }}
|
|
37
43
|
runs-on: ubuntu-latest
|
|
38
44
|
permissions:
|
|
39
45
|
contents: write # push the tag
|
|
@@ -41,14 +47,26 @@ jobs:
|
|
|
41
47
|
steps:
|
|
42
48
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
43
49
|
with:
|
|
50
|
+
ref: ${{ github.event.workflow_run.head_sha }}
|
|
44
51
|
fetch-depth: 0 # need full tag history to check for an existing tag
|
|
45
52
|
|
|
46
53
|
- name: Create the release tag if this version doesn't have one yet, and dispatch the release
|
|
47
54
|
env:
|
|
48
55
|
GH_TOKEN: ${{ github.token }}
|
|
56
|
+
CI_SHA: ${{ github.event.workflow_run.head_sha }}
|
|
49
57
|
run: |
|
|
50
58
|
set -euo pipefail
|
|
51
59
|
|
|
60
|
+
# Tag only the exact commit that passed CI, and only while it is
|
|
61
|
+
# still the head of main.
|
|
62
|
+
ci_sha="${CI_SHA}"
|
|
63
|
+
[ "$(git rev-parse HEAD)" = "${ci_sha}" ]
|
|
64
|
+
main_sha="$(gh api "repos/${GITHUB_REPOSITORY}/git/ref/heads/main" --jq .object.sha)"
|
|
65
|
+
if [ "${main_sha}" != "${ci_sha}" ]; then
|
|
66
|
+
echo "main advanced past ${ci_sha}; the newer head's CI run decides."
|
|
67
|
+
exit 0
|
|
68
|
+
fi
|
|
69
|
+
|
|
52
70
|
version=$(grep -m1 '^version = "' pyproject.toml | sed -E 's/version = "(.*)"/\1/')
|
|
53
71
|
if [ -z "${version}" ]; then
|
|
54
72
|
echo "::error::could not extract a version from pyproject.toml"
|
|
@@ -60,7 +78,7 @@ jobs:
|
|
|
60
78
|
# anything else. A version that doesn't match this is presumably
|
|
61
79
|
# intentional and unusual enough to want a human tagging it by
|
|
62
80
|
# hand rather than this automation guessing.
|
|
63
|
-
if ! echo "${version}" | grep -Eq '^[0-9]
|
|
81
|
+
if ! echo "${version}" | grep -Eq '^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)(\.dev(0|[1-9][0-9]*)|a(0|[1-9][0-9]*)|b(0|[1-9][0-9]*)|rc(0|[1-9][0-9]*))?$'; then
|
|
64
82
|
echo "::error::version '${version}' is not a recognized release format (expected X.Y.Z, optionally with .devN/aN/bN/rcN, no local metadata); refusing to tag automatically. Tag it manually if this is intentional."
|
|
65
83
|
exit 1
|
|
66
84
|
fi
|
|
@@ -14,7 +14,7 @@ jobs:
|
|
|
14
14
|
runs-on: ubuntu-latest
|
|
15
15
|
steps:
|
|
16
16
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
17
|
-
- uses: actions/setup-python@
|
|
17
|
+
- uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
|
|
18
18
|
with:
|
|
19
19
|
python-version: "3.11"
|
|
20
20
|
- name: Install dependencies
|
|
@@ -24,8 +24,8 @@ jobs:
|
|
|
24
24
|
# numpy / pydantic stubs (NDArray dtype args, the BaseModel base class).
|
|
25
25
|
# Linting only against `ruff black mypy` left numpy/pydantic uninstalled,
|
|
26
26
|
# so --strict raised disallow_subclassing_any on the BaseModel subclass.
|
|
27
|
-
#
|
|
28
|
-
.
|
|
27
|
+
# All jobs now install the declared runtime dependencies, without
|
|
28
|
+
# the unused optional PyTorch backend.
|
|
29
29
|
pip install -e ".[dev]"
|
|
30
30
|
- name: Run ruff
|
|
31
31
|
run: ruff check .
|
|
@@ -41,13 +41,12 @@ jobs:
|
|
|
41
41
|
python-version: ["3.10", "3.11", "3.12"]
|
|
42
42
|
steps:
|
|
43
43
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
44
|
-
- uses: actions/setup-python@
|
|
44
|
+
- uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
|
|
45
45
|
with:
|
|
46
46
|
python-version: ${{ matrix.python-version }}
|
|
47
47
|
- name: Install dependencies
|
|
48
48
|
run: |
|
|
49
49
|
python -m pip install --upgrade pip
|
|
50
|
-
.github/scripts/install_torch_cpu.sh
|
|
51
50
|
pip install -e ".[dev]"
|
|
52
51
|
- name: Run tests with coverage gate
|
|
53
52
|
run: >-
|
|
@@ -59,7 +58,7 @@ jobs:
|
|
|
59
58
|
runs-on: ubuntu-latest
|
|
60
59
|
steps:
|
|
61
60
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
62
|
-
- uses: actions/setup-python@
|
|
61
|
+
- uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
|
|
63
62
|
with:
|
|
64
63
|
python-version: "3.11"
|
|
65
64
|
- name: Install dependencies
|
|
@@ -68,42 +67,25 @@ jobs:
|
|
|
68
67
|
# Install the project's real runtime closure so pip-audit scans the
|
|
69
68
|
# packages GROUPOID actually depends on. The previous `safety` step
|
|
70
69
|
# installed only the tools and never the project, so it audited the
|
|
71
|
-
# wrong environment.
|
|
72
|
-
.github/scripts/install_torch_cpu.sh
|
|
70
|
+
# wrong environment. No unused PyTorch install is injected.
|
|
73
71
|
pip install -e .
|
|
74
72
|
pip install bandit pip-audit
|
|
75
|
-
#
|
|
76
|
-
#
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
# dependency-consistent with torch (verified: pip check clean).
|
|
80
|
-
python -m pip install --upgrade "setuptools>=78.1.1,<82"
|
|
73
|
+
# Setuptools is build tooling, but remains in the audited CI environment.
|
|
74
|
+
# No torch<82 constraint remains; require the patched release.
|
|
75
|
+
python -m pip install --upgrade "setuptools>=84.1.0"
|
|
76
|
+
python -m pip check
|
|
81
77
|
- name: Run bandit
|
|
82
78
|
run: bandit -r groupoid/ -c pyproject.toml
|
|
83
79
|
- name: Audit dependencies for known vulnerabilities (pip-audit)
|
|
84
|
-
#
|
|
85
|
-
#
|
|
86
|
-
|
|
87
|
-
# exceptions, both disclosed in SECURITY.md:
|
|
88
|
-
# - CVE-2025-3000 (torch): no fixed release exists upstream, and OSV
|
|
89
|
-
# expresses the affected range (listed versions up to v2.6.0) as a
|
|
90
|
-
# Git/commit boundary pip-audit cannot version-resolve, so it
|
|
91
|
-
# conservatively flags the installed torch. The torch.load / JIT
|
|
92
|
-
# deserialization path is not exercised by GROUPOID. Revisit the ignore
|
|
93
|
-
# once upstream publishes a fixed release.
|
|
94
|
-
# - PYSEC-2026-3447 (CVE-2026-59890, setuptools <83): the fix (83.0.0) is
|
|
95
|
-
# unreachable while torch requires setuptools<82 (see the install step
|
|
96
|
-
# above). The flaw is a macOS-only (APFS/HFS+) Unicode-normalization
|
|
97
|
-
# bypass of MANIFEST.in exclude rules when building sdists; all CI and
|
|
98
|
-
# release builds run on ubuntu-latest. Drop the ignore once torch
|
|
99
|
-
# permits setuptools>=83.
|
|
100
|
-
run: pip-audit --ignore-vuln CVE-2025-3000 --ignore-vuln PYSEC-2026-3447
|
|
80
|
+
# Hard gate on the installed runtime and audit-tool closure.
|
|
81
|
+
# No CVE/PYSEC ignore flags or waived vulnerable packages.
|
|
82
|
+
run: pip-audit
|
|
101
83
|
|
|
102
84
|
pre-commit:
|
|
103
85
|
runs-on: ubuntu-latest
|
|
104
86
|
steps:
|
|
105
87
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
106
|
-
- uses: actions/setup-python@
|
|
88
|
+
- uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
|
|
107
89
|
with:
|
|
108
90
|
python-version: "3.11"
|
|
109
91
|
- name: Install pre-commit
|
|
@@ -115,13 +97,12 @@ jobs:
|
|
|
115
97
|
runs-on: ubuntu-latest
|
|
116
98
|
steps:
|
|
117
99
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
118
|
-
- uses: actions/setup-python@
|
|
100
|
+
- uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
|
|
119
101
|
with:
|
|
120
102
|
python-version: "3.11"
|
|
121
103
|
- name: Install dependencies
|
|
122
104
|
run: |
|
|
123
105
|
python -m pip install --upgrade pip
|
|
124
|
-
.github/scripts/install_torch_cpu.sh
|
|
125
106
|
pip install -e ".[dev]"
|
|
126
107
|
# Benchmarks run for information only. There is no regression gate:
|
|
127
108
|
# timing baselines recorded on one machine are not comparable to a
|
|
@@ -135,7 +116,7 @@ jobs:
|
|
|
135
116
|
pytest benchmarks/ -v --benchmark-json=benchmark_results.json || true
|
|
136
117
|
- name: Upload benchmark results
|
|
137
118
|
if: always()
|
|
138
|
-
uses: actions/upload-artifact@
|
|
119
|
+
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
|
|
139
120
|
with:
|
|
140
121
|
name: benchmark-results
|
|
141
122
|
path: benchmark_results.json
|
|
@@ -145,13 +126,12 @@ jobs:
|
|
|
145
126
|
runs-on: ubuntu-latest
|
|
146
127
|
steps:
|
|
147
128
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
148
|
-
- uses: actions/setup-python@
|
|
129
|
+
- uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
|
|
149
130
|
with:
|
|
150
131
|
python-version: "3.11"
|
|
151
132
|
- name: Install dependencies
|
|
152
133
|
run: |
|
|
153
134
|
python -m pip install --upgrade pip
|
|
154
|
-
.github/scripts/install_torch_cpu.sh
|
|
155
135
|
pip install -e ".[docs]"
|
|
156
136
|
- name: Build docs
|
|
157
137
|
run: mkdocs build --strict
|
|
@@ -17,13 +17,12 @@ jobs:
|
|
|
17
17
|
runs-on: ubuntu-latest
|
|
18
18
|
steps:
|
|
19
19
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
20
|
-
- uses: actions/setup-python@
|
|
20
|
+
- uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
|
|
21
21
|
with:
|
|
22
22
|
python-version: "3.11"
|
|
23
23
|
- name: Install dependencies
|
|
24
24
|
run: |
|
|
25
25
|
python -m pip install --upgrade pip
|
|
26
|
-
.github/scripts/install_torch_cpu.sh
|
|
27
26
|
pip install -e ".[docs]"
|
|
28
27
|
- name: Build docs
|
|
29
28
|
run: mkdocs build --strict
|
|
@@ -42,4 +41,4 @@ jobs:
|
|
|
42
41
|
url: ${{ steps.deployment.outputs.page_url }}
|
|
43
42
|
steps:
|
|
44
43
|
- id: deployment
|
|
45
|
-
uses: actions/deploy-pages@
|
|
44
|
+
uses: actions/deploy-pages@368f82528645a54fb793d4d04e342629a3f51346 # v5
|