-
Notifications
You must be signed in to change notification settings - Fork 3.4k
Update CONTRIBUTING.md #15260
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update CONTRIBUTING.md #15260
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -10,26 +10,38 @@ We do all of NeMo's development in the open. Contributions from NeMo community a | |
| 1) Make sure your PR does one thing. Have a clear answer to "What does this PR do?". | ||
| 2) Read General Principles and style guide below | ||
| 3) Make sure you sign your commits. E.g. use ``git commit -s`` when before your commit | ||
| 4) Make sure all unittests finish successfully before sending PR ``pytest`` or (if yor dev box does not have GPU) ``pytest --cpu`` from NeMo's root folder | ||
| 4) Make sure relevant unittests finish successfully before sending PR | ||
| 5) Send your PR and request a review | ||
|
|
||
| ## Unit tests | ||
| Quick tests (locally, while developing) | ||
| ``` | ||
| pytest | ||
| # If you don't have NVIDIA GPU do: | ||
| # pytest --cpu | ||
| # pytest -m "not pleasefixme" --cpu path/to/relevant_tests | ||
| ``` | ||
| Full tests, including pre-trained model downloads | ||
| ``` | ||
| pytest --with_downloads | ||
| pytest -m "not pleasefixme" --with_downloads path/to/relevant_tests | ||
| ``` | ||
|
|
||
| Replace `path/to/relevant_tests` with the test directory to run such as `tests/collections/asr`. Check the test scripts in `tests/functional_tests` | ||
| tht begin with `L0_Unit_Tests_` for the specific test configuration used by different parts of the unit test suite. Different suites may expect | ||
| different environment variables to be set. | ||
|
|
||
| ## Running the Github CI | ||
|
|
||
| The CI tests are not ran automatically when the PR is opened. When ready, add the "Run CICD" label to the PR. To re-run CI remove and add the label again. | ||
| To run CI for external contributors, a user with write access to the repo must also approve the Github CI to run. Approving the CI to run for external | ||
| contributors is different from approving the PR change to be merged. | ||
|
|
||
| The CI test suites are selectively ran based on the files that are changed. In some cases, no tests may be ran such as when docs are updated. | ||
|
|
||
| Lint checks using flake8 and pylint are ran on the code based on the files that were changed. Please resolve any lint errors. It is possible but discouraged | ||
| to ignore the lint errors by adding the "skip-linting" label to the PR. | ||
|
|
||
| ## Whom should you ask for review: | ||
| 1. For changes to NeMo's core: @ericharper, @titu1994, @blisc, or @okuchaiev | ||
| 1. For changes to NeMo's ASR collection: @titu1994, @redoctopus, @jbalam-nv, or @okuchaiev | ||
| 1. For changes to NeMo's NLP collection: @MaximumEntropy, @ericharper, @ekmb, @yzhang123, @VahidooX, @vladgets, or @okuchaiev | ||
| 1. For changes to NeMo's TTS collection: @blisc, or @okuchaiev | ||
| Tag @nithinraok or @blisc initially for a review. | ||
|
||
|
|
||
| Note that some people may self-assign to review your PR - in which case, please wait for them to add a review. | ||
|
|
||
|
|
@@ -57,7 +69,7 @@ Your pull requests must pass all checks and peer-review before they can be merg | |
|
|
||
| ## Python style | ||
| We use ``black`` as our style guide. To check whether your code will pass style check (from the NeMo's repo folder) run: | ||
| ``python setup.py style`` and if it does not pass run ``python setup.py style --fix``. | ||
| ``python setup.py style --scope path/to/changed/files`` and if it does not pass run ``python setup.py style --scope path/to/changed/files --fix``. | ||
|
|
||
| 1. Include docstrings for every class and method exposed to the user. | ||
| 1. Use Python 3 type hints for every class and method exposed to the user. | ||
|
|
@@ -75,5 +87,5 @@ We use ``black`` as our style guide. To check whether your code will pass style | |
|
|
||
| # Collections | ||
| Collection is a logical grouping of related Neural Modules. It is a grouping of modules that share a domain area or semantics. | ||
| When contributing module to a collection, please make sure it belongs to that category. | ||
| If you would like to start a new one and contribute back to the platform, you are very welcome to do so. | ||
| When contributing module to a collection, please make sure it belongs to that category. | ||
| If you would like to start a new one and contribute back to the platform, you are very welcome to do so. | ||
Uh oh!
There was an error while loading. Please reload this page.