Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: fyne-io/fyne
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v1.0.1
Choose a base ref
...
head repository: fyne-io/fyne
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Loading
Showing 2,237 changed files with 147,839 additions and 274,715 deletions.
1 change: 1 addition & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
github: [fyne-io, andydotxyz, toaster, Jacalz, changkun, dweymouth, lucor]
77 changes: 77 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
name: Bug Report
description: Create a bug report to help us improve.
labels: "unverified"
body:
- type: checkboxes
attributes:
label: Checklist
description: Please make sure you have read the following.
options:
- label: I have searched the [issue tracker](https://github.com/fyne-io/fyne/issues) for open issues that relate to the same problem, before opening a new one.
required: true
- label: This issue only relates to a single bug. I will open new issues for any other problems.
required: true
- type: textarea
attributes:
label: Describe the bug
description: A clear and concise description about the bug. Please include the full stack trace in the case of a crash.
validations:
required: true
- type: textarea
attributes:
label: How to reproduce
description: A clear description of how to reproduce the problem.
placeholder: |
1. Go to `...`
2. Click on `...`
3. Scroll down to `...`
4. See error
validations:
required: true
- type: textarea
attributes:
label: Screenshots
description: If applicable, add screenshots or gifs to help explain your problem.
validations:
required: false
- type: textarea
attributes:
label: Example code
description: |
Add a short code snippet to help explain and simplify reproduction of the problem.
Please refrain from adding screenshots of code, links to other projects, attached `.zip` files containing source files, or very long code examples.
A good code example should be runnable and contain no more code than is necessary to reproduce the bug.
placeholder: |
Please write the code inside a code block with Go syntax highlighting enabled, like this:
```go
Write your code here.
```
validations:
required: true
- type: input
attributes:
label: Fyne version
description: Clarify the version of Fyne that you are using.
placeholder: "e.g. 2.2.3 or git SHA"
validations:
required: true
- type: input
attributes:
label: Go compiler version
description: Clarify the version of the Go compiler that you are using.
placeholder: "e.g. 1.14.8 or 1.18.3"
validations:
required: true
- type: input
attributes:
label: Operating system and version
description: The name and version of the operating system you are using.
placeholder: "e.g. Windows 10, macOS High Sierra or Ubuntu 18.04"
validations:
required: true
- type: textarea
attributes:
label: Additional Information
description: If your problem needs further explanation, please add more information here.
validations:
required: false
6 changes: 6 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
contact_links:
- name: Ask a question
url: https://fyne.io/support/
about: For a toolkit question or help with your code go to our support page

blank_issues_enabled: false
30 changes: 30 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Feature Request
description: Suggest an idea for this project.
body:
- type: checkboxes
attributes:
label: Checklist
description: Please make sure you have read the following.
options:
- label: I have searched the [issue tracker](https://github.com/fyne-io/fyne/issues) for open issues that relate to the same feature, before opening a new one.
required: true
- label: This issue only relates to a single feature. I will open new issues for any other features.
required: true
- type: textarea
attributes:
label: Is your feature request related to a problem?
description: A clear and concise description of what the problem is. Ex. I'm always frustrated when...
validations:
required: true
- type: textarea
attributes:
label: Is it possible to construct a solution with the existing API?
description: If this is an enhancement have you been able to create something similar, or is your desired outcome not possible at this time?
validations:
required: false
- type: textarea
attributes:
label: Describe the solution you'd like to see.
description: A clear and concise description of what you want to happen.
validations:
required: true
23 changes: 23 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<!-- If this is your first pull request for Fyne please read the contributor docs at:
https://github.com/fyne-io/fyne/wiki/Contributing.
Be sure that your work is based off `develop` branch. -->

### Description:
<!-- A summary of the change included and which issue it addresses.
Please include any relevant motivation and background. -->

Fixes #(issue)

### Checklist:
<!-- Please tick these as appropriate using [x] -->

- [ ] Tests included.
- [ ] Lint and formatter run with no errors.
- [ ] Tests all pass.

#### Where applicable:
<!-- Please delete these if not required for this PR -->

- [ ] Public APIs match existing style and have Since: line.
- [ ] Any breaking changes have a deprecation path or have been discussed.
- [ ] Check for binary size increases when importing new modules.
22 changes: 22 additions & 0 deletions .github/workflows/license_check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: Check license of dependencies
on: [push, pull_request]
permissions:
contents: read

jobs:
licenses:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: WillAbides/setup-go-faster@v1
with:
go-version: '1.23.x'

- name: Install lian
run: go install lucor.dev/lian@latest

- name: Check license of dependencies against go.mod
run: lian -d --allowed="Apache-2.0, BSD-2-Clause, BSD-3-Clause, MIT, ISC" --excluded=github.com/jsummers/gobmp@v0.0.0-20151104160322-e2ba15ffa76e

26 changes: 26 additions & 0 deletions .github/workflows/mobile_tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Mobile Tests
on: [push, pull_request]
permissions:
contents: read

jobs:
mobile_tests:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
go-version: ['1.19.x', '1.23.x']

steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: WillAbides/setup-go-faster@v1
with:
go-version: ${{ matrix.go-version }}

- name: Get dependencies
run: sudo apt-get update && sudo apt-get install gcc libegl1-mesa-dev libgles2-mesa-dev libx11-dev xorg-dev

- name: Tests
run: go test -test.benchtime 10ms -tags "ci mobile" ./...
64 changes: 64 additions & 0 deletions .github/workflows/platform_tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: Platform Tests
on: [push, pull_request]
permissions:
contents: read

jobs:
platform_tests:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
go-version: ['1.19.x', '1.23.x']
os: [ubuntu-latest, macos-latest]
include:
- os: ubuntu-latest
runner: xvfb-run
- os: macos-latest
tags: no_glfw

steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: WillAbides/setup-go-faster@v1
with:
go-version: ${{ matrix.go-version }}

- name: Get dependencies
run: >-
sudo apt-get update &&
sudo apt-get install
bc
gcc
libgl1-mesa-dev
libwayland-dev
libx11-dev
libxkbcommon-dev
xorg-dev
xvfb
if: ${{ runner.os == 'Linux' }}

- name: Tests
run: ${{ matrix.runner }} go test "-test.benchtime" 10ms -tags "${{ matrix.tags }}" ./...

- name: Wayland Tests
run: go test -tags no_glfw,ci,wayland ./...
if: ${{ runner.os == 'Linux' }}

windows_tests:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
go-version: ['1.20.x', '1.22.x']
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: WillAbides/setup-go-faster@v1
with:
go-version: ${{ matrix.go-version }}

- name: Tests
run: ${{ matrix.runner }} go test "-test.benchtime" 10ms -tags no_glfw ./...
61 changes: 61 additions & 0 deletions .github/workflows/static_analysis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: Static Analysis
on: [push, pull_request]
permissions:
contents: read

jobs:
static_analysis:
runs-on: ubuntu-latest
strategy:
fail-fast: false

steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: WillAbides/setup-go-faster@v1
with:
go-version: '1.23.x'

- name: Get dependencies
run: >-
sudo apt-get update &&
sudo apt-get install
gcc
libegl1-mesa-dev
libgl1-mesa-dev
libgles2-mesa-dev
libx11-dev
xorg-dev
xvfb
- name: Install analysis tools
run: |
go install golang.org/x/tools/cmd/goimports@latest
go install github.com/fzipp/gocyclo/cmd/gocyclo@latest
go install honnef.co/go/tools/cmd/staticcheck@v0.5.1
go install github.com/mattn/goveralls@latest
- name: Vet
run: go vet ./...

- name: Goimports
run: test -z "$(goimports -e -d . | tee /dev/stderr)"

- name: Gocyclo
run: gocyclo -over 30 .

- name: Staticcheck
run: staticcheck ./...

- name: Update coverage
run: |
set -e
xvfb-run go test -covermode=atomic -coverprofile=coverage.out ./...
coverage=`go tool cover -func coverage.out | grep total | tr -s '\t' | cut -f 3 | grep -o '[^%]*'`
if (( $(echo "$coverage < 60" | bc) )); then echo "Test coverage lowered"; exit 1; fi
- name: Update PR Coverage
uses: shogo82148/actions-goveralls@v1
with:
path-to-profile: coverage.out
28 changes: 28 additions & 0 deletions .github/workflows/web_tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Web Tests
on: [push, pull_request]
permissions:
contents: read

jobs:
web_tests:
runs-on: ubuntu-latest
strategy:
fail-fast: false

steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: WillAbides/setup-go-faster@v1
with:
go-version: '1.19.x'

- name: Get dependencies
run: sudo apt-get update && sudo apt-get install gcc libgl1-mesa-dev libegl1-mesa-dev libgles2-mesa-dev libx11-dev xorg-dev

- name: Build WebAssembly binary
env:
GOOS: js
GOARCH: wasm
working-directory: cmd/fyne_demo
run: go build
48 changes: 46 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,49 @@
.idea

### Binaries and project specific files
cmd/fyne/fyne
cmd/fyne_demo/fyne_demo
cmd/fyne_settings/fyne_settings
cmd/hello/hello
fyne-cross
*.exe
*.apk
*.app
*.tar.xz
*.zip

### Tests
**/testdata/failed

### Go
# Output of the coverage tool
*.out

### macOS
# General
.DS_Store

# Thumbnails
._*

### JetBrains
.idea

### VSCode
.vscode

### Vim
# Swap
[._]*.s[a-v][a-z]
[._]*.sw[a-p]
[._]s[a-v][a-z]
[._]sw[a-p]

# Session
Session.vim

# Temporary
.netrwhist
*~
# Auto-generated tag files
tags
# Persistent undo
[._]*.un~
Loading