fix(ci): replace uvicorn[standard] with explicit extras for cross-build
uvicorn[standard] pulls uvloop via a 'sys_platform != win32' marker. pip evaluates env markers against the HOST (Linux in CI), so uvloop is requested even in a --platform win_amd64 resolve. No uvloop wheel exists for Windows, so pip backtracks across every uvicorn[standard] version and fails with ResolutionImpossible. Use plain uvicorn plus the Windows-compatible extras we actually need (httptools, websockets, python-dotenv).
This commit is contained in:
+10
-1
@@ -40,9 +40,18 @@ echo '..\app' >> "$PTH_FILE"
|
||||
echo "Downloading Windows wheels..."
|
||||
|
||||
# Core dependencies
|
||||
# NOTE: uvicorn[standard] pulls in uvloop via `sys_platform != 'win32'` marker.
|
||||
# pip evaluates env markers against the HOST (Linux in CI), so uvloop is
|
||||
# requested, but `--platform win_amd64 --only-binary :all:` cannot find a
|
||||
# Windows wheel for uvloop (none exist). Result: pip backtracks across every
|
||||
# uvicorn[standard] version and ResolutionImpossible. Fix: use plain uvicorn
|
||||
# and list only the Windows-compatible standard extras we actually need.
|
||||
CORE_DEPS=(
|
||||
"fastapi>=0.109.0"
|
||||
"uvicorn[standard]>=0.27.0"
|
||||
"uvicorn>=0.27.0"
|
||||
"httptools>=0.5.0"
|
||||
"websockets>=10.4"
|
||||
"python-dotenv>=0.13"
|
||||
"pydantic>=2.0"
|
||||
"pydantic-settings>=2.0"
|
||||
"pyyaml>=6.0"
|
||||
|
||||
Reference in New Issue
Block a user