Set up Python project scaffolding and dev commands - #1
Merged
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
init,install-dependencies,test,quality-check,format,build.scripts/quality-check.shon 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.shinit.shon a clean clone, thentest.sh,format.sh, andbuild.sh. Confirmed the scripts work from a subdirectory and that the pre-commit hook fires.Checklist
Notes for Reviewers
.minigit/is gitignored, so dogfooding minigit later will not commit its own object store into Git.