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
+46-26Lines changed: 46 additions & 26 deletions
Original file line number
Diff line number
Diff line change
@@ -4,37 +4,40 @@ Hi! If you are new to the Julia community: welcome, and thanks for trying Julia.
4
4
5
5
If you are already familiar with Julia itself, this blog post by Katharine Hyatt on [Making your first Julia pull request](https://kshyatt.github.io/post/firstjuliapr/) is a great way to get started.
6
6
7
-
## Learning Julia
8
-
9
-
[The learning page](https://julialang.org/learning) has a great list of resources for new and experienced users alike.
10
7
11
-
## Before filing an issue
8
+
#Table of Contents
12
9
13
-
- Reporting a potential bug? Please read the "[How to file a bug report](https://github.com/JuliaLang/julia/blob/master/CONTRIBUTING.md#how-to-file-a-bug-report)" section to make sure that all necessary information is included.
10
+
1.[Learning Julia](#learning-julia)
11
+
2.[Filing an issue](#filing-an-issue)
12
+
-[Before filing an issue](#before-filing-an-issue)
13
+
-[How to file a bug report](#how-to-file-a-bug-report)
-[Git Recommendations For Pull Requests](#git-recommendations-for-pull-requests)
23
+
4.[Resources](#resources)
14
24
15
-
- Contributing code? Be sure to review the [contributor checklist](https://github.com/JuliaLang/julia/blob/master/CONTRIBUTING.md#contributor-checklist) for helpful tips on the tools we use to build Julia.
16
25
17
-
- Library feature requests are generally not accepted on this issue tracker. New libraries should be developed as [packages](https://julialang.github.io/Pkg.jl/v1/creating-packages/). Discuss ideas for libraries at the [Julia Discourse forum](https://discourse.julialang.org). Doing so will often lead to pointers to existing projects and bring together collaborators with common interests.
18
-
19
-
## Contributor Checklist
20
-
21
-
* Create a [GitHub account](https://github.com/signup/free).
* Build the software and libraries (the first time takes a while, but it's fast after that). Detailed build instructions are in the [README](https://github.com/JuliaLang/julia/tree/master/README.md). Julia depends on several external packages; most are automatically downloaded and installed, but are less frequently updated than Julia itself.
28
+
[The learning page](https://julialang.org/learning) has a great list of resources for new and experienced users alike.
26
29
27
-
* Keep Julia current. Julia is a fast-moving target, and many details of the language are still settling out. Keep the repository up-to-date and rebase work-in-progress frequently to make merges simpler.
30
+
## Filing an issue
28
31
29
-
* Learn to use [git](https://git-scm.com), the version control system used by GitHub and the Julia project. Try a tutorial such as the one [provided by GitHub](https://try.GitHub.io/levels/1/challenges/1).
32
+
### Before filing an issue
30
33
31
-
* Review discussions on the [Julia Discourse forum](https://discourse.julialang.org).
34
+
- Reporting a potential bug? Please read the "[How to file a bug report](https://github.com/JuliaLang/julia/blob/master/CONTRIBUTING.md#how-to-file-a-bug-report)" section to make sure that all necessary information is included.
32
35
33
-
* For more detailed tips, read the [submission guide](https://github.com/JuliaLang/julia/blob/master/CONTRIBUTING.md#submitting-contributions) below.
36
+
- Contributing code? Be sure to review the [contributor checklist](https://github.com/JuliaLang/julia/blob/master/CONTRIBUTING.md#contributor-checklist) for helpful tips on the tools we use to build Julia.
34
37
35
-
* Relax and have fun!
38
+
- Library feature requests are generally not accepted on this issue tracker. New libraries should be developed as [packages](https://julialang.github.io/Pkg.jl/v1/creating-packages/). Discuss ideas for libraries at the [Julia Discourse forum](https://discourse.julialang.org). Doing so will often lead to pointers to existing projects and bring together collaborators with common interests.
36
39
37
-
## How to file a bug report
40
+
###How to file a bug report
38
41
39
42
A useful bug report filed as a GitHub issue provides information about how to reproduce the error.
40
43
@@ -56,6 +59,24 @@ A useful bug report filed as a GitHub issue provides information about how to re
56
59
57
60
## Submitting contributions
58
61
62
+
### Contributor Checklist
63
+
64
+
* Create a [GitHub account](https://github.com/signup/free).
* Build the software and libraries (the first time takes a while, but it's fast after that). Detailed build instructions are in the [README](https://github.com/JuliaLang/julia/tree/master/README.md). Julia depends on several external packages; most are automatically downloaded and installed, but are less frequently updated than Julia itself.
69
+
70
+
* Keep Julia current. Julia is a fast-moving target, and many details of the language are still settling out. Keep the repository up-to-date and rebase work-in-progress frequently to make merges simpler.
71
+
72
+
* Learn to use [git](https://git-scm.com), the version control system used by GitHub and the Julia project. Try a tutorial such as the one [provided by GitHub](https://try.GitHub.io/levels/1/challenges/1).
73
+
74
+
* Review discussions on the [Julia Discourse forum](https://discourse.julialang.org).
75
+
76
+
* For more detailed tips, read the [submission guide](https://github.com/JuliaLang/julia/blob/master/CONTRIBUTING.md#submitting-contributions) below.
77
+
78
+
* Relax and have fun!
79
+
59
80
### Writing tests
60
81
61
82
There are never enough tests. Track [code coverage at Codecov](https://codecov.io/github/JuliaLang/julia), and help improve it.
@@ -190,7 +211,7 @@ The Julia community uses [GitHub issues](https://github.com/JuliaLang/julia/issu
190
211
Issues and pull requests should have self explanatory titles such that they can be understood from the list of PRs and Issues.
191
212
i.e. `Add {feature}` and `Fix {bug}` are good, `Fix #12345. Corrects the bug.` is bad.
192
213
193
-
You can make pull requests for incomplete features to get code review. The convention is to open these a draft PRs and prefix
214
+
You can make pull requests for incomplete features to get code review. The convention is to open these as draft PRs and prefix
194
215
the pull request title with "WIP:" for Work In Progress, or "RFC:" for Request for Comments when work is completed and ready
195
216
for merging. This will prevent accidental merging of work that is in progress.
196
217
@@ -209,6 +230,7 @@ Add new code to Julia's base libraries as follows (this is the "basic" approach;
209
230
Build as usual, and do `make clean testall` to test your contribution. If your contribution includes changes to Makefiles or external dependencies, make sure you can build Julia from a clean tree using `git clean -fdx` or equivalent (be careful – this command will delete any files lying around that aren't checked into git).
210
231
211
232
#### Running specific tests
233
+
212
234
There are `make` targets for running specific tests:
213
235
214
236
make test-bitarray
@@ -323,13 +345,11 @@ please remove the `backport-X.Y` tag from the originating pull request for the c
323
345
324
346
#### General Formatting Guidelines for Julia code contributions
325
347
326
-
-4 spaces per indentation level, no tabs
348
+
-Follow the latest dev version of [Julia Style Guide](https://docs.julialang.org/en/v1/manual/style-guide/).
327
349
- use whitespace to make the code more readable
328
350
- no whitespace at the end of a line (trailing whitespace)
329
351
- comments are good, especially when they explain the algorithm
330
352
- try to adhere to a 92 character line length limit
331
-
- use upper camel case convention for modules, type names
332
-
- use lower case with underscores for method names
333
353
- it is generally preferred to use ASCII operators and identifiers over
334
354
Unicode equivalents whenever possible
335
355
- in docstrings refer to the language as "Julia" and the executable as "`julia`"
@@ -346,8 +366,8 @@ please remove the `backport-X.Y` tag from the originating pull request for the c
346
366
347
367
### Git Recommendations For Pull Requests
348
368
349
-
- Avoid working from the `master` branch of your fork, creating a new branch will make it easier if Julia's `master` changes and you need to update your pull request.
350
-
- Try to [squash](https://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html) together small commits that make repeated changes to the same section of code so your pull request is easier to review. A reasonable number of separate well-factored commits is fine, especially for larger changes.
369
+
- Avoid working from the `master` branch of your fork. Create a new branch as it will make it easier to update your pull request if Julia's `master` changes.
370
+
- Try to [squash](https://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html) together small commits that make repeated changes to the same section of code, so your pull request is easier to review. A reasonable number of separate well-factored commits is fine, especially for larger changes.
351
371
- If any conflicts arise due to changes in Julia's `master`, prefer updating your pull request branch with `git rebase` versus `git merge` or `git pull`, since the latter will introduce merge commits that clutter the git history with noise that makes your changes more difficult to review.
352
372
- Descriptive commit messages are good.
353
373
- Using `git add -p` or `git add -i` can be useful to avoid accidentally committing unrelated changes.
0 commit comments