Context
adpentest_onefile.py (11,489 lines, 479 KB) exposes the full public API in one importable module. Useful for:
Drop-in usage inside restricted environments (no pip)
Embedding in incident-response toolkits carried on USB
Running from a single python3 file.py-style entrypoint
Question
Where should it live?
Options
Repo root only (today) — user clones the repo to get it. Simple, no packaging change.
GitHub Release asset — attached to each v* tag automatically (Automate onefile build in CI #40 ). Downloadable without cloning.
PyPI extra — pip install adpentest[onefile] copies it to a known location. Unusual; PyPI is for packages, not single files.
Separate PyPI package adpentest-single — mirrors the pattern used by black/ruff bundles. More release overhead.
Concerns
If we ship it via GitHub Release, we need CI (Automate onefile build in CI #40 ) to guarantee it matches the tagged core
Consumers of the onefile lose python -m adpentest — do we need to add an if __name__ == "__main__": raise SystemExit(main()) block?
License/attribution stays MIT either way
Preferences?
Context
adpentest_onefile.py(11,489 lines, 479 KB) exposes the full public API in one importable module. Useful for:pip)python3 file.py-style entrypointQuestion
Where should it live?
Options
v*tag automatically (Automate onefile build in CI #40). Downloadable without cloning.pip install adpentest[onefile]copies it to a known location. Unusual; PyPI is for packages, not single files.adpentest-single— mirrors the pattern used byblack/ruffbundles. More release overhead.Concerns
python -m adpentest— do we need to add anif __name__ == "__main__": raise SystemExit(main())block?Preferences?