fix(ci): revert to per-dep pip download loop with --pre
Release / create-release (push) Successful in 4s
Lint & Test / test (push) Successful in 10s
Release / build-linux (push) Successful in 40s
Release / build-windows (push) Successful in 1m17s

Single pip-download call fails because the second fallback branch
(without --platform) tries to resolve Windows-only deps like winsdk
on Linux, where no wheels exist. The original per-dep loop isolates
each failure so the platform-specific branch handles each dep
independently. Add --pre throughout for winsdk (1.0.0bNN beta).
This commit is contained in:
2026-04-07 19:39:38 +03:00
parent 69df9b6b95
commit ba90dffa18
+9 -11
View File
@@ -69,20 +69,18 @@ VIS_DEPS=(
ALL_DEPS=("${CORE_DEPS[@]}" "${WIN_DEPS[@]}" "${VIS_DEPS[@]}")
# Reuse wheels from a previous cached run — only download if cache is empty
if [ -d "$WHEEL_DIR" ] && [ -n "$(ls -A "$WHEEL_DIR" 2>/dev/null)" ]; then
echo "Using cached wheels from $WHEEL_DIR"
else
# Single pip-download call — pip resolves all deps together, much faster than a loop.
# --pre is required because winsdk only ships beta wheels (1.0.0bNN).
pip download --pre --quiet --dest "$WHEEL_DIR" \
# Per-dep loop with --pre (winsdk only ships beta wheels, e.g. 1.0.0b10).
# Single-call resolution fails when one Windows-only dep can't resolve in
# the Linux fallback branch, so we resolve each dep independently.
for dep in "${ALL_DEPS[@]}"; do
pip download --pre --quiet --no-cache-dir --dest "$WHEEL_DIR" \
--platform win_amd64 --python-version "${PYTHON_SHORT}" \
--implementation cp --only-binary :all: \
"${ALL_DEPS[@]}" 2>/dev/null || \
pip download --pre --quiet --dest "$WHEEL_DIR" \
"$dep" 2>/dev/null || \
pip download --pre --quiet --no-cache-dir --dest "$WHEEL_DIR" \
--only-binary :all: \
"${ALL_DEPS[@]}"
fi
"$dep"
done
# Remove numpy 2.x wheels pulled as transitive deps (soundcard requires <2.0)
for f in "$WHEEL_DIR"/numpy-2*; do