PR = Pull Request
Important Note: Please include (#wimlds) in your PR commit message so we can track them.
conda create -n sklearndev numpy scipy matplotlib pytest sphinx cython ipykernel
source activate sklearndev
Fork repo: https://github.com/scikit-learn/scikit-learn
my example
git clone https://github.com/reshamas/scikit-learn.git
my example
cd scikit-learn
git remote add upstream https://github.com/scikit-learn/scikit-learn.git
my example
origin https://github.com/reshamas/scikit-learn.git (fetch)
origin https://github.com/reshamas/scikit-learn.git (push)
upstream https://github.com/scikit-learn/scikit-learn.git (fetch)
upstream https://github.com/scikit-learn/scikit-learn.git (push)
git pull upstream master
git fetch https://github.com/theirusername/reponame.git theirbranch:ourbranch
pip install -e .
Note: this will overwrite existing installations Reference: "Editable" Installs
- Pick an issue to work on: https://github.com/scikit-learn/scikit-learn/issues
- Comment on issue with: I'm working on this
- Explore and fix issue. This will take the majority of time (!)
- Make updates to file
<file_name>
git checkout -b <feature_branch>
Please include (#wimlds) in your PR so we can track them.
git add <file_name>
git commit -m 'description for fix (#wimlds)'
flake8
tests for formatting errors
flake8 <file_name>
- The full test suite takes fairly long to run
- Run tests
pytest sklearn
This is an example of the output of a successful pytest sklearn
: pytest_sklearn_output
- Create test file under
tests
directory - Run test file
pytest <test_file>
example
pytest /Users/reshamashaikh/scikit-learn/sklearn/metrics/tests/test_classifier.py
pytest /Users/reshamashaikh/scikit-learn/sklearn/metrics/tests/test_mixture.py
This is an example of the output of a successful pytest test_classification.py
:
(sklearndev) % pytest sklearn/metrics/tests/test_classification.py
============================================================ test session starts ============================================================
platform darwin -- Python 3.7.1, pytest-4.0.0, py-1.7.0, pluggy-0.8.0
rootdir: /Users/reshamashaikh/scikit-learn, inifile: setup.cfg
collected 75 items
sklearn/metrics/tests/test_classification.py ........................................................................... [100%]
=================================================== 75 passed, 3 warnings in 9.49 seconds ===================================================
(sklearndev) %
test_file
should be committed to feature branch as well
git add <test_file>
git commit -m 'description for test file'
git push origin <feature_branch>
Do this on GitHub.
These tests happen automatically after a PR has been submitted:
This is what it looks like when all the checks have passed!
- Wait for reviews (be patient)
- Address review comments in the same branch
- Pushing to your fork will update the PR
- Reviewers will "approve" the PR or change title to [MRG + 1]
- You need 2 approvals for a merge
This is what a merged icon looks like: