贡献指南
非常感谢您花时间为 Goyave 框架做出贡献!
工作流程
- 新功能和变更首先在 Github 讨论区进行讨论。
- 在这里我们确定设计方案并进行讨论。
- 如果我们决定需要对某个主题进行工作,那么将创建一个issue。该 issue 将引用原始讨论。然后可以使用 issue 来跟踪进度或向潜在贡献者展示他们如何提供帮助。
- 如果打开了 pull request,它应该引用相关的 issue 和讨论。进一步的评论现在将在 pull request 上进行,而不是在原始讨论中。
- 协助请求和支持也属于讨论区部分。
- 错误、拼写错误、功能或代码工作不正常请在issues部分报告。
- 创建issue时,请使用可用的 issue 模板之一。
- 如果没有适合您需求的模板,请考虑改为开启一个讨论。
- 对于 pull requests,请使用 pull request 模板并选择
master
分支作为目标分支。- 确保提交的代码能够工作、有文档记录、尊重Golang 编码风格并且有测试覆盖。
- 项目使用golangci-lint和
.golangci.yml
中定义的配置进行代码检查。 - 文档位于另一个仓库中。如果您想要补充文档,请在那里开启 pull request。
- 请使用最新稳定版本的 Go 编程语言。最新的两个 Go 版本在 Github Actions 工作流中进行了测试。
- 测试可以在本地运行,无需任何特殊操作或设置。
如果您想贡献但不确定可以做什么工作,issues 部分是一个很好的起点。查看带有"contributions welcome"标签的 issues。当然,其他想法也非常欢迎!
设计理念
项目的目标是提供一个用于构建 REST API 的规范框架。使用它应该简单,同时保持灵活性和可定制性。我们不想设置太多限制,以便开发人员有自由构建他们想要的任何东西,即使是边缘情况。然而,目标是让最常见的情况变得轻松,这样他们就可以专注于他们的应用程序真正做的事情:业务逻辑。例如,在 REST API 中对资源进行某种权限控制是非常常见的,因此 Goyave 提供了一套全面的工具来实现这一点,而不是强迫开发人员花费时间在这上面,这可能很复杂。除此之外,Goyave 努力达到超出预期的质量水平,让公司和个人能够 confidently 构建大规模应用程序。
代码审查
非常欢迎您对 pull requests 留下审查意见,即使它们不属于您或您的组织。审查是一种宝贵的贡献形式。为了充分利用它们,请遵循以下规则:
- 避免吹毛求疵。代码检查器配置和 lint Github Action 负责通知作者需要进行的小改动以保证代码质量。golangci-lint 配置经过精心设置,既平衡又适合本项目,且不过度。报告拼写错误或不清晰的命名不被视为吹毛求疵。
- 不要超出范围。请将您的评论保持在 pull request 的范围内。如果您注意到某些可以改进但与添加或修改的代码没有直接关系的内容,请开启一个 issue、讨论或另一个 pull request。
- 保持中立。请保持讨论文明和尊重。不要诋毁或做出价值判断。只要不表现得像这是绝对真理,您可以自由表达您的意见。
您可以忽略任何不符合这些规则的 pull request 评论。