pytorch / pytorch/vision

Streamline contributing experience

Open
#5,168 6 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

needs discussion
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: Installs torch from nightlies and builds torchvision in 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.