mirror of
https://github.com/PR0M3TH3AN/SeedPass.git
synced 2026-10-27 16:02:05 +00:00
CI went red where the Tests workflow stayed green, and the reason is that the two install from different lockfiles which had drifted apart: poetry.lock held nostr-sdk 0.43.0, requirements.lock had resolved to 0.45.0 under the unbounded `>=0.43`. Two lockfiles disagreeing about a protocol SDK is not a CI quirk — it means the code was being tested against one version and shipped against another. 0.44 removed NostrSigner's constructors, including the NostrSigner.keys the client calls, and changed Client's constructor. Verified against 0.45.0: NostrSigner is left with only get_public_key, sign_event and the nip04/nip44 methods, and Client.__init__ takes no arguments. So this is a real migration touching signing and client setup, not a rename to be done in passing. Bounded at <0.44 in all three places the constraint is declared, and both lockfiles regenerated: requirements.lock resolves 0.43.1, poetry.lock keeps 0.43.0, and the relock changed exactly one line — the content hash — with no version churn anywhere else. Confirmed 0.43.1 still exposes NostrSigner.keys and a Client that takes an argument, since that is what CI will actually install. pip-audit reports no advisory against the 0.43 line, so the bound costs nothing today. The migration is recorded in TODO.md rather than attempted here: it wants the sync round-trip re-validated against a real relay, not folded into a CI fix. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]> Claude-Session: https://claude.ai/code/session_01Vtx94nXDmNgXEeThUZP4QN
133 lines
3.3 KiB
TOML
133 lines
3.3 KiB
TOML
[tool.poetry]
|
|
name = "seedpass"
|
|
version = "0.1.0"
|
|
description = "Deterministic password manager with a BeeWare GUI"
|
|
authors = []
|
|
|
|
[tool.poetry.dependencies]
|
|
python = ">=3.10,<3.13"
|
|
colorama = ">=0.4.6"
|
|
termcolor = ">=1.1.0"
|
|
cryptography = ">=50.0.0"
|
|
bip-utils = ">=2.5.0"
|
|
bech32 = "1.2.0"
|
|
coincurve = ">=18.0.0"
|
|
mnemonic = "*"
|
|
aiohttp = ">=3.14.3"
|
|
bcrypt = "*"
|
|
portalocker = ">=2.8"
|
|
nostr-sdk = ">=0.43,<0.44"
|
|
websocket-client = "1.7.0"
|
|
websockets = ">=15.0.0"
|
|
tomli = "*"
|
|
pgpy = "0.6.0"
|
|
pyotp = ">=2.8.0"
|
|
pyperclip = "*"
|
|
qrcode = ">=8.2"
|
|
typer = ">=0.12.3"
|
|
fastapi = ">=0.141.1"
|
|
uvicorn = ">=0.35.0"
|
|
httpx = ">=0.28.1"
|
|
requests = ">=2.33.0"
|
|
python-multipart = ">=0.0.31"
|
|
orjson = ">=3.11.5"
|
|
argon2-cffi = "*"
|
|
PyJWT = ">=2.8.0"
|
|
slowapi = "^0.1.9"
|
|
cbor2 = ">=5.9.0"
|
|
pynacl = ">=1.6.2"
|
|
pyasn1 = ">=0.6.4"
|
|
starlette = ">=1.3.1,<2"
|
|
urllib3 = ">=2.7.0"
|
|
pycryptodome = ">=3.20.0,<4"
|
|
toga-core = { version = ">=0.5.2", optional = true }
|
|
pillow = { version = ">=12.1.1", optional = true }
|
|
toga-gtk = { version = ">=0.5.2", optional = true }
|
|
toga-winforms = { version = ">=0.5.2", optional = true }
|
|
toga-cocoa = { version = ">=0.5.2", optional = true }
|
|
|
|
[tool.poetry.extras]
|
|
gui = ["toga-core", "pillow"]
|
|
gui-gtk = ["toga-gtk"]
|
|
gui-win = ["toga-winforms"]
|
|
gui-mac = ["toga-cocoa"]
|
|
|
|
[tool.poetry.group.dev.dependencies]
|
|
pytest = "^8.2"
|
|
coverage = "^7.5"
|
|
black = "^24.3"
|
|
pip-audit = "^2.7"
|
|
pytest-xdist = "^3.5"
|
|
hypothesis = "^6.98"
|
|
freezegun = "^1.5"
|
|
toga-dummy = ">=0.5.2"
|
|
Pillow = "^12.1.1"
|
|
|
|
[tool.poetry.scripts]
|
|
seedpass = "seedpass.cli:app"
|
|
seedpass-gui = "seedpass_gui.app:main"
|
|
|
|
[tool.mypy]
|
|
python_version = "3.11"
|
|
strict = true
|
|
mypy_path = "src"
|
|
|
|
[tool.pytest.ini_options]
|
|
markers = [
|
|
"network: tests that require network access",
|
|
"determinism: tests that lock deterministic artifact derivation behavior",
|
|
]
|
|
filterwarnings = [
|
|
"ignore:'imghdr' is deprecated and slated for removal in Python 3.13:DeprecationWarning:pgpy.constants",
|
|
"ignore:'imghdr' is deprecated and will be removed in Python 3.13:DeprecationWarning:src.tests.test_imghdr_stub",
|
|
"ignore:'imghdr' is deprecated and will be removed in Python 3.13:DeprecationWarning",
|
|
"ignore:Pack.padding_top is deprecated. Use Pack.margin_top instead.:DeprecationWarning",
|
|
"ignore:Pack.padding is deprecated. Use Pack.margin instead.:DeprecationWarning",
|
|
]
|
|
|
|
[tool.briefcase]
|
|
project_name = "SeedPass"
|
|
bundle = "io.seedpass"
|
|
version = "0.1.0"
|
|
|
|
[tool.briefcase.app.seedpass-gui]
|
|
formal-name = "SeedPass"
|
|
description = "Deterministic password manager with a BeeWare GUI"
|
|
sources = ["src/seedpass_gui"]
|
|
requires = [
|
|
"toga-core>=0.5.2",
|
|
"colorama>=0.4.6",
|
|
"termcolor>=1.1.0",
|
|
"cryptography>=50.0.0",
|
|
"bip-utils>=2.5.0",
|
|
"bech32==1.2.0",
|
|
"coincurve>=18.0.0",
|
|
"mnemonic",
|
|
"aiohttp>=3.14.3",
|
|
"bcrypt",
|
|
"portalocker>=2.8",
|
|
"nostr-sdk>=0.43,<0.44",
|
|
"websocket-client==1.7.0",
|
|
"websockets>=15.0.0",
|
|
"tomli",
|
|
"pgpy==0.6.0",
|
|
"pyotp>=2.8.0",
|
|
"pyperclip",
|
|
"qrcode>=8.2",
|
|
"typer>=0.12.3",
|
|
"fastapi>=0.141.1",
|
|
"uvicorn>=0.35.0",
|
|
"httpx>=0.28.1",
|
|
"requests>=2.33.0",
|
|
"python-multipart>=0.0.31",
|
|
"orjson>=3.11.5",
|
|
"argon2-cffi",
|
|
"pycryptodome>=3.20.0,<4",
|
|
]
|
|
icon = "logo/png/SeedPass-Logo-24.png"
|
|
license = { file = "LICENSE" }
|
|
|
|
[build-system]
|
|
requires = ["poetry-core"]
|
|
build-backend = "poetry.core.masonry.api"
|