You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+4-39Lines changed: 4 additions & 39 deletions
Original file line number
Diff line number
Diff line change
@@ -1,14 +1,14 @@
1
1
How to Contribute to aima-python
2
2
==========================
3
3
4
-
Thanks for considering contributing to `aima-python`! Whether you are an aspiring [Google Summer of Code](https://summerofcode.withgoogle.com/organizations/5663121491361792/) student, or an independent contributor, here is a guide on how you can help.
4
+
Thanks for considering contributing to `aima-python`! Whether you are an aspiring [Google Summer of Code](https://summerofcode.withgoogle.com/organizations/5674023002832896/) student, or an independent contributor, here is a guide on how you can help.
5
5
6
-
First of all, you can read these write-ups from past GSoC students to get an idea on what you can do for the project. [Chipe1](https://github.com/aimacode/aima-python/issues/641) - [MrDupin](https://github.com/aimacode/aima-python/issues/632)
6
+
First of all, you can read these write-ups from past GSoC students to get an idea about what you can do for the project. [Chipe1](https://github.com/aimacode/aima-python/issues/641) - [MrDupin](https://github.com/aimacode/aima-python/issues/632)
7
7
8
8
In general, the main ways you can contribute to the repository are the following:
9
9
10
10
1. Implement algorithms from the [list of algorithms](https://github.com/aimacode/aima-python/blob/master/README.md#index-of-algorithms).
11
-
1. Add tests for algorithms that are missing them (you can also add more tests to algorithms that already have some).
11
+
1. Add tests for algorithms.
12
12
1. Take care of [issues](https://github.com/aimacode/aima-python/issues).
13
13
1. Write on the notebooks (`.ipynb` files).
14
14
1. Add and edit documentation (the docstrings in `.py` files).
@@ -21,20 +21,16 @@ In more detail:
21
21
- Look at the [issues](https://github.com/aimacode/aima-python/issues) and pick one to work on.
22
22
- One of the issues is that some algorithms are missing from the [list of algorithms](https://github.com/aimacode/aima-python/blob/master/README.md#index-of-algorithms) and that some don't have tests.
23
23
24
-
## Port to Python 3; Pythonic Idioms; py.test
24
+
## Port to Python 3; Pythonic Idioms
25
25
26
26
- Check for common problems in [porting to Python 3](http://python3porting.com/problems.html), such as: `print` is now a function; `range` and `map` and other functions no longer produce `list`s; objects of different types can no longer be compared with `<`; strings are now Unicode; it would be nice to move `%` string formatting to `.format`; there is a new `next` function for generators; integer division now returns a float; we can now use set literals.
27
27
- Replace old Lisp-based idioms with proper Python idioms. For example, we have many functions that were taken directly from Common Lisp, such as the `every` function: `every(callable, items)` returns true if every element of `items` is callable. This is good Lisp style, but good Python style would be to use `all` and a generator expression: `all(callable(f) for f in items)`. Eventually, fix all calls to these legacy Lisp functions and then remove the functions.
28
-
- Add more tests in `test_*.py` files. Strive for terseness; it is ok to group multiple asserts into one `def test_something():` function. Move most tests to `test_*.py`, but it is fine to have a single `doctest` example in the docstring of a function in the `.py` file, if the purpose of the doctest is to explain how to use the function, rather than test the implementation.
29
28
30
29
## New and Improved Algorithms
31
30
32
31
- Implement functions that were in the third edition of the book but were not yet implemented in the code. Check the [list of pseudocode algorithms (pdf)](https://github.com/aimacode/pseudocode/blob/master/aima3e-algorithms.pdf) to see what's missing.
33
32
- As we finish chapters for the new fourth edition, we will share the new pseudocode in the [`aima-pseudocode`](https://github.com/aimacode/aima-pseudocode) repository, and describe what changes are necessary.
34
33
We hope to have an `algorithm-name.md` file for each algorithm, eventually; it would be great if contributors could add some for the existing algorithms.
35
-
- Give examples of how to use the code in the `.ipynb` files.
36
-
37
-
We still support a legacy branch, `aima3python2` (for the third edition of the textbook and for Python 2 code).
38
34
39
35
## Jupyter Notebooks
40
36
@@ -69,15 +65,6 @@ a one-line docstring suffices. It is rarely necessary to list what each argument
69
65
- At some point I may add [Pep 484](https://www.python.org/dev/peps/pep-0484/) type annotations, but I think I'll hold off for now;
70
66
I want to get more experience with them, and some people may still be in Python 3.4.
71
67
72
-
73
-
Contributing a Patch
74
-
====================
75
-
76
-
1. Submit an issue describing your proposed change to the repo in question (or work on an existing issue).
77
-
1. The repo owner will respond to your issue promptly.
78
-
1. Fork the desired repo, develop and test your code changes.
79
-
1. Submit a pull request.
80
-
81
68
Reporting Issues
82
69
================
83
70
@@ -98,28 +85,6 @@ Patch Rules
98
85
99
86
- Follow the style guidelines described above.
100
87
101
-
Running the Test-Suite
102
-
=====================
103
-
104
-
The minimal requirement for running the testsuite is ``py.test``. You can
0 commit comments