groupoid 0.1.0.dev4__tar.gz → 0.1.0.dev6__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.dev4 → groupoid-0.1.0.dev6}/.github/dependabot.yml +9 -0
- groupoid-0.1.0.dev6/.github/workflows/auto-tag-release.yml +109 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/.github/workflows/ci.yml +27 -20
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/.github/workflows/docs-deploy.yml +3 -3
- groupoid-0.1.0.dev6/.github/workflows/release.yml +624 -0
- groupoid-0.1.0.dev6/.zenodo.json +39 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/CHANGELOG.md +118 -2
- groupoid-0.1.0.dev6/CITATION.cff +35 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/CONTRIBUTING.md +16 -7
- groupoid-0.1.0.dev6/CORRECTION_NOTICE.md +147 -0
- groupoid-0.1.0.dev6/LIMITATIONS.md +120 -0
- {groupoid-0.1.0.dev4/groupoid.egg-info → groupoid-0.1.0.dev6}/PKG-INFO +52 -38
- groupoid-0.1.0.dev6/PROBLEMS.md +173 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/README.md +50 -36
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/REPRODUCE.md +1 -1
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/SECURITY.md +10 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/STATUS.md +21 -17
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/codemeta.json +2 -2
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/docs/api.md +16 -2
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/docs/index.md +16 -13
- groupoid-0.1.0.dev6/docs/quickstart.md +100 -0
- groupoid-0.1.0.dev6/docs/theory.md +200 -0
- groupoid-0.1.0.dev6/experiments/README.md +68 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/groupoid/__init__.py +19 -3
- groupoid-0.1.0.dev6/groupoid/aggregation.py +402 -0
- groupoid-0.1.0.dev6/groupoid/cohomology.py +179 -0
- groupoid-0.1.0.dev6/groupoid/groupoid.py +120 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/groupoid/persistence.py +9 -1
- groupoid-0.1.0.dev6/groupoid/transport.py +206 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6/groupoid.egg-info}/PKG-INFO +52 -38
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/groupoid.egg-info/SOURCES.txt +6 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/pyproject.toml +6 -5
- groupoid-0.1.0.dev6/scripts/bind_release_sbom.py +198 -0
- groupoid-0.1.0.dev6/tests/test_audit_regressions.py +250 -0
- groupoid-0.1.0.dev6/tests/test_cohomology_cocycle.py +169 -0
- groupoid-0.1.0.dev6/tests/test_coverage_gaps.py +186 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/tests/test_imports.py +9 -1
- groupoid-0.1.0.dev6/tests/test_integration.py +208 -0
- groupoid-0.1.0.dev6/tests/test_pipeline_integration.py +89 -0
- groupoid-0.1.0.dev6/tests/test_release_sbom_binding.py +156 -0
- groupoid-0.1.0.dev6/tests/test_release_workflow_integrity.py +784 -0
- groupoid-0.1.0.dev6/tests/test_scientific_corrections.py +552 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/tests/test_transport_validation.py +30 -18
- groupoid-0.1.0.dev6/tests/theory/test_mathematical_invariants.py +120 -0
- groupoid-0.1.0.dev4/.github/workflows/auto-tag-release.yml +0 -72
- groupoid-0.1.0.dev4/.github/workflows/release.yml +0 -107
- groupoid-0.1.0.dev4/.zenodo.json +0 -39
- groupoid-0.1.0.dev4/CITATION.cff +0 -35
- groupoid-0.1.0.dev4/LIMITATIONS.md +0 -87
- groupoid-0.1.0.dev4/PROBLEMS.md +0 -117
- groupoid-0.1.0.dev4/docs/quickstart.md +0 -123
- groupoid-0.1.0.dev4/docs/theory.md +0 -107
- groupoid-0.1.0.dev4/experiments/README.md +0 -64
- groupoid-0.1.0.dev4/groupoid/aggregation.py +0 -299
- groupoid-0.1.0.dev4/groupoid/cohomology.py +0 -99
- groupoid-0.1.0.dev4/groupoid/groupoid.py +0 -90
- groupoid-0.1.0.dev4/groupoid/transport.py +0 -188
- groupoid-0.1.0.dev4/tests/test_cohomology_cocycle.py +0 -245
- groupoid-0.1.0.dev4/tests/test_coverage_gaps.py +0 -242
- groupoid-0.1.0.dev4/tests/test_integration.py +0 -253
- groupoid-0.1.0.dev4/tests/test_pipeline_integration.py +0 -130
- groupoid-0.1.0.dev4/tests/theory/test_mathematical_invariants.py +0 -166
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/.github/ISSUE_TEMPLATE/mathematical_correction.md +0 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/.github/scripts/install_torch_cpu.sh +0 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/.gitignore +0 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/.pre-commit-config.yaml +0 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/LICENSE +0 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/benchmarks/__init__.py +0 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/benchmarks/conftest.py +0 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/benchmarks/test_karcher_benchmark.py +0 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/docs/overrides/404.html +0 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/examples/README.md +0 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/examples/__init__.py +0 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/examples/synthetic_curve_demo.py +0 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/experiments/PREREGISTRATION.md +0 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/experiments/RESULTS.md +0 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/experiments/analyze.py +0 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/experiments/results.json +0 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/experiments/run_benchmark.py +0 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/groupoid/laplacian.py +0 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/groupoid/manifold.py +0 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/groupoid/optimizer.py +0 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/groupoid/sheaf.py +0 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/groupoid.egg-info/dependency_links.txt +0 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/groupoid.egg-info/requires.txt +0 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/groupoid.egg-info/top_level.txt +0 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/mkdocs.yml +0 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/scripts/reproduce_sheaf_laplacian.py +0 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/setup.cfg +0 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/tests/__init__.py +0 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/tests/test_aggregation_disconnected.py +0 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/tests/test_defensive_paths.py +0 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/tests/test_optimizer_validation.py +0 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/tests/test_persistence.py +0 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/tests/test_persistence_dimension_labels.py +0 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/tests/test_sheaf_laplacian.py +0 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/tests/test_smoke.py +0 -0
- {groupoid-0.1.0.dev4 → groupoid-0.1.0.dev6}/tests/theory/__init__.py +0 -0
|
@@ -28,6 +28,15 @@ updates:
|
|
|
28
28
|
# updates patch vulnerable dependencies regardless of this allow filter.
|
|
29
29
|
allow:
|
|
30
30
|
- dependency-type: "direct"
|
|
31
|
+
# numpy 2.x is a verified runtime incompatibility, not a routine bump:
|
|
32
|
+
# geomstats (a required runtime dependency) fails at import under
|
|
33
|
+
# numpy>=2.0 because `numpy.trapz` was removed, so the tested
|
|
34
|
+
# numpy>=1.24,<2.0 contract in pyproject.toml cannot widen (see closed
|
|
35
|
+
# PR #57). Scoped by version, not a blanket numpy ignore: compatible
|
|
36
|
+
# numpy 1.x version updates and 1.x security updates still flow.
|
|
37
|
+
ignore:
|
|
38
|
+
- dependency-name: "numpy"
|
|
39
|
+
versions: [">=2.0.0"]
|
|
31
40
|
groups:
|
|
32
41
|
# Batch updates by area into a single PR per group to limit noise instead
|
|
33
42
|
# of one PR per package.
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
name: Auto Tag Release
|
|
2
|
+
|
|
3
|
+
# Creates the tag for a release-cut merge to main, then explicitly dispatches
|
|
4
|
+
# release.yml (build, attestations, PyPI publish, signing, GitHub Release)
|
|
5
|
+
# against that tag.
|
|
6
|
+
#
|
|
7
|
+
# The dispatch is explicit, not a tag-push trigger, because GitHub suppresses
|
|
8
|
+
# push-triggered workflow runs caused by a GITHUB_TOKEN-authored push: pushing
|
|
9
|
+
# the tag here does NOT cause release.yml's `on.push.tags` trigger to fire.
|
|
10
|
+
# workflow_dispatch is the documented exception to that suppression, which is
|
|
11
|
+
# why this workflow calls `gh workflow run` instead of relying on the tag
|
|
12
|
+
# push itself. (An earlier version of this workflow assumed the tag push
|
|
13
|
+
# alone would trigger release.yml; it did not, and no release was produced
|
|
14
|
+
# for v0.1.0.dev4 until this was fixed and the release re-run manually.)
|
|
15
|
+
#
|
|
16
|
+
# release.yml's own `push.tags` trigger remains as a fallback/manual path
|
|
17
|
+
# (a human pushing a tag with their own credentials is not subject to this
|
|
18
|
+
# suppression), alongside its `workflow_dispatch` trigger for republishing an
|
|
19
|
+
# existing tag to PyPI only.
|
|
20
|
+
#
|
|
21
|
+
# If a version needs a tag this workflow's format check rejects (see below),
|
|
22
|
+
# tag it manually -- this automation only ever creates a tag when one is
|
|
23
|
+
# missing, so a pre-existing manual tag always takes precedence and this
|
|
24
|
+
# workflow becomes a no-op for that version.
|
|
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.
|
|
28
|
+
on:
|
|
29
|
+
workflow_run:
|
|
30
|
+
workflows: ["CI"]
|
|
31
|
+
types: [completed]
|
|
32
|
+
|
|
33
|
+
permissions:
|
|
34
|
+
contents: read
|
|
35
|
+
|
|
36
|
+
jobs:
|
|
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 }}
|
|
43
|
+
runs-on: ubuntu-latest
|
|
44
|
+
permissions:
|
|
45
|
+
contents: write # push the tag
|
|
46
|
+
actions: write # dispatch release.yml via `gh workflow run`
|
|
47
|
+
steps:
|
|
48
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
49
|
+
with:
|
|
50
|
+
ref: ${{ github.event.workflow_run.head_sha }}
|
|
51
|
+
fetch-depth: 0 # need full tag history to check for an existing tag
|
|
52
|
+
|
|
53
|
+
- name: Create the release tag if this version doesn't have one yet, and dispatch the release
|
|
54
|
+
env:
|
|
55
|
+
GH_TOKEN: ${{ github.token }}
|
|
56
|
+
CI_SHA: ${{ github.event.workflow_run.head_sha }}
|
|
57
|
+
run: |
|
|
58
|
+
set -euo pipefail
|
|
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
|
+
|
|
70
|
+
version=$(grep -m1 '^version = "' pyproject.toml | sed -E 's/version = "(.*)"/\1/')
|
|
71
|
+
if [ -z "${version}" ]; then
|
|
72
|
+
echo "::error::could not extract a version from pyproject.toml"
|
|
73
|
+
exit 1
|
|
74
|
+
fi
|
|
75
|
+
|
|
76
|
+
# PEP 440-ish release/pre-release only: X.Y.Z, optionally with
|
|
77
|
+
# .devN / aN / bN / rcN. No local version segment (+...), no
|
|
78
|
+
# anything else. A version that doesn't match this is presumably
|
|
79
|
+
# intentional and unusual enough to want a human tagging it by
|
|
80
|
+
# hand rather than this automation guessing.
|
|
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
|
|
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."
|
|
83
|
+
exit 1
|
|
84
|
+
fi
|
|
85
|
+
|
|
86
|
+
tag="v${version}"
|
|
87
|
+
|
|
88
|
+
if git rev-parse "refs/tags/${tag}" >/dev/null 2>&1; then
|
|
89
|
+
echo "Tag ${tag} already exists; nothing to do."
|
|
90
|
+
exit 0
|
|
91
|
+
fi
|
|
92
|
+
|
|
93
|
+
if ! grep -qF "[${version}]" CHANGELOG.md; then
|
|
94
|
+
echo "::error::CHANGELOG.md has no [${version}] heading; refusing to tag an undocumented release. Add the changelog section as part of the version-bump PR."
|
|
95
|
+
exit 1
|
|
96
|
+
fi
|
|
97
|
+
|
|
98
|
+
echo "Version ${version} has no matching tag; creating ${tag}."
|
|
99
|
+
git config user.name "github-actions[bot]"
|
|
100
|
+
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
|
101
|
+
git tag -a "${tag}" -m "Release ${tag}"
|
|
102
|
+
git push origin "refs/tags/${tag}"
|
|
103
|
+
|
|
104
|
+
echo "Dispatching release.yml for ${tag}."
|
|
105
|
+
gh workflow run release.yml \
|
|
106
|
+
--repo "${GITHUB_REPOSITORY}" \
|
|
107
|
+
--ref "${tag}" \
|
|
108
|
+
-f "ref=${tag}" \
|
|
109
|
+
-f "create_github_release=true"
|
|
@@ -13,8 +13,8 @@ jobs:
|
|
|
13
13
|
lint:
|
|
14
14
|
runs-on: ubuntu-latest
|
|
15
15
|
steps:
|
|
16
|
-
- uses: actions/checkout@
|
|
17
|
-
- uses: actions/setup-python@
|
|
16
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
17
|
+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
18
18
|
with:
|
|
19
19
|
python-version: "3.11"
|
|
20
20
|
- name: Install dependencies
|
|
@@ -40,8 +40,8 @@ jobs:
|
|
|
40
40
|
matrix:
|
|
41
41
|
python-version: ["3.10", "3.11", "3.12"]
|
|
42
42
|
steps:
|
|
43
|
-
- uses: actions/checkout@
|
|
44
|
-
- uses: actions/setup-python@
|
|
43
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
44
|
+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
45
45
|
with:
|
|
46
46
|
python-version: ${{ matrix.python-version }}
|
|
47
47
|
- name: Install dependencies
|
|
@@ -58,8 +58,8 @@ jobs:
|
|
|
58
58
|
security:
|
|
59
59
|
runs-on: ubuntu-latest
|
|
60
60
|
steps:
|
|
61
|
-
- uses: actions/checkout@
|
|
62
|
-
- uses: actions/setup-python@
|
|
61
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
62
|
+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
63
63
|
with:
|
|
64
64
|
python-version: "3.11"
|
|
65
65
|
- name: Install dependencies
|
|
@@ -83,20 +83,27 @@ jobs:
|
|
|
83
83
|
- name: Audit dependencies for known vulnerabilities (pip-audit)
|
|
84
84
|
# pip-audit (OSV-backed, maintained) replaces the deprecated `safety check`
|
|
85
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.
|
|
87
|
-
#
|
|
88
|
-
#
|
|
89
|
-
# v2.6.0) as a
|
|
90
|
-
#
|
|
91
|
-
# torch.load / JIT
|
|
92
|
-
#
|
|
93
|
-
|
|
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
|
|
94
101
|
|
|
95
102
|
pre-commit:
|
|
96
103
|
runs-on: ubuntu-latest
|
|
97
104
|
steps:
|
|
98
|
-
- uses: actions/checkout@
|
|
99
|
-
- uses: actions/setup-python@
|
|
105
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
106
|
+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
100
107
|
with:
|
|
101
108
|
python-version: "3.11"
|
|
102
109
|
- name: Install pre-commit
|
|
@@ -107,8 +114,8 @@ jobs:
|
|
|
107
114
|
benchmark:
|
|
108
115
|
runs-on: ubuntu-latest
|
|
109
116
|
steps:
|
|
110
|
-
- uses: actions/checkout@
|
|
111
|
-
- uses: actions/setup-python@
|
|
117
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
118
|
+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
112
119
|
with:
|
|
113
120
|
python-version: "3.11"
|
|
114
121
|
- name: Install dependencies
|
|
@@ -137,8 +144,8 @@ jobs:
|
|
|
137
144
|
docs:
|
|
138
145
|
runs-on: ubuntu-latest
|
|
139
146
|
steps:
|
|
140
|
-
- uses: actions/checkout@
|
|
141
|
-
- uses: actions/setup-python@
|
|
147
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
148
|
+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
142
149
|
with:
|
|
143
150
|
python-version: "3.11"
|
|
144
151
|
- name: Install dependencies
|
|
@@ -16,8 +16,8 @@ jobs:
|
|
|
16
16
|
build:
|
|
17
17
|
runs-on: ubuntu-latest
|
|
18
18
|
steps:
|
|
19
|
-
- uses: actions/checkout@
|
|
20
|
-
- uses: actions/setup-python@
|
|
19
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
20
|
+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
21
21
|
with:
|
|
22
22
|
python-version: "3.11"
|
|
23
23
|
- name: Install dependencies
|
|
@@ -42,4 +42,4 @@ jobs:
|
|
|
42
42
|
url: ${{ steps.deployment.outputs.page_url }}
|
|
43
43
|
steps:
|
|
44
44
|
- id: deployment
|
|
45
|
-
uses: actions/deploy-pages@
|
|
45
|
+
uses: actions/deploy-pages@368f82528645a54fb793d4d04e342629a3f51346 # v5
|