chore(deps): add cryptography dep, pytest-randomly dev dep
Two follow-ups to the v0.2.0 release: 1. Add cryptography>=49.0,<50 to the [project.dependencies] list. cyclone.backup / cyclone.backup_service import it at module top level, so it has to be a hard dep — not an extra — or the test suite fails to collect on a fresh 'uv sync'. A clean install (without this commit) gets 28 collection errors with no tracked file changes. This was latent because the original 99M venv had cryptography installed out-of-band and masked the missing dep declaration. 2. Add pytest-randomly>=4.1.0 to the dev dep group. Used to characterize the test suite's order-dependence: under alphabetic order the suite shows 7 failures; under seed=12345 it shows 34. That variance is evidence of test-order state interactions, not venv issues. Keeping pytest-randomly in the dev deps so this can be re-verified on demand. Note: pytest-randomly was added with 'uv add --dev', which uses the PEP 735 [dependency-groups] syntax. pyproject.toml now has two 'dev' groups — the legacy [project.optional-dependencies] dev = [pytest, pytest-cov, pytest-asyncio, httpx] and the new [dependency-groups] dev = [pytest-randomly]. To get the full dev env, run: uv sync --extra dev --group dev. Worth consolidating in a follow-up.
This commit is contained in:
@@ -16,6 +16,11 @@ dependencies = [
|
||||
"sqlalchemy>=2.0,<3",
|
||||
"pyyaml>=6.0,<7",
|
||||
"keyring>=25.0,<26",
|
||||
# backup_service / backup: encryption-at-rest (SP17). Used at module
|
||||
# top-level by cyclone.backup, so it has to be a hard dep — not an
|
||||
# extra — or the test suite fails to collect when the venv is built
|
||||
# from a clean `uv sync`.
|
||||
"cryptography>=49.0,<50",
|
||||
]
|
||||
|
||||
[project.optional-dependencies]
|
||||
@@ -46,3 +51,8 @@ where = ["src"]
|
||||
testpaths = ["tests"]
|
||||
addopts = "-ra --strict-markers"
|
||||
asyncio_mode = "auto"
|
||||
|
||||
[dependency-groups]
|
||||
dev = [
|
||||
"pytest-randomly>=4.1.0",
|
||||
]
|
||||
|
||||
Generated
+22
@@ -378,6 +378,7 @@ version = "0.1.0"
|
||||
source = { editable = "." }
|
||||
dependencies = [
|
||||
{ name = "click" },
|
||||
{ name = "cryptography" },
|
||||
{ name = "fastapi" },
|
||||
{ name = "keyring" },
|
||||
{ name = "pydantic" },
|
||||
@@ -401,9 +402,15 @@ sqlcipher = [
|
||||
{ name = "sqlcipher3" },
|
||||
]
|
||||
|
||||
[package.dev-dependencies]
|
||||
dev = [
|
||||
{ name = "pytest-randomly" },
|
||||
]
|
||||
|
||||
[package.metadata]
|
||||
requires-dist = [
|
||||
{ name = "click", specifier = ">=8.1,<9" },
|
||||
{ name = "cryptography", specifier = ">=49.0,<50" },
|
||||
{ name = "fastapi", specifier = ">=0.110,<1" },
|
||||
{ name = "httpx", marker = "extra == 'dev'", specifier = ">=0.27,<1" },
|
||||
{ name = "keyring", specifier = ">=25.0,<26" },
|
||||
@@ -420,6 +427,9 @@ requires-dist = [
|
||||
]
|
||||
provides-extras = ["dev", "sqlcipher", "sftp"]
|
||||
|
||||
[package.metadata.requires-dev]
|
||||
dev = [{ name = "pytest-randomly", specifier = ">=4.1.0" }]
|
||||
|
||||
[[package]]
|
||||
name = "fastapi"
|
||||
version = "0.138.0"
|
||||
@@ -935,6 +945,18 @@ wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/9d/7a/d968e294073affff457b041c2be9868a40c1c71f4a35fcc1e45e5493067b/pytest_cov-7.1.0-py3-none-any.whl", hash = "sha256:a0461110b7865f9a271aa1b51e516c9a95de9d696734a2f71e3e78f46e1d4678", size = 22876, upload-time = "2026-03-21T20:11:14.438Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pytest-randomly"
|
||||
version = "4.1.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "pytest" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/27/b3/36192dacc0f470ac2cc516f73e01739c9a48a8224f76beada4f85e1c8a89/pytest_randomly-4.1.0.tar.gz", hash = "sha256:47f1d9746c3bc3efabd53ae1ebfb8bb385cf3d4df4b505b6d58d9c97a3dfe70f", size = 14302, upload-time = "2026-04-20T13:01:51.831Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/9a/db/2df9a1fca597a273f957a559c20c2d95d629928384507b2afa43ba6909d1/pytest_randomly-4.1.0-py3-none-any.whl", hash = "sha256:f55e89e53367b090c0c053697d7f9d77595543d0e0516c93978b50c0f6b252f9", size = 8353, upload-time = "2026-04-20T13:01:50.382Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "python-dotenv"
|
||||
version = "1.2.2"
|
||||
|
||||
Reference in New Issue
Block a user