GitHub 仓库
访问 Wails 仓库。
我们欢迎对 Wails 的贡献!无论你是修复 bug、添加新功能还是改进文档,你的帮助都备受感激。
发现了 bug?提交一个 issue,并包含以下内容:
我们非常欢迎对文档的改进:
通过拉取请求(Pull Request)提交代码:
# 在 GitHub 上 Fork 仓库# 然后克隆你的 Forkgit clone https://github.com/YOUR_USERNAME/wails.gitcd wails
# 添加上游远程仓库git remote add upstream https://github.com/wailsapp/wails.git# 安装依赖go mod download
# 构建 Wails CLIcd v3/cmd/wails3go build
# 测试你的构建./wails3 version# 运行所有测试go test ./...
# 运行特定包的测试go test ./v3/pkg/application
# 运行带覆盖率报告的测试go test -cover ./...# 更新 main 分支git checkout maingit pull upstream main
# 创建功能分支git checkout -b feature/my-feature# 良好的提交信息示例git commit -m "fix: resolve window focus issue on macOS"git commit -m "feat: add support for custom window chrome"git commit -m "docs: improve bindings documentation"
# 使用约定式提交(Conventional Commits):# - feat: 新功能# - fix: Bug 修复# - docs: 文档# - test: 测试# - refactor: 代码重构# - chore: 维护工作# 推送到你的 Forkgit push origin feature/my-feature
# 在 GitHub 上打开拉取请求# 提供清晰的描述# 引用相关问题## 描述简要描述所做的更改
## 更改内容- 添加了功能 X- 修复了 Bug Y- 更新了文档
## 测试- 在 macOS 14 上测试- 在 Windows 11 上测试- 所有测试通过
## 相关问题修复 #123// ✅ 良好:清晰、有文档、有测试// ProcessData 处理输入数据并返回结果。// 如果数据无效,则返回错误。func ProcessData(data string) (string, error) { if data == "" { return "", errors.New("data cannot be empty") }
result := process(data) return result, nil}
// ❌ 糟糕:无文档、无错误处理func ProcessData(data string) string { return process(data)}func TestProcessData(t *testing.T) { tests := []struct { name string input string want string wantErr bool }{ {"valid input", "test", "processed", false}, {"empty input", "", "", true}, }
for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { got, err := ProcessData(tt.input) if (err != nil) != tt.wantErr { t.Errorf("ProcessData() error = %v, wantErr %v", err, tt.wantErr) return } if got != tt.want { t.Errorf("ProcessData() = %v, want %v", got, tt.want) } }) }}文档使用 Starlight (Astro) 构建:
cd docsnpm installnpm run dev请保持尊重、包容和专业。我们都是为了共同构建优秀的软件而聚在这里。
贡献者将在以下地方得到认可:
感谢你对 Wails 的贡献!🎉