Skip to content

[Discussion] Ship the single-file build as a PyPI extra or a separate release asset? #45

Description

@netanelcyber

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

  1. Repo root only (today) — user clones the repo to get it. Simple, no packaging change.
  2. GitHub Release asset — attached to each v* tag automatically (Automate onefile build in CI #40). Downloadable without cloning.
  3. PyPI extrapip install adpentest[onefile] copies it to a known location. Unusual; PyPI is for packages, not single files.
  4. 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?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions