Skip to content

Commit 6ac98aa

Browse files
authored
Add contributing information (#368)
* ADD contributing guidelines and github templates * Update CONTRIBUTING.md * ADD reference to scikit-learn to the license * Added clarification for unit test on Windows.
1 parent 074e0cf commit 6ac98aa

File tree

4 files changed

+271
-1
lines changed

4 files changed

+271
-1
lines changed

CONTRIBUTING.md

Lines changed: 178 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,178 @@
1+
How to contribute
2+
-----------------
3+
4+
The preferred workflow for contributing to the OpenML python connector is to
5+
fork the [main repository](https://github.com/openml/openml-python) on
6+
GitHub, clone, check out the branch `develop`, and develop on a new branch
7+
branch. Steps:
8+
9+
1. Fork the [project repository](https://github.com/openml/openml-python)
10+
by clicking on the 'Fork' button near the top right of the page. This creates
11+
a copy of the code under your GitHub user account. For more details on
12+
how to fork a repository see [this guide](https://help.github.com/articles/fork-a-repo/).
13+
14+
2. Clone your fork of the openml-python repo from your GitHub account to your
15+
local disk:
16+
17+
```bash
18+
$ git clone [email protected]:YourLogin/openml-python.git
19+
$ cd openml-python
20+
```
21+
22+
3. Swith to the ``develop`` branch:
23+
24+
```bash
25+
$ git checkout develop
26+
```
27+
28+
3. Create a ``feature`` branch to hold your development changes:
29+
30+
```bash
31+
$ git checkout -b feature/my-feature
32+
```
33+
34+
Always use a ``feature`` branch. It's good practice to never work on the ``master`` or ``develop`` branch! To make the nature of your pull request easily visible, please perpend the name of the branch with the type of changes you want to merge, such as ``feature`` if it contains a new feature, ``fix`` for a bugfix, ``doc`` for documentation and ``maint`` for other maintenance on the package.
35+
36+
4. Develop the feature on your feature branch. Add changed files using ``git add`` and then ``git commit`` files:
37+
38+
```bash
39+
$ git add modified_files
40+
$ git commit
41+
```
42+
43+
to record your changes in Git, then push the changes to your GitHub account with:
44+
45+
```bash
46+
$ git push -u origin my-feature
47+
```
48+
49+
5. Follow [these instructions](https://help.github.com/articles/creating-a-pull-request-from-a-fork)
50+
to create a pull request from your fork. This will send an email to the committers.
51+
52+
(If any of the above seems like magic to you, please look up the
53+
[Git documentation](https://git-scm.com/documentation) on the web, or ask a friend or another contributor for help.)
54+
55+
Pull Request Checklist
56+
----------------------
57+
58+
We recommended that your contribution complies with the
59+
following rules before you submit a pull request:
60+
61+
- Follow the
62+
[pep8 style guilde](https://www.python.org/dev/peps/pep-0008/).
63+
64+
- If your pull request addresses an issue, please use the pull request title
65+
to describe the issue and mention the issue number in the pull request description. This will make sure a link back to the original issue is
66+
created.
67+
68+
- An incomplete contribution -- where you expect to do more work before
69+
receiving a full review -- should be prefixed `[WIP]` (to indicate a work
70+
in progress) and changed to `[MRG]` when it matures. WIPs may be useful
71+
to: indicate you are working on something to avoid duplicated work,
72+
request broad review of functionality or API, or seek collaborators.
73+
WIPs often benefit from the inclusion of a
74+
[task list](https://github.com/blog/1375-task-lists-in-gfm-issues-pulls-comments)
75+
in the PR description.
76+
77+
- All tests pass when running `nosetests`. On
78+
Unix-like systems, check with (from the toplevel source folder):
79+
80+
```bash
81+
$ nosetests
82+
```
83+
84+
For Windows systems, execute the command from an Anaconda Prompt or add `nosetests` to PATH before executing the command.
85+
86+
- Documentation and high-coverage tests are necessary for enhancements to be
87+
accepted. Bug-fixes or new features should be provided with
88+
[non-regression tests](https://en.wikipedia.org/wiki/Non-regression_testing).
89+
These tests verify the correct behavior of the fix or feature. In this
90+
manner, further modifications on the code base are granted to be consistent
91+
with the desired behavior.
92+
For the Bug-fixes case, at the time of the PR, this tests should fail for
93+
the code base in develop and pass for the PR code.
94+
95+
96+
You can also check for common programming errors with the following
97+
tools:
98+
99+
- Code with good unittest **coverage** (at least 80%), check with:
100+
101+
```bash
102+
$ pip install nose coverage
103+
$ nosetests --with-coverage path/to/tests_for_package
104+
```
105+
106+
- No pyflakes warnings, check with:
107+
108+
```bash
109+
$ pip install pyflakes
110+
$ pyflakes path/to/module.py
111+
```
112+
113+
- No PEP8 warnings, check with:
114+
115+
```bash
116+
$ pip install pep8
117+
$ pep8 path/to/module.py
118+
```
119+
120+
Filing bugs
121+
-----------
122+
We use GitHub issues to track all bugs and feature requests; feel free to
123+
open an issue if you have found a bug or wish to see a feature implemented.
124+
125+
It is recommended to check that your issue complies with the
126+
following rules before submitting:
127+
128+
- Verify that your issue is not being currently addressed by other
129+
[issues](https://github.com/openml/openml-python/issues)
130+
or [pull requests](https://github.com/openml/openml-python/pulls).
131+
132+
- Please ensure all code snippets and error messages are formatted in
133+
appropriate code blocks.
134+
See [Creating and highlighting code blocks](https://help.github.com/articles/creating-and-highlighting-code-blocks).
135+
136+
- Please include your operating system type and version number, as well
137+
as your Python, openml, scikit-learn, numpy, and scipy versions. This information
138+
can be found by running the following code snippet:
139+
140+
```python
141+
import platform; print(platform.platform())
142+
import sys; print("Python", sys.version)
143+
import numpy; print("NumPy", numpy.__version__)
144+
import scipy; print("SciPy", scipy.__version__)
145+
import sklearn; print("Scikit-Learn", sklearn.__version__)
146+
import openml; print("OpenML", openml.__version__)
147+
```
148+
149+
New contributor tips
150+
--------------------
151+
152+
A great way to start contributing to scikit-learn is to pick an item
153+
from the list of [Easy issues](https://github.com/openml/openml-python/issues?q=label%3Aeasy)
154+
in the issue tracker. Resolving these issues allow you to start
155+
contributing to the project without much prior knowledge. Your
156+
assistance in this area will be greatly appreciated by the more
157+
experienced developers as it helps free up their time to concentrate on
158+
other issues.
159+
160+
Documentation
161+
-------------
162+
163+
We are glad to accept any sort of documentation: function docstrings,
164+
reStructuredText documents (like this one), tutorials, etc.
165+
reStructuredText documents live in the source code repository under the
166+
doc/ directory.
167+
168+
You can edit the documentation using any text editor and then generate
169+
the HTML output by typing ``make html`` from the doc/ directory.
170+
The resulting HTML files will be placed in ``build/html/`` and are viewable in
171+
a web browser. See the ``README`` file in the ``doc/`` directory for more
172+
information.
173+
174+
For building the documentation, you will need
175+
[sphinx](http://sphinx.pocoo.org/),
176+
[matplotlib](http://matplotlib.org/), and
177+
[pillow](http://pillow.readthedocs.io/en/latest/).
178+
[sphinx-bootstrap-theme](https://ryan-roemer.github.io/sphinx-bootstrap-theme/)

ISSUE_TEMPLATE.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#### Description
2+
<!-- Example: Joblib Error thrown when calling fit on LatentDirichletAllocation with evaluate_every > 0-->
3+
4+
#### Steps/Code to Reproduce
5+
<!--
6+
Example:
7+
```python
8+
import openml
9+
openml.flows.get_flow(1)
10+
```
11+
If the code is too long, feel free to put it in a public gist and link
12+
it in the issue: https://gist.github.com
13+
-->
14+
15+
#### Expected Results
16+
<!-- Example: No error is thrown. Please paste or describe the expected results.-->
17+
18+
#### Actual Results
19+
<!-- Please paste or specifically describe the actual output or traceback. -->
20+
21+
#### Versions
22+
<!--
23+
Please run the following snippet and paste the output below.
24+
import platform; print(platform.platform())
25+
import sys; print("Python", sys.version)
26+
import numpy; print("NumPy", numpy.__version__)
27+
import scipy; print("SciPy", scipy.__version__)
28+
import sklearn; print("Scikit-Learn", sklearn.__version__)
29+
import openml; print("OpenML", openml.__version__)
30+
-->
31+
32+
33+
<!-- Thanks for contributing! -->

LICENSE

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
BSD 3-Clause License
22

3-
Copyright (c) 2014-2017, Matthias Feurer, Jan van Rijn, Andreas Müller,
3+
Copyright (c) 2014-2018, Matthias Feurer, Jan van Rijn, Andreas Müller,
44
Joaquin Vanschoren and others.
55
All rights reserved.
66

@@ -28,3 +28,41 @@ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
2828
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
2929
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
3030
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31+
32+
License of the files CONTRIBUTING.md, ISSUE_TEMPLATE.md and
33+
PULL_REQUEST_TEMPLATE.md:
34+
35+
Those files are modifications of the respecting templates in scikit-learn and
36+
they are licensed under a New BSD license:
37+
38+
New BSD License
39+
40+
Copyright (c) 2007–2018 The scikit-learn developers.
41+
All rights reserved.
42+
43+
44+
Redistribution and use in source and binary forms, with or without
45+
modification, are permitted provided that the following conditions are met:
46+
47+
a. Redistributions of source code must retain the above copyright notice,
48+
this list of conditions and the following disclaimer.
49+
b. Redistributions in binary form must reproduce the above copyright
50+
notice, this list of conditions and the following disclaimer in the
51+
documentation and/or other materials provided with the distribution.
52+
c. Neither the name of the Scikit-learn Developers nor the names of
53+
its contributors may be used to endorse or promote products
54+
derived from this software without specific prior written
55+
permission.
56+
57+
58+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
59+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
60+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
61+
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR
62+
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
63+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
64+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
65+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
66+
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
67+
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
68+
DAMAGE.

PULL_REQUEST_TEMPLATE.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<!--
2+
Thanks for contributing a pull request to the OpenML python connector! Please ensure you have taken a look at
3+
the contribution guidelines: https://github.com/openml/openml-python/blob/master/CONTRIBUTING.md#Contributing-Pull-Requests
4+
5+
Please make sure that:
6+
7+
* this pull requests is against the `develop` branch
8+
* you updated all docs
9+
-->
10+
#### Reference Issue
11+
<!-- Example: Fixes #1234 -->
12+
13+
14+
#### What does this PR implement/fix? Explain your changes.
15+
16+
17+
#### How should this PR be tested?
18+
19+
20+
#### Any other comments?
21+

0 commit comments

Comments
 (0)