开源贡献的最佳起点应符合您的知识、经验和您感兴趣的领域。

开始之前

在您开始贡献之前,不妨先了解一下整个项目的整体情况。如果您还没有完成 BeeWare 教程,请从这里开始。这将使您接触到最重要的 BeeWare 工具,从而了解它们是如何相互结合在一起的。

一旦您完成教程后,就可以开始选一些可做的事情。如果您在学习教程时遇到任何问题,例如一个错误,或用于描述步骤时不清楚的语言 -- 那就是一个很好的起点!如果你能把你的经验转化为对教程的改进,那么下一个学习教程的人就不会遇到同样的问题了。

但是,如果您的教程体验完全顺利(我们也希望如此!),这里有一些基于您的技能与兴趣的贡献方式建议。

Python 编程

Briefcase

如果您想为一个问题清晰明确但需要解决漏洞和添加功能的工具做出贡献,Briefcase 可能就是适合您的项目。Briefcase 是一个将 Python 项目打包为独立的 GUI 应用程序的工具。它接收一个 pyproject.toml 配置文件,并使用配置数据生成安装包或可发布的应用程序捆绑包。

Briefcase 的问题追踪器有一系列的功能建议,以及一些少量的错误。如果这是您第一次贡献,寻找其中一个标有 good first issue 的记录单 -- 这些是给首次贡献者精选的问题,因为他们实现起来相对简单。您可能也会发现按照您实际使用的平台过滤记录单很有帮助,因为如果您没有用于测试的 Linux 机器,修复 Linux 问题则会很困难!

如果您想为某个特定项目做出贡献,也可以使用这些链接按特定项目过滤好的首次贡献问题:

选择一条记录单,留下您正在调查该问题的评论,然后尝试开发一个实现修复的拉取请求!

图形用户界面编程

如果你有使用原生控件库的经验 -- macOS 上的 Cocoa、Linux 上的 GTK+、Windows Forms 或 iOS 或 Android 的本地库、您可能可以为 Toga 提供帮助。Toga 是一个跨平台控件工具包 -- 它为用户界面元素(如按钮和树)提供了一个通用接口。

Toga 已定义了一系列接口,但这些接口并不在所有平台上都有完整的实现。选择一个控件,并在您选择的平台上实现它!

即使您了解任何原生控件库,您仍然可以给 Toga 提供帮助。编写新的控件并不像看起来那么复杂。每个平台都有如何使用其原生 API 的文档,而将这些平台文档从另一种语言(如 Objective C 或 C#)翻译成 Python 是相对简单的过程。现有的代码应能为您提供一些关于如何做这件事的提示。如果您需要帮助,BeeWare 团队非常乐意为您提供帮助。请登录 BeeWare Discord,我们将竭尽所能为您提供帮助!

即使您不想把代码从一种语言转换成另一种,Toga 的核心库与 Travertino,一个样式与布局的子库,为纯 Python 且与平台无关。看一看没有标记为任何具体平台的问题 -- 其中许多问题很可能可以对平台具体的代码进行极少甚至无需更改即刻修复。

文档

良好的文档对于任何成功的项目都至关重要。我们知道 TogaBriefcase 的文档都需要重大改进。您已经完成了教程,所以现在请看看 TogaBriefcase 的文档,看看能否有方法改进教程、参考资料或主题指南。

教程

最好的贡献方式之一就是确保我们的入门和教程文档坚如磐石。从 BeeWare 套件中选择一个感兴趣的项目,并尝试按照入门指南和教程进行操作。如果你找不到入门指南 -- 那么首先要报告的就是这个问题!

在学习本教程的过程中,请注意任何不合理或不可行的地方,然后针对这些问题提交一个错误报告。

Windows

如果您是 Windows 用户,那么 BeeWare 肯定需要您的帮助。我们的核心团队在日常开发中都使用 Linux 和 macOS,因此很容易出现与 Windows 不兼容的情况。这几乎总是由于疏忽造成的。发现、甚至修复、在 Windows 系统上运行 BeeWare 工具的问题是对我们很大的帮助。

语言

您会说英语以外的语言吗?目前,核心团队成员均以英语为母语。提供文档的翻译,或者用您的母语提供全新的教程或指南是一种很好的贡献方式。选择一个已经有文档的项目并翻译那个文本。或者,从头开始,编写全新的教程。

如果您使用的语言是非拉丁字符集的语言(如俄语或中文)或从右到左书写的语言(如希伯来语或阿拉伯语),你就能指出我们在哪些地方假设了简单的 ASCII 编码或从左到右的约定的地方。选择任何一个 BeeWare 项目,并尝试用您的母语来使用它。如果您遇到任何问题,请将这些问题作为错误报告;如果您觉得自己特别有冒险精神,那就看看自己是否能找出修复错误的方法。

实际用途

要确定我们在文档和 API 方面的差距,最好的方法之一就是让人们实际使用 BeeWare 来构建应用程序。因此,如果您对我们目前提出的想法都不感兴趣,何不试试自己的?使用 BeeWare 套件构建您一直想要的那个应用程序 -- 一个在桌面数据源可视化,或一个移动应用程序来跟踪您的活动 -- 不管是什么,尝试构建它。

我们几乎可以保证您一定会遇到问题。BeeWare 还是一个非常年轻的项目。但您遇到的问题将向我们很好地表示什么问题需要解决。它会像我们指示需要哪些控件以及那些文档需要改进。所以,当您在构建自己的项目时遇到问题,把这些关于 BeeWare 项目的问题疾苦下来。这将帮助我们确定需要改进的地方 -- 甚至还可以作为您的贡献的灵感来源!