You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .github/ISSUE_TEMPLATE/release_checklist.yml
+5-5Lines changed: 5 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -24,11 +24,11 @@ body:
24
24
- label: "Finalize the doc update, including release notes (\"Note: Touching docstrings/type annotations in code is OK during code freeze, apply your best judgement!\")"
25
25
- label: Update the docs for the new version
26
26
- label: Create a public release tag
27
-
- label: Wait for the tag-triggered CI run to complete, and use that run ID for release workflows
28
-
- label: If any code change happens, rebuild the wheels from the new tag
29
-
- label: Upload wheels to PyPI
30
-
- label: Update the conda recipe & release conda packages
27
+
- label: Wait for the tag-triggered CI run to complete, and use that run ID for release workflows (this will upload the release to PyPI)
28
+
- label: Publish the release at https://github.com/NVIDIA/cuda-python/releases (this will trigger the conda package update)
29
+
- label: Approve the conda-package update PR
31
30
- label: Post-release QA
32
31
- label: Finalize the announcement update
33
-
- label: Send out the announcement internally
32
+
- label: Send out the announcement internally (on `#swcuda-python`)
34
33
- label: Send out the announcement externally (GitHub Release -> Announcement)
34
+
- label: For a `cuda-bindings` release, make sure MAJOR and MAJOR-1 releases are made, as well as releases of `cuda-python` for MAJOR and MAJOR-1
error("workspace inventory must be a non-empty array")
89
+
elif any(.[];
90
+
type != "object"
91
+
or (.manifest | type != "string")
92
+
or (.lockfile | type != "string")
93
+
or .manifest == ""
94
+
or .lockfile == ""
95
+
) then
96
+
error("each workspace must have non-empty string manifest and lockfile fields")
97
+
else
98
+
.[]
99
+
end
100
+
' <<<"${workspaces}"
101
+
)"
102
+
failed=0
103
+
104
+
while IFS= read -r workspace; do
105
+
manifest="$(jq -r '.manifest' <<<"${workspace}")"
106
+
lockfile="$(jq -r '.lockfile' <<<"${workspace}")"
107
+
echo "::group::pixi lock --check (${manifest})"
108
+
109
+
check_status=0
110
+
timeout --kill-after=1m "${WORKSPACE_TIMEOUT}" \
111
+
pixi lock --check --manifest-path "${manifest}" \
112
+
|| check_status=$?
113
+
if ((check_status == 124 || check_status == 137)); then
114
+
echo "::error::Timed out after ${WORKSPACE_TIMEOUT} while checking '${manifest}'."
115
+
failed=1
116
+
elif ((check_status != 0)); then
117
+
echo "::error::Lockfile is stale for '${manifest}'. Regenerate with: pixi lock --manifest-path ${manifest}. For default-branch dependency drift, maintainers can run ${REFRESH_WORKFLOW_URL}"
118
+
failed=1
119
+
elif ! git diff --exit-code -- "${lockfile}"; then
120
+
echo "::error::pixi ${PIXI_VERSION} rewrote ${lockfile} during the check, so the committed bytes are not what it generates. Regenerate with pixi ${PIXI_VERSION}: pixi lock --manifest-path ${manifest}. For default-branch dependency drift, maintainers can run ${REFRESH_WORKFLOW_URL}"
0 commit comments