--- title: Development Setup description: Set up your development environment for Wails v3 development --- ## Development Environment Setup This guide walks you through setting up a complete development environment for working on Wails v3. ## Required Tools ### Go Development 1. **Install Go 1.25 or later:** ```bash # Download from https://go.dev/dl/ go version # Verify installation ``` 2. **Configure Go environment:** ```bash # Add to your shell profile (.bashrc, .zshrc, etc.) export GOPATH=$HOME/go export PATH=$PATH:$GOPATH/bin ``` 3. **Install useful Go tools:** ```bash go install golang.org/x/tools/cmd/goimports@latest go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest ``` ### Node.js and npm Required for building documentation and testing frontend integrations. ```bash # Install Node.js 20+ and npm node --version # Should be 20+ npm --version ``` ### Platform-Specific Dependencies **macOS:** ```bash # Install Xcode Command Line Tools xcode-select --install # Verify installation xcode-select -p # Should output a path ``` **Windows:** 1. Install [MSYS2](https://www.msys2.org/) for a Unix-like environment 2. WebView2 Runtime (pre-installed on Windows 11, [download](https://developer.microsoft.com/en-us/microsoft-edge/webview2/) for Windows 10) 3. Optional: Install [Git for Windows](https://git-scm.com/download/win) **Linux (Debian/Ubuntu):** ```bash sudo apt update sudo apt install build-essential pkg-config libgtk-3-dev libwebkit2gtk-4.0-dev ``` **Linux (Fedora/RHEL):** ```bash sudo dnf install gcc pkg-config gtk3-devel webkit2gtk3-devel ``` **Linux (Arch):** ```bash sudo pacman -S base-devel gtk3 webkit2gtk ``` ## Repository Setup ### Clone and Configure ```bash # 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 # Verify remotes git remote -v ``` ### Build the Wails CLI ```bash # Navigate to v3 directory cd v3 # Build the CLI go build -o ../wails3 ./cmd/wails3 # Test the build cd .. ./wails3 version ``` ### Add to PATH (Optional) **Linux/macOS:** ```bash # Add to ~/.bashrc or ~/.zshrc export PATH=$PATH:/path/to/wails ``` **Windows:** Add the Wails directory to your PATH environment variable through System Properties. ## IDE Setup ### VS Code (Recommended) 1. **Install VS Code:** [Download](https://code.visualstudio.com/) 2. **Install extensions:** - Go (by Go Team at Google) - ESLint - Prettier - MDX (for documentation) 3. **Configure workspace settings** (`.vscode/settings.json`): ```json { "go.useLanguageServer": true, "go.lintTool": "golangci-lint", "go.lintOnSave": "workspace", "editor.formatOnSave": true, "go.formatTool": "goimports" } ``` ### GoLand 1. **Install GoLand:** [Download](https://www.jetbrains.com/go/) 2. **Configure:** - Enable Go modules support - Set up file watchers for `goimports` - Configure code style to match project conventions ## Verify Your Setup Run these commands to verify everything is working: ```bash # Go version check go version # Build Wails cd v3 go build ./cmd/wails3 # Run tests go test ./pkg/... # Create a test app cd .. ./wails3 init -n mytest -t vanilla cd mytest ../wails3 dev ``` If the test app builds and runs, your environment is ready! ## Running Tests ### Unit Tests ```bash cd v3 go test ./... ``` ### Specific Package Tests ```bash go test ./pkg/application go test ./pkg/events -v # Verbose output ``` ### Run with Coverage ```bash go test ./... -coverprofile=coverage.out go tool cover -html=coverage.out ``` ### Run with Race Detector ```bash go test ./... -race ``` ## Working with Documentation The Wails documentation is built with Astro and Starlight. ```bash cd docs # Install dependencies npm install # Start dev server npm run dev # Build for production npm run build ``` Documentation will be available at `http://localhost:4321/` ## Debugging ### Debugging Go Code **VS Code:** Create `.vscode/launch.json`: ```json { "version": "0.2.0", "configurations": [ { "name": "Debug Wails CLI", "type": "go", "request": "launch", "mode": "debug", "program": "${workspaceFolder}/v3/cmd/wails3", "args": ["dev"] } ] } ``` **Command Line:** ```bash # Use Delve debugger go install github.com/go-delve/delve/cmd/dlv@latest dlv debug ./cmd/wails3 -- dev ``` ### Debugging Platform Code Platform-specific debugging requires platform tools: - **macOS:** Xcode Instruments - **Windows:** Visual Studio Debugger - **Linux:** GDB ## Common Issues ### "command not found: wails3" Add the Wails directory to your PATH or use `./wails3` from the project root. ### "webkit2gtk not found" (Linux) Install WebKit2GTK development packages: ```bash sudo apt install libwebkit2gtk-4.0-dev # Debian/Ubuntu ``` ### Build fails with Go module errors ```bash cd v3 go mod tidy go mod download ``` ### "CGO_ENABLED" errors on Windows Ensure you have a C compiler (MinGW-w64 via MSYS2) in your PATH. ## Next Steps - Review [Coding Standards](/contributing/standards) - Explore the [Technical Documentation](/contributing) - Find an issue to work on: [Good First Issues](https://github.com/wailsapp/wails/labels/good%20first%20issue)