社区指南

参与 SQLAlchemy 及其相关项目的指南。

虽然这些部分可能是为 SQLAlchemy 核心项目的开发人员编写的,但各种指南,特别是行为准则,适用于 SQLAlchemy 组织存储库下托管的所有项目。

参与

项目状态

参与的关键是了解项目的当前状态。SQLAlchemy 的当前发布版本始终位于主页右侧的顶部。通常,一次发布两个分支,例如“1.3”和“1.4”。较高的数字,即“1.4”,是“默认”分支,“1.3”是“维护”分支。转向一对新的主要分支大约需要 12-18 个月。我们缓慢而稳步前进的方法到目前为止对项目非常有益,允许在吸引更多新用户之前在架构和使用方面取得巨大进步。

可以通过查看 GitHub 项目页面来了解开发的总体状态。我们尝试将所有错误和新功能分配给特定版本,这些版本链接到里程碑。像“0.6.8”这样的特定数字意味着我们希望在该版本完成工单(尽管这并不总是得到保证)。像“0.7.xx”这样的“开放式”数字意味着工单“在队列中”,但未确定为任何特定版本的一部分。许多这些工单的优先级较低,有些工单非常复杂且繁琐,并且会在主要版本中多次推送。您可以提供帮助处理其中一些!

GitHub

SQLAlchemy 使用 Github 进行错误报告和问题跟踪、讨论、Wiki 页面和公共源代码访问。

报告错误

错误使用 GitHub 报告。

我们非常希望使用问题首先在 Github 讨论区中报告,而不是作为问题报告。当从问题描述中识别出问题时,SQLAlchemy 开发人员将打开问题以进行修复。

当报告行为(非文档)错误时,我们要求您

  • 创建一个简洁的测试用例来重现问题。 这需要是一个我们实际可以运行的脚本 - 因此它不应要求 SQLAlchemy 开发人员无法访问的任何导入,并且在绝大多数情况下不应有 SQLAlchemy 本身之外的任何导入。它需要包含重现问题所需的任何表定义和数据。虽然我们可以访问大多数数据库后端,但除非问题特定于某个后端,否则首选 SQLite。

    我们使用的指南是 StackOverflow 上的 如何创建最小、完整和可验证的示例。请阅读它。

  • 至少,如果代码示例不可行,请包含观察到的所有异常的完整堆栈跟踪。 没有堆栈跟踪的异常消息再模糊不过了。
  • 告诉我们您观察到问题的 SQLAlchemy 的确切版本,以及有关正在使用的数据库以及正在使用的确切驱动程序(例如 Python DBAPI)的详细信息。
  • 请回复在问题上提出的进一步问题。如果我们无法获得所需的其他信息,我们通常必须关闭该问题。

报告安全问题

SQLAlchemy 参与 Tidelift 安全基础设施,以负责任地报告潜在漏洞。请遵循 Tidelift 安全的指南以报告安全问题。SQLAlchemy 中的安全相关问题极其罕见,在十四年期间只报告了三个 CVE。尽管如此,我们还是希望您请不要在未先通过电子邮件联系我们的情况下提交 CVE,以便可以采取适当的披露步骤。

用户协助

SQLAlchemy 始终需要人们帮助回答问题,特别是来自新用户的问题。

有关当前 IRC / 聊天区域的链接,请参阅实时频道

SQLAlchemy 非常重视用户和开发人员之间礼貌、周到和建设性的沟通。粗鲁、人身侮辱或生硬的回答永远是不合适的,即使对于提出不合理要求的用户也是如此。请参阅我们的行为准则以获取完整声明。我们还努力确保 Github 讨论区上的每条消息都得到回复,即使答案只是礼貌地引导用户阅读文档的相应部分。SQLAlchemy 核心开发人员希望鼓励所有用户帮助完成这项任务 - 如果您看到一个非常基本的问题在列表中停留了几天,那就是我们在希望您回复它!您已获得我们的许可 :)。

下一步 ... 开发