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.
Files changed (87) hide show
  1. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/.github/dependabot.yml +0 -1
  2. groupoid-0.1.0.dev7/.github/workflows/artifact-transfer.yml +46 -0
  3. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/.github/workflows/auto-tag-release.yml +23 -5
  4. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/.github/workflows/ci.yml +17 -37
  5. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/.github/workflows/docs-deploy.yml +2 -3
  6. groupoid-0.1.0.dev7/.github/workflows/release.yml +630 -0
  7. groupoid-0.1.0.dev7/.zenodo.json +34 -0
  8. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/CHANGELOG.md +104 -1
  9. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/CITATION.cff +2 -1
  10. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/CONTRIBUTING.md +8 -6
  11. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/LIMITATIONS.md +30 -13
  12. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/PKG-INFO +14 -7
  13. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/PROBLEMS.md +29 -5
  14. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/README.md +13 -5
  15. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/REPRODUCE.md +1 -1
  16. groupoid-0.1.0.dev7/SECURITY.md +31 -0
  17. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/STATUS.md +9 -7
  18. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/codemeta.json +1 -1
  19. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/groupoid/__init__.py +1 -1
  20. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/groupoid/aggregation.py +29 -7
  21. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/groupoid/cohomology.py +9 -0
  22. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/groupoid/persistence.py +34 -13
  23. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/groupoid/transport.py +42 -23
  24. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/groupoid.egg-info/PKG-INFO +14 -7
  25. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/groupoid.egg-info/SOURCES.txt +2 -1
  26. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/groupoid.egg-info/requires.txt +0 -1
  27. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/pyproject.toml +5 -5
  28. groupoid-0.1.0.dev7/tests/test_audit_regressions.py +250 -0
  29. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/tests/test_persistence.py +22 -10
  30. groupoid-0.1.0.dev7/tests/test_release_workflow_integrity.py +784 -0
  31. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/tests/test_transport_validation.py +30 -18
  32. groupoid-0.1.0.dev5/.github/scripts/install_torch_cpu.sh +0 -25
  33. groupoid-0.1.0.dev5/.github/workflows/release.yml +0 -222
  34. groupoid-0.1.0.dev5/.zenodo.json +0 -39
  35. groupoid-0.1.0.dev5/SECURITY.md +0 -43
  36. groupoid-0.1.0.dev5/tests/test_release_workflow_integrity.py +0 -100
  37. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  38. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  39. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/.github/ISSUE_TEMPLATE/mathematical_correction.md +0 -0
  40. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/.gitignore +0 -0
  41. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/.pre-commit-config.yaml +0 -0
  42. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/CORRECTION_NOTICE.md +0 -0
  43. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/LICENSE +0 -0
  44. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/benchmarks/__init__.py +0 -0
  45. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/benchmarks/conftest.py +0 -0
  46. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/benchmarks/test_karcher_benchmark.py +0 -0
  47. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/docs/api.md +0 -0
  48. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/docs/index.md +0 -0
  49. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/docs/overrides/404.html +0 -0
  50. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/docs/quickstart.md +0 -0
  51. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/docs/theory.md +0 -0
  52. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/examples/README.md +0 -0
  53. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/examples/__init__.py +0 -0
  54. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/examples/synthetic_curve_demo.py +0 -0
  55. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/experiments/PREREGISTRATION.md +0 -0
  56. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/experiments/README.md +0 -0
  57. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/experiments/RESULTS.md +0 -0
  58. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/experiments/analyze.py +0 -0
  59. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/experiments/results.json +0 -0
  60. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/experiments/run_benchmark.py +0 -0
  61. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/groupoid/groupoid.py +0 -0
  62. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/groupoid/laplacian.py +0 -0
  63. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/groupoid/manifold.py +0 -0
  64. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/groupoid/optimizer.py +0 -0
  65. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/groupoid/sheaf.py +0 -0
  66. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/groupoid.egg-info/dependency_links.txt +0 -0
  67. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/groupoid.egg-info/top_level.txt +0 -0
  68. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/mkdocs.yml +0 -0
  69. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/scripts/bind_release_sbom.py +0 -0
  70. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/scripts/reproduce_sheaf_laplacian.py +0 -0
  71. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/setup.cfg +0 -0
  72. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/tests/__init__.py +0 -0
  73. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/tests/test_aggregation_disconnected.py +0 -0
  74. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/tests/test_cohomology_cocycle.py +0 -0
  75. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/tests/test_coverage_gaps.py +0 -0
  76. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/tests/test_defensive_paths.py +0 -0
  77. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/tests/test_imports.py +0 -0
  78. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/tests/test_integration.py +0 -0
  79. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/tests/test_optimizer_validation.py +0 -0
  80. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/tests/test_persistence_dimension_labels.py +0 -0
  81. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/tests/test_pipeline_integration.py +0 -0
  82. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/tests/test_release_sbom_binding.py +0 -0
  83. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/tests/test_scientific_corrections.py +0 -0
  84. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/tests/test_sheaf_laplacian.py +0 -0
  85. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/tests/test_smoke.py +0 -0
  86. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/tests/theory/__init__.py +0 -0
  87. {groupoid-0.1.0.dev5 → groupoid-0.1.0.dev7}/tests/theory/test_mathematical_invariants.py +0 -0
@@ -42,7 +42,6 @@ updates:
42
42
  # of one PR per package.
43
43
  runtime:
44
44
  patterns:
45
- - "torch"
46
45
  - "geomstats"
47
46
  - "pymanopt"
48
47
  - "ripser"
@@ -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
- push:
28
- branches: [main]
29
- paths:
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]+\.[0-9]+\.[0-9]+(\.dev[0-9]+|a[0-9]+|b[0-9]+|rc[0-9]+)?$'; then
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@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
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
- # Consistent with the test / security / docs jobs. CPU torch keeps it lean.
28
- .github/scripts/install_torch_cpu.sh
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@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
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@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
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. CPU torch keeps the install lean.
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
- # Pin setuptools LAST. torch requires setuptools<82 and pulls in a
76
- # runner-bundled setuptools that can predate the PYSEC-2025-49 fix
77
- # (78.1.1); upgrading before `pip install -e .` is simply undone by torch.
78
- # The window >=78.1.1,<82 clears the advisory while staying
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
- # pip-audit (OSV-backed, maintained) replaces the deprecated `safety check`
85
- # (deprecated in safety 3.x in favour of the account-gated `safety scan`).
86
- # HARD gate: any advisory with a fix version fails the job. Two documented
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@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
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@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
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@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
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@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
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@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
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@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # v5
44
+ uses: actions/deploy-pages@368f82528645a54fb793d4d04e342629a3f51346 # v5