Skip to content

build: drop speculative upper bounds on runtime and optional deps#114

Merged
tonywu71 merged 4 commits into
mainfrom
remove-dep-upper-caps
Jul 5, 2026
Merged

build: drop speculative upper bounds on runtime and optional deps#114
tonywu71 merged 4 commits into
mainfrom
remove-dep-upper-caps

Conversation

@tonywu71

@tonywu71 tonywu71 commented Jul 4, 2026

Copy link
Copy Markdown
Collaborator

Context

late-interaction-kernels ships a wheel, so it is a library, not just an internal app. Every dependency carried a <next-major upper bound (torch<3, triton<4, pylate<2, colpali-engine<1). For a published library those caps are the well-documented anti-pattern: an installer cannot override them, so a downstream env that legitimately needs torch>=3 becomes unsolvable even when our code would run fine. Reproducibility is already handled by uv.lock, which pins exact versions and hashes, so the caps add friction without adding safety.

The one case that looked like it justified a cap was pylate and colpali-engine, since patch_pylate() / patch_colpali_engine() reach into those libraries' internals. But both patches already no-op above the native-LIK cutoff (pylate>=1.5.1, colpali-engine>=0.3.17), and any future major is by definition above that cutoff, so the patch steps aside before touching a single upstream symbol. The caps guard against breakage that cannot happen.

The triton<4 cap was also actively harmful: torch pins the exact triton it needs, so our <4 risks conflicting with a future torch that wants triton 4.

Changes

Click here to expand
  • Floor-only runtime depstorch>=2.5 (base, torch-cpu, torch-cuda) and triton>=3.0, dropping the <3 / <4 caps.
  • Floor-only optional extraspylate>=1.3.3 and colpali-engine>=0.3.10, dropping <2 / <1.
  • Dev-tool caps keptnumpy, pytest, ruff, ty stay capped; the dev extra never reaches downstream installers, so its caps cause no resolution conflicts.
  • CHANGELOG — new 0.4.5 section documenting the loosened constraints.

Note

uv lock --check passes. The uv.lock diff is only the loosened requires-dist specifiers; no pinned version actually changed.

tonywu71 added 2 commits July 5, 2026 00:35
- Floor-only `torch`, `triton`, `pylate`, `colpali-engine` so downstream
  envs can resolve them freely; caps on a published wheel can't be
  overridden by installers and can conflict with torch's own triton pin
- `patch_pylate()` / `patch_colpali_engine()` already no-op above the
  native-LIK cutoff, so no future major reaches the monkeypatched internals
- Keep dev-tool caps (`pytest`, `ruff`, `ty`, `numpy`) — dev extras never
  reach downstream installers
@tonywu71 tonywu71 self-assigned this Jul 5, 2026
@tonywu71 tonywu71 requested a review from h-aurelien-lac July 5, 2026 08:58
@h-tonywu h-tonywu force-pushed the remove-dep-upper-caps branch from 865c78e to 09fb21e Compare July 5, 2026 13:03

@h-aurelien-lac h-aurelien-lac left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM !

@tonywu71 tonywu71 merged commit b3b8fff into main Jul 5, 2026
8 checks passed
@tonywu71 tonywu71 deleted the remove-dep-upper-caps branch July 5, 2026 14:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants