在 Sails 核心代码库中,我们接受两种类型的代码贡献:补丁和新功能。
补丁 是小的修复,涵盖了从拼写错误到时间问题的所有内容。从文件顶部删除未使用的 require()
或修复导致 Travis 上主分支测试崩溃的拼写错误是两个很好的补丁示例。跨多个文件更改空白和变量名称的大型重构项目不属于补丁。此外,请记住,即使看似微不足道的更改,如果它影响了 Sails 文档化功能的使用,或者添加了未记录的公共函数,也不属于补丁。
新功能 是在 Sails 路线图 文件中总结的 TODO,并在相应的拉取请求中提供更多信息。任何不在 ROADMAP.md 文件中明确列出的内容都不应作为新功能提交。
如果您不确定您想进行的更改是否会被视为“补丁”,请在您开始编写拉取请求之前 在 问题跟踪器 中打开一个问题,或联系我们 核心团队 中的某个人在 Twitter 上。如果您计划进行大型工作,尤其要这样做。没有什么比看到您的辛苦工作付诸东流更令人沮丧的了,因为您的愿景与项目维护者的计划或正在进行的开发工作不一致。
Sails 核心中的子模块处于不同的 API 稳定性级别。错误修复(补丁)总是受欢迎的,但 API 或行为变更在没有经过认真计划的情况下无法合并,如上面有关功能提案的过程文档所述。
Sails 有几个在 package.json
文件中引用的依赖项,它们不属于项目本身。对这些依赖项或它们的依赖项的任何提议更改应发送到它们各自的项目(例如 Express、Socket.io 等)。请不要将您的补丁或功能请求发送到 Sails 代码库 - 我们无法接受或执行它。(虽然如果您通过聊天联系我们,我们会尽力提供帮助。)
如果适配器是核心的一部分(代码库位于 Sails 代码库中),请遵循贡献 Sails 核心的通用最佳实践。如果它位于不同的代码库中,请将功能请求和补丁发送到那里。
Sails 适配器将 Waterline 查询语法转换为集成数据库的底层语言,它们从数据库获取结果并将它们映射到 Waterline(Sails 框架的 ORM)所期望的响应。虽然创建新的适配器不应该草率行事,但在许多情况下,编写适配器并没有想象中那么难(因为您最终会围绕一个现有的 npm 包进行包装),并且它是在 Sails 中的 ORM 钩子以及 Waterline 代码库中入门的好方法。
在开始编写新的适配器之前,只需确保在 npm、Google 和 Github 上进行彻底的搜索,以检查其他人是否已经开始处理相同的事情。在 概念 > 扩展 Sails > 适配器 中了解更多关于适配器的信息。
如果钩子是核心的一部分(代码库位于 Sails 代码库中),请遵循贡献 Sails 核心的通用最佳实践。如果钩子位于不同的代码库中,请将功能请求、补丁和问题发送到那里。许多核心钩子都有 README.md 文件,其中包含对其目的、它们附加的方法、它们触发的事件以及有关其实现的其他相关信息的广泛文档。
创建钩子是实现 Sails 核心几乎任何事情的好方法。在开始编写新的自定义钩子之前,只需确保在 npm、Google 和 Github 上进行彻底的搜索,以确保其他人是否已经开始处理相同的事情。在 概念 > 扩展 Sails > 钩子 中了解更多关于自定义钩子的信息。
如果生成器是核心的一部分(代码库位于 Sails 代码库中),请遵循贡献 Sails 核心的通用最佳实践。如果它位于不同的代码库中,请将功能请求、补丁和问题发送到那里。
自定义生成器 API 还没有完全稳定,但它正在趋于稳定。请随时开始编写新的自定义生成器,但首先确保在 npm、Google 和 Github 上进行彻底的搜索,以确保其他人是否已经开始处理相同的事情。自定义生成器是使用 Sails 代码库入门的好方法。