You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Adopt a top-level repo task runner which knows when to run different tasks to achieve desired goals. Use in CI, and document for local development.
Motivation
This repo's development workflow will take as inputs on a given PR:
human-authored TOML, YAML, etc.
templates to generate packages/documentation
narrative documentation
build dependencies
And generate as outputs:
canonical JSON in
documentation as HTML (and PDF, etc)
checking reports (e.g. links, grammar, spelling)
multiple language/framework-specific packages
distributions
test reports
coverage reports
documentation
Proposal
make is fine, but is still complex to operate in 2024 for windows users. Indeed, even pre-commit (or one of its many plugins) make non-portable assumptions, and "I can't even commit," isn't a very nice feature for a new/drive-by contributor.
If indeed the top level of the repo will be (at least) a canonical, no- or one-dependency python project, I'd recommend starting with doit, where the repo would contain a top-level dodo.py (or any other file, as configured in pyproject.toml).
Elevator Pitch
Adopt a top-level repo task runner which knows when to run different tasks to achieve desired goals. Use in CI, and document for local development.
Motivation
This repo's development workflow will take as inputs on a given PR:
And generate as outputs:
Proposal
make
is fine, but is still complex to operate in 2024 for windows users. Indeed, evenpre-commit
(or one of its many plugins) make non-portable assumptions, and "I can't even commit," isn't a very nice feature for a new/drive-by contributor.If indeed the top level of the repo will be (at least) a canonical, no- or one-dependency python project, I'd recommend starting with doit, where the repo would contain a top-level
dodo.py
(or any other file, as configured inpyproject.toml
).Example
Given a layout like:
And a preflight such as:
And the
dodo.py
:Running
doit validate
would:.schema.json
come into existence, as eachvalidate
task depends on the output of abuild
taskProvided the above is true, running
doit validate
again wouldn't do anything.This approach would be extended to:
format
with e.g.prettier
,taplo
,ruff
lint
as above, but alsoyamllint
, etc.dist
initially justpyproject-build .
, but eventually many moredocs
with sphinx is fine, but the existing schema are... lackingcheck
withpytest-check-links
The text was updated successfully, but these errors were encountered: