facebookresearch / facebookresearch/nevergrad
Recurrent tasks - Good first issue
- Dominant language
- Python
- Stars
- 4.2k
- Forks
- 371
- PR merge metrics
- No merged PRs in 30d
Description
The following are tasks that should be performed regularly and can each be good first issues for anyone willing to start playing with the codebase. Let us know here if you want to tackle one of these, and we'll be happy to help if you need it!
Many of those tasks are based on the unit tests. The latest tests run on CircleCI are visible [here](https://circleci.com/gh/facebookresearch/nevergrad/tree/master). You can click on the latest build to view one report.
Unit tests can be executed with `pytest nevergrad --durations=20 --cov=nevergrad`
On a side note, feel free to join the Facebook's [Nevergrad Users group](https://www.facebook.com/groups/nevergradusers/).
## Remove warnings in tests
Check the warnings on the `[all] Run pytest` tab of CircleCI or after running pytest yourself (see above). Removing the warnings can mean updating the code to use new methods, or just filtering them out if the warning is to be expected.
## Improve coverage
Check the coverage report at the end of the `[all] Run pytest` tab of CircleCI or after running pytest yourself (see above). Files with low coverage ratio probably need more unit tests.
## Fasten unit tests
Check the slowest unit tests at the very end of the `[all] Run pytest` tab of CircleCI or after running pytest yourself (see above). Tests which take more that 5s should be essential or have a good reason to be that slow. Consider testing the same thing differently if it can make testing faster (eg: mocking some part of the function, avoiding repetitions etc)
## Enable strict type checking
If running `mypy --implicit-reexport --strict --ignore-missing-imports nevergrad` returns errors, then we should fix them. Most of the time this means adding type hints, but sometimes this may also mean adding `# type: ignore` because it would be too complicated (and unnecessary) to do better (eg: many `numpy` functions are not typed, so we must enforce the type even though `mypy` complains). Also, some parts of the code are not type checked yet (see [mypy.ini](https://github.com/facebookresearch/nevergrad/blob/master/mypy.ini)), and could be updated.
Contributor guide
Research direction
Start by running `pytest nevergrad --durations=20 --cov=nevergrad` and review the CircleCI `[all] Run pytest` report. Choose one focused task: remove a warning, add coverage, speed up a test taking over five seconds, or address an error from `mypy --implicit-reexport --strict --ignore-missing-imports nevergrad`. Done means the selected issue is resolved and the relevant checks pass.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- testing, tooling
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100