jobbsok/pyproject.toml
Kjell Tore Guttormsen 58db24ba24 fix(package): include pyproject.toml so an installed copy can bootstrap
scripts/bootstrap.py resolves --group against <repo-root>/pyproject.toml,
but package_plugin.py's INCLUDE tuple never shipped that file. An archive
built and unpacked elsewhere could never bootstrap (F1). Verify: built an
archive with package_plugin.py, unpacked it to a tmp dir, ran
scripts/bootstrap.py against the unpacked copy -- "bootstrap: guard 1.3.0"
/ "bootstrap: ok", exit 0. Also fixed two stale pyproject.toml comments
still naming the pre-port scripts/bootstrap.sh.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-06 15:43:25 +02:00

37 lines
1.6 KiB
TOML

# Toolchain contract for the jobbsok plugin (plan Step 2).
#
# This is deliberately NOT an installable distribution. Nothing here needs a
# build backend: the tests import from `scripts/` via pytest's `pythonpath`,
# and the dependencies are declared as a PEP 735 dependency group that
# `scripts/bootstrap.py` installs with `pip install --group dev`. Adding a
# build backend would buy a packaging step this repo never uses.
[dependency-groups]
dev = [
"pytest>=8",
"pytest-socket",
# Pinned to an exact tag, and not vendored under any circumstances. The
# guard is the trust boundary for M3 ingestion; a floating version is not
# a boundary. A tag that cannot be resolved blocks M3 -- it is not a cue
# to substitute a different one.
"llm-ingestion-guard @ git+https://git.fromaitochitta.com/open/llm-ingestion-pipeline-security.git@v1.3.0",
]
# Optional extra, installed by `scripts/bootstrap.py --med-xlsx`. Declared here
# so the spreadsheet export path is reachable on a clean bootstrap instead of
# being asserted against a library nothing installs.
xlsx = [
"openpyxl",
]
[tool.pytest.ini_options]
testpaths = ["tests"]
pythonpath = ["scripts"]
# --disable-socket makes the offline guarantee enforced rather than intended:
# any test that opens a socket fails instead of quietly reaching the network.
# --strict-markers means an undeclared marker is an error, which is why
# `network` is declared below -- without it, `-m 'not network'` would itself
# be the error.
addopts = "-q --strict-markers --disable-socket -m 'not network'"
markers = [
"network: test needs real network access; deselected by default and never run in CI",
]