0.1.114 — unblock backend Docker build: requests~=2.33.0 to satisfy casdoor 1.41
The first Northflank rebuild after the user pointed the deploy at
the right branch failed at the pip3 install -r requirements.txt
layer:
ERROR: Cannot install -r requirements.txt (line 58),
-r requirements.txt (line 59) and requests==2.31.0 because
these package versions have conflicting dependencies.
The conflict is caused by:
The user requested requests==2.31.0
yarg 0.1.9 depends on requests
casdoor 1.41.0 depends on requests~=2.33.0
casdoor>=1.41,<2 (added in 0.1.96) tightened its dependency to
requests~=2.33.0, which is incompatible with the
requests==2.31.0 pin that has been in requirements.txt
since long before the Casdoor migration. pip's resolver gave
up after attempting many cryptography / urllib3 /
aiohttp combinations.
Fix
Both backend/requirements.txt and backend/requirements-render.txt
bumped from:
requests==2.31.0
to:
requests~=2.33.0
~=2.33.0 matches casdoor's pin exactly: any 2.33.x patch is
allowed (so a casdoor patch release that bumps to 2.33.1 won't
re-break us), but 2.34 and beyond are not — keeping the
solver deterministic.
Why this is safe
- requests 2.32+ → 2.33 is a minor / patch series with no
breaking API changes (the major API surface
requests.get/post/Sessionis unchanged). - The other range pins in the requirements file remain
satisfiable:
urllib3>=1.25.4,<1.27(kept) — requests 2.33 needsurllib3>=1.21.1,<3, so 1.26.x is in range.cryptography>=42,<48(kept) — independent of requests.charset-normalizer==3.3.2(kept) — requests 2.33 needs>=2,<4, satisfied.idna==3.6,certifi==2023.11.17(kept) — both within requests 2.33's tolerated ranges.
Files changed
backend/requirements.txt(line 45)backend/requirements-render.txt(line 35)
Verification
- No code changes; only a dependency bump. The build will
re-resolve on the next
docker buildand pip should pickrequests==2.33.x,urllib3==1.26.19(already what it was reaching for), andcasdoor==1.41.x. - After the rebuild, the 0.1.113 boot-log line
(
Backend.Notechondria.Boot/version_log) will showversion=0.1.114if the layer cache invalidated correctly. If it showsversion=0.1.113the new VERSION file made it in but the install layer reused a cache; if it shows an older version, the build context wasn't refreshed — rebuild with--no-cache(or push another commit that touches a file copied earlier in the Dockerfile to bust the cache).
Operator runbook
git push(or trigger Northflank's manual rebuild) to pick up the loosened pin.- Watch the build log; the
pip3 install -r requirements.txtstep that previously errored at7.087 ERROR: Cannot install ...should now resolve and proceed to[ 8/18]and beyond. - After the worker boots,
grep Backend.Notechondria.Boot/version_login Northflank's log stream — confirmversion=0.1.114. curl -sS https://notechondria.trance-0.com/api/v1/auth/casdoor/config/— expect a 200 withsignin_urlending in/login/notechondria(per 0.1.112). At that point the SPA's Casdoor SSO button will redirect correctly.