Contributing
Contributions are welcome. This page is the short version; the binding
document is CONTRIBUTING.md in the
repository root, and participation is governed by the
Code of Conduct.
Ground rules
No new runtime dependencies. The tool must stay importable with the standard library alone. Dev-time tools (pytest, Sphinx) are fine.
Options are declared once. Add flags through
tn_venv/config/spec.py, never by hand-editing the parser.Behavior changes need tests. Unit tests for logic; one integration test when a subprocess boundary is crossed. See Testing.
Docs are part of the feature. A flag that is not in CLI reference does not exist as far as users are concerned.
Workflow
$ git clone https://github.com/tokenoodle-everything/tn-venv.git
$ cd tn-venv
$ tn-venv .venv --with pytest # dogfood: create the dev env with tn-venv itself
$ .venv\Scripts\activate.bat # or: source .venv/bin/activate
$ python -m pytest
Branch from master, keep commits focused, and end the PR description with
a summary of behavioral changes so the changelog can be updated.
Reporting bugs
Open an issue with:
the exact command line (or
create_venv()call);tn-venv --versionand the host platform;the failing output, re-run with
-vvso the failing subprocess and its output are visible.
For security issues, do not open a public issue — see Security policy.