Magpie/CONTRIBUTING_ZH.md
2023-11-27 14:55:31 +08:00

94 lines
5.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 贡献指南
**首先,感谢你将宝贵的时间花费在本项目上!**
Magpie 是一个个人项目,最早启发于 IntegerScaler 和 Lossless Scaling但现在它比前辈们强大的多。开发者的能力和精力有限因此欢迎任何形式的贡献Magpie 遵循 [All Contributors](https://github.com/all-contributors/all-contributors) 规范,无论你以何种形式做出贡献,诸如编写代码、撰写文档、用户测试等,只要你的贡献足够,开发者都会把你加入贡献者清单。
如果你是新手,强烈推荐你读一下[这篇文章](https://opensourceway.community/open-source-guide/how-to-contribute/)。
下面是一些你可能想做的贡献:
### 我有一个问题 🙏
[FAQ](https://github.com/Blinue/Magpie/wiki/FAQ) 汇总了常见的问题,你也可以搜索 [Issue](https://github.com/Blinue/Magpie/issues) 和 [Discussion](https://github.com/Blinue/Magpie/discussions) 看是否已经有人提出过。如果依然没有得到解答,请在 Discussion 中询问。
### 我遇到了一个错误 🐞
Magpie 没有广泛的测试过,因此错误不可避免。希望你能向开发者反馈这个错误,这样可以帮助所有和你遇到同样问题的人。
首先请在 Issue 和 Discussion 中搜索你遇到的错误,避免和现有 Issue 重复。汇报错误时请发布一个 [Issuebug report](https://github.com/Blinue/Magpie/issues/new?assignees=&labels=bug&template=01_bug.yaml),下面是一些有利于开发者快速定位问题的最佳实践:
1. 选择一个清晰简洁的标题。如 “Windows 11窗口圆角导致游戏窗口超分后左下/右下角模糊” 是一个好标题,而 “应用程序错误” 则意义不明。
2. 上传日志文件对定位问题特别有帮助,它们位于 logs 文件夹下。**请以附件的形式上传日志,而不是将其中的内容复制到正文中。**
3. 请详细的描述复现步骤,最好提供一些截图。
4. 还有一些信息可能对开发者有帮助,比如特殊的显示器配置,显卡型号等。
### 我有一个功能建议 🚀
你可能有一些关于 Magpie 的奇思妙想,请和开发者分享它们!开发者通常只是通过自己的使用经验添加新功能,但你的点子可能会使 Magpie 与众不同。
首先请在 Issue 中搜索你的功能建议,确保不和已有的重复,尤其要查看 [Projects](https://github.com/Blinue/Magpie/projects) 里是否有这个功能。然后提交一个 [Issue (feature request)](https://github.com/Blinue/Magpie/issues/new?assignees=&labels=enhancement&template=03_request.yaml) 详细地描述你的建议,比如是否有其他软件实现了类似的功能。
**如果你想建议一个新的效果,请明确说明它的名称,适用场景以及已有的着色器实现(如果有的话),另外强烈建议你附上和现有效果的对比图。**
### 我想贡献代码 💻
贡献代码是帮助 Magpie 项目最直接的方式,你可以修复 bug增加新功能或修正格式错误。不要因为修改太小就羞于贡献你的每一行修改都很重要。
和所有开源项目一样,你需要提交 pull request 来向 Magpie 贡献代码。开发者可能会要求你做一些更改,如果你无法及时响应,你的 pull request 可能会被关闭。你应将提交合并到 dev 分支。
**注意:一旦你向 Magpie 贡献代码,便表示你同意将该代码的版权转让给 Magpie 当前的版权所有者。** 这是为了使开发者做出重大决定(如更换许可证)时无需征得每一个贡献者的同意。开发者承诺 Magpie 项目更换许可证的唯一情形是迁移到更新版本的 GPL 协议。如果你想保留版权,只能放弃贡献,将更改保留在自己的 Fork 中。
贡献代码时你需要遵守一些准则:
1. 和现有的代码风格保持一致包括花括号不换行tab 缩进,变量、类、源文件等的命名方式,所有源码文件格式均为 UTF-8 without BOM倾向于使用行注释git 消息风格等等。格式化 XAML 文件时请安装 [XamlStyler](https://github.com/Xavalon/XamlStyler) 插件。下面是一个代码风格的示例:
``` c++
// ClassName.h
class ClassName {
public:
void Test1();
private:
void _PrivateTest1();
int _m1 = 0;
};
// ClassName.cpp
void ClassName::Test1() {
if (_m1 <= 0) {
++_m1;
}
}
void ClassName::_PrivateTest1() {
try {
_m1 = std::stoi("123");
} catch (std::exception& e) {
// 错误处理
}
int sum = 0;
for (int i = 0; i < _m1; ++i) {
sum += i;
}
}
```
2. 如果你要进行比较大的更改请先查看 [Projects](https://github.com/Blinue/Magpie/projects) 或提交 pull request 和开发者交流,确保和项目当前的方向一致。
3. 你的分支必须可以通过编译检查。
### 我想贡献翻译 🌍
我们使用 Weblate 进行本地化工作。如果你想帮助将 Magpie 翻译成更多语言,请前往 https://hosted.weblate.org/projects/magpie 。
### 我想贡献文档 📖
因为开发者的懒惰Magpie 的文档长期处于缺失/过时的状态因此文档的贡献是非常欢迎的。Magpie 的 wiki 是从 main 分支的 docs 文件夹自动发布的,因此修改文档和[贡献代码](#我想贡献代码-)的方式相同。
如果你想改进已发布功能的文档,请合并到 main 分支,否则请合并到 dev 分支。每次发布版本时dev 分支的更改都将合并到 main 分支wiki 也会相应的自动更新。
### 我想资助 Magpie 💰
请点击页面上方的 "Sponsor" 按钮,非常感谢你的支持。如果能从中获益,我便会将更多精力投入开源项目的开发和维护。