贡献#

Bokeh 是一个开源项目,它的存在完全依赖于像您这样的贡献者。Bokeh 的成功得益于一群多元化的软件开发人员、测试人员、作家、推广专家等的共同努力。我们总是欢迎新朋友加入我们,帮助我们让 Bokeh 成为每个人更好的工具!

在本贡献者指南中,您将找到加入不断壮大的Bokeh贡献者团队所需的所有信息。这包括如何 贡献Bokeh的代码和文档帮助社区支持, 或通过捐赠支持Bokeh的信息。

注意

所有活跃在Bokeh项目代码库、问题跟踪器和讨论论坛中的人员都应遵守行为准则

从哪里开始#

要使用Bokeh的代码和文档,首先需要 设置开发环境

然后,您可以通过多种方式为Bokeh的代码库做出贡献:

Bokeh的Python代码库

BokehJS (TypeScript)

其他资源#

除了这个贡献者指南之外,还有许多其他资源可以帮助您快速入门:

Bokeh Slack

Bokeh Slack 是所有贡献者的工作空间,也是从有经验的贡献者和维护者那里获得快速响应的最佳方式。请申请邀请

GitHub wiki and BEPs

Bokeh的GitHub仓库上的wiki包含了Bokeh增强提案(BEPs)。BEPs是Bokeh的核心治理和政策文件。这包括关于贡献流程的详细信息,特别是在BEP 1: 问题和PR管理BEP 6: 分支策略中。

GitHub Discussions

Bokeh的GitHub仓库讨论区是一个讨论实现细节以及Bokeh的提议功能和想法的地方。

Bokeh roadmap

Bokeh 路线图包含了 Bokeh 作为一个工具和一个社区的目标。

Github repository

Bokeh的源代码、bokeh.org网站以及Bokeh的许多其他方面都托管在bokeh上。一个很好的开始方式是通过查看我们的问题跟踪器中的开放问题。

Bokeh’s documentation

有关Bokeh各种文档资源的概述,请参见 docs.bokeh.org

Bokeh’s Discourse

Bokeh 的用户支持由志愿者在 Bokeh Discourse 服务器上提供。有关 Bokeh 社区资源的更多信息,请参见 Bokeh 网站的社区部分

更多贡献方式#

除了改进Bokeh的代码库和文档外,还有许多其他方式可以为Bokeh做出贡献:

添加示例#

如果您或您的组织正在使用Bokeh,并愿意分享一些您正在进行的项目示例,请考虑将它们添加到Bokeh展示区。您还可以通过向示例文件夹提交拉取请求,将新示例添加到Bokeh的图库中。

社区支持帮助#

Bokeh的所有用户支持都是由志愿者提供的。虽然支持问题在各种地方讨论,例如Stack Overflow,但所有用户支持问题的中心位置是Bokeh Discourse服务器。请随意回答您能帮助的用户问题。Bokeh Discourse上的所有互动都必须遵循Bokeh的行为准则

贡献语言绑定#

BokehJS 接受由声明性JSON片段表示的对象图。 这意味着任何能够生成JSON的语言也可以生成Bokeh 图表以在浏览器中显示。

目前已知有三种绑定可以将 Bokeh 暴露给除 Python 之外的其他语言:

  • Bokeh.jl 为 Julia 用户带来了 Bokeh。它是由社区成员 @cjdoris 创建的。

  • BokehServer.jl 还实现了 Julia 对 BokehJS 的绑定, 包括一个用于从 Julia 同步图表的服务器。它由社区成员 @poldavezac 编写。

  • rbokeh 为R语言添加了对Bokeh的支持。它由@hafen启动。(该项目目前已被归档。)

  • bokeh-scala 在Scala语言中暴露了Bokeh。该项目由Bokeh核心开发团队成员@mattpap创建。(该项目目前已被归档。)

Python中的低级对象接口完全反映了JSON模式。 因此,对于任何为Bokeh编写绑定的人来说,最好的、最权威的信息来源是 bokeh.core.propertiesbokeh.models 的参考指南部分。

另一个用于处理绑定的资源是Bokeh的 scripts/spec.py 脚本。这个Python脚本生成Bokeh中每个模型和属性的JSON描述, 包括类型、默认值和 帮助字符串。 例如,您可以使用此信息作为创建新的低级绑定或检查现有绑定完整性的基础。

如果您想开始开发一个新的绑定或希望将一个新的绑定添加到此列表中,请通过Slack联系Bokeh核心团队。

报告漏洞#

要报告安全漏洞,请使用Tidelift安全联系人。 Tidelift将协调修复和披露。