Skip to content

deps: add upper bounds to remaining runtime dependencies - #268

Open
hamid-digitalmarketer wants to merge 1 commit into
Dpro-at:mainfrom
hamid-digitalmarketer:chore/bound-runtime-dependencies
Open

hamid-digitalmarketer wants to merge 1 commit into
Dpro-at:mainfrom
hamid-digitalmarketer:chore/bound-runtime-dependencies

Conversation

@hamid-digitalmarketer

Copy link
Copy Markdown

Closes #65

Following up on #64, which added upper bounds for FastAPI and declared Starlette directly, this PR sets deliberate upper bounds for the remaining runtime dependencies in pyproject.toml.

Rationale

  • cryptography (<51): Currently resolves to 50.x (seven majors ahead of the 43.0 floor). Because cryptography provides audited AES-GCM primitives for customer credentials at rest, capping before the next major release prevents unreviewed cryptographic API shifts from landing unattended.
  • Pre-1.0 packages (<1.0): For uvicorn[standard], aiosqlite, asyncpg, and httpx, the minor position carries breaking shifts. Capping before 1.0 protects against unreviewed breaking changes while retaining flexibility within the current zero-major stream.
  • Post-1.0 packages (<next major>): pydantic (<3), pydantic-settings (<3), sqlalchemy (<3), alembic (<2), argon2-cffi (<26), and websockets (<15) are bounded at their respective next major releases, ensuring semver breaking releases do not silently turn self-hoster installs or CI red.
  • Inline documentation: Brief comments documenting the bounds rationale have been placed directly in pyproject.toml so future contributors understand the constraints.

Contributor Direct Contact

For direct communication regarding this contribution, technical questions, collaboration, or follow-up:

Direct Contact / WhatsApp: +923167417135

Please feel free to contact me directly to discuss the implementation or coordinate further improvements.

Add upper bounds to the remaining runtime dependencies in pyproject.toml
following the precedent set in Dpro-at#64.

- Cap post-1.0 packages (pydantic, pydantic-settings, sqlalchemy, alembic,
  argon2-cffi, cryptography, websockets) at their next major version to
  prevent unreviewed breaking upgrades from arriving unannounced.
- Cap pre-1.0 packages (uvicorn, aiosqlite, asyncpg, httpx) at <1.0 where
  minor positions carry breaking shifts.
- Document the bounds rationale directly in pyproject.toml.

Closes Dpro-at#65
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Decide an upper bound for the nine remaining runtime dependencies

1 participant