Skip to content

Set up Python project scaffolding and dev commands - #1

Merged
aman-a-shah merged 4 commits into
mainfrom
setup/project-scaffold
Aug 13, 2026
Merged

Set up Python project scaffolding and dev commands#1
aman-a-shah merged 4 commits into
mainfrom
setup/project-scaffold

Conversation

@aman-a-shah

Copy link
Copy Markdown
Collaborator

Summary

  • Adapts the template's example Node.js tooling to Python.
  • Adds the package skeleton, shared error types, and a CLI entry point.
  • Adds dev commands: init, install-dependencies, test, quality-check, format, build.
  • Points CI at scripts/quality-check.sh on Python 3.11.

No VCS logic is implemented. Module files are placeholders with ownership and dependencies documented, so each owner starts from the interface contract.

Validation

  • scripts/quality-check.sh
  • Manual testing, if applicable: ran init.sh on a clean clone, then test.sh, format.sh, and build.sh. Confirmed the scripts work from a subdirectory and that the pre-commit hook fires.

Checklist

  • The change is focused and easy to review.
  • Tests were added or updated for behavior changes.
  • Documentation was updated for user-facing or setup changes.
  • No secrets, generated artifacts, or local-only files are included.

Notes for Reviewers

  • The pre-commit hook runs lint and formatting only, not tests, so committing stays fast. Tests still run in CI.
  • CI pins 3.11 because that is the minimum supported version. Anything that passes there passes on newer versions.
  • .minigit/ is gitignored, so dogfooding minigit later will not commit its own object store into Git.

Adapt the template's Node.js tooling to Python:

- pyproject.toml with the minigit package, a `minigit` console script,
  and ruff/pytest config. No runtime dependencies, per the project
  constraint that core logic is written from scratch.
- Package skeleton: shared error types, a CLI entry point with a single
  registration point for subcommands, and one file per module with its
  ownership and dependencies documented.
- Dev commands in scripts/: init, install-dependencies, test,
  quality-check, format, build. All resolve .venv themselves and work
  from any directory.
- CI runs scripts/quality-check.sh on Python 3.11, the minimum
  supported version.
- Pre-commit runs lint and formatting only; tests run in CI.
Branch protection rules and rulesets both require a paid plan on private
repositories, and cssu is on GitHub Free. Document the intended rules,
the two ways to unblock them, and correct the README, which claimed main
was already protected.
The repository is now public, which lifts the GitHub Free restriction on
protecting private repositories. Applied the intended rules, squash-only
merging, and automatic head branch deletion. Documented why the
repository is public and that nothing secret belongs in it.
@aman-a-shah
aman-a-shah merged commit 83890d9 into main Aug 13, 2026
1 check passed
@aman-a-shah
aman-a-shah deleted the setup/project-scaffold branch August 13, 2026 03:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant