| # Contributing to Facebook AI Research Sequence-to-Sequence Toolkit (fairseq) | |
| We want to make contributing to this project as easy and transparent as | |
| possible. | |
| ## Pull Requests | |
| We actively welcome your pull requests. | |
| 1. Fork the repo and create your branch from `main`. | |
| 2. If you've added code that should be tested, add tests. | |
| 3. If you've changed APIs, update the documentation. | |
| 4. Ensure the test suite passes. | |
| 5. Make sure your code lints. | |
| 6. If you haven't already, complete the Contributor License Agreement ("CLA"). | |
| ## Contributor License Agreement ("CLA") | |
| In order to accept your pull request, we need you to submit a CLA. You only need | |
| to do this once to work on any of Facebook's open source projects. | |
| Complete your CLA here: <https://code.facebook.com/cla> | |
| ## Issues | |
| We use GitHub issues to track public bugs. Please ensure your description is | |
| clear and has sufficient instructions to be able to reproduce the issue. | |
| ## License | |
| By contributing to Facebook AI Research Sequence-to-Sequence Toolkit (fairseq), | |
| you agree that your contributions will be licensed under the LICENSE file in | |
| the root directory of this source tree. | |
| ## Pre-commit hooks | |
| In order to ensure your code lints, there are pre-commit hooks configured in the repository which you can install. | |
| After installation, they will automatically run each time you commit. | |
| An abbreviated guide is given below; for more information, refer to [the offical pre-commit documentation](https://pre-commit.com/). | |
| ### Installation | |
| ``` | |
| pip install pre-commit | |
| pre-commit install | |
| ``` | |
| ### Usage | |
| Just commit your changes: | |
| ``` | |
| git commit -m "My informative commit message" | |
| ``` | |
| If there was a failure, you will get feedback | |
| ``` | |
| [INFO] Initializing environment for https://github.com/PyCQA/flake8. | |
| [INFO] Installing environment for https://github.com/pre-commit/pre-commit-hooks. | |
| [INFO] Once installed this environment will be reused. | |
| [INFO] This may take a few minutes... | |
| [INFO] Installing environment for https://github.com/PyCQA/flake8. | |
| [INFO] Once installed this environment will be reused. | |
| [INFO] This may take a few minutes... | |
| Trim Trailing Whitespace.................................................Failed | |
| - hook id: trailing-whitespace | |
| - exit code: 1 | |
| - files were modified by this hook | |
| Fixing examples/nllb/modeling/wmt15_benchmark/eval_langs2.sh | |
| Fix End of Files.........................................................Failed | |
| - hook id: end-of-file-fixer | |
| - exit code: 1 | |
| - files were modified by this hook | |
| Fixing examples/few_shot/scripts/schedule_jobs_few_shot.py | |
| flake8...................................................................Passed | |
| ``` | |
| Certain hooks modify your files to comply. | |
| To include these modifications, you will need to add them (i.e. `git add ...`) and commit again. | |
| If all is well, you should see something like: | |
| ``` | |
| Trim Trailing Whitespace.................................................Passed | |
| Fix End of Files.........................................................Passed | |
| flake8...................................................................Passed | |
| [gshard-fix-ci 8698644e1] Fix lint, add pre-commit hooks | |
| 10 files changed, 148 insertions(+), 110 deletions(-) | |
| create mode 100644 .flake8 | |
| create mode 100644 .pre-commit-config.yaml | |
| rename examples/nllb/modeling/wmt15_benchmark/{eval_langs2.py => eval_langs2.sh} (99%) | |
| ``` | |