From fc8eb81549f4e5a3992f9abad91978ecdf11e43a Mon Sep 17 00:00:00 2001 From: Yuneng Jiang Date: Wed, 1 Apr 2026 11:57:07 -0700 Subject: [PATCH] [Fix] Filter aioboto3 from resolver to fix boto3/aioboto3 conflict boto3==1.42.80 and aioboto3==15.5.0 have incompatible botocore ranges. Both uv and pip 26.0.1 reject the resolution. Fix: filter aioboto3 out of requirements.txt at install time, then install aioboto3+aiobotocore separately with --no-deps to bypass resolution. Removes uv-overrides.txt which only partially addressed the conflict. Co-Authored-By: Claude Opus 4.6 (1M context) --- .circleci/config.yml | 84 +++++++++++++++++++++++++++++--------------- uv-overrides.txt | 7 ---- 2 files changed, 56 insertions(+), 35 deletions(-) delete mode 100644 uv-overrides.txt diff --git a/.circleci/config.yml b/.circleci/config.yml index 45abef2270..d384e86052 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -34,7 +34,8 @@ commands: command: | python -m pip install --upgrade pip uv # Use uv for the heavy requirements.txt (10-100x faster than pip) - uv pip install --system --override uv-overrides.txt -r requirements.txt + grep -v '^aioboto3' requirements.txt | uv pip install --system -r - + pip install --no-deps "aioboto3==15.5.0" "aiobotocore==2.25.1" # Use pip for test deps (small set, avoids uv strict-resolution # conflicts with transitive dep pins like openai<2 and pydantic>=2.11.5) pip install "pytest-mock==3.12.0" "pytest==7.3.1" "pytest-retry==1.6.3" \ @@ -95,7 +96,8 @@ jobs: name: Install Dependencies command: | python -m pip install --upgrade pip uv - uv pip install --system --override uv-overrides.txt -r requirements.txt + grep -v '^aioboto3' requirements.txt | uv pip install --system -r - + pip install --no-deps "aioboto3==15.5.0" "aiobotocore==2.25.1" pip uninstall fastuuid -y pip install "mypy==1.18.2" - run: @@ -421,7 +423,8 @@ jobs: name: Install Dependencies command: | python -m pip install --upgrade pip uv - uv pip install --system --override uv-overrides.txt -r requirements.txt + grep -v '^aioboto3' requirements.txt | uv pip install --system -r - + pip install --no-deps "aioboto3==15.5.0" "aiobotocore==2.25.1" pip install "pytest==7.3.1" pip install "pytest-retry==1.6.3" pip install "pytest-asyncio==0.21.1" @@ -469,7 +472,8 @@ jobs: name: Install Dependencies command: | python -m pip install --upgrade pip uv - uv pip install --system --override uv-overrides.txt -r requirements.txt + grep -v '^aioboto3' requirements.txt | uv pip install --system -r - + pip install --no-deps "aioboto3==15.5.0" "aiobotocore==2.25.1" pip install "pytest==7.3.1" pip install "respx==0.22.0" pip install "pytest-retry==1.6.3" @@ -526,7 +530,8 @@ jobs: name: Install Dependencies command: | python -m pip install --upgrade pip uv - uv pip install --system --override uv-overrides.txt -r requirements.txt + grep -v '^aioboto3' requirements.txt | uv pip install --system -r - + pip install --no-deps "aioboto3==15.5.0" "aiobotocore==2.25.1" pip install "pytest==7.3.1" pip install "respx==0.22.0" pip install "pytest-retry==1.6.3" @@ -568,7 +573,8 @@ jobs: command: | python -m pip install --upgrade pip uv pip install wheel setuptools - uv pip install --system --override uv-overrides.txt -r requirements.txt + grep -v '^aioboto3' requirements.txt | uv pip install --system -r - + pip install --no-deps "aioboto3==15.5.0" "aiobotocore==2.25.1" pip install "pytest==7.3.1" pip install "respx==0.22.0" pip install "pytest-retry==1.6.3" @@ -604,7 +610,8 @@ jobs: name: Install Dependencies command: | python -m pip install --upgrade pip uv - uv pip install --system --override uv-overrides.txt -r requirements.txt + grep -v '^aioboto3' requirements.txt | uv pip install --system -r - + pip install --no-deps "aioboto3==15.5.0" "aiobotocore==2.25.1" pip install "pytest==7.3.1" pip install "pytest-retry==1.6.3" pip install "pytest-asyncio==0.21.1" @@ -653,7 +660,8 @@ jobs: name: Install Dependencies command: | python -m pip install --upgrade pip uv - uv pip install --system --override uv-overrides.txt -r requirements.txt + grep -v '^aioboto3' requirements.txt | uv pip install --system -r - + pip install --no-deps "aioboto3==15.5.0" "aiobotocore==2.25.1" pip install "pytest==7.3.1" "pytest-retry==1.6.3" "pytest-cov==5.0.0" "pytest-asyncio==0.21.1" "respx==0.22.0" "pytest-xdist==3.6.1" "pytest-timeout==2.2.0" "websockets" # Run pytest and generate JUnit XML report - run: @@ -694,7 +702,8 @@ jobs: name: Install Dependencies command: | python -m pip install --upgrade pip uv - uv pip install --system --override uv-overrides.txt -r requirements.txt + grep -v '^aioboto3' requirements.txt | uv pip install --system -r - + pip install --no-deps "aioboto3==15.5.0" "aiobotocore==2.25.1" pip install "pytest==7.3.1" pip install "pytest-retry==1.6.3" pip install "pytest-cov==5.0.0" @@ -740,7 +749,8 @@ jobs: name: Install Dependencies command: | python -m pip install --upgrade pip uv - uv pip install --system --override uv-overrides.txt -r requirements.txt + grep -v '^aioboto3' requirements.txt | uv pip install --system -r - + pip install --no-deps "aioboto3==15.5.0" "aiobotocore==2.25.1" pip install "pytest==7.3.1" pip install "pytest-retry==1.6.3" pip install "pytest-cov==5.0.0" @@ -785,7 +795,8 @@ jobs: name: Install Dependencies command: | python -m pip install --upgrade pip uv - uv pip install --system --override uv-overrides.txt -r requirements.txt + grep -v '^aioboto3' requirements.txt | uv pip install --system -r - + pip install --no-deps "aioboto3==15.5.0" "aiobotocore==2.25.1" pip install "pytest==7.3.1" pip install "pytest-retry==1.6.3" pip install "pytest-cov==5.0.0" @@ -835,7 +846,8 @@ jobs: name: Install Dependencies command: | python -m pip install --upgrade pip uv - uv pip install --system --override uv-overrides.txt -r requirements.txt + grep -v '^aioboto3' requirements.txt | uv pip install --system -r - + pip install --no-deps "aioboto3==15.5.0" "aiobotocore==2.25.1" pip install "pytest==7.3.1" pip install "pytest-retry==1.6.3" pip install "pytest-cov==5.0.0" @@ -884,7 +896,8 @@ jobs: name: Install Dependencies command: | python -m pip install --upgrade pip uv - uv pip install --system --override uv-overrides.txt -r requirements.txt + grep -v '^aioboto3' requirements.txt | uv pip install --system -r - + pip install --no-deps "aioboto3==15.5.0" "aiobotocore==2.25.1" pip install "pytest==7.3.1" pip install "pytest-retry==1.6.3" pip install "pytest-asyncio==0.21.1" @@ -922,7 +935,8 @@ jobs: name: Install Dependencies command: | python -m pip install --upgrade pip uv - uv pip install --system --override uv-overrides.txt -r requirements.txt + grep -v '^aioboto3' requirements.txt | uv pip install --system -r - + pip install --no-deps "aioboto3==15.5.0" "aiobotocore==2.25.1" pip install "pytest==7.3.1" "pytest-retry==1.6.3" "pytest-cov==5.0.0" "pytest-asyncio==0.21.1" "respx==0.22.0" "pytest-xdist==3.6.1" # Run pytest and generate JUnit XML report - run: @@ -961,7 +975,8 @@ jobs: name: Install Dependencies command: | python -m pip install --upgrade pip uv - uv pip install --system --override uv-overrides.txt -r requirements.txt + grep -v '^aioboto3' requirements.txt | uv pip install --system -r - + pip install --no-deps "aioboto3==15.5.0" "aiobotocore==2.25.1" pip install "pytest==7.3.1" "pytest-retry==1.6.3" "pytest-cov==5.0.0" "pytest-asyncio==0.21.1" "respx==0.22.0" "pytest-xdist==3.6.1" # Run pytest and generate JUnit XML report - run: @@ -1040,7 +1055,8 @@ jobs: name: Install Dependencies command: | python -m pip install --upgrade pip uv - uv pip install --system --override uv-overrides.txt -r requirements.txt + grep -v '^aioboto3' requirements.txt | uv pip install --system -r - + pip install --no-deps "aioboto3==15.5.0" "aiobotocore==2.25.1" pip install "pytest-mock==3.12.0" pip install "pytest==7.3.1" pip install "pytest-retry==1.6.3" @@ -1083,7 +1099,8 @@ jobs: name: Install Dependencies command: | python -m pip install --upgrade pip uv - uv pip install --system --override uv-overrides.txt -r requirements.txt + grep -v '^aioboto3' requirements.txt | uv pip install --system -r - + pip install --no-deps "aioboto3==15.5.0" "aiobotocore==2.25.1" pip install "respx==0.22.0" pip install "pytest==7.3.1" pip install "pytest-retry==1.6.3" @@ -1129,7 +1146,8 @@ jobs: name: Install Dependencies command: | python -m pip install --upgrade pip uv - uv pip install --system --override uv-overrides.txt -r requirements.txt + grep -v '^aioboto3' requirements.txt | uv pip install --system -r - + pip install --no-deps "aioboto3==15.5.0" "aiobotocore==2.25.1" pip install numpydoc pip install "respx==0.22.0" pip install "pytest==7.3.1" @@ -1178,7 +1196,8 @@ jobs: name: Install Dependencies command: | python -m pip install --upgrade pip uv - uv pip install --system --override uv-overrides.txt -r requirements.txt + grep -v '^aioboto3' requirements.txt | uv pip install --system -r - + pip install --no-deps "aioboto3==15.5.0" "aiobotocore==2.25.1" pip install "pytest==7.3.1" "pytest-retry==1.6.3" "pytest-cov==5.0.0" "pytest-asyncio==0.21.1" "respx==0.22.0" "pytest-xdist==3.6.1" # Run pytest and generate JUnit XML report - run: @@ -1218,7 +1237,8 @@ jobs: name: Install Dependencies command: | python -m pip install --upgrade pip uv - uv pip install --system --override uv-overrides.txt -r requirements.txt + grep -v '^aioboto3' requirements.txt | uv pip install --system -r - + pip install --no-deps "aioboto3==15.5.0" "aiobotocore==2.25.1" pip install "pytest==7.3.1" pip install "pytest-retry==1.6.3" pip install "pytest-cov==5.0.0" @@ -1251,7 +1271,8 @@ jobs: name: Install Dependencies command: | python -m pip install --upgrade pip uv - uv pip install --system --override uv-overrides.txt -r requirements.txt + grep -v '^aioboto3' requirements.txt | uv pip install --system -r - + pip install --no-deps "aioboto3==15.5.0" "aiobotocore==2.25.1" pip install "pytest==7.3.1" pip install "pytest-retry==1.6.3" pip install "pytest-cov==5.0.0" @@ -1303,7 +1324,8 @@ jobs: name: Install Dependencies command: | python -m pip install --upgrade pip uv - uv pip install --system --override uv-overrides.txt -r requirements.txt + grep -v '^aioboto3' requirements.txt | uv pip install --system -r - + pip install --no-deps "aioboto3==15.5.0" "aiobotocore==2.25.1" pip install "pytest==7.3.1" pip install "pytest-retry==1.6.3" pip install "pytest-cov==5.0.0" @@ -1383,7 +1405,8 @@ jobs: command: | python -m pip install --upgrade pip uv pip install wheel setuptools - uv pip install --system --override uv-overrides.txt -r requirements.txt + grep -v '^aioboto3' requirements.txt | uv pip install --system -r - + pip install --no-deps "aioboto3==15.5.0" "aiobotocore==2.25.1" pip install "pytest==7.3.1" pip install "pytest-retry==1.6.3" pip install "pytest-asyncio==0.21.1" @@ -2146,7 +2169,8 @@ jobs: pip install "pytest-asyncio==0.21.1" pip install aiohttp python -m pip install --upgrade pip - python -m pip install -r requirements.txt + grep -v '^aioboto3' requirements.txt | python -m pip install -r - + pip install --no-deps "aioboto3==15.5.0" "aiobotocore==2.25.1" - run: name: Install dockerize command: | @@ -2258,7 +2282,8 @@ jobs: pip install "pytest-asyncio==0.21.1" pip install aiohttp python -m pip install --upgrade pip - python -m pip install -r requirements.txt + grep -v '^aioboto3' requirements.txt | python -m pip install -r - + pip install --no-deps "aioboto3==15.5.0" "aiobotocore==2.25.1" pip install "pytest==7.3.1" pip install "pytest-retry==1.6.3" pip install "pytest-mock==3.12.0" @@ -2396,7 +2421,8 @@ jobs: pip install "pytest-asyncio==0.21.1" pip install aiohttp python -m pip install --upgrade pip - python -m pip install -r requirements.txt + grep -v '^aioboto3' requirements.txt | python -m pip install -r - + pip install --no-deps "aioboto3==15.5.0" "aiobotocore==2.25.1" pip install "pytest==7.3.1" pip install "pytest-retry==1.6.3" pip install "pytest-mock==3.12.0" @@ -2637,7 +2663,8 @@ jobs: pip install "langchain_openai==0.2.1" pip install "langgraph==0.3.18" pip install "fastuuid==0.13.5" - pip install -r requirements.txt + grep -v '^aioboto3' requirements.txt | pip install -r - + pip install --no-deps "aioboto3==15.5.0" "aiobotocore==2.25.1" - run: name: Install dockerize command: | @@ -2802,7 +2829,8 @@ jobs: pip install "boto3==1.42.80" pip install "httpx==0.27.0" pip install "claude-agent-sdk" - pip install -r requirements.txt + grep -v '^aioboto3' requirements.txt | pip install -r - + pip install --no-deps "aioboto3==15.5.0" "aiobotocore==2.25.1" - run: name: Install dockerize command: | diff --git a/uv-overrides.txt b/uv-overrides.txt deleted file mode 100644 index 9964645b47..0000000000 --- a/uv-overrides.txt +++ /dev/null @@ -1,7 +0,0 @@ -# Override aiobotocore's strict boto3/botocore pins (<1.40.62) so they -# can coexist with boto3==1.42.80 (which requires botocore>=1.42.80). -# No aioboto3/aiobotocore release yet supports boto3/botocore 1.42.x. -# pip's lenient resolver handles this (Docker builds), but uv's strict -# resolver rejects it — these overrides bridge the gap for CI. -boto3>=1.42.80,<1.43.0 -botocore>=1.42.80,<1.43.0