入门指南
如何开始为 Wails v3 做贡献
欢迎,贡献者!
感谢你有兴趣为 Wails 做贡献!本指南将帮助你完成第一次贡献。
前提条件
开始之前,请确保你具备:
特定平台要求
macOS:
- Xcode 命令行工具:
xcode-select --install
Windows:
- 建议使用 MSYS2 或类似的类 Unix 环境
- WebView2 运行时(Windows 11上通常已预安装)
Linux:
gcc、pkg-config、libgtk-4-dev、libwebkitgtk-6.0-dev(默认 GTK4 技术栈)- 安装方式:
sudo apt install build-essential pkg-config libgtk-4-dev libwebkitgtk-6.0-dev(Debian/Ubuntu) - 对于旧版
-tags gtk3构建路径,还需安装libgtk-3-dev和libwebkit2gtk-4.1-dev
贡献流程概览
典型的贡献工作流包括以下步骤:
- 派生并克隆——创建你自己的 Wails 仓库副本
- 配置环境——构建 Wails CLI 并验证你的环境
- 创建分支——为你的更改创建功能分支
- 开发——按照我们的编码规范进行更改
- 测试——运行测试以确保一切正常
- 提交——使用清晰、符合约定的提交消息进行提交
- 提交审核——创建拉取请求以供审核
- 迭代——回应反馈并进行调整
- 合并——获得批准后,你的更改将成为 Wails 的一部分!
分步指南
选择你的贡献类型:
1
查找或报告错误
- 检查该错误是否已在 GitHub Issues 中报告
- 如果尚未报告,请创建新议题并提供复现步骤
- 开始工作前,请等待确认
2
派生并克隆
在 github.com/wailsapp/wails/fork 派生仓库
克隆你的派生仓库:
bash
git clone https://github.com/YOUR_USERNAME/wails.git
cd wails
git remote add upstream https://github.com/wailsapp/wails.git
3
构建并验证
构建 Wails,并验证你能否复现该错误:
bash
cd v3
go build -o ../wails3 ./cmd/wails3
# Reproduce the bug to understand it
4
创建错误修复分支
为修复创建分支:
bash
git checkout -b fix/issue-123-window-crash
5
修复错误
- 仅进行修复该错误所需的最少更改
- 不要重构无关代码
- 添加或更新测试以防止回归
bash
# Make your changes
# Add tests in *_test.go files
6
测试修复
运行测试以确保修复有效:
bash
go test ./...
# Test the specific package
go test ./pkg/application -v
# Run with race detector
go test ./... -race
7
提交修复
使用清晰的消息提交:
bash
git commit -m "fix: prevent window crash when closing during initialization
Fixes #123"
8
提交拉取请求
推送并创建 PR:
bash
git push origin fix/issue-123-window-crash
在 PR 描述中:
- 说明错误及其根本原因
- 描述你的修复方案
- 引用议题:“Fixes #123”
- 说明修复前后的行为
9
回应反馈
处理审核意见,并根据需要更新你的 PR。
1
编写 WEP
- 阅读 WEP(Wails 增强提案)流程
- 将 WEP 模板复制到
v3/wep/proposals/<name>/proposal.md - 创建一个标题为
[WEP] <title>且仅包含 WEP 的草稿 PR - 实施前,请等待维护者作出决定
2
派生并克隆
在 github.com/wailsapp/wails/fork 派生仓库
克隆你的派生仓库:
bash
git clone https://github.com/YOUR_USERNAME/wails.git
cd wails
git remote add upstream https://github.com/wailsapp/wails.git
3
设置开发环境
构建 Wails 并验证你的环境:
bash
cd v3
go build -o ../wails3 ./cmd/wails3
# Run tests to ensure everything works
go test ./...
4
创建功能分支
创建一个名称清晰的分支:
bash
git checkout -b feat/window-transparency-support
5
实现功能
- 遵循我们的编码规范
- 确保更改聚焦于该功能
- 编写简洁且有文档说明的代码
- 添加全面的测试
bash
# Example: Adding a new window method
# 1. Add to window.go interface
# 2. Implement in platform files (darwin, windows, linux)
# 3. Add tests
# 4. Update documentation
6
全面测试
测试你的功能:
bash
# Unit tests
go test ./pkg/application -v
# Integration test - create a test app
cd ..
./wails3 init -n feature-test
cd feature-test
# Add code using your new feature
../wails3 dev
7
为功能编写文档
- 为所有公共 API 添加文档注释
- 更新
/docs/mpress/content/中的相关文档 - 如适用,请添加示例
8
按约定提交
使用约定式提交:
bash
git commit -m "feat: add window transparency support
- Add SetTransparent() method to Window API
- Implement for macOS, Windows, and Linux
- Add tests and documentation
Closes #456"
9
提交拉取请求
推送并创建 PR:
bash
git push origin feat/window-transparency-support
在 PR 中:
- 描述该功能及其使用场景
- 提供示例或截图
- 列出所有破坏性变更
- 引用已获接受的 WEP PR
10
根据评审意见迭代
维护者可能会要求你进行更改。请耐心沟通、积极协作。
欢迎直接提交更正 PR,无需先创建议题。仅涉及文档的更正不需要提供会失败的代码测试。有关 M-Press 的安装、源文件路径、预览、验证和 PR 步骤,请遵循更正文档指南。
查找可处理的议题
- 查找
good first issue标签 - 查看
help wanted议题 - 浏览开放议题并请求分配给你
获取帮助
- Discord:加入Wails Discord
- 讨论区:在GitHub Discussions中发帖
- 议题:对于可复现的错误,请创建议题;如有疑问,请使用 Discussions;如需提出增强功能,请提交 WEP PR
行为准则
请尊重他人、提供建设性意见并热情友善。我们致力于打造一个友好的社区,共同创造出色的软件。