netanelcyber / netanelcyber/AdPentestAI-Python

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

Open
#45 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

discussion
Dominant language
Python
Stars
5
Forks
2
Avg merge
22h 25m
Merged PRs (30d)
7

Description

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 (#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 (#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?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Review adpentest_onefile.py and the four distribution options, then inspect CI issue #40 and the existing python -m adpentest entrypoint. The discussion needs a decision on where the single-file build should ship and whether standalone execution is required; done means one option is selected with its release and packaging requirements recorded.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
build-system, release
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.