mirror of
https://github.com/wailsapp/wails.git
synced 2026-03-14 22:55:48 +01:00
* new events
* macOS dnd improvements
* wailsio adds for dropzone
* update example
* sorta working
the top 300px of the window are not dropabble for some reason i suspect it has to do with the drag enter/drag leave xy as the performOperation needed to use the ContentView for appropriate X/Y
* implement attribute detection for data-wails-dropzone
* docs
* pass x/y dnd linux
* cleanup exmample
* changelog
* pass all attributes to golang on dragdrop
* filetree example
* fix dnd build windows
* Fix windows dnd
* update docs
* remove debug log
* appease the security bot
* Fix changelog
* Fix changelog
* Revert "Fix event generation issues."
This reverts commit ae4ed4fe
* Fix events
* Fix merge conflicts. Fix events generation formatting
* Update docs
* Fix duplicate bundledassets import causing build failures
Remove duplicate import of bundledassets package that was causing
compilation errors in PR #4318. The import was declared twice in
the same import block, causing "bundledassets redeclared" errors.
Fixes build issues in GitHub Actions for drag-and-drop zones feature.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Replace fmt.Printf debug statements with globalApplication.debug
Replace all fmt.Printf debug logging statements in drag-and-drop
functionality with proper globalApplication.debug calls. This provides:
- Consistent logging with the rest of the application
- Proper key-value structured logging
- Better integration with the application's logging system
- Cleaner debug output format
Changes:
- application_darwin.go: Replace 2 fmt.Printf calls
- webview_window.go: Replace 6 fmt.Printf calls
- webview_window_windows.go: Replace 13 fmt.Printf calls
- Remove unused fmt import from application_darwin.go
All debug messages maintain the same information but now use
structured logging with key-value pairs instead of printf formatting.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Add nil checks to WindowEventContext methods
Ensure all WindowEventContext methods properly handle nil c.data
by initializing the map when it's nil. This prevents panics when
methods are called on contexts that haven't been properly initialized.
Changes:
- DroppedFiles(): Add nil check and map initialization
- setCoordinates(): Add nil check and map initialization
- setDropZoneDetails(): Add nil check and map initialization
- DropZoneDetails(): Add nil check and map initialization
All methods now follow the same pattern as setDroppedFiles()
where a nil data map is automatically initialized to prevent
runtime panics during drag-and-drop operations.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Update v3/pkg/application/webview_window_darwin.m
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* reinstate events docs.
---------
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
369 lines
11 KiB
YAML
369 lines
11 KiB
YAML
# https://taskfile.dev
|
|
|
|
version: "3"
|
|
|
|
includes:
|
|
generator:
|
|
taskfile: ./internal/generator
|
|
dir: ./internal/generator
|
|
|
|
runtime:
|
|
taskfile: ./internal/runtime
|
|
dir: ./internal/runtime
|
|
|
|
website:
|
|
taskfile: ./website
|
|
dir: ./website
|
|
optional: true
|
|
|
|
docs:
|
|
taskfile: ../docs
|
|
dir: ../docs
|
|
optional: true
|
|
|
|
tasks:
|
|
recreate-template-dir:
|
|
dir: internal/templates
|
|
internal: true
|
|
silent: true
|
|
cmds:
|
|
- rm -rf {{.TEMPLATE_DIR}}
|
|
- mkdir -p {{.TEMPLATE_DIR}}
|
|
|
|
install:
|
|
dir: cmd/wails3
|
|
silent: true
|
|
cmds:
|
|
- go install
|
|
- echo "Installed wails CLI"
|
|
|
|
release:
|
|
summary: Release a new version of Wails. Call with `task v3:release -- <version>`
|
|
dir: tasks/release
|
|
cmds:
|
|
- go run release.go {{.CLI_ARGS}}
|
|
|
|
taskfile:upgrade:
|
|
cmds:
|
|
- go get -u github.com/go-task/task/v3
|
|
|
|
reinstall-cli:
|
|
dir: cmd/wails3
|
|
internal: true
|
|
silent: true
|
|
cmds:
|
|
- go install
|
|
- echo "Reinstalled wails CLI"
|
|
|
|
generate:events:
|
|
dir: tasks/events
|
|
cmds:
|
|
- go run generate.go
|
|
- go fmt ../../pkg/events/events.go
|
|
|
|
precommit:
|
|
cmds:
|
|
- go test ./...
|
|
- task: format
|
|
# - task: docs:update:api
|
|
|
|
test:example:darwin:
|
|
dir: 'examples/{{.DIR}}'
|
|
platforms:
|
|
- darwin
|
|
cmds:
|
|
- echo "Building example {{.DIR}} for Darwin"
|
|
- go mod tidy
|
|
- go build -o "testbuild-{{.DIR}}-darwin{{exeExt}}"
|
|
env:
|
|
CGO_LDFLAGS: -framework UniformTypeIdentifiers -mmacosx-version-min=10.13
|
|
CGO_CFLAGS: -mmacosx-version-min=10.13
|
|
|
|
test:example:windows:
|
|
dir: 'examples/{{.DIR}}'
|
|
platforms:
|
|
- windows
|
|
cmds:
|
|
- echo "Building example {{.DIR}} for Windows"
|
|
- go mod tidy
|
|
- go build -o "testbuild-{{.DIR}}-windows.exe"
|
|
env:
|
|
GOOS: windows
|
|
GOARCH: amd64
|
|
|
|
test:example:linux:
|
|
dir: 'examples/{{.DIR}}'
|
|
platforms:
|
|
- linux
|
|
cmds:
|
|
- echo "Building example {{.DIR}} for Linux"
|
|
- go mod tidy
|
|
- go build -o "testbuild-{{.DIR}}-linux"
|
|
|
|
test:example:linux:docker:arm64:
|
|
summary: Build a single example for Linux ARM64 using Docker (Ubuntu 24.04)
|
|
cmds:
|
|
- echo "Building example {{.DIR}} for Linux ARM64 using Docker"
|
|
- docker build --pull -f test/docker/Dockerfile.linux-arm64 -t wails-v3-linux-arm64 .
|
|
- docker run --rm wails-v3-linux-arm64 /build/build-linux-arm64.sh {{.DIR}}
|
|
|
|
test:example:linux:docker:x86_64:
|
|
summary: Build a single example for Linux x86_64 using Docker (Ubuntu 24.04)
|
|
cmds:
|
|
- echo "Building example {{.DIR}} for Linux x86_64 using Docker"
|
|
- docker build --pull -f test/docker/Dockerfile.linux-x86_64 -t wails-v3-linux-x86_64 .
|
|
- docker run --rm wails-v3-linux-x86_64 /build/build-linux-x86_64.sh {{.DIR}}
|
|
|
|
test:examples:linux:docker:arm64:
|
|
summary: Build all examples for Linux ARM64 using Docker (Ubuntu 24.04)
|
|
cmds:
|
|
- echo "Building Docker image for Linux ARM64 compilation..."
|
|
- docker build --pull -f test/docker/Dockerfile.linux-arm64 -t wails-v3-linux-arm64 .
|
|
- echo "Running Linux ARM64 compilation in Docker container..."
|
|
- docker run --rm wails-v3-linux-arm64
|
|
|
|
test:examples:linux:docker:x86_64:
|
|
summary: Build all examples for Linux x86_64 using Docker (Ubuntu 24.04)
|
|
cmds:
|
|
- echo "Building Docker image for Linux x86_64 compilation..."
|
|
- docker build --pull -f test/docker/Dockerfile.linux-x86_64 -t wails-v3-linux-x86_64 .
|
|
- echo "Running Linux x86_64 compilation in Docker container..."
|
|
- docker run --rm wails-v3-linux-x86_64
|
|
|
|
test:example:linux:docker:
|
|
summary: Build a single example for Linux using Docker (auto-detect architecture)
|
|
cmds:
|
|
- echo "Auto-detecting architecture for Linux Docker build..."
|
|
- |
|
|
if [ "$(uname -m)" = "arm64" ] || [ "$(uname -m)" = "aarch64" ]; then
|
|
echo "Detected ARM64, using ARM64 Docker image"
|
|
task test:example:linux:docker:arm64 DIR={{.DIR}}
|
|
else
|
|
echo "Detected x86_64, using x86_64 Docker image"
|
|
task test:example:linux:docker:x86_64 DIR={{.DIR}}
|
|
fi
|
|
|
|
test:examples:linux:docker:
|
|
summary: Build all examples for Linux using Docker (auto-detect architecture)
|
|
cmds:
|
|
- echo "Auto-detecting architecture for Linux Docker build..."
|
|
- |
|
|
if [ "$(uname -m)" = "arm64" ] || [ "$(uname -m)" = "aarch64" ]; then
|
|
echo "Detected ARM64, using ARM64 Docker image"
|
|
task test:examples:linux:docker:arm64
|
|
else
|
|
echo "Detected x86_64, using x86_64 Docker image"
|
|
task test:examples:linux:docker:x86_64
|
|
fi
|
|
|
|
test:examples:all:
|
|
summary: Builds all examples for all platforms (Mac + Windows + Linux via Docker)
|
|
vars:
|
|
EXAMPLEDIRS: |
|
|
badge
|
|
badge-custom
|
|
binding
|
|
build
|
|
cancel-async
|
|
cancel-chaining
|
|
clipboard
|
|
contextmenus
|
|
dev
|
|
dialogs
|
|
dialogs-basic
|
|
drag-n-drop
|
|
environment
|
|
events
|
|
events-bug
|
|
file-association
|
|
frameless
|
|
gin-example
|
|
gin-routing
|
|
gin-service
|
|
hide-window
|
|
html-dnd-api
|
|
ignore-mouse
|
|
keybindings
|
|
menu
|
|
notifications
|
|
panic-handling
|
|
plain
|
|
raw-message
|
|
screen
|
|
services
|
|
show-macos-toolbar
|
|
single-instance
|
|
systray-basic
|
|
systray-custom
|
|
systray-menu
|
|
video
|
|
window
|
|
window-api
|
|
window-call
|
|
window-menu
|
|
wml
|
|
cmds:
|
|
- echo "Building all examples for all platforms..."
|
|
- echo "=== Building for Darwin ==="
|
|
- for: { var: EXAMPLEDIRS }
|
|
task: test:example:darwin
|
|
vars:
|
|
DIR: "{{.ITEM}}"
|
|
- echo "=== Building for Windows (cross-compile) ==="
|
|
- for: { var: EXAMPLEDIRS }
|
|
task: test:example:windows
|
|
vars:
|
|
DIR: "{{.ITEM}}"
|
|
- echo "=== Building for Linux (Docker) ==="
|
|
- task: test:examples:linux:docker
|
|
- echo "=== Testing CLI Code ==="
|
|
- task: test:cli
|
|
- echo "=== Cleaning Up Test Binaries ==="
|
|
- task: clean:test:binaries
|
|
|
|
test:cli:
|
|
summary: Test CLI-related code compilation
|
|
cmds:
|
|
- echo "Testing CLI appimage testfiles compilation..."
|
|
- cd internal/commands/appimage_testfiles && go mod tidy && go build
|
|
- echo "✅ CLI appimage testfiles compile successfully"
|
|
|
|
test:cli:all:
|
|
summary: Test all CLI components and critical test files
|
|
cmds:
|
|
- echo "Testing CLI appimage testfiles..."
|
|
- cd internal/commands/appimage_testfiles && go mod tidy && go build
|
|
- echo "Testing window visibility test..."
|
|
- cd tests/window-visibility-test && go mod tidy && go build
|
|
- echo "Testing service implementations..."
|
|
- cd pkg/services/badge && go build
|
|
- echo "✅ All CLI components compile successfully"
|
|
|
|
test:generator:
|
|
summary: Test code generator test cases compilation
|
|
cmds:
|
|
- echo "Testing generator test cases (sample)..."
|
|
- cd internal/generator/testcases/function_single && go mod tidy && go build
|
|
- cd internal/generator/testcases/complex_method && go mod tidy && go build
|
|
- cd internal/generator/testcases/struct_literal_single && go mod tidy && go build
|
|
- echo "✅ Generator test cases compile successfully"
|
|
|
|
test:templates:
|
|
summary: Test template generation for core templates
|
|
cmds:
|
|
- echo "Testing template generation (core templates)..."
|
|
- task: install
|
|
- echo "Testing lit template generation..."
|
|
- rm -rf ./test-template-lit && wails3 init -n test-template-lit -t lit
|
|
- mkdir -p ./test-template-lit/frontend/dist && touch ./test-template-lit/frontend/dist/.keep
|
|
- cd ./test-template-lit && go mod tidy && go build
|
|
- rm -rf ./test-template-lit
|
|
- echo "Testing react template generation..."
|
|
- rm -rf ./test-template-react && wails3 init -n test-template-react -t react
|
|
- mkdir -p ./test-template-react/frontend/dist && touch ./test-template-react/frontend/dist/.keep
|
|
- cd ./test-template-react && go mod tidy && go build
|
|
- rm -rf ./test-template-react
|
|
- echo "✅ Template generation tests completed successfully"
|
|
|
|
test:infrastructure:
|
|
summary: Test critical infrastructure components
|
|
cmds:
|
|
- echo "=== Testing CLI Components ==="
|
|
- task: test:cli:all
|
|
- echo "=== Testing Generator ==="
|
|
- task: test:generator
|
|
- echo "=== Testing Templates ==="
|
|
- task: test:templates
|
|
- echo "=== Testing pkg/application ==="
|
|
- cd pkg/application && go test -c -o /dev/null ./...
|
|
- echo "=== Cleaning Up Test Binaries ==="
|
|
- task: clean:test:binaries
|
|
- echo "✅ All infrastructure components test successfully"
|
|
|
|
test:examples:
|
|
summary: Builds the examples for current platform only
|
|
vars:
|
|
EXAMPLEDIRS: |
|
|
badge
|
|
badge-custom
|
|
binding
|
|
build
|
|
cancel-async
|
|
cancel-chaining
|
|
clipboard
|
|
contextmenus
|
|
dev
|
|
dialogs
|
|
dialogs-basic
|
|
drag-n-drop
|
|
environment
|
|
events
|
|
events-bug
|
|
file-association
|
|
frameless
|
|
gin-example
|
|
gin-routing
|
|
gin-service
|
|
hide-window
|
|
html-dnd-api
|
|
ignore-mouse
|
|
keybindings
|
|
menu
|
|
notifications
|
|
panic-handling
|
|
plain
|
|
raw-message
|
|
screen
|
|
services
|
|
show-macos-toolbar
|
|
single-instance
|
|
systray-basic
|
|
systray-custom
|
|
systray-menu
|
|
video
|
|
window
|
|
window-api
|
|
window-call
|
|
window-menu
|
|
wml
|
|
cmds:
|
|
- echo "Testing examples compilation..."
|
|
- for: { var: EXAMPLEDIRS }
|
|
task: test:example:darwin
|
|
vars:
|
|
DIR: "{{.ITEM}}"
|
|
platforms: [darwin]
|
|
- for: { var: EXAMPLEDIRS }
|
|
task: test:example:linux
|
|
vars:
|
|
DIR: "{{.ITEM}}"
|
|
platforms: [linux]
|
|
- for: { var: EXAMPLEDIRS }
|
|
task: test:example:windows
|
|
vars:
|
|
DIR: "{{.ITEM}}"
|
|
platforms: [windows]
|
|
- echo "Testing CLI code..."
|
|
- task: test:cli
|
|
- echo "=== Cleaning Up Test Binaries ==="
|
|
- task: clean:test:binaries
|
|
|
|
clean:test:binaries:
|
|
summary: Clean up all test-generated binary files and directories (cross-platform)
|
|
cmds:
|
|
- echo "🧹 Cleaning up test binaries..."
|
|
- go run tasks/cleanup/cleanup.go
|
|
- echo "✅ Test binaries cleaned up"
|
|
|
|
test:all:
|
|
summary: Run all tests including examples, infrastructure, and Go unit tests
|
|
cmds:
|
|
- echo "=== Running Go Unit Tests ==="
|
|
- go test ./...
|
|
- echo "=== Testing Examples (Current Platform) ==="
|
|
- task: test:examples
|
|
- echo "=== Testing Infrastructure Components ==="
|
|
- task: test:infrastructure
|
|
- echo "=== Cleaning Up Test Binaries ==="
|
|
- task: clean:test:binaries
|
|
- echo "✅ All tests completed successfully"
|