Julia 项目是一个大型的协作式开源项目,由 Jeff Bezanson (Github,Twitter)、Alan Edelman (MIT)、Stefan Karpinski (Github,Twitter) 和 Viral B. Shah (Github,Twitter) 在 Julia 编程语言的首次发布时共同创立。该项目目前涵盖了许多个人、组织和团体,他们在不同的平台和场所进行合作。开源的社区性质使得很难精确地定义官方 Julia 项目的结束和更广泛社区的开始,这有利但可能使得理解治理结构具有挑战性。本页介绍了其中一些结构。
从根本上讲,该项目由一些代码和一个致力于这些代码的人员社区组成。其中一些代码是在 JuliaLang GitHub 组织 中管理的,多个团队协同工作以开发和维护各个代码库。一个特别重要的团队是“提交者”团队:这 40 多位个人拥有提交权限,并协同工作以维护代码库,包括 julia
本身。然而,这些人并不能真正定义该项目,因为有许多人对 Julia 生态系统做出了大量贡献,但没有这种“提交位”。一个非正式的共识流程用于审查和合并拉取请求,并且有一个定期会议——分拣电话会议——旨在提供指导和帮助推动有争议的问题向前发展。
一组更大的人员作为 JuliaLang GitHub 组织的“分拣”成员参与;他们拥有组织和标记问题和拉取请求的权限。
确实存在一个代表 Julia 项目的正式人员团体:Julia 管理员。该小组的存在是为了处理 Julia 社区和生态系统中不当或有问题的行为的冲突解决和报告。目前的管理员是:Milan Bouchet-Valat、Simon Byrne、Tim Holy、Katharine Hyatt、Steven Johnson、Stefan Karpinski 和 Viral Shah。该小组会收到关于潜在问题情况的(罕见)电子邮件,并会秘密讨论并决定如何处理这些情况。管理员小组不负责做出任何技术决策或以任何其他方式引导项目,它仅仅存在于处理投诉和争议,幸运的是,这些情况极其罕见。
NumFOCUS 是一个美国 501(c)(3) 非营利组织,通过作为开源项目的财政赞助者并组织这些领域中以社区为导向的教育项目,促进科学研究、数据科学和科学计算中的开放实践。通过 NumFOCUS,个人 和 公司 都可以有机会向 NumFOCUS 的任何财政赞助项目捐款,包括 Julia、NumPy、Jupyter、Pandas、JuMP、rOpenSci、QuantEcon 以及 许多其他项目。这是可能的,因为这些项目已经与 NumFOCUS 达成合同和法律关系。这意味着,作为项目领导机构的一组人员已经签署了一项协议,声明他们或他们的继任者将在组织的非营利性地位范围内管理项目的技术方向和计划。NumFOCUS 是项目资金的法律和财务管理者,根据项目领导机构的要求进行支出,并由 NumFOCUS 董事会进行最终监督。
尽管“财政赞助项目”听起来可能不像那样,但 NumFOCUS 并没有一个它想要随意发放给项目的巨额资金。相反,这意味着 NumFOCUS 在法律上能够接受来自个人、公司、私人基金会和政府实体的捐款,用于支出在财政赞助项目上。有一些与 NumFOCUS 关联但未获得财政赞助的 其他项目,包括 Flux、Conda、Cython、Dask、SciPy 和 scikit-learn。这些项目无法通过 NumFOCUS 收到资金,因为它们没有相同的法律关系。
Julia 与 NumFOCUS 的签署人是 Tim Holy、Steven Johnson、Viral Shah、Stefan Karpinski 和 Avik Sengupta。选择这组人员是为了确保他们值得信赖、独立(并非来自任何一家公司或组织)并且代表开源项目。签署人提供监督,以确保资金用于合法目的。Avik Sengupta 目前是 NumFOCUS 中的 Julia 项目代表,负责管理项目的财务。Julia 社区的其他成员也以其他身份积极参与 NumFOCUS:Stefan Karpinski 是 咨询委员会 成员,Logan Kilpatrick 是现任 董事会成员。
通过 NumFOCUS 为 Julia 提供了哪些资金,以及这些资金是如何使用的?当您点击 Julia 网站上的“捐赠给 Julia 按钮”时,您的捐款将转至 NumFOCUS,并被指定用于 Julia 项目。这笔资金用于支付基础设施和人员费用,包括网站托管、持续集成服务以及通过 NumFOCUS 从事 Julia 工作的任何人员。到目前为止,通过 NumFOCUS 为 Julia 提供的最大资金流用于一年一度的 JuliaCon 会议。JuliaCon 门票销售和赞助的资金将转至 NumFOCUS,然后由 NumFOCUS 支付为举办 JuliaCon 所需的服务供应商费用,并报销任何具有可报销的与会议相关的费用的人员。JuliaCon 的剩余资金(如果有)将进入与捐款相同的资金池。JuliaCon 财务由财务主席管理,并由 JuliaCon 组织委员会 作为项目和社区的代表进行审批。进出 NumFOCUS 的所有资金都是 公开记录,因为它是一个非营利组织。
有一些组织,人们有时会错误地认为它们对 Julia 项目具有某种官方控制权。本节详细介绍了其中两个组织,但请注意,这两个组织与 Julia 项目没有任何官方关系,也没有任何关于该项目的治理能力。对该项目具有一定控制权且恰好属于这些组织的个人,是以个人身份而不是以这些组织成员的身份拥有这种控制权,并且非常认真地对待这些角色的分离。
在由教授 Alan Edelman 指导的 Julia 实验室 中,MIT 完成了大量早期工作,用于开发核心 Julia。所有 Julia 共同创建者都在某个时候参与过该实验室。在那些早期,它还没有被称为 Julia 实验室,只是一个办公室,一些人在这里研究高性能计算、数值线性代数、随机矩阵理论 以及这种名为 Julia 的新编程语言。自那些早期以来,在(按时间顺序)Jiahao Chen、Andreas Noack、Valentin Churavy 和 Chris Rackauckas 的领导下,情况变得更加井然有序。Julia 实验室仍然是 Julia 重要创新和贡献的稳定来源。
除了 Julia 实验室,MIT 的其他几个小组多年来对 Julia 做出了重大贡献。Steven Johnson,也是 MIT 教授,领导着自己小组,但在他闲暇时间,他已成为 Julia 最多产的贡献者之一(目前按提交次数排名前 10)。JuMP 和 Cassette 项目主要由教授 Juan Pablo Vielma 在 MIT 运筹学中心 的优化研究小组的现任和前任成员开发。现在 MIT 有如此多的研究小组使用 Julia,对 Julia 生态系统和科学做出了重大贡献,以至于 Alan 经常发现他的 CSAIL 的一些邻居在完全不知情的情况下使用 Julia。所以,绝对不要认为这个列表是详尽无遗的。当然,世界各地许多其他大学的人员都在 Julia 上做着令人难以置信的工作。
2015 年,Julia 的四位共同创建者以及 Keno Fischer (Github,Twitter) 和 Deepak Vinchhi 共同创立了 Julia Computing(现称为 JuliaHub),一家美国 C 类公司。JuliaHub 提供与 Julia 和 JuliaAcademy 相关的产品、支持和服务。该公司聘用了许多 Julia 本身(按提交次数排名前 10 位的贡献者中有一半)以及主要 Julia 包(尤其是用于仿真、数据科学和机器学习)的顶级贡献者。尽管公司与开源项目之间没有正式联系,但 JuliaHub 深度致力于 Julia 的成功,并自豪地每年赞助 JuliaCon,以及推动开源 Julia 的发展。
如果您对 Julia 的治理结构有任何疑问,请通过电子邮件联系 [email protected]
。