跳到主内容

贡献者指南

欢迎来到Casdoor。 本指南介绍了如何贡献。

如发现文档中存在错误或信息缺失,请提交问题或提出编辑建议。

参与进来

贡献方式:

  • **使用Casdoor并反馈问题。**如遇Bug或有功能建议,请先访问GitHub讨论区Discord,再提交GitHub问题。
信息
报告问题时,请用英语
  • **改进文档。**修复和澄清文档是极佳的首次贡献。

  • 解决问题。 Casdoor 简易任务列出了不同难度级别的、适合初学者的问题。

提交更改

当你准备好贡献代码或文档时:

  1. 将仓库分叉到您的账户。
  2. 在本地克隆您的分叉。
  3. 创建新分支并进行更改。
  4. 使您的分支与上游主分支保持同步。
  5. 以清晰、简洁的消息提交。
  6. 将你的分支推送到你的复刻。
  7. 从您的分支向主分支发起拉取请求。

拉取请求

在开始之前

  • 您在首次发起拉取请求时,必须签署CLA(贡献者许可协议)。
  • 请描述该PR的用途以及它所更改的内容。
  • **每个 PR 仅进行一次逻辑更改。**如果 PR 执行多项不相关操作,请将其拆分为多个 PR。
  • **每个PR一个提交。**将您的更改压缩成一个单独的提交。
  • 对于新文件,请在顶部添加Casdoor许可证头文件。
// Copyright 2022 The Casdoor Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

常规提交

PR 标题(和提交信息)应遵循常规提交规范。

:::注意:公关标题必须使用小写。 :::

示例:

  • 修复— 错误修复:修复:防止请求竞争
  • 特性— 新功能:特性:允许提供的配置对象扩展其他配置
  • docs— 文档:docs:更正CHANGELOG的拼写

请参阅常规提交以获取完整规范。

s将 PR 与问题关联

将 PR 与问题关联,以便在 PR 合并时自动关闭该问题。 在 PR 描述或默认分支的提交信息中,使用以下关键字之一,后跟问题编号:close, fixresolve

示例:修复:#902

请参阅GitHub:将拉取请求链接到议题

更新您的PR

如果评审人员要求修改,请直接更新同一份PR,而不是关闭它并重新打开一份新的:

  1. 在本地进行修改。
  2. 修订提交:git commit --amend
  3. 推送:git push --force

代码规范

  • **可读性:**重要的逻辑应予以记录。 遵循项目中现有的代码风格。

命名

  • **代码:**驼峰命名法(例如signupUrl).
  • **UI字符串:**首字母大写且带空格(例如“注册网址”)。

更新i18n数据

我们使用Crowdin和i18next进行翻译。 当您在web/下使用i18next添加新的UI字符串时,请运行:

cd i18n && go test

这将重新生成web/src/locales/**/data.json. 新密钥默认以英文填充。 PR合并后,可在Crowdin.

:::注意 请勿翻译成您不熟悉的语言;请保持默认(英语)不变。 :::

命名空间约定

翻译键按命名空间进行组织。 为密钥使用最具体的命名空间—请不要将特定于域的字符串放入通用:.

命名空间范围
通用真正通用的UI词汇(例如:保存、取消)
auth登录、注册、多因素认证、密码流程
提供商OAuth、SAML、LDAP 等提供商
支付产品、订单、支付、订阅
订阅订阅专用字符串

添加新密钥时,请先检查它是否已存在于更具体的命名空间中,然后再将其添加到``通用.

去重测试

该``i18n/目录包含可捕获命名空间中重复键的测试:

cd i18n && go test -run TestDeduplicateFrontendI18n
cd i18n && go test -run TestDeduplicateBackendI18n

TestDeduplicateFrontendI18n会扫描web/src/locales/目录,而TestDeduplicateBackendI18n会扫描后端本地化文件。 如果某个键已存在于``通用中,而更具体的命名空间已对其进行定义,则两者均会失败。 在提交涉及翻译文件的PR之前,请先运行这些操作。

许可证书

通过贡献,您同意您的贡献受 Apache 许可证的许可。