Files
ops-warden/pyproject.toml
tegwick 0b3486af9e fix(cli): bundle registry into wheel so installed warden works outside the repo
issue-core flagged the installed `warden` lacked the `route` subcommand. Two causes:

1. uv reused a cached wheel (version stayed 0.1.0) so the installed warden.cli was
   stale. Documented the cache-clean + --reinstall fix in ADHOC-2026-06-27.
2. Even rebuilt, route/access/policy were unusable outside a checkout because the
   routing catalog + posture descriptors live in registry/ at repo root, outside the
   package. Bundle registry/ into the wheel (hatch force-include -> warden/_registry)
   and add a packaged-data fallback in find_catalog_path / find_posture_path after the
   repo walk, so source runs still prefer the repo's registry/ (single source of truth).

Verified `warden route list` / `warden policy list` work from /tmp. 200 tests, lint clean.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 19:40:14 +02:00

44 lines
1.1 KiB
TOML

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "ops-warden"
version = "0.1.0"
description = "SSH CA and certificate lifecycle manager for ops actors"
requires-python = ">=3.11"
dependencies = [
"typer[all]>=0.12",
"pyyaml>=6.0",
"httpx>=0.27",
]
[project.scripts]
warden = "warden.cli:app"
ops-ssh-wrapper = "warden.scripts.ops_ssh_wrapper:main"
[tool.hatch.build.targets.wheel]
packages = ["src/warden"]
# Bundle the routing catalog + posture descriptors inside the package so the
# installed CLI (`warden route` / `access` / `policy`) works from any cwd, not only
# from a checkout. Source runs still prefer the repo's registry/ (single source of
# truth); the bundled copy is the fallback resolved by find_catalog_path/find_posture_path.
[tool.hatch.build.targets.wheel.force-include]
"registry" = "warden/_registry"
[tool.pytest.ini_options]
testpaths = ["tests"]
pythonpath = ["src"]
addopts = "-m 'not integration'"
markers = ["integration: requires ssh-keygen binary; run with pytest -m integration"]
[tool.ruff]
line-length = 88
[dependency-groups]
dev = [
"pytest>=8.0",
"ruff>=0.4",
]