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>
37 lines
1.6 KiB
TOML
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",
|
|
]
|