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
+31-11Lines changed: 31 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,17 +1,20 @@
1
1
# Contribution Guide for PolyMath
2
2
3
-
This file is currently not complete but will be improve step by step.
3
+
*This file is currently not complete but will be improve step by step.*
4
4
5
-
# Contributing code
6
-
Use last version of Pharo 7.0 in order to use Iceberg.
7
-
## Fork the Pharo repository
5
+
You need to download Pharo 8.0 first.
6
+
7
+
## Setup Iceberg
8
+
You need an ssh key in order to commit on github. Open Iceberg tool, and then click on the settings. Check the box : "Use custom SSH keys".
9
+
10
+
## Fork the PolyMath repository
8
11
9
12
All changes you'll do will be versionned in your own fork of the [PolyMath repository](https://github.com/PolyMathOrg/PolyMath). Then, from your fork you'll be able to issue pull requests to PolyMath, where they will be reviewed, and luckily, integrated.
10
13
11
-
Go to PolyMath github's repository and click on the fork button on the top right. Yes, this means that you'll need a github account to contribute to PolyMath, yes.
14
+
Go to PolyMath github's repository and click on the fork button on the top right. Yes, this means that you'll need a github account to contribute to PolyMath.
12
15
13
16
## Load last dev version of PolyMath
14
-
In a fresh Pharo 7.0 image, load last development version of Polymath :
17
+
In a fresh Pharo 8.0 image, load last development version of Polymath :
15
18
16
19
```Smalltalk
17
20
Metacello new
@@ -21,12 +24,29 @@ Metacello new
21
24
```
22
25
where you replace XXX with your github user name.
23
26
24
-
## Setup Iceberg
25
-
You need an ssh key in order to commit on github. Open Iceberg tool, and then click on the settings. Check the box : "Use custom SSH keys".
27
+
## Add main PolyMath repository as remote
28
+
29
+
Open Iceberg, open PolyMath repository, click on repositories, then + button (add remote).
## Send some changes to the original PolyMath repository
36
+
37
+
#### From Pharo Iceberg
38
+
After doing modifications in your image, open Iceberg tool, commit the changes in your PolyMath repository. Cherry-pick the modifications that you want to include in your commit. Then push your commit to your fork. It's more convenient to divide your changes in meaninfull and simple commits, which makes it easier to check for those who need to proofread it.
39
+
40
+
#### From Github UI
41
+
In the GitHub interface, create a Pull Request from your commit.
42
+
You have to give some information about what is the purpose of you pull request. Then submit it to PolyMath main repository.
43
+
This will notify PolyMath core developers team that an improvement or bug fix is pending.
44
+
45
+
### Sync your fork with main PolyMath repo changes
46
+
After a while, changes from other developers are integrated in the main PolyMath repository and your fork became out of sync.
47
+
In order to do that, you need the fetch the last modifications from the main PolyMath repository, merge them in your image and then push them in your fork repository.
26
48
27
-
## Send the PR to github
28
-
After doing the modification in your image, open Iceberg tool, commit the changes in your PolyMath repository. Cherry-pick the modifications that you want to include in your commit. In the github interface, create a Pull Request from your commit.
29
-
Send the PR to PolyMath main repository.
49
+
You have also the possibility to delete your fork and fork again the main PolyMath repository.
30
50
31
51
## Cleanups
32
52
Ounce your pull request is integrated, some cleanups are required:
[](http://www.repostatus.org/#active)
We have **806** green tests ! At the moment, all the development happens in the development branch.
43
+
We have **816** green tests ! At the moment, all the development happens in the master branch (we are using [trunk-based development](https://trunkbaseddevelopment.com/)).
32
44
33
-
PolyMath is a Pharo project, similar to existing scientific libraries like NumPy, SciPy for Python or SciRuby for Ruby. PolyMath already provide the following basic functionalities:
45
+
PolyMath is a Pharo project, similar to existing scientific libraries like NumPy, SciPy for Python or SciRuby for Ruby. PolyMath already provides the following basic functionalities:
34
46
- complex and quaternions extensions,
35
47
- random number generators,
36
48
- fuzzy algorithms,
49
+
- automatic differentiation,
37
50
- KDE-trees,
38
51
- Numerical methods,
39
52
- Ordinary Differential Equation (ODE) solvers.
40
53
41
-
A book about PolyMath called "PolyMath book" is available online: https://github.com/SquareBracketAssociates/PolyMath-book
54
+
The authoritative book on PolyMath is available online: https://github.com/SquareBracketAssociates/PolyMath-book
42
55
43
-
Some documentation (to be cleaned and reorganized) about PolyMath is available on the Wiki here:
56
+
Some documentation (work in progress) is available on the Wiki:
44
57
https://github.com/PolyMathOrg/PolyMath/wiki
45
58
46
59
Natalia wrote some explanation about benchmarking PolyMath in the Pharo For Enterprise Book: https://github.com/SquareBracketAssociates/PharoForTheEnterprise-english/blob/ae40e7ab6f7651f6e7c271869eb1efc4e531e774/ComparingSolutions/ComparingSolutions.pier
47
60
48
-
## Install PolyMath
49
-
50
-
To install PolyMath in your Pharo image you can just execute the following script:
0 commit comments