Перейти к содержимому

Вклад в проект

Мы приветствуем вклад в развитие Wails! Независимо от того, исправляете ли вы ошибки, добавляете новые функции или улучшаете документацию, ваша помощь очень ценится.

Нашли баг? Откройте issue с:

  • Четким описанием проблемы
  • Шагами для воспроизведения
  • Ожидаемым и фактическим поведением
  • Информацией о системе
  • Примерами кода

Улучшения документации всегда приветствуются:

  • Исправление опечаток и ошибок
  • Добавление примеров
  • Уточнение объяснений
  • Перевод материалов

Вносите код через pull requests:

  • Исправления ошибок
  • Новые функции
  • Улучшения производительности
  • Тесты
Окно терминала
# Fork the repository on GitHub
# Then clone your fork
git clone https://github.com/YOUR_USERNAME/wails.git
cd wails
# Add upstream remote
git remote add upstream https://github.com/wailsapp/wails.git
Окно терминала
# Install dependencies
go mod download
# Build Wails CLI
cd v3/cmd/wails3
go build
# Test your build
./wails3 version
Окно терминала
# Run all tests
go test ./...
# Run specific package tests
go test ./v3/pkg/application
# Run with coverage
go test -cover ./...
Окно терминала
# Update main
git checkout main
git pull upstream main
# Create feature branch
git checkout -b feature/my-feature
  1. Пишите код, следуя соглашениям Go
  2. Добавляйте тесты для нового функционала
  3. Обновляйте документацию при необходимости
  4. Запускайте тесты, чтобы убедиться, что ничего не сломалось
  5. Делайте коммиты с понятными сообщениями
Окно терминала
# Good commit messages
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"
# Use conventional commits:
# - feat: New feature
# - fix: Bug fix
# - docs: Documentation
# - test: Tests
# - refactor: Code refactoring
# - chore: Maintenance
Окно терминала
# Push to your fork
git push origin feature/my-feature
# Open pull request on GitHub
# Provide clear description
# Reference related issues
## Description
Brief description of changes
## Changes
- Added feature X
- Fixed bug Y
- Updated documentation
## Testing
- Tested on macOS 14
- Tested on Windows 11
- All tests passing
## Related Issues
Fixes #123
  • Код соответствует соглашениям Go
  • Тесты добавлены/обновлены
  • Документация обновлена
  • Все тесты проходят
  • Нет ломающих изменений (или они задокументированы)
  • Сообщения коммитов понятны
// ✅ Good: Clear, documented, tested
// ProcessData processes the input data and returns the result.
// It returns an error if the data is invalid.
func ProcessData(data string) (string, error) {
if data == "" {
return "", errors.New("data cannot be empty")
}
result := process(data)
return result, nil
}
// ❌ Bad: No docs, no error handling
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 docs
npm install
npm run dev
  • Используйте международный английский вариант правописания
  • Начинайте с описания проблемы
  • Приводите рабочие примеры
  • Включайте разделы по устранению неполадок
  • Делайте перекрестные ссылки на связанные материалы

Будьте уважительны, инклюзивны и профессиональны. Мы все здесь, чтобы вместе создавать отличный программный продукт.

Участники проекта получают признание в:

  • Списке изменений релизов
  • Списке участников
  • Статистике GitHub

Спасибо за ваш вклад в Wails! 🎉