Streamline contributing experience
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 17.9k
- Forks
- 7.3k
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 13
Description
Related to #5167.
The largest part of our contribution guidelines explain contributors how to work on torchvision. Due to sheer amount of techniques and tools that can be quite overwhelming for a new contributor.
I'm going to use $TOOL as a placeholder for what I imagine:
$TOOL install: Installstorchfrom nightlies and buildstorchvisionin the current environment$TOOL format: Runs autoformatters$TOOL lint: Runs linters$TOOL test: Runs tests$TOOL docs: Builds documentation
There are a couple of tools out there that do this. Of the top of my head we could use pydoit, tox, or simply make. AFAIK, all of them allow parametrization of the top-level commands so we can provide sensible default while not losing flexibility. For example, $TOOL test will run all tests by default, but dispatches additional arguments directly to pytest.
I can do more in depth research about the tools and which would be the best fit for us if we see this proposal as net-benefit in general.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with CONTRIBUTING.md and the related issue #5167 to understand the current contribution workflow. Compare pydoit, tox, and make against the proposed install, format, lint, test, and docs commands; done means a chosen approach and its implementation are documented with sensible defaults and argument forwarding.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- developer-experience, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 28/100