We welcome contributions to Julia and appreciate your interest. There are capabilities to grow, interfaces to write, and bugs to squish. Area experts may contribute by writing software that supports work in their own field. To keep things percolating as smoothly as possible, we ask that you follow the advice and guidelines given here.
Before contributing to Julia, you should join the dev list, read the user manual and library guide, and create a free GitHub account. Follow these steps to get Julia copied to your machine in a way that lets you to work locally, rewind your edits, keep a remote backup, and safely contribute to Julia.
-
Join the dev list
-
Create a GitHub account
-
Build the software and libraries (the first time takes time)
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.
-
Keep Julia current
Julia is a fast-moving target, and many details of the language are still settling out. Keeping your repository up to date and rebasing your work in progress requently
-
Relax
The Julia team uses the GitHub issue tracker for accepting pull requests. Note that by contributing, you are agreeing to release your code under the MIT License.
You can make pull requests for incomplete features to get code review. Please prefix your pull request title with "RFC:" to indicate that the work is incomplete so it doesn't accidentally get pulled early.
Before submitting, please make sure that all tests pass by running make testall
. Even better, add your own tests for your change or feature to the test files in tests/
. 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.
While getting familiar with Julia, and when using unfamiliar aspects of the language, the first recourse is to take advantage of the docs. When searching the docs, if you use a script blocker then you must unblock the page. The source code is an excellent source of examples. Use the dev list as a resource whenever you are stumped or curious or in need of other feedback. It is always a good idea to search the dev list before posting -- there is already guidance helpful for common questions.
consider replacing " For support, Julia" with "For help with the language and libraries,"