diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index e56d0d05e0c2..355e5539394a 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -3,7 +3,7 @@ name: Feature request about: Suggest an idea for this project title: '' labels: feature request -assignees: okuchaiev +assignees: '' --- diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 621a37a171b7..7fc0d739d256 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -10,7 +10,7 @@ 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 @@ -18,18 +18,30 @@ 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` +that 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 +Please tag @nithinraok for NeMo core and ASR related PRs and @blisc for TTS related PRs. 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.