8000 DOC Shorten and improve CONTRIBUTING.md (#12801) · scikit-learn/scikit-learn@552a88e · GitHub
[go: up one dir, main page]

Skip to content

Commit 552a88e

Browse files
Reshama Shaikhadrinjalali
Reshama Shaikh
authored andcommitted
DOC Shorten and improve CONTRIBUTING.md (#12801)
* Reuse intro from contributing.rst * Removed content already on rst Simplified CONTRIBUTING.md by removing content that already exists in contributing.rst. Added Code of Conduct reference as seen in a few other CONTRIBUTING.md of popular libraries. * Update contributing.rst In shortening `CONTRIBUTING.md`, material deleted from `how to contribute` section are added onto `contributing.rst` if it doens't exist on the latter. * added full link to .rst file + removed 'Full' in 'Full Docum...'
1 parent 4a7075a commit 552a88e

File tree

2 files changed

+85
-277
lines changed

2 files changed

+85
-277
lines changed

CONTRIBUTING.md

Lines changed: 38 additions & 244 deletions
Original file line numberDiff line numberDiff line change
@@ -2,247 +2,41 @@
22
Contributing to scikit-learn
33
============================
44

5-
**Note: This document is a 'getting started' summary for contributing code,
6-
documentation, testing, and filing issues.** Visit the [**Contributing
7-
page**](http://scikit-learn.org/dev/developers/contributing.html)
8-
for the full contributor' 8000 s guide. Please read it carefully to help make
9-
the code review process go as smoothly as possible and maximize the
10-
likelihood of your contribution being merged.
11-
12-
How to contribute
13-
-----------------
14-
15-
The preferred workflow for contributing to scikit-learn is to fork the
16-
[main repository](https://github.com/scikit-learn/scikit-learn) on
17-
GitHub, clone, and develop on a branch. Steps:
18-
19-
1. Fork the [project repository](https://github.com/scikit-learn/scikit-learn)
20-
by clicking on the 'Fork' button near the top right of the page. This creates
21-
a copy of the code under your GitHub user account. For more details on
22-
how to fork a repository see [this guide](https://help.github.com/articles/fork-a-repo/).
23-
24-
2. Clone your fork of the scikit-learn repo from your GitHub account to your local disk:
25-
26-
```bash
27-
$ git clone git@github.com:YourLogin/scikit-learn.git
28-
$ cd scikit-learn
29-
```
30-
31-
3. Create a ``feature`` branch to hold your development changes:
32-
33-
```bash
34-
$ git checkout -b my-feature
35-
```
36-
37-
Always use a ``feature`` branch. It's good practice to never work on the ``master`` branch!
38-
39-
4. Develop the feature on your feature branch. Add changed files using ``git add`` and then ``git commit`` files:
40-
41-
```bash
42-
$ git add modified_files
43-
$ git commit
44-
```
45-
46-
to record your changes in Git, then push the changes to your GitHub account with:
47-
48-
```bash
49-
$ git push -u origin my-feature
50-
```
51-
52-
5. Follow [these instructions](https://help.github.com/articles/creating-a-pull-request-from-a-fork)
53-
to create a pull request from your fork. This will send an email to the committers.
54-
55-
(If any of the above seems like magic to you, please look up the
56-
[Git documentation](https://git-scm.com/documentation) on the web, or ask a friend or another contributor for help.)
57-
58-
Pull Request Checklist
59-
----------------------
60-
61-
We recommended that your contribution complies with the
62-
following rules before you submit a pull request:
63-
64-
- Follow the
65-
[coding-guidelines](http://scikit-learn.org/dev/developers/contributing.html#coding-guidelines).
66-
67-
- Use, when applicable, the validation tools and scripts in the
68-
`sklearn.utils` submodule. A list of utility routines available
69-
for developers can be found in the
70-
[Utilities for Developers](http://scikit-learn.org/dev/developers/utilities.html#developers-utils)
71-
page.
72-
73-
- Give your pull request a helpful title that summarises what your
74-
contribution does. In some cases `Fix <ISSUE TITLE>` is enough.
75-
`Fix #<ISSUE NUMBER>` is not enough.
76-
77-
- Often pull requests resolve one or more other issues (or pull requests).
78-
If merging your pull request means that some other issues/PRs should
79-
be closed, you should
80-
[use keywords to create link to them](https://github.com/blog/1506-closing-issues-via-pull-requests/)
81-
(e.g., `Fixes #1234`; multiple issues/PRs are allowed as long as each one
82-
is preceded by a keyword). Upon merging, those issues/PRs will
83-
automatically be closed by GitHub. If your pull request is simply related
84-
to some other issues/PRs, create a link to them without using the keywords
85-
(e.g., `See also #1234`).
86-
87-
- All public methods should have informative docstrings with sample
88-
usage presented as doctests when appropriate.
89-
90-
- Please prefix the title of your pull request with `[MRG]` (Ready for
91-
Merge), if the contribution is complete and ready for a detailed review.
92-
Two core developers will review your code and change the prefix of the pull
93-
request to `[MRG + 1]` and `[MRG + 2]` on approval, making it eligible
94-
for merging. An incomplete contribution -- where you expect to do more work before
95-
receiving a full review -- should be prefixed `[WIP]` (to indicate a work
96-
in progress) and changed to `[MRG]` when it matures. WIPs may be useful
97-
to: indicate you are working on something to avoid duplicated work,
98-
request broad review of functionality or API, or seek collaborators.
99-
WIPs often benefit from the inclusion of a
100-
[task list](https://github.com/blog/1375-task-lists-in-gfm-issues-pulls-comments)
101-
in the PR description.
102-
103-
- All other tests pass when everything is rebuilt from scratch. On
104-
Unix-like systems, check with (from the toplevel source folder):
105-
106-
```bash
107-
$ make
108-
```
109-
110-
- When adding additional functionality, provide at least one
111-
example script in the ``examples/`` folder. Have a look at other
112-
examples for reference. Examples should demonstrate why the new
113-
functionality is useful in practice and, if possible, compare it
114-
to other methods available in scikit-learn.
115-
116-
- Documentation and high-coverage tests are necessary for enhancements to be
117-
accepted. Bug-fixes or new features should be provided with
118-
[non-regression tests](https://en.wikipedia.org/wiki/Non-regression_testing).
119-
These tests verify the correct behavior of the fix or feature. In this
120-
manner, further modifications on the code base are granted to be consistent
121-
with the desired behavior.
122-
For the Bug-fixes case, at the time of the PR, this tests should fail for
123-
the code base in master and pass for the PR code.
124-
125-
126-
- At least one paragraph of narrative documentation with links to
127-
references in the literature (with PDF links when possible) and
128-
the example.
129-
130-
- The documentation should also include expected time and space
131-
complexity of the algorithm and scalability, e.g. "this algorithm
132-
can scale to a large number of samples > 100000, but does not
133-
scale in dimensionality: n_features is expected to be lower than
134-
100".
135-
136-
You can also check for common programming errors with the following
137-
tools:
138-
139-
- Code with good unittest **coverage** (at least 80%), check with:
140-
141-
```bash
142-
$ pip install pytest pytest-cov
143-
$ pytest --cov sklearn path/to/tests_for_package
144-
```
145-
146-
- No flake8 warnings, check with:
147-
148-
```bash
149-
$ pip install flake8
150-
$ flake8 path/to/module.py
151-
```
152-
153-
Bonus points for contributions that include a performance analysis with
154-
a benchmark script and profiling output (please report on the mailing
155-
list or on the GitHub issue).
156-
157-
Filing bugs
158-
-----------
159-
We use GitHub issues to track all bugs and feature requests; feel free to
160-
open an issue if you have found a bug or wish to see a feature implemented.
161-
162-
It is recommended to check that your issue complies with the
163-
following rules before submitting:
164-
165-
- Verify that your issue is not being currently addressed by other
166-
[issues](https://github.com/scikit-learn/scikit-learn/issues?q=)
167-
or [pull requests](https://github.com/scikit-learn/scikit-learn/pulls?q=).
168-
169-
- If you are submitting an algorithm or feature request, please verify that
170-
the algorithm fulfills our
171-
[new algorithm requirements](http://scikit-learn.org/dev/faq.html#what-are-the-inclusion-criteria-for-new-algorithms).
172-
173-
- Please ensure all code snippets and error messages are formatted in
174-
appropriate code blocks.
175-
See [Creating and highlighting code blocks](https://help.github.com/articles/creating-and-highlighting-code-blocks).
176-
177-
- Please include your operating system type and version number, as well
178-
as your Python, scikit-learn, numpy, and scipy versions. This information
179-
can be found by running the following code snippet:
180-
181-
For scikit-learn >= 0.20:
182-
183-
```python
184-
import sklearn; sklearn.show_versions()
185-
```
186-
187-
For scikit-learn < 0.20:
188-
189-
```python
190-
import platform; print(platform.platform())
191-
import sys; print("Python", sys.version)
192-
import numpy; print("NumPy", numpy.__version__)
193-
import scipy; print("SciPy", scipy.__version__)
194-
import sklearn; print("Scikit-Learn", sklearn.__version__)
195-
```
196-
197-
- Please be specific about what estimators and/or functions are involved
198-
and the shape of the data, as appropriate; please include a
199-
[reproducible](https://stackoverflow.com/help/mcve) code snippet
200-
or link to a [gist](https://gist.github.com). If an exception is raised,
201-
please provide the traceback.
202-
203-
New contributor tips
204-
--------------------
205-
206-
A great way to start contributing to scikit-learn is to pick an item from the
207-
list of
208-
[good first issues](https://github.com/scikit-learn/scikit-learn/labels/good%20first%20issue). If
209-
you have already contributed to scikit-learn look at
210-
[Easy issues](https://github.com/scikit-learn/scikit-learn/labels/Easy)
211-
instead. Resolving these issues allow you to start contributing to the project
212-
without much prior knowledge. Your assistance in this area will be greatly
213-
appreciated by the more experienced developers as it helps free up their time to
214-
concentrate on other issues.
215-
216-
Documentation
217-
-------------
218-
219-
We are glad to accept any sort of documentation: function docstrings,
220-
reStructuredText documents (like this one), tutorials, etc.
221-
reStructuredText documents live in the source code repository under the
222-
doc/ directory.
223-
224-
You can edit the documentation using any text editor and then generate
225-
the HTML output by typing ``make html`` from the doc/ directory.
226-
Alternatively, ``make`` can be used to quickly generate the
227-
documentation without the example gallery. The resulting HTML files will
228-
be placed in ``_build/html/stable`` and are viewable in a web browser. See the
229-
``README`` file in the ``doc/`` directory for more information.
230-
231-
For building the documentation, you will need
232-
[sphinx](http://sphinx.pocoo.org/),
233-
[matplotlib](https://matplotlib.org/), and
234-
[pillow](https://pillow.readthedocs.io/en/latest/).
235-
236-
When you are writing documentation, it is important to keep a good
237-
compromise between mathematical and algorithmic details, and give
238-
intuition to the reader on what the algorithm does. It is best to always
239-
start with a small paragraph with a hand-waving explanation of what the
240-
method does to the data and a figure (coming from an example)
241-
illustrating it.
242-
243-
Further Information
244-
-------------------
245-
246-
Visit the [Contributing Code](http://scikit-learn.org/stable/developers/contributing.html#coding-guidelines)
247-
section of the website for more information including conforming to the
248-
API spec and profiling contributed code.
5+
There are many ways to contribute to scikit-learn, with the most common ones
6+
being contribution of code or documentation to the project. Improving the
7+
documentation is no less important than improving the library itself. If you
8+
find a typo in the documentation, or have made improvements, do not hesitate to
9+
send an email to the mailing list or preferably submit a GitHub pull request.
10+
Documentation can be found under the
11+
[doc/](https://github.com/scikit-learn/scikit-learn/tree/master/doc) directory.
12+
13+
But there are many other ways to help. In particular answering queries on the
14+
[issue tracker](https://github.com/scikit-learn/scikit-learn/issues),
15+
investigating bugs, and [reviewing other developers' pull
16+
requests](http://scikit-learn.org/dev/developers/contributing.html#code-review-guidelines)
17+
are very valuable contributions that decrease the burden on the project
18+
maintainers.
19+
20+
Another way to contribute is to report issues you're facing, and give a "thumbs
21+
up" on issues that others reported and that are relevant to you. It also helps
22+
us if you spread the word: reference the project from your blog and articles,
23+
link to it from your website, or simply star it in GitHub to say "I use it".
24+
25+
Guideline
26+
---------
27+
28+
Full contribution guidelines are available in the repository at
29+
`doc/developers/contributing.rst`, or online at:
30+
31+
http://scikit-learn.org/dev/developers/contributing.html
32+
33+
Quick links to:
34+
* [Submitting a bug report or feature request](http://scikit-learn.org/dev/developers/contributing.html#submitting-a-bug-report-or-a-feature-request)
35+
* [Contributing code](http://scikit-learn.org/dev/developers/contributing.html#contributing-code)
36+
* [Coding guidelines](http://scikit-learn.org/dev/developers/contributing.html#coding-guidelines)
37+
38+
Code of Conduct
39+
---------------
40+
41+
We abide by the principles of openness, respect, and consideration of others
42+
of the Python Software Foundation: https://www.python.org/psf/codeofconduct/.

0 commit comments

Comments
 (0)
0