Skip to content

Commit 97a14ac

Browse files
author
CometAPI
committed
ci: complete pre-visibility validation
1 parent 70fc7fe commit 97a14ac

9 files changed

Lines changed: 1671 additions & 314 deletions

File tree

.github/workflows/ci.yml

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ jobs:
2525
timeout-minutes: 20
2626
steps:
2727
- name: Check out the candidate
28-
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
28+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
2929
- name: Set up Python
30-
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
30+
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
3131
with:
3232
python-version: "3.14"
3333
- name: Install the pinned uv frontend
@@ -65,9 +65,9 @@ jobs:
6565
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
6666
steps:
6767
- name: Check out the candidate
68-
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
68+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
6969
- name: Set up Python
70-
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
70+
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
7171
with:
7272
python-version: ${{ matrix.python-version }}
7373
- name: Install the pinned uv frontend
@@ -83,9 +83,9 @@ jobs:
8383
timeout-minutes: 20
8484
steps:
8585
- name: Check out the candidate
86-
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
86+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
8787
- name: Set up Python
88-
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
88+
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
8989
with:
9090
python-version: "3.10"
9191
- name: Install the pinned uv frontend
@@ -104,9 +104,9 @@ jobs:
104104
timeout-minutes: 20
105105
steps:
106106
- name: Check out the candidate
107-
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
107+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
108108
- name: Set up Python
109-
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
109+
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
110110
with:
111111
python-version: "3.14"
112112
- name: Install the pinned uv frontend
@@ -125,9 +125,9 @@ jobs:
125125
timeout-minutes: 25
126126
steps:
127127
- name: Check out the candidate
128-
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
128+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
129129
- name: Set up Python
130-
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
130+
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
131131
with:
132132
python-version: "3.14"
133133
- name: Install the pinned uv frontend
@@ -145,7 +145,7 @@ jobs:
145145
- name: Record immutable artifact digests
146146
run: sha256sum dist/* > artifact-sha256.txt
147147
- name: Retain verified artifacts
148-
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
148+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
149149
with:
150150
name: python-distributions
151151
path: |
@@ -161,12 +161,20 @@ jobs:
161161
timeout-minutes: 35
162162
steps:
163163
- name: Check out the candidate
164-
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
164+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
165165
- name: Set up Python
166-
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
166+
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
167167
with:
168168
python-version: "3.14"
169169
- name: Install the pinned uv frontend
170170
run: python -m pip install --disable-pip-version-check "uv==$UV_VERSION"
171171
- name: Verify from a copied standalone repository
172172
run: python scripts/check_repository_independence.py
173+
- name: Download the verified package artifacts
174+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
175+
with:
176+
name: python-distributions
177+
path: verified-artifacts
178+
- name: Recheck retained artifact digests
179+
working-directory: verified-artifacts
180+
run: sha256sum --check artifact-sha256.txt

.github/workflows/live-smoke.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,12 @@ jobs:
3333
environment: live-smoke
3434
steps:
3535
- name: Check out the trusted default branch
36-
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
36+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
3737
with:
3838
ref: ${{ github.event.repository.default_branch }}
3939
persist-credentials: false
4040
- name: Set up Python
41-
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
41+
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
4242
with:
4343
python-version: "3.14"
4444
- name: Install the pinned uv frontend

.github/workflows/publish.yml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727
contents: read
2828
steps:
2929
- name: Check out the published release tag
30-
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
30+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
3131
with:
3232
ref: refs/tags/${{ github.event.release.tag_name }}
3333
fetch-depth: 0
@@ -40,7 +40,7 @@ jobs:
4040
RELEASE_TAG: ${{ github.event.release.tag_name }}
4141
run: bash scripts/verify_release_trust.sh
4242
- name: Set up Python
43-
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
43+
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
4444
with:
4545
python-version: "3.14"
4646
- name: Install the pinned uv frontend
@@ -73,7 +73,7 @@ jobs:
7373
- name: Record immutable artifact digests
7474
run: sha256sum dist/* > artifact-sha256.txt
7575
- name: Retain only the verified release bundle
76-
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
76+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
7777
with:
7878
name: release-${{ steps.version.outputs.version }}
7979
path: |
@@ -106,7 +106,7 @@ jobs:
106106
COMETAPI_LIVE_STOP_ON_FAILURE: "1"
107107
steps:
108108
- name: Check out the verified release commit
109-
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
109+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
110110
with:
111111
ref: ${{ needs.build.outputs.release-commit }}
112112
persist-credentials: false
@@ -115,7 +115,7 @@ jobs:
115115
RELEASE_COMMIT: ${{ needs.build.outputs.release-commit }}
116116
run: test "$(git rev-parse HEAD)" = "$RELEASE_COMMIT"
117117
- name: Set up Python
118-
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
118+
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
119119
with:
120120
python-version: "3.14"
121121
- name: Install the pinned uv frontend
@@ -142,7 +142,7 @@ jobs:
142142
id-token: write
143143
steps:
144144
- name: Download the verified release bundle
145-
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
145+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
146146
with:
147147
name: release-${{ needs.build.outputs.version }}
148148
path: release-bundle
@@ -167,19 +167,19 @@ jobs:
167167
contents: read
168168
steps:
169169
- name: Check out the registry verification source
170-
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
170+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
171171
with:
172172
ref: ${{ needs.build.outputs.release-commit }}
173173
persist-credentials: false
174174
- name: Download the verified release bundle after checkout
175-
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
175+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
176176
with:
177177
name: release-${{ needs.build.outputs.version }}
178178
path: release-bundle
179179
- name: Require retained pre-publication digest evidence
180180
run: test -f release-bundle/artifact-sha256.txt
181181
- name: Set up Python
182-
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
182+
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
183183
with:
184184
python-version: "3.14"
185185
- name: Install the pinned provenance verifier

pyproject.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,11 @@ dev = [
3838
"pyright>=1.1.408,<2.0.0",
3939
"pytest>=8.3.5,<10.0.0",
4040
"pytest-asyncio>=0.24.0,<2.0.0",
41+
"pyyaml>=6.0.2,<7.0.0",
4142
"ruff>=0.12.0,<1.0.0",
4243
"tomli>=2.2.1,<3.0.0",
4344
"twine>=6.1.0,<7.0.0",
45+
"types-pyyaml>=6.0.12,<7.0.0",
4446
]
4547

4648
[build-system]

scripts/check_version.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,11 @@ def require_public_preview_docs() -> None:
160160
documents = _read_public_documents(violations)
161161
_check_project_identity(violations)
162162

163+
if Path(".github/CODEOWNERS").exists():
164+
violations.append(
165+
".github/CODEOWNERS: must remain absent until a real multi-maintainer model exists"
166+
)
167+
163168
try:
164169
license_text = Path("LICENSE").read_text(encoding="utf-8")
165170
except (OSError, UnicodeError) as exc:

0 commit comments

Comments
 (0)