The Julia project is a large collaborative open source endeavor founded by Jeff Bezanson (Github, Twitter), Alan Edelman (MIT), Stefan Karpinski (Github, Twitter), and Viral B. Shah (Github, Twitter) with the initial release of the Julia programming language. The project now encompasses many individuals, organizations, and groups collaborating across varying platforms and venues. The communal nature of open source makes it difficult to precisely define where the official Julia project ends and the greater community begins, which is advantageous but can make it challenging to understand the governance structures. This page describes some of those structures.
\toc
Fundamentally, the project consists of some code and a community of people who work on that code. Some of this code is managed within the JuliaLang GitHub organization, with multiple teams working together to develop and maintain the individual repositories.
One particularly important team is that of the "committers": these 40-some individuals have commit privileges and work together to maintain the repositories, including julia
itself.
This set of people doesn’t really define the project, however, since there are many people who are prolific contributors to the Julia ecosystem but who do not have this “commit bit.”
An informal consensus process is used to review and merge pull requests, and a standing meeting — the triage call — aims to provide guidance and help move contentious issues forward.
A larger set of individuals participates as "triage" members of the JuliaLang GitHub organization; they have permissions to organize and label the issues and pull requests.
One official group of people representing the Julia project does exist: Julia Stewards. This group exists to handle conflict resolution and reports of inappropriate or problematic behavior in the Julia community and ecosystem. The current stewards are: Milan Bouchet-Valat, Simon Byrne, Tim Holy, Katharine Hyatt, Steven Johnson, Stefan Karpinski, and Viral Shah. This group gets (rare) emails about potentially problematic situations and confidentially discusses and decides on what to do about them. The stewards group is not responsible for making any kinds of technical decisions or steering the project in any other way, it just exists to handle complaints and disputes, which fortunately are exceedingly rare.
NumFOCUS is a US 501(c)(3) nonprofit organization promoting open practices in scientific research, data science, and scientific computing by serving as a fiscal sponsor for open source projects and organizing community-driven educational programs in these areas. Through NumFOCUS, both individuals and corporations have the opportunity to donate to any of NumFOCUS’s fiscally sponsored projects including Julia, NumPy, Jupyter, Pandas, JuMP, rOpenSci, QuantEcon, and many others. This is possible because these projects have entered into a contractual and legal relationship with NumFOCUS. This means that a set of people serving as the project’s leadership body has signed an agreement stating that they, or their successors, will manage the technical direction and programs of the project within the scope of the organization’s nonprofit status. NumFOCUS is the legal and financial administrator of project funds, disbursing as requested by the project’s leadership body with ultimate oversight by the NumFOCUS board of directors.
Despite what “fiscally sponsored project” may sound like, NumFOCUS does not have a big bag of money that it gives out to projects however it wants to. Rather, it means that NumFOCUS is legally able to accept donations from individuals, companies, private foundations and government entities to be spent on the fiscally sponsored projects. There are other projects affiliated with NumFOCUS that are not fiscally sponsored, including Flux, Conda, Cython, Dask, SciPy, and scikit-learn. These projects can’t receive money through NumFOCUS because they don’t have the same legal relationship.
Julia’s signatories with NumFOCUS are Tim Holy, Steven Johnson, Viral Shah, Stefan Karpinski, and Avik Sengupta. This set of people was chosen to be trustworthy, independent (not all from any one company or organization), and representative of the open source project. Signatories provide oversight to make sure that funding is being used for legitimate purposes. Avik Sengupta is currently the Julia project representative at NumFOCUS and manages the projects finances. Other members of the Julia community are also actively involved with NumFOCUS in other capacities: Stefan Karpinski is on the advisory council and Logan Kilpatrick is a current board member.
What kind of money goes to Julia through NumFOCUS and how is it spent? When you click on the "Donate to Julia button" on the Julia website, your donation goes to NumFOCUS and is earmarked to be used for the Julia project. This money is used to pay for infrastructure and personnel costs, including website hosting, continuous integration services, and anyone who is working on Julia through NumFOCUS. By far the biggest flow of money through NumFOCUS for Julia is for the annual JuliaCon conference. Money from JuliaCon ticket sales and sponsorships go to NumFOCUS which then pays vendors for services required to make JuliaCon happen and reimburse anyone who has reimbursable conference-related expenses. Excess money (if any) from JuliaCon goes into the same pool as donations. JuliaCon finances are managed by the finance chair and approved by the JuliaCon organizing committee as representatives of the project and community. All money that goes in and out of NumFOCUS is a matter of public record since it is a nonprofit.
There are organizations that people sometimes mistakenly believe have some kind of official control over the Julia project. This section details two of them, but please note that neither has any official relationship to the Julia project, nor any governance capacity with respect to the project. Individuals who have some control over the project and happen to belong to these organizations, have that control as individuals and not as members of those organizations and take the separation of those roles quite seriously.
A lot of the early work on the development of core Julia was done at MIT in what is known as The Julia Lab under the direction of professor Alan Edelman. All of the co-creators of Julia have been part of the lab at some point. In those early days, it wasn't called the Julia Lab yet, it was just an office where some people worked on high performance computing, numerical linear algebra, random matrix theory, and this new programming language called Julia. Although not formally part of the Julia Lab, Jeremy Kepner of Lincoln Laboratory was an early believer in and funder of the lab’s work on Julia and continues to support this work. Since those early days, things have gotten a lot more organized under the leadership (in chronological order) of Jiahao Chen, Andreas Noack, Valentin Churavy, and Chris Rackauckas. The Julia Lab remains a steady source of major innovations and contributions to Julia.
There are several other groups at MIT that have made major contributions to Julia over the years besides the Julia Lab. Steven Johnson, also a professor at MIT, heads up his own group but in his spare time has become one of the most prolific contributors to Julia (currently #10 by commits). The JuMP and Cassette projects are primarily developed by current and former members of professor Juan Pablo Vielma’s optimization research group at MIT Operations Research Center. There are so many research groups at MIT using Julia these days, making major contributions to its ecosystem and to science, that it has become commonplace for Alan to discover that some neighbor of his at CSAIL is using Julia completely unbeknownst to him. So definitely don’t consider this list exhaustive. And of course, there’s incredible work being done on Julia by people at many other universities all around the world.
In 2015, the four co-creators of Julia along with Keno Fischer (Github, Twitter) and Deepak Vinchhi founded Julia Computing (now JuliaHub), a United States C corporation. JuliaHub provides products, support and services around Julia and JuliaAcademy. The company employs many of the top contributors to Julia itself (half of the top ten contributors by commits) and to major Julia packages, especially for data science and machine learning. Even though there’s no formal connection between the company and the open source project, JuliaHub is deeply committed to Julia’s success and is proud to sponsor JuliaCon each year as well as drive open source Julia development.
If you have questions about Julia's governance structure, please reach out via email to [email protected]
.