贡献者指南
欢迎来到Casdoor。 本指南介绍了如何贡献。
如发现文档中存在错误或信息缺失,请提交问题或提出编辑建议。
参与进来
贡献方式:
-
**改进文档。**修复和澄清文档是极佳的首次贡献。
-
解决问题。 Casdoor 简易任务列出了不同难度级别的、适合初学者的问题。
提交更改
当你准备好贡献代码或文档时:
- 将仓库分叉到您的账户。
- 在本地克隆您的分叉。
- 创建新分支并进行更改。
- 使您的分支与上游主分支保持同步。
- 以清晰、简洁的消息提交。
- 将你的分支推送到你的复刻。
- 从您的分支向主分支发起拉取请求。
拉取请求
在开始之前
- 您在首次发起拉取请求时,必须签署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, fix 或resolve。
示例:修复:#902
更新您的PR
如果评审人员要求修改,请直接更新同一份PR,而不是关闭它并重新打开一份新的:
- 在本地进行修改。
- 修订提交:
git commit --amend - 推送:
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 许可证的许可。