Compare commits

...

1,670 commits

Author SHA1 Message Date
github-actions[bot]
4d0abeb37c
chore: update sponsors.svg (#5025)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2026-02-28 14:09:40 +11:00
github-actions[bot]
033650d792
chore: update sponsors.svg (#5015)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2026-02-26 21:01:45 +11:00
github-actions[bot]
4c49f27edf
chore: update sponsors.svg (#5000)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2026-02-22 15:27:44 +11:00
github-actions[bot]
c84578721c
chore: update sponsors.svg (#4999)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2026-02-18 21:18:16 +11:00
github-actions[bot]
354fee648e
chore: update sponsors.svg (#4997)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2026-02-17 22:39:19 +11:00
github-actions[bot]
da3ce17161
chore: update sponsors.svg (#4993)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2026-02-14 18:43:34 +11:00
Lea Anthony
bbd1b33122
Add Claude Code GitHub Workflow (#4988)
* "Claude PR Assistant workflow"

* "Claude Code Review workflow"
2026-02-14 00:55:40 +11:00
github-actions[bot]
ae40ca4ac1
chore: update sponsors.svg (#4980)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2026-02-11 21:50:29 +11:00
github-actions[bot]
093aa2d663
chore: update sponsors.svg (#4978)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2026-02-09 20:56:49 +11:00
Jay Pipes
e906751c89
update github.com/jaypipes/ghw dependency (#4970)
There's been a ton of improvements in the `ghw` library since the
v0.13.0 release, including the update of certain transitive dependencies
around Windows and Darwin support libraries.

This patch simply brings in those improvements. The `v0.21.3` release of
`ghw` is fully backwards-compatible with `v0.13.0`.

Signed-off-by: Jay Pipes <jaypipes@gmail.com>
2026-02-09 07:49:23 +11:00
Lea Anthony
718fd92f85
fix(v2): prevent wails init in non-empty directory with -d flag (#4955)
* fix(v2): prevent wails init in non-empty directory with -d flag

When using -d to specify a target directory, wails init now checks if
the directory is non-empty and errors if so. This prevents accidental
data loss (e.g., overwriting .git directories).

Fixes #4940

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* test(v2): add tests for init non-empty directory check

Add tests to verify:
- Install fails when target directory is non-empty
- Install succeeds when target directory is empty

Also update changelog with the fix.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Apply suggestions from code review

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-02-04 21:23:07 +11:00
Lea Anthony
01b661f6a5
feat(v2): add runtime.ResetSignalHandlers() for Linux panic recovery (#4921)
* feat(v2): add runtime.ResetSignalHandlers() for Linux panic recovery

Add a new runtime function that allows users to reset signal handlers
before code that might panic from nil pointer dereferences.

On Linux, WebKit installs signal handlers without the SA_ONSTACK flag,
which prevents Go from properly recovering from panics caused by
SIGSEGV and other signals. This function adds SA_ONSTACK to the
relevant signal handlers (SIGSEGV, SIGBUS, SIGFPE, SIGABRT).

Usage:
```go
go func() {
    defer func() {
        if err := recover(); err != nil {
            log.Printf("Recovered: %v", err)
        }
    }()
    runtime.ResetSignalHandlers()
    // Code that might panic...
}()
```

The function is a no-op on macOS and Windows.

Fixes #3965

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* test(v2): add panic-recovery-test example

Add an example that demonstrates the Linux signal handler issue (#3965)
and verifies the fix using runtime.ResetSignalHandlers().

The example includes:
- A Greet function that triggers a nil pointer dereference after a delay
- Auto-call from frontend after 5 seconds
- README with reproduction steps

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 18:55:57 +11:00
github-actions[bot]
896344eb66
chore: update sponsors.svg (#4942)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2026-02-02 18:40:10 +11:00
github-actions[bot]
8fd0340404
chore: update sponsors.svg (#4911)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2026-01-31 22:32:06 +11:00
Lea Anthony
bc4ee373b5 ci: add cross-compilation tests to Docker image workflow
- Add test-cross-compile job that tests CGO builds for all 6 platform/arch combos
- Add test-non-cgo job for pure Go cross-compilation verification
- Add test-summary job with GitHub Actions summary output
- Add skip_tests input for manual workflow dispatch
- Verify Linux binaries link to required GTK/WebKit libraries
- Verify binary format matches expected architecture

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 08:34:46 +11:00
Lea Anthony
5d39f1aa9a ci: fix cross-compiler workflow for multi-arch builds
- Fix Dockerfile path (was pointing to non-existent setupwizard/docker)
- Add multi-platform build (linux/amd64 + linux/arm64)
- Add QEMU for ARM64 cross-compilation
- Add automatic trigger on Dockerfile.cross changes to v3-alpha
- Update SDK version default to 14.5

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 06:32:08 +11:00
github-actions[bot]
a27995940a
chore: update sponsors.svg (#4907)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2026-01-26 22:16:26 +11:00
NarciLee
4e8b705cda
fix: add missing EventsOffAll export to runtime templates (#4883)
* fix: add missing EventsOffAll export to runtime templates

The EventsOffAll function was implemented in the internal runtime
(desktop/events.js) and exported in the wrapper runtime files, but was
missing from the public runtime templates that are generated in user
projects. This caused a type mismatch where EventsOffAll was declared
in the TypeScript definition but the implementation was missing.

This commit adds the EventsOffAll export and type declaration to all
frontend framework templates:
- Common templates (generate/assets/common)
- React / React-TS
- Vue / Vue-TS
- Svelte / Svelte-TS
- Preact / Preact-TS
- Lit / Lit-TS
- Vanilla / Vanilla-TS

Fixes #4703

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* docs: add EventsOffAll to runtime events documentation

Added EventsOffAll function documentation to both English and Chinese
versions of the runtime events reference.

The function was already implemented in Go (pkg/runtime/events.go) and
JavaScript (internal/frontend/runtime/desktop/events.js), but was missing
from the public documentation.

Related to #4703

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* chore: add EventsOffAll fix to changelog

Added entry for the EventsOffAll fix to the Unreleased section
of the changelog.

Related to #4703

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* docs: translate EventsOffAll description to Chinese

Improved consistency in Chinese documentation by translating the
EventsOffAll description from English to Chinese, matching the
style of other event method descriptions.

Related to #4703

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

---------

Co-authored-by: cc <Zhuanz@MacBook-Pro.local>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2026-01-25 13:10:24 +11:00
Lea Anthony
7ee2b2d856
fix(v2/linux): fix crash on panic in JS-bound Go methods (#4855)
* fix(v2/linux): fix crash on panic in JS-bound Go methods

WebKit2GTK installs signal handlers after gtk_main() starts, overriding
our SA_ONSTACK fix. This causes Go panics (e.g., nil pointer dereference)
in JS-bound methods to crash with 'non-Go code set up signal handler
without SA_ONSTACK flag'.

Fix by deferring signal handler installation via g_idle_add() to run
after GTK main loop starts, ensuring we fix handlers AFTER WebKit
has installed its own.

Fixes #3965

* docs: add changelog entry for Linux signal handler fix

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 12:38:58 +11:00
Salman
696c55c6ee
Update code block range in howdoesitwork.mdx (#4884)
* Update code block range in howdoesitwork.mdx

* docs: add changelog entry for PR #4884

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 12:13:28 +11:00
Xelus22
0357730294
Fix up templates to correct go version (1.23.0) (#4618)
* Fix up templates to correct 1.23.0

* add changelog

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2026-01-25 11:16:42 +11:00
xiejiahe
158fd41a8b
fix(v2): Replace ioutl.Discard with io.Discard (#4877)
* fix(v2): Replace ioutl.Discard with io.Discard

* docs: Update website changelog

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2026-01-20 11:20:02 +11:00
github-actions[bot]
fc2b7309c1
chore: update sponsors.svg (#4881)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2026-01-18 13:29:39 +11:00
github-actions[bot]
18b3d0587f
chore: update sponsors.svg (#4878)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2026-01-16 06:58:38 +11:00
Lea Anthony
60d148e4b1
Add JetBrains logo to powered by section
Updated sponsorship section with JetBrains logo.
2026-01-14 21:22:35 +11:00
Lea Anthony
423f7e4498
fix(v2): prevent WebView crash on macOS 26 during rapid UI updates (#4806)
Disable suppressesIncrementalRendering on macOS 26+ (Tahoe) to prevent
WebView crashes when the frontend performs frequent UI updates.

Fixes #4592

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <noreply@anthropic.com>
2026-01-13 22:05:05 +11:00
github-actions[bot]
4dbde817f4
chore: update sponsors.svg (#4874)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2026-01-13 21:48:58 +11:00
github-actions[bot]
95689bdeb7
chore: update sponsors.svg (#4867)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2026-01-10 20:01:44 +11:00
github-actions[bot]
7d4fe64352
chore: update sponsors.svg (#4860)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2026-01-07 16:39:33 +11:00
Lea Anthony
e27e85aae9 ci: add branch input to cross-compiler workflow 2026-01-06 11:15:01 +11:00
Lea Anthony
dd7094e5d3 ci: add workflow to build cross-compiler Docker image 2026-01-06 08:50:47 +11:00
github-actions[bot]
6630fa5647
chore: update sponsors.svg (#4846)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2026-01-02 21:19:34 +11:00
github-actions[bot]
7957d23c25
chore: update sponsors.svg (#4833)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-12-28 20:53:38 +11:00
github-actions[bot]
b25fe7496f
chore: update sponsors.svg (#4824)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-12-22 19:23:37 +11:00
github-actions[bot]
00b0ce936d
chore: update sponsors.svg (#4822)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-12-21 13:15:25 +11:00
github-actions[bot]
bc62140ac0
chore: update sponsors.svg (#4809)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-12-17 21:17:03 +11:00
github-actions[bot]
ebe8de8d2b
chore: update sponsors.svg (#4804)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-12-16 21:53:35 +11:00
github-actions[bot]
6a2619880c
chore: update sponsors.svg (#4795)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-12-15 22:20:33 +11:00
github-actions[bot]
db11f350cd
chore: update sponsors.svg (#4787)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-12-14 11:56:20 +11:00
Tilak Sasmal
216c9961a5
Add installation command for Wails CLI (#4692)
* Add installation command for Wails CLI

Added code block for Wails CLI installation command. This will allow coying the command with one click.

* Improve wails installation documentation

Updated wails installation documentation for easier command copying.

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-12-13 10:00:19 +11:00
github-actions[bot]
764f9bb175
chore: update sponsors.svg (#4763)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-12-12 06:33:46 +11:00
Viktor Poletansky
23bd70e057
Fix generated enums ordering (#4664)
* enumsort: enumsort

* enumsort: update changelog

* Add tests for enum ordering fix

Tests added:
- EnumOrderingTest: Verifies multiple enums are output in alphabetical order
- EnumElementOrderingTest: Verifies enum elements are sorted by TSName
- TSNameEnumElementOrderingTest: Verifies TSName() interface enums are also sorted

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-10 18:20:22 +11:00
Andrey Pshenkin
a0cb86ebff
V2 - Add universal link support for macOS (#4693)
* add universal link support

* add changelog

* add docs about universal links

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-12-10 16:14:23 +11:00
github-actions[bot]
7aaa203c5f
chore: update sponsors.svg (#4754)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-12-07 17:05:54 +11:00
Paul Brickwell
44a9d617e8
Add templates for Nuxt (#4750)
Add Wails templates for Nuxt
2025-12-04 20:40:19 +11:00
github-actions[bot]
8e77d9358e
chore: update sponsors.svg (#4744)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-12-03 21:59:51 +11:00
Anton Gilgur
7b8355a385
[v2] docs(menu): add imports and complete the example (post merge conflict) (#4742)
* [v2] docs(menu): add imports and complete the example (post merge conflict)

This partially redoes commit cb3305a2fc, as a merge conflict resolution seemed to have accidentally removed a large portion of the changes

- the example was missing imports, which [confused a user](https://stackoverflow.com/q/79827619/3431180), particularly due to the `rt` import alias
  - plus there are a good number of imports too, which this makes explicit
  - also give this file the title `menu.go` for clarity / explicitness, particularly to differentiate from the `NewApp` / `app.go` scaffold
- also handle the error at the end similar to [existing examples](4c464b3092/website/docs/guides/application-development.mdx (L54))

* add changelog entry per PR template
2025-12-01 19:16:00 +11:00
Anton Gilgur
cb3305a2fc
[v2] docs(menu): add imports and complete the example (#4727)
* [v2] docs(menu): add imports and complete the example

- the example was missing imports, which [confused a user](https://stackoverflow.com/q/79827619/3431180), particularly due to the `rt` import alias
  - plus there are a good number of imports too, which this makes explicit
- it also didn't mention that it built on top of the `NewApp` / `app.go` scaffold, so mention and link to that as well
  - it wasn't clear where `NewApp` came from without that
  - give this file the title `menu.go` for clarity / explicitness
- also handle the error at the end similar to [existing examples](4c464b3092/website/docs/guides/application-development.mdx (L54))

* add changelog entry per PR template

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-12-01 06:22:52 +11:00
Anton Gilgur
c73b2dd753
[v2] docs(menu): fix some syntax issues (#4726)
* [v2] docs(menu): fix some syntax issues

- one line wasn't properly indented
- one line was missing a closing brace and wouldn't compile as such

noticed this while [answering a question on SO](https://stackoverflow.com/a/79827672/3431180) which linked to this page

* add changelog entry per PR template

* consistent 4 space indentation

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-11-30 17:42:02 +11:00
Anton Gilgur
e37a7b9d4b
[v2] docs(app-dev): fix inconsistent indentation (#4730)
* [v2] docs(app-dev): fix inconsistent indentation

- several places had mixed indentation (tabs _and_ spaces)
- some lines had incorrect indentation, partially due to the above

* add changelog entry per PR template

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-11-30 17:40:51 +11:00
Anton Gilgur
ef7d3301c9
[v2] docs(app-dev): add imports to app.go examples (#4731)
* [v2] docs(app-dev): add imports to `app.go` examples

- add `context` and `fmt` imports to the `app.go` examples
- link to the docs for `context` when it is referenced for explicitness/beginner-friendliness

* add changelog entry per PR template

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-11-30 17:21:27 +11:00
Anton Gilgur
d16fd500df
docs(community): use absolute link to CoC instead of relative (#4732)
* docs(community): use absolute link to CoC instead of relative

- the relative link made it so that if you happen to land on https://wails.io/community-guide/ (with a trailing slash), it would take you to https://wails.io/community-guide/coc, which 404s
  - if you were at https://wails.io/community-guide (no trailing slash), it was fine.
  - use an absolute link so that it works the same regardless of the trailing slash or not

* add changelog entry per PR template

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-11-30 17:19:38 +11:00
github-actions[bot]
27afad59f6
chore: update sponsors.svg (#4740)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-11-30 12:39:10 +11:00
秋澪Akimio
4f71b22665
docs: fix typo of the window hiding method to "WindowHide" in the zh-Hans documentation (#4655) 2025-11-29 13:49:43 +11:00
github-actions[bot]
467f70ada7
chore: update sponsors.svg (#4735)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-11-28 23:24:03 +11:00
Anton Gilgur
9578b627fd
[v2] docs(how): fix inconsistent indentation (#4733)
* [v2] docs(how): fix inconsistent indentation

- several places had mixed indentation (tabs _and_ spaces)
- some lines had incorrect indentation, partially due to the above

* add changelog entry per PR template
2025-11-25 10:16:01 +00:00
Henrique Nunes
4c464b3092
add GameStacker to community showcase (#4724) 2025-11-22 14:44:00 +11:00
github-actions[bot]
ba2c9989e6
chore: update sponsors.svg (#4720)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-11-21 07:53:23 +11:00
github-actions[bot]
9f3b00bed9
chore: update sponsors.svg (#4715)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-11-18 05:37:32 +11:00
github-actions[bot]
e0e96c3bf8
chore: update sponsors.svg (#4714)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-11-16 16:19:26 +11:00
github-actions[bot]
9125ef64be
chore: update sponsors.svg (#4713)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-11-16 07:17:28 +11:00
Sean M. Tracey
e5deb1611e
Add UpBeat to community showcase; (#4705)
* Add UpBeat to community showcase;

* Update website/docs/community/showcase/upbeat.mdx

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-11-13 06:09:17 +11:00
Lea Anthony
8d73bec252
Fix copyright year in German website footer (#4696)
Update copyright year from 2022 to 2025 in German (de) translation
to match all other language versions. Fixes #4239

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <noreply@anthropic.com>
2025-11-09 22:12:24 +11:00
Lea Anthony
17bb94bbbf
[Snyk] Fix for 11 vulnerabilities (#4695)
* fix: website/package.json to reduce vulnerabilities

The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-TRIM-1017038
- https://snyk.io/vuln/SNYK-JS-AXIOS-6032459
- https://snyk.io/vuln/SNYK-JS-WEBPACKDEVSERVER-10300775
- https://snyk.io/vuln/SNYK-JS-AXIOS-12613773
- https://snyk.io/vuln/SNYK-JS-AXIOS-9292519
- https://snyk.io/vuln/SNYK-JS-INFLIGHT-6095116
- https://snyk.io/vuln/SNYK-JS-WEBPACKDEVSERVER-10300777
- https://snyk.io/vuln/SNYK-JS-AXIOS-6124857
- https://snyk.io/vuln/SNYK-JS-AXIOS-9403194
- https://snyk.io/vuln/SNYK-JS-GOT-2932019
- https://snyk.io/vuln/SNYK-JS-SIRV-12558119

* Upgrade Docusaurus to v3.9.0 and fix compatibility issues

This commit upgrades Docusaurus from v2.4.3 to v3.9.0 to resolve the
security vulnerabilities identified by Snyk while ensuring the website
builds and runs correctly.

Changes:
- Upgraded React to v18 (required by Docusaurus v3)
- Updated @mdx-js/react to v3 (required by Docusaurus v3)
- Updated prism-react-renderer to v2 and modernized theme imports
- Removed custom webpack config (incompatible with v3)
- Converted Carousel import to ES6 syntax
- Fixed MDX syntax errors in French translations (removed Pandoc footnote syntax)

Result: Build succeeds for all 7 locales with 0 vulnerabilities.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix Cloudflare build: upgrade Node version requirement

Cloudflare was using Node 18.14.0 which lacks URL.canParse (added in 18.17.0).
Docusaurus v3 and its dependencies require Node 20+.

Changes:
- Added .node-version file to specify Node 20.18.0
- Updated package.json engines to require Node >=20.0.0
- Added packageManager field hinting Bun usage

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Remove incompatible packageManager field

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Remove .node-version to allow Bun-only builds

Cloudflare will use Bun directly without Node.js installation.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Remove engines field to prevent Node auto-detection

Cloudflare was auto-installing Node 18.14.0 based on engines field.
Remove it to allow Bun-only builds via dashboard configuration.

Configure in Cloudflare dashboard:
- Build command: bun run build
- Install command: bun install
- Environment variable: NODE_VERSION=20.18.0 (if needed)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix Docusaurus v4 deprecation warning

Migrated onBrokenMarkdownLinks from root config to markdown.hooks
as required by Docusaurus v3.9+ (deprecated in v4).

Old: siteConfig.onBrokenMarkdownLinks
New: siteConfig.markdown.hooks.onBrokenMarkdownLinks

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix MDX syntax errors in remaining French translation files

Fixed v2.11.0 and v2.8.1 French translations that had invalid
Pandoc footnote syntax {.footnote-backref} incompatible with MDX v3.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: snyk-bot <snyk-bot@snyk.io>
Co-authored-by: Claude <noreply@anthropic.com>
2025-11-09 10:07:19 +11:00
Lea Anthony
ac867f6587 v2.11.0 2025-11-08 13:36:09 +11:00
Lea Anthony
cb1c2d86c0 Update docs build configs 2025-11-08 13:10:53 +11:00
Lea Anthony
8513b77fd8 Update package.json 2025-11-08 13:06:08 +11:00
Lea Anthony
9c78746441 Doc fixes 2025-11-08 12:54:44 +11:00
Lea Anthony
7a383e080f Fixed HMTL DnD 2025-11-08 12:00:17 +11:00
github-actions[bot]
9df647bb99
chore: update sponsors.svg (#4688)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-11-08 10:30:57 +11:00
Lea Anthony
fc1c90e0ce
Update windows.go 2025-11-04 08:41:29 +11:00
Lea Anthony
385f1dafb9
Fix Go tests execution in PR workflow
Updated the PR workflow to ensure Go tests run for pull requests and approved reviews.
2025-11-04 08:36:09 +11:00
Sam
70d2d52be4
fix Discord badge link in README (#4626)
* fix Discord badge link in README

* fix Discord badge in README
2025-11-04 08:25:39 +11:00
github-actions[bot]
6e9b6a1ee5
chore: update sponsors.svg (#4684)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-11-02 20:21:22 +11:00
枫枫知道
366e6afa3f
Add Wails templates for Quasar and ArcoDesign (#4651)
* Add Wails templates for Quasar and ArcoDesign

增加一个vue3、ts、arcodesign的wails模板

* Apply suggestion from @coderabbitai[bot]

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-11-01 22:05:33 +11:00
github-actions[bot]
de7a04b57a
chore: update sponsors.svg (#4676)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-11-01 13:25:24 +11:00
github-actions[bot]
322088d3f8
chore: update sponsors.svg (#4666)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-10-26 20:03:18 +11:00
github-actions[bot]
f01afbc852
chore: update sponsors.svg (#4657)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-10-22 20:06:16 +11:00
Jae-Sung Lee
4df077f9b2
fix panic when adding menuroles on linux (#4558)
* fix panic when adding menuroles on linux

* update changelog

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-10-03 09:50:40 +10:00
github-actions[bot]
db22cb234d
chore: update sponsors.svg (#4613)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-10-02 10:46:31 +10:00
Mohd Salman
152ac2a7ce
typo in bug report template (#4566)
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-09-28 08:16:33 +10:00
Taiwofolu
c113a068ad
I would like to add Clustta to the showcase page. (#4544)
* Added Clustta to Wails showcase

* fixed coderabbit issues

* resolved nitpicks

* Fixed more CoderabbitAI nitpicks

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-09-27 02:35:18 +00:00
github-actions[bot]
6943a56e8f
chore: update sponsors.svg (#4603)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-09-27 12:13:12 +10:00
Lea Anthony
909c16c517 Update nightly release script 2025-09-25 14:20:20 +10:00
github-actions[bot]
5ee47ccf7b
chore: update sponsors.svg (#4577)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-09-25 12:23:08 +10:00
Anshuman
dfff549002
Prevent DLL hijacking by setting default DLL directories on initialization (#4207)
* Prevent DLL hijacking by setting default DLL directories on initialization

* Updated the changelog

* Added DLLSearchPaths option to control DLL search paths on Windows

* Changed the order of the execution for uxtheme.go and consts.go

* Init uxtheme.go and consts.go once the dll path is set

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-09-24 15:44:58 +10:00
Lea Anthony
855dcadd79 ci(v3-alpha): nightly release uses PAT for writes; order: notes -> bump version.txt -> commit -> tag 2025-09-10 07:55:01 +10:00
Lea Anthony
2b8276da42 revert to older nightly release pipeline 2025-09-10 07:35:24 +10:00
Lea Anthony
a35b676e05 chore: fix release pipeline 2025-09-10 07:29:21 +10:00
Lea Anthony
45167ff743 chore: fix release pipeline 2025-09-10 06:53:18 +10:00
Copilot
140a110e6d
Fix workflow permissions: add actions:write to unreleased-changelog-trigger.yml (#4553)
* Initial plan

* Fix workflow permissions: add actions:write to unreleased-changelog-trigger.yml

Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-09-02 21:05:04 +10:00
Copilot
bc3299fff6
Fix authentication issues in nightly-release-v3.yml workflow (#4552)
* Initial plan

* Fix authentication issues in nightly-release-v3.yml workflow

Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-09-02 20:36:19 +10:00
github-actions[bot]
1589a2f835
chore: update sponsors.svg (#4533)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-09-02 20:03:52 +10:00
aMMu
fcaff5e09d
Add wails-react-vite-ts-tailwind-tanstackrouter-template (#4549)
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-09-02 20:03:21 +10:00
KAS
b489af776c
docs: fix typos and improve phrasing in BulletinBoard description (#4548) 2025-09-02 19:57:04 +10:00
Lea Anthony
b7f2d4a43b Remove link to guide. 2025-08-20 08:20:09 +10:00
github-actions[bot]
0015f8d3cb
chore: update sponsors.svg (#4512)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-08-16 14:42:05 +10:00
Andrey Pshenkin
857f7b7518
[V2] Add origin verification for bindings (#4480)
* Update go-webview2 to v1.0.22

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-08-13 08:50:23 +10:00
Kristian Tsivkov
ac00787202
Generic bindings (#3626)
* WIP: Enable generic bindings

* Added struct name normalizer

* Removed accidentally left fmt.Println

* Update changelog

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-08-12 21:06:10 +10:00
github-actions[bot]
4d7b0b487c
docs: sync translations (#3569)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-08-12 20:58:06 +10:00
github-actions[bot]
d258771151
chore: update sponsors.svg (#4497)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-08-12 20:12:47 +10:00
Andrey Pshenkin
8aa187b393
[V2] add url validation for BrowserOpenURL (#4484)
* add url validation for BrowserOpenURL

* update changelog

* don't process invalid urls

* address AI issues

* added more validations and sanitization
2025-08-12 20:12:10 +10:00
Francesco Luzzi
ebe377f375
fix: added EventsOffAll to windows.runtime and updated the frontend runtime wrapper (#4254)
* fix: added EventsOffAll to windows.runtime and updated the frontend runtime wrapper

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-08-02 17:15:47 +10:00
Ahmed Alsuwaidi
62f0d7eb26
docs: Add Marasi to showcase (#4455)
Added Marasi to showcase

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-08-02 14:45:26 +10:00
github-actions[bot]
04e1b05d10
chore: update sponsors.svg (#4468)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-08-02 14:44:59 +10:00
Robert Iannucci
03412f9cb0
Use computed style when adding 'wails-drop-target-active' class. (#4420)
* Use computed style when adding 'wails-drop-target-active' class.

This is now consistent with the behavior of OnFileDrop which uses the computed style.

Fixes #4419

* Use computed style for elements when adding 'wails-drop-target-active' class.

This is now consistent with the behavior of OnFileDrop which uses the computed style.

Fixes #4419

* Update changelog

* Update draganddrop.js

Fix typo

* Update changelog.mdx

Moves changelog line to "fixes" section.

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-08-02 14:07:02 +10:00
Lea Anthony
2c2fd26bb5 Prevent v3 workflow from running on PRs against master
Add explicit base_ref checks to ensure the v3 build and test workflow
only runs for PRs targeting the v3-alpha branch.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-02 14:02:32 +10:00
Jae-Sung Lee
ce7b1fc62b
fix linux build error in onWayland caused by declaration after label (#4446)
* fix linux build error in onWayland caused by declaration after label

* update changelog

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-07-28 22:30:43 +10:00
Lea Anthony
91d5da6124
Fix YAML syntax error - indent heredoc content 2025-07-26 08:15:27 +10:00
Lea Anthony
612e0853bf
Fix nightly release workflow issues
- Fix backtick command substitution error using here-document
- Add extra spacing before disclaimer section
- Simplify commit message to just version number
2025-07-26 08:12:55 +10:00
Lea Anthony
ae2d97543f
Update nightly release workflow to use --create-release-notes flag
- Simplify changelog extraction using the new flag
- Remove complex shell scripting for content extraction
- Use release_notes.md file created by the Go script
2025-07-26 08:03:39 +10:00
Lea Anthony
0dc77a2893
Add debugging to nightly release workflow changelog extraction 2025-07-25 22:18:25 +10:00
Lea Anthony
559ff6e2f4
Fix nightly release - extract changelog before running release task 2025-07-25 22:16:01 +10:00
Lea Anthony
254a5a652e
Fix nightly release workflow - update Go version and add debugging 2025-07-25 22:12:34 +10:00
Lea Anthony
34517218f0
Fix nightly release workflow - add missing name field
This fixes the workflow execution issue
2025-07-25 22:03:54 +10:00
Lea Anthony
82b3420e53
Update release workflow 2025-07-25 21:59:25 +10:00
Lea Anthony
b393cf03a3
Fix nightly release workflow for v3-alpha
- Add --target v3-alpha to gh release create to fix commit count
- Fix Go dependency caching with correct path to v3/go.sum
- Replace deprecated actions/create-release with gh CLI
- Add proper authentication tokens for push operations
- Fix release title formatting
- Add permissions for actions:write
2025-07-25 21:58:39 +10:00
Simon
43bfb094c2
Add support for build tags to the wails project schema and update pro… (#4439)
* Add support for build tags to the wails project schema and update project-config documentation for guidance

* Support project tags in dev mode

* Satisfy coderabbit nitpick relating to error variable name

* Added changelog entry for `build:tags` project feature

---------

Co-authored-by: symball <contact@simonball.me>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-07-25 20:38:40 +10:00
Lea Anthony
6cbe626e7f
[Snyk] Upgrade sponsorkit from 16.4.2 to 16.5.0 (#4425)
fix: upgrade sponsorkit from 16.4.2 to 16.5.0

Snyk has created this PR to upgrade sponsorkit from 16.4.2 to 16.5.0.

See this package in npm:
sponsorkit

See this project in Snyk:
https://app.snyk.io/org/leaanthony/project/65547be6-c86d-4fef-aa06-dc1445189250?utm_source=github&utm_medium=referral&page=upgrade-pr

Co-authored-by: snyk-bot <snyk-bot@snyk.io>
2025-07-25 19:41:01 +10:00
github-actions[bot]
e6b725b106
chore: update sponsors.svg (#4445)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-07-25 19:38:31 +10:00
Alex11
0282768c10
Add new template wails-template-sveltekit-less-prettier-eslint (#4441)
Add template wails-template-sveltekit-less-prettier-eslint

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-07-25 06:28:40 +10:00
Alex11
6544005892
Add new template wails-template-svelte-ts-less-prettier-eslint-vite (#4440)
Add wails-template-svelte-ts-less-prettier-eslint-vite
2025-07-23 21:36:18 +00:00
github-actions[bot]
ffd98d68da
chore: update sponsors.svg (#4433)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-07-22 07:07:51 +10:00
Taite Nazifi
7002f2e943
Content Privacy flag for Windows and MacOS (#4241)
* feat(options): add ContentProtection bool config to macos and windows options

* feat(darwin): implement ContentProtection for darwin

* feat(windows): implement ContentProtection for windows

* chore(website): add feature to changelog

* feat(examples): add an example showcasing the ContentPrivacy flag

* chore(examples): update readme

* fix(example): format and build

* fix(winc): rename to wda and add version check

* chore(reference): add docs for ContentProtection

* fix(darwin): future-proof setting the sharing type

* fix(example): wording consistency

* chore(examples): remove privatewindow example

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-07-19 16:58:34 +10:00
Lea Anthony
72662cf05f fix: remove branch restriction from nightly workflow job
The workflow now explicitly checks out v3-alpha branch, so the job-level
condition 'if: github.ref == refs/heads/v3-alpha' is no longer needed
and was preventing manual runs from other branches.
2025-07-18 14:43:49 +10:00
Lea Anthony
d9f4a1883f fix: explicitly checkout v3-alpha branch in nightly workflow
Ensures the workflow always checks out the v3-alpha branch regardless
of which branch triggers it (schedule from master or manual dispatch)
2025-07-17 06:59:56 +10:00
Lea Anthony
7f3358d6a8 Nightly release action 2025-07-17 05:38:10 +10:00
Lea Anthony
25f19e03c8 🔧 Fix JavaScript syntax in workflow by using proper string concatenation
Replaced mixed template literals with clean string concatenation to avoid YAML/JS syntax conflicts.
All YAML validation now passes.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-13 12:43:10 +10:00
Lea Anthony
6486f9d9b2 🔧 Fix YAML syntax error in workflow template literals
Fixed JavaScript template literal syntax issues:
- Escaped @ symbol that was causing YAML parsing errors
- Fixed template literal concatenation for proper YAML compatibility
- Escaped backticks in markdown content

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-13 12:41:58 +10:00
Lea Anthony
3798b74c7e 🔧 Force workflow refresh for enhanced comment logic
Minor name change to ensure GitHub Actions uses latest workflow definition.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-13 12:29:07 +10:00
Lea Anthony
8b5fb90dae 🤖 Complete PR comment enhancement with author tagging and collapsible changelog
- Added PR author detection and tagging in comments
- Implemented collapsible details section showing corrected changelog content
- Enhanced error messages with clear action items for users
- Better distinction between auto-fixed and manual-fix-required scenarios
- Complete changelog content display for easy copying

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-13 12:26:21 +10:00
Lea Anthony
3f925105cb Fix: prevent pushing to v3-alpha main branch, only push to PR feature branches
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-13 12:05:37 +10:00
Lea Anthony
03758a01e3 Add git rebase before push to handle updated PR branches
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-13 12:02:09 +10:00
Lea Anthony
dbcf85c50c Add repository guard - only push commits on main wailsapp/wails repo
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-13 11:52:42 +10:00
Lea Anthony
c9392806ac Hardcode repository owner to 'wailsapp' - simplify logic
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-13 11:51:54 +10:00
Lea Anthony
a8a1f362cb Add comprehensive debugging and multiple fallback strategies for repository owner detection
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-13 11:51:20 +10:00
Lea Anthony
82d958747a Fix repository owner detection with explicit fallback logic
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-13 11:47:15 +10:00
Lea Anthony
3b59c3f3b9 Prevent validation script from being committed to PRs
- Add validation script to git exclude to prevent accidental commits
- Only commit changelog changes, not the temporary validation script
- Keep PR commits clean and focused

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-13 11:31:44 +10:00
Lea Anthony
73ade6e94f Fix git push issue in changelog workflow
- Properly determine PR branch name and repository owner
- Use correct git push syntax for detached HEAD state
- Handle forked repositories gracefully
- Add proper error handling for push operations

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-13 11:30:57 +10:00
Lea Anthony
ae8171e9fe Use REAL validation script from v3-alpha branch
Fetch the complete, tested validation script instead of minimal version.
This uses the full-featured script that can detect AND fix misplaced entries.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-13 11:29:08 +10:00
Lea Anthony
9640e16c12 Create REAL changelog validation workflow
- Validates actual PRs against v3-alpha branch
- Gets real PR diff from GitHub
- Runs actual validation script
- Commits fixes back to PR
- Comments on PR with results
- Automatically triggers on changelog changes to v3-alpha PRs

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-13 11:26:13 +10:00
Lea Anthony
36a1f7b52b Upgrade changelog workflow to run full validation
Simulates PR #4392 scenario to test detection and fixing of misplaced changelog entries

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-13 11:19:40 +10:00
Lea Anthony
d2d9acbdf6 Add v3 changelog validation workflow to master branch
- Add changelog-v3.yml workflow for GitHub Actions visibility
- Add v3/scripts/validate-changelog.go validation script
- Monitors PRs to v3-alpha branch for changelog compliance
- Automatically fixes misplaced entries by moving to [Unreleased]

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-13 11:15:38 +10:00
ltcovalt
b987c1b413
Add new HTMX template (#4394)
* Add new HTMX template

* Update changelog.mdx

added new community template wails-htmx-tailwind-daisyui-template

* Update changelog.mdx

* Add new HTMX template
2025-07-11 21:12:46 +10:00
Lea Anthony
1ec3708f68
feat: Make Vite server timeout configurable (#4374)
* feat: Make Vite server timeout configurable

- Add ViteServerTimeout field to wails.json configuration (default: 10 seconds)
- Add --viteservertimeout CLI flag for dev command
- Update error message to be more descriptive about timeout duration
- Fix issue #4372 where slow Vite servers with SvelteKit/Tailwind exceeded 10s timeout

Users can now configure the timeout via:
1. wails.json: "viteServerTimeout": 30
2. CLI flag: wails dev --viteservertimeout 30

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* docs: Add documentation for viteServerTimeout configuration

- Document viteServerTimeout field in wails.json project config
- Add --viteservertimeout CLI flag documentation
- Update save flag description to include new option

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Update changelog

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-07-11 21:08:37 +10:00
github-actions[bot]
a0937fd3ef
chore: update sponsors.svg (#4411)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-07-11 20:24:22 +10:00
Lea Anthony
e753157ad2
v2.10.2 2025-07-06 22:29:24 +10:00
Lea Anthony
6b35e06780 Add test workflow for nightly releases
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-06 07:00:18 +10:00
github-actions[bot]
01be6e3d1f
chore: update sponsors.svg (#4387)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-07-02 20:47:58 +10:00
Lea Anthony
466719d160 fix: restrict v3 workflow to only v3-alpha PRs with v3 changes
Add path filter to ensure Build + Test v3 workflow only runs on
PRs targeting v3-alpha branch that actually modify v3/ directory.
This prevents the workflow from running on master branch PRs.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-02 20:26:26 +10:00
Lea Anthony
095e8be923
Fix Wails v2 default log level to suppress trace messages (#4380)
Set default LogLevel to 'Info' in dev command flags to prevent
unnecessary 'No listeners for event' trace messages from appearing
in development mode.

Fixes https://github.com/wailsapp/wails/issues/4160

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: Claude <noreply@anthropic.com>
2025-07-01 21:22:15 +10:00
Talha Altınel
4597d7fa64
fix windows CI (#4378)
* update vtblCommonFunc.go

* update iShellItemArray.go

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-07-01 17:36:12 +10:00
github-actions[bot]
136273503e
chore: update sponsors.svg (#4381)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-07-01 17:32:23 +10:00
github-actions[bot]
ca3e4f6c45
chore: update sponsors.svg (#4360)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-06-16 21:44:41 +10:00
github-actions[bot]
52515277a0
chore: update sponsors.svg (#4347)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-06-12 21:04:25 +10:00
github-actions[bot]
ae621d2883
chore: update sponsors.svg (#4344)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-06-11 20:13:08 +10:00
zlaam
832db6d10b
docs: Add Linux PATH Update Commands to Installation Guide (#4340)
This pull request enhances the Wails installation guide by adding instructions to update the PATH environment variable for Linux users after installing the Wails CLI via Go. The change ensures that Linux users can properly access the wails command by adding the Go binary path to their environment and refreshing their shell configuration.
2025-06-07 18:12:44 +10:00
Lea Anthony
be7608e079
Update issue-triage-automation.yml 2025-06-04 21:44:03 +10:00
github-actions[bot]
e1282a6371
chore: update sponsors.svg (#4331)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-06-02 22:48:46 +10:00
github-actions[bot]
fd71325a42
Update Sponsor Image (#4325)
chore: update sponsors.svg

Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-05-30 21:57:09 +00:00
Lea Anthony
bd8c88e8ac
Update Go tests workflow 2025-05-31 07:55:19 +10:00
Lea Anthony
8e51d6d32f
fix: Correct indentation for build_results job in build-and-test-v3.yml (must be under jobs:) 2025-05-31 07:36:55 +10:00
Lea Anthony
b3bb856ed1
Skip Go tests on sponsor image PRs 2025-05-31 07:27:46 +10:00
Lea Anthony
2936e8b98e
Update semgrep action 2025-05-31 07:18:52 +10:00
Lea Anthony
539effb6b5
Update workflows 2025-05-31 07:13:29 +10:00
Lea Anthony
d3d87d09aa
Fix v3 workflow 2025-05-30 08:12:17 +10:00
github-actions[bot]
c68c85a384
Update Sponsor Image (#4308)
chore: update sponsors.svg

Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-05-26 21:02:21 +10:00
github-actions[bot]
3248f2fd31
Update Sponsor Image (#4306)
* chore: update sponsors.svg

* Update scripts

* Update node version

---------

Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-05-25 22:18:09 +10:00
rynsf
ac1479afa2
fix: cross compiling on linux for windows (#4263)
compile wailsbindings for the build machine

Co-authored-by: rynsf <rynsf@users.noreply.github.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-05-19 21:16:10 +10:00
Lea Anthony
0c24aa4313
More workflow updates 2025-05-15 06:25:05 +10:00
Lea Anthony
2bd3de1f7f
Add GitHub Actions workflow for stale issue management 2025-05-14 20:52:52 +10:00
Lea Anthony
0744756695
Update stale bot configuration to protect older issues 2025-05-14 20:50:02 +10:00
Lea Anthony
594e2bf60f
Add issue management automation tools 2025-05-14 20:46:51 +10:00
hkhere
151beed7e8
[V2] Upgrade fsnotify to v1.9.0 to fix hot reload and quit issues on … (#4266)
* [V2] Upgrade fsnotify to v1.9.0 to fix hot reload and quit issues on Windows

There may be a bug in fsnotify v1.8.0 that prevents hot reloading and Ctrl+C quitting from working on Windows. Upgrading to fsnotify v1.9.0 resolves the issue.

* Update changelog.mdx

---------

Co-authored-by: hkhere <hk@tinyclouds.cn>
2025-05-08 07:37:09 +10:00
Mehdi
6af1028856
fix(logger): respect log level from environment variable in dev mode (#4083)
* fix(logger): respect log level from environment variable in dev mode

* chore: add entry to changelog

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-05-05 19:09:34 +10:00
Lea Anthony
a93c52e182
Merge pull request #4253 from FrancescoLuzzi/bugfix/4252_fix_SaveFileDialog_logic
fix: don't return error when SaveFileDialog is cancelled by the user
2025-05-02 08:07:54 +10:00
Lea Anthony
49a4193887
Merge pull request #4260 from TekWizely/tekwizely-primevue-sakai
Submitted a Vue template to the Community Templates List
2025-05-02 07:52:22 +10:00
TekWizely
1bc5a2758f
Nitpick Feedback Changes
Moved entry to be in sorted location.
Removed version numbers from Vue and PrimeVue
2025-04-30 12:51:25 -07:00
TekWizely
0581290cfe
Update templates.mdx
Adds primevue-sakai template.
2025-04-29 15:53:59 -07:00
Francesco Luzzi
105c10aee7 fix: don't return error when SaveFileDialog is cancelled by the user 2025-04-29 19:46:44 +02:00
Lea Anthony
d1838f42bf
Merge pull request #4249 from sid-the-sloth1/patch-1
Submitted a Vanilla JS template to the Community Templates List
2025-04-28 22:35:32 +10:00
Hardy
30d7cccf50
Submitted a Vanilla JS template
project link: https://github.com/sid-the-sloth1/wails-vanillaJSWithRouter-template
2025-04-28 10:54:47 +05:30
Lea Anthony
19c8d98ed3
Merge pull request #4243 from nnashwin/fix/updates-copyright-year
fix: updates the copyright to be this year (2025)
2025-04-26 23:50:29 +10:00
Norman Nashwin
ce5f733457 fix: adds record of the change within the changelog.mdx 2025-04-26 12:30:22 +09:00
Norman Nashwin
312146c70e fix: updates the copyright to be this year (2025) 2025-04-26 11:42:29 +09:00
Lea Anthony
4788263b9a
Merge pull request #4047 from lyimmi/bugfix/2431_wayland_max_size
[V2 - Linux] Bugfix/2431 wayland max size
2025-04-18 16:40:09 +10:00
Lea Anthony
a220d53a91
Merge branch 'master' into bugfix/2431_wayland_max_size 2025-04-18 16:39:59 +10:00
Lea Anthony
de29a0bd6f
Revert "Make calls thread safe"
This reverts commit 347d8cf861.
2025-04-18 16:36:46 +10:00
Lea Anthony
467bbfc4e5
Merge pull request #4136 from APshenkin/feature/allow-disable-panic-recovery
Add option to disable panic recovery in message processing
2025-04-18 15:44:02 +10:00
Lea Anthony
741ff242f7
Merge pull request #4215 from superDingda/bugfix/4211_long_ws_msg_truncation
fix: prevent truncation of long WebSocket messages in dev mode
2025-04-18 15:34:28 +10:00
Lea Anthony
83ec246f63
Merge branch 'master' into bugfix/4211_long_ws_msg_truncation 2025-04-18 15:34:17 +10:00
Lea Anthony
af659850fc
Merge pull request #4209 from joshuapare/invalid-mapkey-array-arg-generation
fixing typescript generation of map of struct arrays
2025-04-18 15:28:10 +10:00
Lea Anthony
9a10be69ae
Merge branch 'master' into invalid-mapkey-array-arg-generation 2025-04-18 15:22:48 +10:00
Andrey Pshenkin
797016d736
Merge branch 'master' into feature/allow-disable-panic-recovery 2025-04-17 11:52:36 +01:00
dingda.li
fc1cf90574 fix: correct message type to TextMessage 2025-04-15 15:42:10 +08:00
dingda.li
b12dcb054b fix: prevent truncation of long WebSocket messages in dev mode 2025-04-15 14:13:56 +08:00
Lea Anthony
f8998da78d
Fix for webview2 detection 2025-04-12 13:21:37 +10:00
joshuapare
bc7b816c37
postfix [] in instance is element accessor, not array type declaration 2025-04-10 08:50:12 -05:00
Lea Anthony
194b0586ba
Merge pull request #4141 from josStorer/fix-dev-skipmodtidy
fix -m build flag for dev command when recompiling
2025-04-09 18:14:02 +10:00
Lea Anthony
2f389d99a8
Merge branch 'master' into fix-dev-skipmodtidy 2025-04-09 18:13:42 +10:00
Lea Anthony
5b1caf0d08
Merge pull request #4110 from superDingda/bugfix/4109_restore_minimized_window
fix(windows): correct window restoration behavior after minimization
2025-04-09 18:03:49 +10:00
dingda
8dc509f49b
Merge branch 'master' into bugfix/4109_restore_minimized_window 2025-04-09 11:18:51 +08:00
Lea Anthony
3930f58203
Merge pull request #4162 from brianetaveras/patch-3
Update options docs to clarify linux webview gpu defaults
2025-04-09 08:40:19 +10:00
Lea Anthony
ba9ab72893
Merge pull request #4182 from superDingda/bugfix/4111_abundant_console_logs
fix: suppress excessive console logs after updating to v2.10.1
2025-04-09 08:17:24 +10:00
Lea Anthony
27c9737ecd
Merge branch 'master' into bugfix/4111_abundant_console_logs 2025-04-08 21:57:51 +10:00
Lea Anthony
f9392e9980
Merge pull request #4184 from darkb0ts/v3-alpha-docs-template
new template for wails 2025 react-ts and typescript
2025-04-08 21:48:36 +10:00
darkb0ts
6ac0bcdf7f new template for wails 2025 react-ts and typescript 2025-04-07 12:26:06 +05:30
Andrey Pshenkin
125c4ab485
Merge branch 'master' into feature/allow-disable-panic-recovery 2025-04-01 17:20:33 +01:00
dingda.li
92a25c7dfd fix: suppress excessive console logs after updating to v2.10.1 2025-04-01 15:19:27 +08:00
B.T
dadf638c00
Merge branch 'master' into patch-3 2025-03-31 20:09:56 -04:00
brian
e7643b8605 Added more information to the documentation 2025-03-31 20:08:45 -04:00
brian
9763cd3465 Added updates to the changelog 2025-03-31 19:56:45 -04:00
Lea Anthony
7245b5b4d7
Merge pull request #4167 from Khady/patch-1
doc/howdoesitwork: fix indentation
2025-03-31 21:05:19 +11:00
Louis
2acf32cd36
doc/howdoesitwork: fix indentation 2025-03-27 12:49:10 +08:00
B.T
9c7dc05cea
Update options docs to clarify linux webview gpu defaults 2025-03-25 08:10:44 -04:00
josc146
59d8650a0f
Update dev.go 2025-03-20 16:33:04 +08:00
josc146
00e2f16971
Merge branch 'master' into fix-dev-skipmodtidy 2025-03-20 16:32:14 +08:00
Lea Anthony
993fde17fe
Merge pull request #4143 from josStorer/skipembedcreate
add -skipembedcreate cli option to improve recompile time
2025-03-20 06:18:31 +11:00
josc146
ae5e3f47a7 update cli doc for -skipembedcreate 2025-03-19 15:16:27 +08:00
josc146
6bf875f2a2 Update changelog 2025-03-19 15:04:21 +08:00
josc146
61876448f7 Update changelog 2025-03-19 14:55:47 +08:00
Lea Anthony
202eecdf94
Merge branch 'master' into bugfix/4109_restore_minimized_window 2025-03-19 07:21:22 +11:00
josc146
ecf1c41db4 improve comment 2025-03-16 19:32:31 +08:00
josc146
915efa06bb fix -m build flag for dev command when recompile 2025-03-16 18:35:56 +08:00
josc146
4541cf0b3a add -skipembedcreate cli option 2025-03-16 18:26:26 +08:00
Lea Anthony
538ba8daac
Blog Post 2025-03-16 14:01:11 +11:00
Lea Anthony
c2db2e550f
Update semgrep action 2025-03-16 12:36:59 +11:00
Lea Anthony
ea2bfa9bcd
Update verify steps in pipeline 2025-03-16 11:34:29 +11:00
dingda
d4015123dd
Merge branch 'master' into bugfix/4109_restore_minimized_window 2025-03-15 14:15:52 +08:00
Andrey Pshenkin
ef73a75c68
add changelog 2025-03-13 00:18:09 +00:00
Andrey Pshenkin
2478926274
add changelog 2025-03-13 00:17:19 +00:00
Andrey Pshenkin
e9100152e7
feat: add option to disable panic recovery in message processing 2025-03-13 00:06:07 +00:00
dingda.li
5df9ac1a53 docs: update changelog for window restoration fix 2025-03-12 15:43:20 +08:00
Lea Anthony
6a3ba3d613
Update Results stage in pipeline
(cherry picked from commit fe6635c1eb)
2025-03-12 08:33:17 +11:00
Lea Anthony
15191c3bbe
Merge pull request #4127 from wailsapp/update-sponsors
Update Sponsor Image
2025-03-11 20:02:48 +11:00
leaanthony
6b288be2fa chore: update sponsors.svg 2025-03-11 00:16:55 +00:00
Lea Anthony
5f233f9dd6
Merge pull request #4123 from wailsapp/update-sponsors
Update Sponsor Image
2025-03-09 11:43:51 +11:00
leaanthony
a78e8c95ee chore: update sponsors.svg 2025-03-09 00:15:18 +00:00
Lea Anthony
4228eab052
Merge branch 'master' into bugfix/4109_restore_minimized_window 2025-03-08 12:13:37 +11:00
Lea Anthony
267e4ec9fa
PR workflow change 2025-03-08 11:43:22 +11:00
Lea Anthony
aee6d99702
Remove Warp agents 2025-03-08 11:34:08 +11:00
Lea Anthony
dab09a94d7
Merge remote-tracking branch 'origin/master' 2025-03-08 10:53:36 +11:00
Lea Anthony
6381e520b9
Pipeline update 2025-03-08 10:53:18 +11:00
Lea Anthony
36743ca76f
Merge pull request #4113 from wailsapp/update-sponsors
Update Sponsor Image
2025-03-07 09:05:55 +11:00
leaanthony
a04a31be8c chore: update sponsors.svg 2025-03-05 00:16:53 +00:00
dingda.li
114c15197b fix(windows): correct window restoration behavior after minimization
- Replace SW_RESTORE with SW_SHOW flag
- Resolves #4109
2025-03-04 14:39:06 +08:00
Lea Anthony
fa4bf38b12
Try warpbuild 2025-03-03 21:32:09 +11:00
Lea Anthony
7d66f3c26a
Update changelog 2025-03-02 10:50:09 +11:00
Lea Anthony
dbf7bba69f
Merge pull request #3891 from ronen25/master
Fix Windows 11 identification in `wails doctor`
2025-03-02 10:48:03 +11:00
Lea Anthony
b2f84d041c
Merge branch 'master' into master 2025-03-02 10:47:30 +11:00
Lea Anthony
76f806fe82
Merge branch 'master' into bugfix/2431_wayland_max_size 2025-03-01 16:36:10 +11:00
Ben McCann
76e41a6211
docs: update Svelte recommendation (#4085)
* docs: update Svelte recommendation

* Update routing.mdx

* Update changelog.mdx

* Updated changelog

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-03-01 05:24:41 +00:00
Lea Anthony
471a50cd04
[CI] Change PR workflow for v2 2025-03-01 16:20:37 +11:00
Lea Anthony
cacbf030d6
[ci] Remove char 2025-02-28 07:33:51 +11:00
Lea Anthony
49ff9b62bf
[ci] Better PR checks 2025-02-28 07:32:29 +11:00
Lea Anthony
f56093ae27
[ci] update PR Checks conditions 2025-02-28 07:19:57 +11:00
github-actions[bot]
8519d8f024
Update Sponsor Image (#4095)
chore: update sponsors.svg

Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-02-25 06:36:29 +11:00
Lea Anthony
54438a7644
v2.10.1 2025-02-24 18:56:38 +11:00
Lea Anthony
7aba2c3b95
Fix issues building with darwin/universal target (#4093)
Fixed issues building with `darwin/universal` target
2025-02-24 18:53:43 +11:00
github-actions[bot]
5be7ee74f8
Update Sponsor Image (#4081)
chore: update sponsors.svg

Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-02-19 05:34:52 +11:00
Lea Anthony
f6aba688a9
Update runtime 2025-02-16 16:15:20 +11:00
Lea Anthony
8624da51f8
Fix listenerOff issue. 2025-02-16 16:13:00 +11:00
Snider
0d81cd2831
Update details (#4052)
Using my GitHub profile + added the GitHub action since it is getting used a fair bit
2025-02-16 11:59:39 +11:00
github-actions[bot]
3224db508d
Update Sponsor Image (#4079)
chore: update sponsors.svg

Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-02-16 11:23:32 +11:00
Lea Anthony
1fb6403e7d
v2.10 2025-02-15 09:10:13 +11:00
github-actions[bot]
ba01492198
Update Sponsor Image (#4073)
chore: update sponsors.svg

Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-02-14 18:15:43 +11:00
Lea Anthony
7e45e3d025
[Snyk] Upgrade sponsorkit from 0.9.3 to 0.16.2 (#4062)
fix: upgrade sponsorkit from 0.9.3 to 0.16.2

Snyk has created this PR to upgrade sponsorkit from 0.9.3 to 0.16.2.

See this package in npm:
sponsorkit

See this project in Snyk:
https://app.snyk.io/org/leaanthony/project/65547be6-c86d-4fef-aa06-dc1445189250?utm_source=github&utm_medium=referral&page=upgrade-pr

Co-authored-by: snyk-bot <snyk-bot@snyk.io>
2025-02-14 08:42:17 +11:00
stffabi
49b524d169
[v2, darwin] Fix updating menus (#4057) 2025-02-10 20:59:16 +11:00
github-actions[bot]
bedebe0c06
Update Sponsor Image (#4036)
chore: update sponsors.svg

Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-02-09 11:49:57 +11:00
Lea Anthony
536422d508
Update contributors 2025-02-09 11:47:53 +11:00
Lea Anthony
fa7c6d80a2
Fix ErrorCancelled typo 2025-02-08 13:03:38 +11:00
Lea Anthony
3605fdf42f
Update dependencies. Fix buildvcs compile error 2025-02-08 12:56:06 +11:00
Lea Anthony
347d8cf861
Make calls thread safe 2025-02-08 10:37:58 +11:00
Zámbó, Levente
89db2ad082 add changelog 2025-02-06 11:23:50 +01:00
Zámbó, Levente
8d1e5188ad fix typo 2025-02-05 16:07:42 +01:00
Zámbó, Levente
f07ead3fb2 add comments 2025-02-05 16:04:49 +01:00
Zámbó, Levente
d04fd9a35f change ifdef to function 2025-02-05 15:49:11 +01:00
Zámbó, Levente
bed3ec4163 add decorator diff to window max values 2025-02-05 15:13:11 +01:00
Lea Anthony
98f3cc845f
Merge branch 'master' into master 2025-01-24 08:13:23 +11:00
Ronen Lapushner
74fa41330e Added to chaneglog 2025-01-23 14:15:53 +02:00
Lea Anthony
4a1d101d04
Fix invalid path for windows dialogs (#4019)
* Fix invalid path for windows dialogs

* Update Go version in pipelines for v2
2025-01-23 22:12:37 +11:00
Atterpac
d824318a66
fix dev mode logging bug (#3972)
changelog.md

retain env support

actually fix the issue
2025-01-23 11:12:18 +00:00
Atterpac
00be6f24d2
[v2] Fix reloaddirs wails.json config (#4005)
fix reloaddirs config option

changelog.mdx
2025-01-23 11:11:29 +00:00
github-actions[bot]
55b90a50bc
Update Sponsor Image (#4022)
chore: update sponsors.svg

Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-01-23 21:59:02 +11:00
Ronen Lapushner
f82c971cb0 Added "Branding" to doctor 2025-01-21 21:18:10 +02:00
Ronen Lapushner
2aea5e2dae Added initial Windows 11-supporting branding 2025-01-21 21:15:24 +02:00
Lea Anthony
481c145cd3
Update deps 2025-01-20 21:51:11 +11:00
github-actions[bot]
51c7453bd2
Update Sponsor Image (#4018)
chore: update sponsors.svg

Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-01-17 18:58:52 +11:00
ronaldinho_x86
4598af4d7a
recover from process message instead crash the whole app (#4016)
* recover from process message instead crash the whole app

* update changelog.mdx (#4015)
2025-01-17 16:45:54 +11:00
Jeremy Jay
c4fdfd6415
Fix miscellaneous bindings and typescript export bugs (#3978)
* Do not attempt to export fields that cannot be json-encoded

* update changelog w/ PR

* also skip UnsafePointers

* WIP to allow conversion from Go generic types to typescript

* support for non-primitive generics also :)

* fix generic types in parameters / return args

* fixes a namespacing bug when mapping to pointer to struct

* fixing invalid knownstructs

* found a place it mattered, pushing the star replacement to the generate side

* descend as much as necessary to find structs

caught these examples in http.Request.TLS:

PeerCertificates []*x509.Certificate
VerifiedChains [][]*x509.Certificate

* accidently reverted other fix

* switch syntax for typescript record outputs

prior syntax is primarily useful for naming keys
so not useful here, and this syntax avoids square
brackets in output which greatly simplifies
generation for Go generics

* better handle edge cases for nested arrays and slices

* lots o tests

* update changelog

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-01-13 20:14:54 +11:00
github-actions[bot]
d9b99a990d
Update Sponsor Image (#4004)
chore: update sponsors.svg

Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-01-13 19:04:57 +11:00
github-actions[bot]
d6383364ab
Update Sponsor Image (#4002)
chore: update sponsors.svg

Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-01-12 20:41:27 +11:00
Lea Anthony
3a4c3e7a7f
Ensure showHiddenFiles works with directory dialog (#3904)
* Ensure showHiddenFiles works with directory dialog

* Updated docs
2025-01-11 14:35:12 +11:00
github-actions[bot]
caf05adff3
Update Sponsor Image (#3998)
chore: update sponsors.svg

Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-01-11 14:34:42 +11:00
Akshay Kalose
67afec3c2a
Add grpcmd-gui to Community Showcase (#3994) 2025-01-11 10:31:24 +11:00
Jeremy Jay
7566ed4ba6
Do not attempt to export fields that cannot be json-encoded (#3975)
* Do not attempt to export fields that cannot be json-encoded

* update changelog w/ PR

* also skip UnsafePointers

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-01-10 15:11:13 +11:00
github-actions[bot]
90be707d9c
Update Sponsor Image (#3983)
chore: update sponsors.svg

Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2025-01-05 12:34:48 +11:00
bronya0
82fd9de339
Fix:Adjust the first-level heading to fix the page display format (#3968)
* Update kafka-king.mdx

* Update kafka-king.mdx

* Update kafka-king.mdx
2024-12-27 17:26:27 +00:00
562589540
461d34c620
fix: prevent unnecessary redraws during window minimize/restore (#3955)
* fix: prevent unnecessary redraws during window minimize/restore

This fixes the window flickering issue when minimizing/restoring by:
1. Adding isMinimizing flag to track window state
2. Adding SetPadding filter to prevent redundant redraws
3. Properly handling minimize/restore window states

Fixes #3951

* docs: improve comments and changelog for frameless window flickering fix

- Add detailed comments about frameless window fix
- Update changelog to clarify this is a frameless window issue
- Add bilingual comments for better understanding

Fixes #3951

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-12-26 16:13:46 +11:00
Lea Anthony
ee2156ee2c
Added Go requirements for Mac 15+ 2024-12-23 21:05:33 +11:00
bronya0
d730c963f4
docs: add Kafka King to showcase (#3964)
* add showcase img

* Create kafka-king.mdx

* add showcase

* Update kafka-king.mdx

* Delete website/static/img/showcase/kafka-King-img_3.png

* Create kafka-king.mdx

* Create kafka-king.mdx
2024-12-23 21:01:18 +11:00
github-actions[bot]
fc0aea1038
Update Sponsor Image (#3956)
chore: update sponsors.svg

Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2024-12-18 19:47:40 +11:00
github-actions[bot]
e219e3b65e
Update Sponsor Image (#3952)
chore: update sponsors.svg

Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2024-12-16 19:48:44 +11:00
github-actions[bot]
42e77506d9
Update Sponsor Image (#3943)
chore: update sponsors.svg

Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2024-12-13 20:35:31 +11:00
Akshay Kalose
896a90f69e
Add Minesweeper XP to Community Showcase (#3940) 2024-12-09 23:01:25 +11:00
github-actions[bot]
c27d2ceb8e
Update Sponsor Image (#3938)
chore: update sponsors.svg

Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2024-12-08 11:36:03 +11:00
lvyaoting
dd4aa56310
chore: fix some comments (#3932)
Signed-off-by: lvyaoting <lvyaoting@outlook.com>
2024-12-06 14:35:46 +11:00
希嘉嘉
6345b64a22
Update templates.mdx (#3930)
add a svelte templage
2024-12-05 05:18:29 +11:00
Lea Anthony
2c45ae69bb
Update go-webview2 to v1.0.18. 2024-12-02 07:48:38 +11:00
github-actions[bot]
dade880064
Update Sponsor Image (#3918)
chore: update sponsors.svg

Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2024-11-30 11:30:24 +11:00
Cristian Greco
bd57598c03
Update Mac AppStore Guide to support app names containing spaces (#3923)
* Update Mac AppStore Guide to support app names containing spaces

* Update changelog

* Add author
2024-11-30 09:09:37 +11:00
Lane Shukhov
8deb8a04e7
Add WailsTerm to community showcases (#3914)
add WailsTerm to community showcases
2024-11-26 18:37:29 +11:00
Perny
93b49391c7
chore: update svelte CLI command (#3912)
* chore: update svelte CLI command

* chore: specify folder location for svelte project creation command

* Update website/docs/guides/sveltekit.mdx

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-11-25 19:13:55 +11:00
Lea Anthony
e5be3c5cfe
Update MacOS requirements 2024-11-23 22:57:29 +11:00
Lea Anthony
63e1f3c09c
Fix TS definition of WindowSetSize 2024-11-23 22:07:51 +11:00
github-actions[bot]
39c922bc9f
Update Sponsor Image (#3899)
chore: update sponsors.svg

Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2024-11-22 19:10:20 +11:00
github-actions[bot]
cadbccfb72
Update Sponsor Image (#3892)
chore: update sponsors.svg

Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2024-11-19 19:17:19 +11:00
dependabot[bot]
ba38474050
Bump the go_modules group across 3 directories with 1 update (#3410)
Bumps the go_modules group with 1 update in the /v2 directory: [golang.org/x/net](https://github.com/golang/net).
Bumps the go_modules group with 1 update in the /v2/examples/customlayout directory: [golang.org/x/net](https://github.com/golang/net).
Bumps the go_modules group with 1 update in the /v2/internal/staticanalysis/test/standard directory: [golang.org/x/net](https://github.com/golang/net).


Updates `golang.org/x/net` from 0.20.0 to 0.23.0
- [Commits](https://github.com/golang/net/compare/v0.20.0...v0.23.0)

Updates `golang.org/x/net` from 0.17.0 to 0.23.0
- [Commits](https://github.com/golang/net/compare/v0.20.0...v0.23.0)

Updates `golang.org/x/net` from 0.17.0 to 0.23.0
- [Commits](https://github.com/golang/net/compare/v0.20.0...v0.23.0)

---
updated-dependencies:
- dependency-name: golang.org/x/net
  dependency-type: direct:production
  dependency-group: go_modules
- dependency-name: golang.org/x/net
  dependency-type: indirect
  dependency-group: go_modules
- dependency-name: golang.org/x/net
  dependency-type: indirect
  dependency-group: go_modules
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-11-17 20:56:38 +11:00
dependabot[bot]
86e3d51c8e
Bump the go_modules group across 2 directories with 1 update (#3408)
Bumps the go_modules group with 1 update in the /v2/examples/customlayout directory: [golang.org/x/net](https://github.com/golang/net).
Bumps the go_modules group with 1 update in the /v2/internal/staticanalysis/test/standard directory: [golang.org/x/net](https://github.com/golang/net).


Updates `golang.org/x/net` from 0.17.0 to 0.23.0
- [Commits](https://github.com/golang/net/compare/v0.17.0...v0.23.0)

Updates `golang.org/x/net` from 0.17.0 to 0.23.0
- [Commits](https://github.com/golang/net/compare/v0.17.0...v0.23.0)

---
updated-dependencies:
- dependency-name: golang.org/x/net
  dependency-type: indirect
  dependency-group: go_modules
- dependency-name: golang.org/x/net
  dependency-type: indirect
  dependency-group: go_modules
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-17 20:55:06 +11:00
Damien Sedgwick
10e3a13d12
chore: removed incorrect go.mod instructions (#3878)
* chore: removed incorrect go.mod instructions

* chore: updated changelog.mdx

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-11-16 11:04:37 +11:00
Lea Anthony
5df8ecc961
Update PR template
(cherry picked from commit 0f0f9a0262)
2024-11-16 10:46:19 +11:00
github-actions[bot]
dca2064916
Update Sponsor Image (#3884)
chore: update sponsors.svg

Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2024-11-16 09:43:28 +11:00
github-actions[bot]
13d4b218e7
Update Sponsor Image (#3883)
chore: update sponsors.svg

Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2024-11-14 07:24:05 +11:00
Takuya HARA
d1ba26a043
Fixed typo (#3846)
* Fixed typo

* Update changelog.mdx
2024-11-07 22:24:32 +11:00
Takuya HARA
1c163422aa
Fixed example for macOS menu (#3847)
* Fixed example for macOS menu

* Update changelog.mdx
2024-11-07 06:42:20 +11:00
github-actions[bot]
bdb415130b
Update Sponsor Image (#3874)
chore: update sponsors.svg

Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2024-11-04 19:00:29 +11:00
Lea Anthony
e573bf4df9
Update go.sum 2024-11-03 14:44:58 +11:00
灰狼
9772523f46
Add wails-nextjs-tailwind-template (#3871)
Update templates.mdx
2024-11-03 14:43:10 +11:00
Lea Anthony
157c8fdbc7
Update to go-webview 0.1.17 2024-11-02 20:29:34 +11:00
github-actions[bot]
758a63648e
Update Sponsor Image (#3863)
chore: update sponsors.svg

Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2024-10-31 00:03:29 +11:00
github-actions[bot]
f2881822d2
Update Sponsor Image (#3858)
chore: update sponsors.svg

Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2024-10-26 14:26:31 +11:00
github-actions[bot]
bb4e95e22d
Update Sponsor Image (#3855)
chore: update sponsors.svg

Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2024-10-24 12:09:16 +11:00
Pratik Mota
5ebccf1ea6
[Documentation]Adding notes for latest linux version and libwebkit issue (#3806)
* Adding notes for latest linux version and libwebkit issue

* adding change log details

* updating document changes to website/docs folder

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-10-21 08:32:19 +11:00
Lea Anthony
f08f4be868 Rebuild runtime js 2024-10-20 14:17:49 +11:00
Andrey Pshenkin
a964be1ada
Allow to specify macos-min-version externally (#3756)
* Allow to specify macos-min-version externally

* update changelog

* add note in documentation for macos version

* spelling fixes
2024-10-20 14:09:39 +11:00
William Kim
f33e627360
docs: add korean translation for Introduction (#3780) 2024-10-20 14:08:52 +11:00
Andrey Pshenkin
1b6ed1bc00
Allow set window class name via options for Windows (#3828)
* Allow set window class name via options

* update changelog
2024-10-20 13:36:13 +11:00
github-actions[bot]
14cc9ec45b
Update Sponsor Image (#3824)
chore: update sponsors.svg

Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2024-10-15 01:26:01 +11:00
JinTao Chen
26ff639b62
Updated documentation with new wails template (#3820) 2024-10-13 18:14:58 +11:00
github-actions[bot]
10abe246b0
Update Sponsor Image (#3818)
chore: update sponsors.svg

Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2024-10-12 18:01:02 +11:00
fcying
8a5a0506bf
fix: pass platform and arch to GenerateBindings for cross compilation (#3795) 2024-10-10 20:17:43 +11:00
xvertile
a2e32fe414
Updated documentation with new wails template (#3802)
Created a new template using the latest version of wails and tailwind.
2024-10-10 19:46:27 +11:00
Barat Semet
7a5e41f904
Add Resizem to community showcase (#3813)
Resizem is an app designed for bulk image process. It is particularly useful for users who need to resize, convert, and manage large numbers of image files at once.
2024-10-10 19:45:56 +11:00
github-actions[bot]
5b8594928b
Update Sponsor Image (#3799)
chore: update sponsors.svg

Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2024-10-10 19:45:35 +11:00
github-actions[bot]
a6288c414e
Update Sponsor Image (#3769)
chore: update sponsors.svg

Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2024-09-30 15:48:28 +10:00
nick-bae
bd2c1ea73f
bugfix : fix error on building runnable .app on MacOS when 'name' and 'outputfilename' are different. (#3789)
* mod : added OutputFilename field to assetData \n mod : modified resolveProjectData to export OutputFilename \n mod : modified CFBundleExecutable values to .OutputFilename in info.dev.plist, info.plist

* mod : update changelog.mdx

---------

Co-authored-by: nick-bae <nick.bae@ddkakaoenterprise.com>
2024-09-29 03:06:27 +00:00
github-actions[bot]
429e94f4ce
Update Sponsor Image (#3767)
chore: update sponsors.svg

Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2024-09-22 11:29:59 +10:00
Lea Anthony
f302c8053c
v2.9.2 2024-09-18 21:29:21 +10:00
pagal
5d2b4308a8
Removed unnecessary files. Fixes #3737 (#3738)
Removed unnecessary files.

Issue was fixed via #1813 and the extra readmes is not needed anymore
2024-09-09 08:38:14 +10:00
Matt Armstrong
f4b21a6b37
chore: fix DeskGap author link on credits page (#3724) 2024-09-06 08:08:23 +10:00
github-actions[bot]
265d2e45db
Update Sponsor Image (#3727)
chore: update sponsors.svg

Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2024-09-06 07:56:29 +10:00
github-actions[bot]
c3a7266001
Update Sponsor Image (#3725)
chore: update sponsors.svg

Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2024-09-04 21:11:36 +10:00
Lea Anthony
3721d73423
More syscall fixes (#3713)
* More syscall fixes

* Update changelog.mdx
2024-09-02 19:34:22 +10:00
github-actions[bot]
d218384396
Update Sponsor Image (#3711)
chore: update sponsors.svg

Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2024-09-01 17:05:53 +10:00
Lea Anthony
475534c132
V2 bugfix/windows syscall go 1.23 (#3707)
* Initial test

* Fix calls

* Update changelog.mdx

* Free allocated strings

* Misc fixes
2024-08-28 19:24:59 +10:00
dy
8e810d59f0
Update templates.mdx (#3567)
Added "wails-template-nextjs-app-router-src"

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-08-25 21:52:31 +10:00
Ignas Bernotas
1a2310265f
Modified docs to reflect the correct password syntax for the gon-sign.json file (#3620)
* fix: docs macOS signing password syntax

* fix: docs macOS signing password syntax

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-08-25 11:33:09 +00:00
github-actions[bot]
87b1325dbc
Update Sponsor Image (#3706)
chore: update sponsors.svg

Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2024-08-25 20:41:19 +10:00
Mohamed Feddad
f8c8611219
Fix drag and drop missing cursor icon (#3703)
* fix: darg and drop missing cursor icon

* chore: update change log
2024-08-25 20:16:09 +10:00
Mohamed Feddad
4b6a8e17c5
fix: failsafe JavaScript event emitter notifyListeners (#3695)
* fix: failsafe JavaScript event emitter `notifyListeners`

* chore: update change log
2024-08-20 21:00:54 +00:00
Andreas Deininger
868931fe72
Fix typos (#3628)
* Fix typos

* Update howdoesitwork.mdx

* Added entry to changelog

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-08-20 19:22:43 +10:00
Lea Anthony
3f83b42db5
FIX: Address Mac CGO Crash (#3590)
* Copy request to Go memory

* Update changelog.mdx

* Update v2/pkg/assetserver/webview/responsewriter_darwin.go

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Fix import

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2024-08-20 18:12:56 +10:00
Lea Anthony
9995dae4ad
Nil pointer check for DnD (#3597)
* Nil pointer check for DnD

* Update changelog
2024-08-18 21:04:02 +10:00
levinit
d36d1718d9
Modified ZoomFactor and IsZoomControlEnabled options to be Windows-only options (#3644) 2024-08-18 20:43:53 +10:00
github-actions[bot]
0f61873fe8
chore: update sponsors.svg (#3679)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2024-08-14 12:20:59 +10:00
Jeremy Jay
fe1f23b0fd
If a field is exported, generate json even in the absence of tags (#3678)
* if no JSON tag, check if field is exported

* add no-tags binding test case

* update changelog for #3678
2024-08-14 07:49:08 +10:00
Ian M. Jones
2b35861aee
Fix doctor command not finding pkg-config on Solus (#3670)
* Fix doctor command not finding pkg-config on Solus

* Update changelog
2024-08-10 17:27:37 +10:00
github-actions[bot]
ddf27038e1
chore: update sponsors.svg (#3661)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2024-08-06 14:19:37 +10:00
taisei
5b091db26d
Fixed an error that occurred when an author name contains a string that is not suitable for JSON (#3638)
* fix(pkg): Fixed an issue where wails new would throw an error if the author name contained non-JSON legal characters.

* refactor(pkg): Incorporating coderabbit's suggestions

* docs: write changelog.mdx

* Escape using json package. Add tests.

* Update test.

---------

Co-authored-by: Lea O'Anthony <lea.anthony@gmail.com>
2024-07-29 21:34:19 +10:00
github-actions[bot]
fe9495d776
chore: update sponsors.svg (#3641)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2024-07-28 11:23:53 +10:00
github-actions[bot]
7a40cc59ca
chore: update sponsors.svg (#3624)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2024-07-20 15:24:11 +10:00
Alex Pliutau
e941f36267
#3200: Use OutputFilename instead of Name (#3551)
* Use OutputFilename instead of Name

* #3200: add changelog entry

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-07-20 08:50:16 +10:00
github-actions[bot]
482f19e6b9
chore: update sponsors.svg (#3619)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2024-07-18 12:11:31 +10:00
github-actions[bot]
dd6eb0fa75
chore: update sponsors.svg (#3618)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2024-07-17 20:30:35 +10:00
github-actions[bot]
9efaedfe39
chore: update sponsors.svg (#3604)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2024-07-12 19:04:04 +10:00
github-actions[bot]
c4c0d64fd5
chore: update sponsors.svg (#3591)
Co-authored-by: leaanthony <1943904+leaanthony@users.noreply.github.com>
2024-07-12 07:38:21 +10:00
Francesco Luzzi
ffcfa1b0e7
fix: compute dropped file path before css handling (#3595)
* fix: compute dropped file path before css handling

* udpate changelog

* Update website/src/pages/changelog.mdx

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2024-07-10 15:00:19 +10:00
Lea Anthony
3204287f96
Fix sponsors workflow 2024-07-10 14:46:51 +10:00
github-actions[bot]
9b01922a10
chore: update sponsors.svg (#3583)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2024-07-02 18:33:15 +10:00
github-actions[bot]
41b75975e8
chore: update sponsors.svg (#3575)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2024-06-28 17:17:50 +10:00
初十
78fbcbcf5f
Update templates.mdx (#3573)
add vue template
2024-06-28 08:14:11 +10:00
github-actions[bot]
a4428022ec
docs: sync translations (#3543)
* docs: sync translations

* Fix build

---------

Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-06-22 14:07:04 +10:00
github-actions[bot]
e09f9b171e
chore: update sponsors.svg (#3556)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2024-06-22 13:43:27 +10:00
C15U
5d532181d8
Add wails-template-nuxt (#3560) 2024-06-22 13:41:56 +10:00
github-actions[bot]
1d212f1f25
chore: update sponsors.svg (#3554)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2024-06-21 08:23:28 +10:00
Anderson Lizarazo Tellez
517d8d7897
Documentation: Specify how to handle the Fixed WebView Runtime. (#3444)
* Update `windows.mdx`

Specify to the user that the WebView dependency must be extracted before being used.

* Update no versioned `windows.mdx`

* Update `changelog.mdx`
2024-06-20 05:40:36 +10:00
dependabot[bot]
b0dfa86ae9
Bump ws in /website in the npm_and_yarn group across 1 directory (#3552)
Bumps the npm_and_yarn group with 1 update in the /website directory: [ws](https://github.com/websockets/ws).


Updates `ws` from 7.5.9 to 7.5.10
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/7.5.9...7.5.10)

---
updated-dependencies:
- dependency-name: ws
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-19 18:14:55 +10:00
github-actions[bot]
a2eecfd784
chore: update sponsors.svg (#3548)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2024-06-19 06:04:59 +10:00
Lea Anthony
5cd0caccc4
v2.9.1 2024-06-18 06:39:06 +10:00
Lea Anthony
b40fd93edb
Fix build for Linux/v2.9.0 (#3545)
* Fix #3542

* Pipeline updates

* More Pipeline updates

* Test against 1.21

* Add build tag for 24.04

* Update test for 24.04

* Update test for 24.04

* Update test for 24.04

* Update build for 24.04

* Cache apt packages

* Fix test in PR pipeline
2024-06-17 21:52:57 +10:00
Lea Anthony
fdbfdef4ac
Fix ubuntu version in docs 2024-06-17 19:52:44 +10:00
Lea Anthony
dd2287c6da
Add webkit2gtk-4.1 instructions. 2024-06-17 19:03:03 +10:00
Lea Anthony
50f9925b7b
Add webkit2gtk-4.1 instructions. 2024-06-17 18:49:45 +10:00
vffuunnyy
969e0a8a35
Update README.ru.md (#3544)
Improved language. Corrected terminology and refined expressions. Fixed typos.
2024-06-17 18:40:22 +10:00
Lea Anthony
d96d3b0010
Fix translations 2024-06-16 13:10:56 +10:00
Lea Anthony
8b215a9b4c
v2.9.0 2024-06-16 10:34:01 +10:00
Lea Anthony
68bed5d197
Update CHANGELOG 2024-06-16 10:29:33 +10:00
Jakub Peleška
022a5ffec4
Fix Drag & Drop JS runtime (#3516)
* Feature/1090 native drag and drop for file and folder (#3203)

* implement basic dnd for linux

* implemented windows

* progress changed linux handling and added coordinates to drop

* progress fix drop coordinates on windows

* progress remove log from windows

* progress move js

* update js after merge

* fix event listener registration

* fix segfault on non file drag

* remove logs, fix coordinates

* minor changes, simplify to drop only

* rename EnableWails -> EnableFileDrop

* add documentation (PR id missing)

* add PR id to changelog

* fix remove casting from malloc

* fix nil check for OnFileDrop's callback

* fix nil check for OnFileDrop skip event when nil

* add error message for nil callback in OnFileDrop

---------

Co-authored-by: lyimmi <lelvente.zambo@gmail.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>

* implement native drag and drop for macOS (#3250)

* implement native drag and drop for macOS

* update docs

* add to changelog

* update docs (macOS is supported)

* Fix windows DragAndDrop options

* Fix class unset on dragleave for full frame elements

* improve class unset (nested elements and borders case)

* Fix runtime drop target detection and CSS class assignment

* Edit changelog

* Fix drag-and-drop options in references

* Update v2/internal/frontend/desktop/darwin/WailsWebView.m

* Update v2/internal/frontend/desktop/darwin/WailsWebView.m

---------

Co-authored-by: Zámbó, Levente <levente.zambo@gmail.com>
Co-authored-by: lyimmi <lelvente.zambo@gmail.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
Co-authored-by: Andrey Pshenkin <andrey.pshenkin@gmail.com>
Co-authored-by: Pavel Binar <pavel@beamtransfer.io>
2024-06-10 15:15:28 +10:00
Stanislav Zeman
7b4f5cbd6a
docs: add guide for routing in Svelte (#3481)
* docs: add guide for routing in Svelte

* chore: add svelte routing guide example change to changelog

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-06-08 21:17:12 +10:00
Zeichenfolge
8ed75cf22b
German Readme (#3483)
* Added German Readme

* Added missing German refs

* added changelog.mdx entry

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-06-08 21:15:42 +10:00
Andrey Pshenkin
d8209beb1a
Fix single instance lock reset on macOS (#3526)
* Fix single instance lock reset on macos

* add changelog

* fix description
2024-06-08 21:03:52 +10:00
Erdem Köşk(MEK)
c9af48225e
Added README.tr.md for supporting turkish language (#3528)
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-06-08 09:51:35 +10:00
github-actions[bot]
9a489b8920
chore: update sponsors.svg (#3529)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2024-06-07 19:22:05 +10:00
github-actions[bot]
82cfe8c474
chore: update sponsors.svg (#3525)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2024-06-02 12:53:56 +10:00
github-actions[bot]
6ff63535f2
chore: update sponsors.svg (#3523)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2024-06-01 13:42:57 +10:00
Orel Lazri
a8299125a9
fix typos in roadmap section in readme (#3509) 2024-05-25 05:19:12 +10:00
Sheldon Rupp
8e88e1454f
Fix scoop command usage typo (#3501)
* Fix scoop command usage typo

* Fix scoop command usage typo

* Update changelog.mdx
2024-05-23 06:03:23 +10:00
github-actions[bot]
9b900b7df0
chore: update sponsors.svg (#3504)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2024-05-22 20:53:19 +10:00
github-actions[bot]
dba98e5487
chore: update sponsors.svg (#3486)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2024-05-18 07:46:51 +10:00
Gjergji Ramku
2f5398664f
Bindingings for empty go structs (#3489) 2024-05-18 07:39:27 +10:00
Gjergji Ramku
a7a4341f79
Special chars bindings unit tests (#3485)
* JSON fields that start with special characters generate wrong typescript bindings

* Update changelong
2024-05-17 18:32:54 +10:00
cenan ozen
d4dabc1289
Fix window position inconsistency in MacOS (#3479)
* Fix window position inconsistency in MacOS

* Updated changelog
2024-05-15 07:22:09 +10:00
Lea Anthony
cf18fcfc1e
Use NewSingleHostReverseProxy (#3480) 2024-05-14 21:04:28 +02:00
Atterpac
035ede4701
fix optional field syntax and ioutil replace with os' (#3476)
changelog
2024-05-14 06:40:31 +10:00
Oguz Yilmaz
0f66a98449
fix broken links in the howdoesitwork page (#3469)
* fix broken links in the howdoesitwork page

* updated changelog

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-05-12 14:28:32 +10:00
github-actions[bot]
cb67c266cf
chore: update sponsors.svg (#3472)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2024-05-12 14:27:18 +10:00
Lea Anthony
8d2a353bce
Bump Go to 1.22 in pipelines (#3473)
* Bump Go to 1.22 in pipelines

* Bump Go to 1.22 in pipelines
2024-05-12 14:26:56 +10:00
Atterpac
05bdeb0844
allow builds for webkit2gtk-4.1 (#3465) 2024-05-08 19:26:27 -05:00
Lea Anthony
1193fe9799
Update credits 2024-05-08 20:50:38 +10:00
Lea Anthony
daa71ce426
v2.8.2 2024-05-08 20:43:24 +10:00
Lea Anthony
c1c4220978
V2 features/proxy to external server (#3463)
* Add NewProxyServer function

* Pass through all methods for mac

* Content length fix

* Update changelog.mdx

* Update deps
2024-05-08 20:39:49 +10:00
Christian S
f8e1ab3ee9
Add "wails-lit-shoelace-esbuild-template" to community templates page (#3459) 2024-05-06 21:35:12 +10:00
Lea Anthony
acc89e522e
Fix link to project config 2024-05-05 17:36:08 +10:00
eric-tech01
afceac13fa
Update window.mdx (#3452)
title wrong in zh :  WindowHide not WindowShow
2024-05-05 14:08:02 +10:00
github-actions[bot]
74509e247c
chore: update sponsors.svg (#3453)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2024-05-05 14:05:51 +10:00
Lea Anthony
d44b5e9c46
Rename -noPackage flag to -nopackage (#3422)
* Rename `-noPackage` flag to `-nopackage`

* Update PR link
2024-05-02 09:13:55 -05:00
Leo
b7713da70e
Fixed an issue where go:embed directives would generate illegal directories (#3445)
* Update staticanalysis.go and associated tests

* Update changelog

* Changed format of octal literal

* Update changelog
2024-05-02 21:40:38 +10:00
Andrey Pshenkin
b8dae7a6e2
Fix icon issues with windows when project name contains spaces (#3400)
* fix icon issues with windows when project name contains spaces

* add comment

* add to change log

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-04-29 16:59:04 -05:00
github-actions[bot]
9a039b1dc9
chore: update sponsors.svg (#3441)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2024-04-28 10:18:02 +10:00
Leo
c10dfbce78
Fixed issue where createFrom would misidentify strings as arrays (#3435)
* Update check for Array-like variables

* Updated binding tests to reflect changes

* Update documentation to reflect changes

* Fixed PR number in changelog

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-04-27 16:30:04 +10:00
Cody Bentley
66562bfebc
removed outdated codydbentley templates (#3438)
* removed outdated codydbentley templates

* Updated cody bentley's info in contributor src
2024-04-27 16:25:44 +10:00
Diego Pahua Silvan
facec0c2ac
docs: add guides ide change goland option and reference cli add options vscode or goland (#3419)
* docs: add guides ide change goland option and reference cli add options vscode or goland

* docs: update changelog for ide options

* docs: fix typo golang to goland
2024-04-23 08:07:22 +10:00
Diego Pahua Silvan
a7c10a1a83
Update cli.mdx (#3415)
add possible options in terms of choosing the "ide" either "visual studio code" or "goland"
2024-04-22 12:35:32 +10:00
github-actions[bot]
2fe20071fb
chore: update sponsors.svg (#3411)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2024-04-20 10:50:53 +10:00
Diego Pahua Silvan
45002a0d82
docs: Add new template wails-astro-ts (#3401)
Add a community template to allow using Astro and TypeScript in Wails
2024-04-18 07:49:53 +10:00
hidewrong
9a069653e2
chore: fix some comments (#3399)
Signed-off-by: hidewrong <hidewrong@outlook.com>
2024-04-17 18:42:53 +10:00
github-actions[bot]
2481ff6a88
chore: update sponsors.svg (#3398)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2024-04-17 18:41:27 +10:00
github-actions[bot]
6d57fc6428
chore: update sponsors.svg (#3392)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2024-04-14 13:37:18 +10:00
Lea Anthony
2dd964b469
Update website 2024-04-11 21:19:59 +10:00
Lea Anthony
372173664b
v2.8.1 2024-04-11 21:15:04 +10:00
guangwu
faf36e8634
fix: close copy dst file (#3384)
* fix: close copy dst file

Signed-off-by: guoguangwu <guoguangwug@gmail.com>

* Update website/src/pages/changelog.mdx

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Signed-off-by: guoguangwu <guoguangwug@gmail.com>
Co-authored-by: Travis McLane <tmclane@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2024-04-09 17:34:43 -05:00
lvyaoting
aad811391b
chore: fix function names in comment (#3383)
Signed-off-by: lvyaoting <lvyaoting@outlook.com>
2024-04-09 17:19:06 -05:00
github-actions[bot]
bde4e5b699
chore: update sponsors.svg (#3377)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2024-04-07 11:20:39 +10:00
github-actions[bot]
40119e9a17
chore: update sponsors.svg (#3372)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2024-04-05 17:17:29 +11:00
Vladimir Sokolovskiy
374e15650d
Update templates.mdx (#3367)
Add a new template: wails-next-tailwind-shadcnui-ts
2024-04-04 07:03:25 +11:00
dependabot[bot]
32bbeb653e
Bump the npm_and_yarn group across 1 directory with 1 update (#3369)
Bumps the npm_and_yarn group with 1 update in the /v2/internal/frontend/runtime directory: [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).


Updates `vite` from 3.2.8 to 3.2.10
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v3.2.10/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v3.2.10/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: indirect
  dependency-group: npm_and_yarn-security-group
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-04 07:00:34 +11:00
github-actions[bot]
2c4b38e39d
chore: update sponsors.svg (#3361)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2024-04-01 11:47:18 +11:00
reallylowest
e7756e9274
chore: fix some typos in comments (#3357)
Signed-off-by: reallylowest <sunjinping@outlook.com>
2024-03-31 16:23:18 +11:00
dependabot[bot]
1f74b337ff
Bump the npm_and_yarn group across 1 directory with 1 update (#3352)
Bumps the npm_and_yarn group with 1 update in the /website directory: [express](https://github.com/expressjs/express).


Updates `express` from 4.18.2 to 4.19.2
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.18.2...4.19.2)

---
updated-dependencies:
- dependency-name: express
  dependency-type: indirect
  dependency-group: npm_and_yarn-security-group
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-29 20:08:46 +11:00
Lea Anthony
98c4b967a7 Remove link to expired varly.app domain 2024-03-24 17:27:24 +11:00
dora
37aa2c4eff
fix docs routing (#3206)
* fix docs routing

* changelog

* changelog

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-03-24 17:16:21 +11:00
Casey Mulcahy
311aee30b2
Fix docs for JS return types in Window API (#3247)
* Fix docs for JS return types in Window API

These functions return promises, not raw values.

* Update changelog.mdx for Window API docs fix

* Fix non-versioned docs for JS Window API return types

* Fix docs typo

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-03-24 17:14:32 +11:00
Sean
9cafd85cda
fix: fallback to hardcoded Edge/Chrome/Firefox Windows browser paths if user's default browser no longer exists (#3262)
To reproduce:

- Use Windows
- Set your default browser to Firefox (Settings -> Apps -> Default Apps -> Web Browser)
- Rename your firefox.exe to something.else

The BrowserOpenURL before this commit silently fails.

The BrowserOpenURL after this commit tries to use a hardcoded fallback browser.
If successful, a warning message is logged.
If unsuccessful (default browser and fallback browsers fail), an error message is logged.

Co-authored-by: Sean <sean@malonetuning.com>
2024-03-24 17:09:27 +11:00
我看谁不卷
08a71de536
update go minimum version (#3285)
* update go minimum version

V2.7.1 Go 1.20 is now the minimum supported Go version.

* Update go build min version

* update go build min version

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-03-24 17:00:11 +11:00
Twacqwq
bc69b39ccd
feat(cmd/init): change default module name to project name (#3303)
* feat(cmd/init): change default module name to project name

* chore: write go.mod using chmod 644

* refactor: using go mod edit change module name

* docs: update changelog.mdx and cli.mdx

* Revert "feat(cmd/init): change default module name to project name"

This reverts commit 504d951759.

* feat(cmd/init): change default module name to project name

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-03-24 16:58:46 +11:00
dependabot[bot]
769a882e58
Bump the npm_and_yarn group across 2 directories with 4 updates (#3337)
Bumps the npm_and_yarn group with 2 updates in the /scripts/sponsors directory: [tough-cookie](https://github.com/salesforce/tough-cookie) and [sponsorkit](https://github.com/antfu/sponsorkit).
Bumps the npm_and_yarn group with 1 update in the /website directory: [webpack-dev-middleware](https://github.com/webpack/webpack-dev-middleware).


Removes `tough-cookie`

Updates `sponsorkit` from 0.8.9 to 0.9.3
- [Release notes](https://github.com/antfu/sponsorkit/releases)
- [Commits](https://github.com/antfu/sponsorkit/compare/v0.8.9...v0.9.3)

Updates `yargs-parser` from 7.0.0 to 21.1.1
- [Release notes](https://github.com/yargs/yargs-parser/releases)
- [Changelog](https://github.com/yargs/yargs-parser/blob/main/CHANGELOG.md)
- [Commits](https://github.com/yargs/yargs-parser/compare/v7.0.0...yargs-parser-v21.1.1)

Updates `webpack-dev-middleware` from 5.3.3 to 5.3.4
- [Release notes](https://github.com/webpack/webpack-dev-middleware/releases)
- [Changelog](https://github.com/webpack/webpack-dev-middleware/blob/v5.3.4/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-dev-middleware/compare/v5.3.3...v5.3.4)

---
updated-dependencies:
- dependency-name: tough-cookie
  dependency-type: indirect
  dependency-group: npm_and_yarn-security-group
- dependency-name: sponsorkit
  dependency-type: direct:production
  dependency-group: npm_and_yarn-security-group
- dependency-name: yargs-parser
  dependency-type: indirect
  dependency-group: npm_and_yarn-security-group
- dependency-name: webpack-dev-middleware
  dependency-type: indirect
  dependency-group: npm_and_yarn-security-group
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-24 12:34:12 +11:00
i hate microsoft
d3332f0b2c
fix wss /wails/ipc (#2469)
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-03-24 12:33:15 +11:00
Lea Anthony
bf2d6d3241
Remove xattr via obj-c (#3328)
* Remove xattr via obj-c

* Revert "Remove xattr via obj-c"

This reverts commit 880a4e0b40.

* Fixed path xattr call
2024-03-24 12:32:14 +11:00
github-actions[bot]
3694dd2a55
chore: update sponsors.svg (#3327)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2024-03-20 18:45:33 +11:00
Lea Anthony
c451adc424 Update node version in pipelines 2024-03-19 21:35:11 +11:00
github-actions[bot]
4093c9ec64
chore: update sponsors.svg (#3324)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2024-03-19 21:28:12 +11:00
dependabot[bot]
839e42edde
Bump the npm_and_yarn group across 2 directories with 2 updates (#3319)
Bumps the npm_and_yarn group with 1 update in the /v2/internal/frontend/runtime directory: [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).
Bumps the npm_and_yarn group with 1 update in the /website directory: [follow-redirects](https://github.com/follow-redirects/follow-redirects).


Updates `vite` from 3.1.8 to 3.2.8
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v3.2.8/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v3.2.8/packages/vite)

Updates `follow-redirects` from 1.15.4 to 1.15.6
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.4...v1.15.6)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: indirect
  dependency-group: npm_and_yarn-security-group
- dependency-name: follow-redirects
  dependency-type: indirect
  dependency-group: npm_and_yarn-security-group
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-17 11:37:14 +11:00
github-actions[bot]
f2c4ada1e2
chore: update sponsors.svg (#3318)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2024-03-16 19:36:21 +11:00
github-actions[bot]
126f17a266
chore: update sponsors.svg (#3316)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2024-03-14 19:25:49 +11:00
github-actions[bot]
e4fd7df68b
chore: update sponsors.svg (#3302)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2024-03-11 20:12:17 +11:00
oskar
c5381dce70
docs: added mchat to showcases (#3294) 2024-03-05 19:56:54 +11:00
Lea Anthony
964abcc6bd Escape bindings, even though we generate them internally. 2024-03-02 16:42:20 +11:00
Cristian Bilu
5d22da4126
Add disable zoom on mac (#3289)
* Add disable zoom on mac

* Add changelog line

* Add zommable in main.m

I see this file is ignore, but i think it's better to keep it up-to-date so if we ever unignore it will work correctly.
2024-03-02 15:47:59 +11:00
github-actions[bot]
e714dd92a8
chore: update sponsors.svg (#3291)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2024-03-02 15:34:49 +11:00
madflow
3bf4ea5113
fix: json5 code highlighting (#3278) 2024-02-29 08:46:33 +11:00
te5se
65cef2f206
- add -m(skip go mod tidy) build flag to dev command (#3275)
* - add -m(skip go mod tidy) build flag to dev command

* - add changelog entry for PR #3275
2024-02-26 21:10:01 +11:00
github-actions[bot]
bff2258aea
chore: update sponsors.svg (#3258)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2024-02-23 21:12:26 +11:00
Benoit Botton
8145b0e0c5
add warning about dynamic assets and vite v5.0.0+ (#3254)
* add warning about dynamic assets and vite v5.0.0+
2024-02-22 08:03:45 +01:00
atterpac
57e6834bd2
NixOS font bug docs (#3268)
add changelog

Appeasing the rabbit

remove v3

Co-authored-by: atterpac <michael@atterpac.dev>
2024-02-20 06:49:17 +11:00
dependabot[bot]
9c3f91bb48
Bump the npm_and_yarn group across 3 directories with 1 update (#3257)
Bumps the npm_and_yarn group with 1 update in the /scripts/sponsors directory: [semver](https://github.com/npm/node-semver).
Bumps the npm_and_yarn group with 1 update in the /v2/internal/frontend/runtime directory: [semver](https://github.com/npm/node-semver).


Updates `semver` from 7.5.4 to 7.6.0
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v7.5.4...v7.6.0)

Updates `semver` from 5.7.1 to 5.7.2
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v7.5.4...v7.6.0)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: indirect
  dependency-group: npm_and_yarn-security-group
- dependency-name: semver
  dependency-type: indirect
  dependency-group: npm_and_yarn-security-group
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-14 18:21:54 +11:00
Lea Anthony
d899621351
Update SECURITY.md 2024-02-14 18:15:24 +11:00
Lea Anthony
1957e2e86c
Create SECURITY.md 2024-02-14 18:09:12 +11:00
github-actions[bot]
1c8e2ee8fe
chore: update sponsors.svg (#3241)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2024-02-09 21:04:35 +11:00
Lea Anthony
741558532b
Revert "Added possibility to specify platform for dev command (#3117)"
This reverts commit 4b4fcdd47c.
2024-02-08 21:38:24 +11:00
Lea Anthony
772f870eb3
v2.8.0 2024-02-08 21:28:28 +11:00
stffabi
e29b375de5
[cli] Bump x/tools to 0.17.0 to fix compatiblity with go 1.22 (#3244) 2024-02-08 22:40:04 +11:00
github-actions[bot]
72e12ef398
chore: update sponsors.svg (#3235)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2024-02-05 22:41:20 +11:00
atterpac
9903ba70d5
Update vue-tsc (#3234)
changelog
2024-02-05 17:12:09 +11:00
github-actions[bot]
9b35616a20
chore: update sponsors.svg (#3223)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2024-01-29 21:33:29 +11:00
github-actions[bot]
a988691931
chore: update sponsors.svg (#3218)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2024-01-27 08:43:22 +11:00
William Sjökvist
ad7f7f76bc
chore: add cfn-tracker to community docs (#3221)
* chore: add cfn tracker to community docs

* run format
2024-01-27 08:41:15 +11:00
github-actions[bot]
55a7d317bd
chore: update sponsors.svg (#3217)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2024-01-25 21:04:20 +11:00
github-actions[bot]
cec6551c5e
chore: update sponsors.svg (#3215)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2024-01-21 17:45:38 +11:00
github-actions[bot]
3a230b563f
chore: update sponsors.svg (#3210)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2024-01-19 19:49:09 +11:00
Dana Woodman
f9aa4d3b60
Give explicity example of importing JS runtime (#3178)
* Give explicity example of importing JS runtime

No where in the docs, google, github issues or discussions could I find an example of importing the runtime JS but after some experimentation I figured it out.

I think it would help future users if a simple example was shown like this so they have a clear reference of how to import the runtime.

* make generic

* Update changelog.mdx

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-01-17 22:40:12 +11:00
Luke Watts
b498cddcad
Windows nsis install documentation improvements (#3179)
* Adding additional NSIS install methods (Scoop, Winget) to windows-installer.mdx

Adding Scoop and Winget package managers to the list of methods by which NSIS can be installed.

* Update windows-installer.mdx

Reordering so chocolatey is last, as Scoop or Winget are better/newer options
2024-01-17 22:37:58 +11:00
ALMAS
3e5df3c7f1
[v2/Windows]Set default extension for save file dialog (#3205)
* Set default extension for save file dialog

* add change log

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-01-17 22:35:15 +11:00
github-actions[bot]
9ccb17bfd0
chore: update sponsors.svg (#3204)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2024-01-17 08:27:49 +11:00
dependabot[bot]
12d6336421
Bump follow-redirects from 1.15.2 to 1.15.4 in /website (#3188)
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.2 to 1.15.4.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.2...v1.15.4)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-10 23:32:36 +11:00
dependabot[bot]
cf2d16c1fd
Bump github.com/cloudflare/circl from 1.3.3 to 1.3.7 in /v2 (#3185)
Bumps [github.com/cloudflare/circl](https://github.com/cloudflare/circl) from 1.3.3 to 1.3.7.
- [Release notes](https://github.com/cloudflare/circl/releases)
- [Commits](https://github.com/cloudflare/circl/compare/v1.3.3...v1.3.7)

---
updated-dependencies:
- dependency-name: github.com/cloudflare/circl
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-10 06:14:31 +11:00
ALMAS
bf389e3914
[v2/Mac] Handle application terminate (#3157)
* [v2/Mac] Handle application terminate

* add change log

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-01-08 08:08:04 +11:00
Vladimir
f7c19469a7
v2 [#3133] SingleInstanceData: Fill missing WD as is (#3154)
* [#3133] SingleInstanceData: Fill missing WD as is

* Apply suggestions from code review

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Fix: missing `import` for AI suggestions

* Add changelog entry

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2024-01-04 05:26:24 +11:00
github-actions[bot]
f1265c527e
chore: update sponsors.svg (#3150)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2024-01-03 19:43:00 +11:00
dependabot[bot]
b083d1d41c
Bump github.com/go-git/go-git/v5 from 5.3.0 to 5.11.0 in /v2 (#3161)
Bumps [github.com/go-git/go-git/v5](https://github.com/go-git/go-git) from 5.3.0 to 5.11.0.
- [Release notes](https://github.com/go-git/go-git/releases)
- [Commits](https://github.com/go-git/go-git/compare/v5.3.0...v5.11.0)

---
updated-dependencies:
- dependency-name: github.com/go-git/go-git/v5
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-03 19:38:06 +11:00
dependabot[bot]
56fb047d89
Bump tj-actions/verify-changed-files in /.github/workflows (#3164)
Bumps [tj-actions/verify-changed-files](https://github.com/tj-actions/verify-changed-files) from 11.1 to 17.
- [Release notes](https://github.com/tj-actions/verify-changed-files/releases)
- [Changelog](https://github.com/tj-actions/verify-changed-files/blob/main/HISTORY.md)
- [Commits](https://github.com/tj-actions/verify-changed-files/compare/v11.1...v17)

---
updated-dependencies:
- dependency-name: tj-actions/verify-changed-files
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-03 19:37:41 +11:00
dependabot[bot]
ae4cb4e861
Bump tj-actions/changed-files from 35 to 41 in /.github/workflows (#3165)
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 35 to 41.
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](https://github.com/tj-actions/changed-files/compare/v35...v41)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-03 19:36:40 +11:00
Lykin
33172946ca
doc: update screenshot of Tiny RDM to latest version (#3166)
Co-authored-by: Lykin <huangliu3060@qq.com>
2024-01-03 19:35:59 +11:00
dependabot[bot]
3c7a2187db
Bump golang.org/x/crypto in /v2/internal/staticanalysis/test/standard (#3143)
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.14.0 to 0.17.0.
- [Commits](https://github.com/golang/crypto/compare/v0.14.0...v0.17.0)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-12-19 18:30:43 +11:00
dependabot[bot]
437ca0ffd5
Bump golang.org/x/crypto from 0.14.0 to 0.17.0 in /v2 (#3142)
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.14.0 to 0.17.0.
- [Commits](https://github.com/golang/crypto/compare/v0.14.0...v0.17.0)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-12-19 18:29:29 +11:00
dependabot[bot]
162720423f
Bump golang.org/x/crypto in /v2/examples/customlayout (#3144)
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.14.0 to 0.17.0.
- [Commits](https://github.com/golang/crypto/compare/v0.14.0...v0.17.0)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-19 18:28:42 +11:00
Dmytro Manchynskyi
946b6020c9
Fix -compiler flag for build, dev and generate commands (#3121)
* Fix -compiler flag for build, dev and generate commands

* Update changelog and docs

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-12-18 07:54:44 +11:00
Lea Anthony
49a6b1aa3c
Update Test Go version. Update PR template. 2023-12-18 07:53:48 +11:00
Light
4b4fcdd47c
Added possibility to specify platform for dev command (#3117)
* Added possibility to specify platform for dev command

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2023-12-18 07:30:05 +11:00
Lea Anthony
5c1d62bb6a
Fixed IsZoomControlEnabled and ZoomFactor option docs (#3137)
* Fixed IsZoomControlEnabled and ZoomFactor options

* Update changelog
2023-12-17 20:14:14 +11:00
mJehanno
97e60e181e
Update templates.mdx (#3135)
add a new angular template in the list
2023-12-17 09:11:21 +11:00
Mark Snyder
1683e240d9
add gstreamer error documentation (#3134)
* add gstreamer error documentation

* add info to changelog

* add profile url
2023-12-17 09:09:58 +11:00
Lea Anthony
dc5f0b6e7b
Update Changelog 2023-12-15 20:31:33 +11:00
Lea Anthony
772f0215a6
Remove quarantine attribute from bindings + compiled binary (#3118)
* Remove quarantine attribute from bindings + compiled binary

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2023-12-15 20:26:30 +11:00
Dilshod Fayzullayev
435aa99656
Add Uzbek README (#3123)
* 📝 Added README.uz-oz.md link
2023-12-15 20:22:51 +11:00
Yong Hui
8efaaffadb
feat: add windows options supports DisablePinchZoom configuration(#2021) (#3115)
* feat: add windows options supports `IsPinchZoomEnabled` configuration(#2021)

* refactor: modify `IsPinchZoomEnabled` to `DisablePinchZoom` ensure default behavior is consistent

* docs: add `DisablePinchZoom` to changelog

* docs: update the description of `DisablePinchZoom` attributes in the document

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-12-15 20:21:50 +11:00
ALMAS
5f457dba8e
[v2/Mac] Add Apple Silicon hardware detection to wails doctor (#3129)
* [v2/Mac] Add Apple Silicon hardware detection to `wails doctor`

* add change log
2023-12-15 20:14:15 +11:00
github-actions[bot]
3aaa1f8e34
chore: update sponsors.svg (#3122)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-12-13 23:15:03 +11:00
Yong Hui
aaa65ff7c2
docs: fix doc typos (#3119)
(cherry picked from commit acf55033e2e7dabb480fa3c00e18f945fcc18d93)
2023-12-12 20:38:30 +11:00
imgbot[bot]
5f412d0bfb
[ImgBot] Optimize images (#3094)
*Total -- 454.86kb -> 406.40kb (10.65%)

/website/static/img/showcase/snippetexpandergui-select-snippet.png -- 140.27kb -> 113.72kb (18.93%)
/website/static/img/showcase/snippetexpandergui-search-and-paste.png -- 86.16kb -> 70.75kb (17.88%)
/website/static/img/showcase/snippetexpandergui-add-snippet.png -- 36.61kb -> 30.74kb (16.04%)
/website/static/img/icon-linux-dark.svg -- 2.56kb -> 2.38kb (7.02%)
/v2/pkg/templates/templates/preact/frontend/src/assets/preact.svg -- 1.54kb -> 1.49kb (3.54%)
/website/static/img/sponsors.svg -- 187.71kb -> 187.32kb (0.21%)

Signed-off-by: ImgBotApp <ImgBotHelp@gmail.com>
Co-authored-by: ImgBotApp <ImgBotHelp@gmail.com>
2023-12-12 20:33:21 +11:00
Ali Torabi
aa8cd7ce67
Add the esp studio show case (#3114) 2023-12-11 19:05:27 +11:00
Lea Anthony
ae99d7a973
Update version in changelog 2023-12-10 10:41:14 +11:00
Lea Anthony
a632ac5068
v2.7.1 2023-12-10 10:25:14 +11:00
atterpac
e3af0945d0
Fix Nil pointer if GPU does not provide device info (#3108)
* Fix Nil pointer if GPU does not provide device info
* Updated changelog format

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-12-10 10:21:21 +11:00
Lea Anthony
975c55a3d5
Add better macos guard for elementFullscreenEnabled (#3111)
* Add better macos guard for elementFullscreenEnabled

* Disable go linters as they constantly error

* Run full check on bugfix branches

* Update to Go 1.20+1.21

* Update github.com/tc-hib/winres to v0.2.1

* Update setup-go to v4

* Try fix for Go 1.20

* Fix go.mod

* Update go sum

* Revert to builds on Go 1.18 + 1.19

* Update Go version to 1.19 for all workflows and modules

The Go version is updated to 1.19 across all GitHub Actions workflows and go.mod files. All builds and tests will now only run on Go 1.19, simplifying our build matrix, and ensuring we're testing on the latest stable Go version.

* Update build-and-test workflow for MacOS version and Go version

The build-and-test workflow has been updated to run tests on 'macos-11' in addition to 'macos-latest'. Furthermore, Go version for the tests has been set to '1.19' only.

* Update actions versions

* Move to go 1.20 and improve caching

* Move to go 1.20 and improve caching

* Add additional guards
2023-12-10 10:12:14 +11:00
Lea Anthony
c3d57d05c3 Update github.com/tc-hib/winres to v0.2.1 2023-12-10 07:40:00 +11:00
Lea Anthony
e9cc68fe3a Update to Go 1.20+1.21 2023-12-10 07:34:49 +11:00
Lea Anthony
5d9fe49cf9 Include macos-11 build 2023-12-10 07:33:53 +11:00
Lea Anthony
fd3d1801ed Run full check on bugfix branches 2023-12-10 07:32:48 +11:00
Lea Anthony
f517c8b980
Update README.md
Use updated starchart
2023-12-09 20:45:02 +11:00
YOSHIKI HIDAKA
73b547a730
update Star History Chart url (#3106) 2023-12-09 20:43:08 +11:00
Lea Anthony
6a8322cdb5
v2.7.0 2023-12-09 17:29:56 +11:00
github-actions[bot]
07fc8e3707
chore: update sponsors.svg (#3105)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-12-09 11:20:45 +11:00
venkadeshshiva
4cbc7f3eec
added wails-template-nextjs-app-router under react (#3082) 2023-12-04 18:51:27 +11:00
gurshan
a1f067377f
add .gitignore modification to sveltekit doc (#3074)
* add gitignore modification to sveltekit doc

* Fix Typo

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-12-04 18:49:34 +11:00
github-actions[bot]
3c5d850a30
chore: update sponsors.svg (#3088)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-12-04 18:47:20 +11:00
semgrep.dev on behalf of @leaanthony
92c9f546eb Add Semgrep CI 2023-12-03 21:42:21 +00:00
github-actions[bot]
7d14a75ff3
chore: update sponsors.svg (#3085)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-11-29 19:25:54 +11:00
Marcus Crane
5547792b68
Update Gon usage to reflect Bearer fork (#3063)
Signed-off-by: Marcus Crane <marcus@utf9k.net>
2023-11-27 19:27:32 +11:00
Andrey Pshenkin
b2839ed719
Pass obfuscation settings from wails.json (#3080)
* pass obfuscation settings from wails.json

* add to changelog
2023-11-26 23:14:50 +11:00
Andrey Pshenkin
674042df36
fix obfuscated build binding ordering (#3071)
* fix obfuscated build binding ordering

* remove unused string method

* add to changelog

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-11-26 07:16:24 +11:00
Andrey Pshenkin
b9de31e38e
Add support for interface generation and enums (#3047)
* Add support to output ts models as interfaces

* Add support to generate enums from golang

* cleanup logs

* add missing documentation

* fix package names for enum. Fix processing enums that are in separate packages

* revert golang 1.21

* Fix spelling

* Add support for simplified version of Enum for typescriptify

* update docs

* removed unused logs

* Add tests. Fix imported enums types in models

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-11-26 06:50:49 +11:00
Ian M. Jones
929dfb4123
docs: add Snippet Expander to Showcase (#3079)
* docs: add Snippet Expander to Showcase

* Remove package-lock.json
2023-11-26 05:05:02 +11:00
github-actions[bot]
11fdc6a558
chore: update sponsors.svg (#3072)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-11-23 22:14:48 +11:00
dependabot[bot]
801cf3c84a
Bump sharp and sponsorkit in /scripts/sponsors (#3060)
Bumps [sharp](https://github.com/lovell/sharp) to 0.32.6 and updates ancestor dependency [sponsorkit](https://github.com/antfu/sponsorkit). These dependencies need to be updated together.


Updates `sharp` from 0.31.3 to 0.32.6
- [Release notes](https://github.com/lovell/sharp/releases)
- [Changelog](https://github.com/lovell/sharp/blob/main/docs/changelog.md)
- [Commits](https://github.com/lovell/sharp/compare/v0.31.3...v0.32.6)

Updates `sponsorkit` from 0.8.2 to 0.8.9
- [Release notes](https://github.com/antfu/sponsorkit/releases)
- [Commits](https://github.com/antfu/sponsorkit/compare/v0.8.2...v0.8.9)

---
updated-dependencies:
- dependency-name: sharp
  dependency-type: indirect
- dependency-name: sponsorkit
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-17 20:04:22 +11:00
Lea Anthony
4efc8e358d [chore] fix go.mod 2023-11-12 14:04:48 +11:00
Lea Anthony
9ce0ddb4f8 [chore] lint fixes 2023-11-12 12:30:49 +11:00
github-actions[bot]
d88a741ce7
chore: update sponsors.svg (#3053)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-11-12 11:45:55 +11:00
github-actions[bot]
c76ced7daa
docs: sync translations (#3041)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-11-10 14:23:47 +11:00
dependabot[bot]
fc46455526
Bump golang.org/x/image from 0.5.0 to 0.10.0 in /v2 (#3023)
Bumps [golang.org/x/image](https://github.com/golang/image) from 0.5.0 to 0.10.0.
- [Commits](https://github.com/golang/image/compare/v0.5.0...v0.10.0)

---
updated-dependencies:
- dependency-name: golang.org/x/image
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-10 10:27:33 +11:00
Lykin
70b7aa1ec2
add Tiny RDM to showcase (#3030) 2023-11-09 22:08:02 +11:00
github-actions[bot]
03545e33d9
docs: sync translations (#3001)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-11-08 21:06:11 +11:00
github-actions[bot]
e32c2b05e4
chore: update sponsors.svg (#3038)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-11-08 20:00:03 +11:00
github-actions[bot]
57c04ba740
chore: update sponsors.svg (#3034)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-11-06 20:46:14 +11:00
Andrey Pshenkin
426a569c89
Fix single instance lock for macOS sandbox app (#3029)
* fix single instance lock for sandbox app

* fix single instance lock for sandbox app
2023-11-05 14:10:01 +11:00
Denis Bernard
08e12de2a0
linux: workaround for #2977 (#3027)
In NewWindow, set options.Linux.WebviewGpuPolicy to WebviewGpuPolicyNever
if options.Linux is nil, disabling GPU acceleration by default on linux
until the upstream bugs https://bugs.webkit.org/show_bug.cgi?id=228268
and https://bugs.webkit.org/show_bug.cgi?id=261874 are fixed.
2023-11-04 18:03:12 +11:00
Bruno Borges
0a63215cde
Resource efficient will often mean CPU/memory. Here, it saves download size. (#3028) 2023-11-04 06:55:03 +11:00
Andrey Pshenkin
ae688aa07d
Implement custom protocol association support (#3000)
* implement MacOS openFile/openFiles events

* wip: windows file association

* fix macro import

* add file icon copy

* try copy icon

* keep only required part of scripts

* update config schema

* fix json

* set fileAssociation for mac via config

* proper iconName handling

* add fileAssociation icon generator

* fix file association icons bundle

* don't break compatibility

* remove mimeType as not supported linux for now

* add documentation

* adjust config schema

* restore formatting

* try implement single instance lock with params passing

* fix focusing

* fix focusing

* formatting

* use channel buffer for second instance events

* handle errors

* add comment

* remove unused option in file association

* wip: linux single instance lock

* wip: linux single instance

* some experiments with making window active

* try to use unminimise

* remove unused

* try present for window

* try present for window

* fix build

* cleanup

* cleanup

* implement single instance lock on mac os

* implement proper show for windows

* proper unmimimise

* get rid of openFiles mac os. change configuration structure

* remove unused channel

* remove unused function

* add documentation for single instance lock

* add PR link

* wip mac os deeplinks

* put custom url listner on top to catch link on app opening

* put custom url listner on top to catch link on app opening

* try add custom url windows

* adjust custom url

* add docs

* merge master

* update documentation

* add comment for darwin

* add PR link

* change naming

* change naming

* change naming

* change naming

* fix formatting

* fix naming

* Fix typo

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-11-02 20:26:05 +11:00
github-actions[bot]
e960798e85
chore: update sponsors.svg (#3019)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-11-01 20:02:59 +11:00
Lea Anthony
93335d7661
update docs 2023-11-01 08:05:17 +11:00
github-actions[bot]
d96ec5d332
chore: update sponsors.svg (#3016)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-10-31 20:55:47 +11:00
biuaxia
0533d2e208
Update options.mdx (#3013)
Change the ZoomFactor and IsZoomControlEnabled in the document to the location of the new version
2023-10-30 23:54:03 +11:00
biuaxia
b328f60172
Update changelog.mdx (#3014) 2023-10-30 23:53:21 +11:00
github-actions[bot]
ac560a6526
chore: update sponsors.svg (#3010)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-10-30 19:49:25 +11:00
多啦b梦
2693de6822
I developed a window designer software that I hope can be added to the template window designer free open source designed specifically for wails (#3006) 2023-10-29 19:16:33 +11:00
github-actions[bot]
3c39b674d3
chore: update sponsors.svg (#3005)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-10-29 18:53:59 +11:00
stffabi
afe922a4e3
[go-webview2] Bump to 1.0.10 (#3002) 2023-10-24 17:59:39 +11:00
Andrey Pshenkin
c24bd5e3e8
Implement Single instance lock feature with passing arguments to initial instance (#2951)
* implement MacOS openFile/openFiles events

* wip: windows file association

* fix macro import

* add file icon copy

* try copy icon

* keep only required part of scripts

* update config schema

* fix json

* set fileAssociation for mac via config

* proper iconName handling

* add fileAssociation icon generator

* fix file association icons bundle

* don't break compatibility

* remove mimeType as not supported linux for now

* add documentation

* adjust config schema

* restore formatting

* try implement single instance lock with params passing

* fix focusing

* fix focusing

* formatting

* use channel buffer for second instance events

* handle errors

* add comment

* remove unused option in file association

* wip: linux single instance lock

* wip: linux single instance

* some experiments with making window active

* try to use unminimise

* remove unused

* try present for window

* try present for window

* fix build

* cleanup

* cleanup

* implement single instance lock on mac os

* implement proper show for windows

* proper unmimimise

* get rid of openFiles mac os. change configuration structure

* remove unused channel

* remove unused function

* add documentation for single instance lock

* add PR link

* changes after review

* update docs

* changes after review

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-10-23 21:31:56 +11:00
github-actions[bot]
a59f8b2cf3
docs: sync translations (#2893)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-10-23 20:38:03 +11:00
stffabi
30d17a760d
[assetserver] Inject runtime/IPC into all index html files (#2203)
It will also be injected into all html files returned when requesting a folder path.
2023-10-23 20:35:18 +11:00
Andrey Pshenkin
6c46f6b41c
Implement file association Open a file from Finder/Explorer (#2918)
* implement MacOS openFile/openFiles events

* wip: windows file association

* fix macro import

* add file icon copy

* try copy icon

* keep only required part of scripts

* update config schema

* fix json

* set fileAssociation for mac via config

* proper iconName handling

* add fileAssociation icon generator

* fix file association icons bundle

* don't break compatibility

* remove mimeType as not supported linux for now

* add documentation

* adjust config schema

* restore formatting

* remove unused option in file association

* get rid of openFiles mac os. change configuration structure

* remove unused channel

* fix documentation

* fix typo

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-10-22 06:44:38 +11:00
Yuki Shindo
42708e7f40
Update README.ja.md (#2764)
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-10-21 20:50:39 +11:00
多啦b梦
63c9baa466
Add tips to solve the problem that macos cannot be compiled. (#2925)
* Add tips to solve the problem that macos cannot be compiled.

* Add tips to solve the problem that macos cannot be compiled.

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-10-21 20:29:29 +11:00
Lea Anthony
ee4ce1d3ef
Add mac compile error troubleshooting tip 2023-10-21 20:24:56 +11:00
TuffenDuffen
a9fb0713a1
Update zypper.go (#2941)
* Update zypper.go

* Update changelog.mdx
2023-10-21 16:50:02 +11:00
Mike
b42a18be6b
feat: add golangci workflow with some linters (#2957)
This implements the golangci-lint workflow to new PRs.
It includes a limited number of enabled linters including:
- errcheck
- errname
- gofmt
- gofumpt
- gosimple
- misspell

Signed-off-by: mikeee <hey@mike.ee>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-10-21 16:47:02 +11:00
dependabot[bot]
3e938a10aa
Bump undici from 5.21.0 to 5.26.3 in /scripts/sponsors (#2987)
Bumps [undici](https://github.com/nodejs/undici) from 5.21.0 to 5.26.3.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v5.21.0...v5.26.3)

---
updated-dependencies:
- dependency-name: undici
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-10-21 16:43:21 +11:00
dependabot[bot]
b9fc72bbc8
Bump @babel/traverse from 7.21.4 to 7.23.2 in /website (#2992)
Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.21.4 to 7.23.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse)

---
updated-dependencies:
- dependency-name: "@babel/traverse"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-10-21 16:33:39 +11:00
Carl Seleborg
b5406cb13e
Add missing runtime.UnlockOSThread() (#2994)
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-10-21 16:30:48 +11:00
Lea Anthony
d51268b8d0
Add basic hardware detection to wails doctor 2023-10-15 20:15:19 +11:00
Light
4b376bcf0d
Add new htmx/templ template (#2984)
* Add new htmx/templ template

* update template name

* Add new template changelog item
2023-10-14 17:10:33 +11:00
dependabot[bot]
8efa4698cf
Bump golang.org/x/net from 0.10.0 to 0.17.0 in /v2/examples/customlayout (#2980)
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.10.0 to 0.17.0.
- [Commits](https://github.com/golang/net/compare/v0.10.0...v0.17.0)

---
updated-dependencies:
- dependency-name: golang.org/x/net
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-14 11:43:38 +11:00
dependabot[bot]
45c6f73132
Bump golang.org/x/net in /v2/internal/staticanalysis/test/standard (#2981)
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.7.0 to 0.17.0.
- [Commits](https://github.com/golang/net/compare/v0.7.0...v0.17.0)

---
updated-dependencies:
- dependency-name: golang.org/x/net
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-14 11:43:16 +11:00
dependabot[bot]
d4500e89e2
Bump golang.org/x/net from 0.10.0 to 0.17.0 in /v2 (#2979)
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.10.0 to 0.17.0.
- [Commits](https://github.com/golang/net/compare/v0.10.0...v0.17.0)

---
updated-dependencies:
- dependency-name: golang.org/x/net
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-14 11:43:03 +11:00
github-actions[bot]
7637833898
chore: update sponsors.svg (#2974)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-10-14 08:34:15 +11:00
资深菜鸟
a774459cd7
Update templates.mdx (#2976)
Add a template for Wails with Vite + Vue + TypeScript + NavieUI + Pinia.
2023-10-12 23:20:11 +11:00
github-actions[bot]
90c9186dc6
chore: update sponsors.svg (#2967)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-10-09 19:15:14 +11:00
Sean
79db5a4657
docs: troubleshooting tips for cross-account admin perms and "Microsoft Edge can't read or write to its data directory" error (#2931)
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-10-08 20:45:13 +11:00
dependabot[bot]
4257decf30
Bump postcss from 8.4.18 to 8.4.31 in /v2/internal/frontend/runtime (#2962)
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.18 to 8.4.31.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.18...8.4.31)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-08 20:43:09 +11:00
dependabot[bot]
1f4b578bce
Bump postcss from 8.4.21 to 8.4.31 in /website (#2963)
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.21 to 8.4.31.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.21...8.4.31)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-08 20:42:57 +11:00
Nenba Jonathan
d0b0b5d594
Add French README page (#2943)
* add french readme to the projet

* add french link to the other readme

* fix some typo in the table of contents

* fix markdown auto correct

* added change in  changelog.mdx

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-10-07 08:57:03 +11:00
github-actions[bot]
c0d2c0447c
chore: update sponsors.svg (#2961)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-10-04 22:30:09 +11:00
Fadi Khadra
f6c82dcaba
[v2 mac] add fullscreen option to preference (#2953)
* [v2 mac] add fullscreen option to preference

* update changelog

* replace space by tabs
2023-10-02 07:05:25 +11:00
Lea Anthony
1c9765096d
Add webview2 error message to troubleshooting 2023-10-01 23:45:30 +11:00
ALMAS
18ee469c47
[v2/Mac] Change Window Level (#2944)
* Change Window Level in Mac
2023-09-30 20:59:50 +10:00
stffabi
e31ad83472
[docs] Merge changed section (#2940) 2023-09-26 19:12:57 +10:00
Mohamed Gharib
3f9067c815
[v2] Devtools tag doesn't enable default context-menu (#2923)
* Devtools tag doesn't enable default context-menu

* Update changelog
2023-09-26 07:43:18 +10:00
David Haukeness
ab0b0f8a7f
filter the base directory from ignoreDirs (#2869)
* filter the base directory from ignoreDirs

* added PR 2869

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-09-25 19:50:17 +10:00
github-actions[bot]
6d1489bf8e
chore: update sponsors.svg (#2938)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-09-25 19:25:51 +10:00
Fadi Khadra
05eddc65b1
[v2 mac] Allow to specify webview preferences (#2937)
* [mac] allow to specify webview preferences
2023-09-25 08:15:55 +10:00
FarDawn
787ca80770
Add minimal React template (#2935) 2023-09-23 19:06:31 +10:00
github-actions[bot]
d228b2ad37
chore: update sponsors.svg (#2930)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-09-21 19:36:33 +10:00
stffabi
e9519269ca
[v2] Bump go-webview2 to 1.0.7 (#2929) 2023-09-21 06:43:28 +10:00
Mohamed Gharib
5a7b868e80
[Github] Exclude /website from language stats (#2927) 2023-09-21 05:48:19 +10:00
stffabi
d370f72ede
[v2, windows] Support async request processing on AssetServer (#2926) 2023-09-20 19:28:18 +02:00
Lea Anthony
3369327ad2
[v2] Support Enabling/Disabling swipe gestures (#2878)
* [v2] Support Enabling/Disabling swipe gestures

* [v2] Update change log

* [v2] Remove old call to PutIsSwipeNavigationEnabled

* Use latest webview2

* Update go-webview2 mod version
2023-09-20 08:23:38 +10:00
Denis Dvornikov
eca6afc18c
Describe a guide to build an app for all platforms in github actions (#2879)
* Describe a guide to build an app for all platforms in github actions

* Update changelog, remove tabs from an added guide

---------

Co-authored-by: Denis <denis@Deniss-Mac-mini.fritz.box>
2023-09-20 08:12:57 +10:00
Mohamed Gharib
34c725231c
[v2] Refactor devtools (better naming to remove confusion) (#2921) 2023-09-19 20:56:49 +10:00
github-actions[bot]
db519de1cd
chore: update sponsors.svg (#2922)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-09-19 18:50:35 +10:00
Lea Anthony
6aa6762f12
Devtools hotkey (#2915)
* Add Ctrl/Cmd+Shift+F12 Hotkey to open devtools when `-devtools` flag used.
2023-09-19 05:56:14 +10:00
Lea Anthony
64e44b1b51
[docs] Add wrong webview2 architecture section in troubleshooting guide 2023-09-18 20:15:54 +10:00
Lea Anthony
3116c1a622
Update favicon.ico 2023-09-15 20:47:14 +10:00
github-actions[bot]
c26f3ad7d1
chore: update sponsors.svg (#2909)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-09-15 16:35:00 +10:00
github-actions[bot]
40f645a864
chore: update sponsors.svg (#2903)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-09-14 08:33:15 +10:00
github-actions[bot]
a419721dcd
docs: sync translations (#2699)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-09-08 23:25:21 +10:00
Light
e731e2591a
Fix typo on https://wails.io/docs/reference/options#application-options (#2887)
* Update options.mdx

* Update changelog.mdx
2023-09-08 23:23:33 +10:00
Duoc Nguyen
59b25edb5c
docs: make the install command easier to copy (#2891) 2023-09-08 13:56:40 +10:00
Zámbó, Levente
647bc87600
[v2, Linux] fix menu background color (#2873)
* fix menu background color

* remove commented line

* handle transparent window and background color

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-09-07 21:25:02 +10:00
dependabot[bot]
ebf56f6585
Bump semver from 5.7.1 to 5.7.2 in /website (#2808)
Bumps [semver](https://github.com/npm/node-semver) from 5.7.1 to 5.7.2.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/v5.7.2/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v5.7.1...v5.7.2)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-07 21:22:43 +10:00
Lea Anthony
1644ee152e
v2.6.0 2023-09-06 19:45:08 +10:00
David Haukeness
069fe18b9d
Move watcher init to doWatcherLoop and implement -reloaddirs (#2871)
* remove random print statement

* move watcher into loop and implement reloaddirs

* Fixed -reloaddirs for issue #2829

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-09-06 19:33:22 +10:00
Lea Anthony
acf8dea170
[chore] Big tidy up. Fix bullet point output. 2023-09-06 19:27:29 +10:00
github-actions[bot]
7a87b0476e
chore: update sponsors.svg (#2885)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-09-06 19:16:31 +10:00
Andreas Christou
886bcc7b47
Add print functionality to v2 (#2822)
* Add print functionality to v2

* Update changelog

* Update runtime docs

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-09-06 07:55:36 +10:00
Oleg Gulevskyy
d599fd80cb
POC of mkdocs barebones (#2769)
* POC of mkdocs barebones

* Add more stuff!

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-09-01 20:11:43 +10:00
David Haukeness
2e9f57a60d
No go rebuild (#2870)
* add flag option for NoGoRebuild
2023-08-30 21:24:05 +10:00
stffabi
44c291b297
[v2, build] Fixed support for Go 1.21 go.mod files (#2876) 2023-08-30 18:24:41 +10:00
Nobleman
4ad4d7c7e3
postbuild hook fix (#2839)
postbuildhook should only run if application was built
2023-08-29 18:47:14 +10:00
Nobleman
dab762937b
Update changelog.mdx (#2868)
Added changes for https://github.com/wailsapp/wails/pull/2836
2023-08-29 18:46:12 +10:00
IAFEnvoy
4e539188e0
Update window.mdx (#2859) 2023-08-29 08:12:10 +10:00
Александр
e705e539c6
Add Russian README.md (#2840) 2023-08-29 08:05:42 +10:00
Miclle Zheng
fcfe278f95
Fix typo (#2795)
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-08-28 08:52:56 +10:00
Nobleman
93a616ceef
[bugfix] build hook command parsing (#2836)
* fix build hook command parsing

use `shlex`, rather than `strings` package, to split build command

* fix compiler error
2023-08-28 08:50:13 +10:00
Diógenes Rodrigues
7bc4d5f7e8
feat: add readme pt-br (#2835)
* feat: add readme pt-br

* update READMEs with link to the Portuguese version

* update the readmes with the Portuguese
2023-08-28 08:43:15 +10:00
Light
63b9cab96f
Add updated svelte template (#2858)
* Add new svelte template

Added an updated svelte template

* Update changelog.mdx
2023-08-28 08:41:21 +10:00
Zámbó, Levente
427e41f190
fix disable window resize (#2863)
* fix disable window resize

* change issue number in changelog

* change pull request number in changelog
2023-08-28 08:40:28 +10:00
Kermout Ayoub
72290a2d58
Added wails-qwik-template to 3rd party templates (#2860)
* Added wails-qwik-template to 3rd party templates

* fix typo

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-08-27 17:13:49 +10:00
github-actions[bot]
92470f262e
chore: update sponsors.svg (#2843)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-08-27 17:10:19 +10:00
stffabi
761efed84d
[v2] Introduce size and physical size of screens (#2856) 2023-08-26 10:11:01 +10:00
Phil Richards
427fe7e8d3
Init GTK in NewFrontend, not init (#2841)
* Init GTK in `NewFrontend`, not `init`

So apps that have a headless / non-gui mode will be able to run, since
they needn't call `NewFrontend` (which is called by `CreateApp`).
Previously, `init` would call `C.gtk_init` regardless of whether
CreateApp was called.

Also change to call `C.gtk_init_check` with a panic, instead of
`C.gtk_init`, since `gtk_init` just exits the process if it fails,
without a sensible error message.

Fixes #2628.

* Update changelog
2023-08-26 06:41:53 +10:00
Oussama Sethoum
98bb3b6361
add instructions to run wails v3 examples. (#2854)
* add instructions to run wails v3 examples.

* Update README.md
2023-08-26 06:40:40 +10:00
Zámbó, Levente
5a4eae968f
set the background color for window (#2853)
* set the background color for window

* update changelog for #2853
2023-08-25 08:27:52 +10:00
Zámbó, Levente
9085e1edbb
Bugfix/2848 window set position timing (#2850)
* run WindowSetPosition on main thread

* remove wait group from SetPosition it is not neaded

* update changelog
2023-08-25 05:50:26 +10:00
David Haukeness
8700d225c1
add wails-sveltekit-ts (#2851)
* add wails-sveltekit-ts

* add clog entry
2023-08-25 05:49:12 +10:00
github-actions[bot]
c2b36de510
chore: update sponsors.svg (#2827)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-08-19 20:42:05 +10:00
github-actions[bot]
7fae22b50c
chore: update sponsors.svg (#2819)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-08-12 13:07:09 +10:00
Kin NG
7b098fd522
Docs: add spanish readme translation (#2812)
* spanish readme translation

add spanish to readme

remove line

* change Spanish to Español

* Add links to README.es.md to the other language translations
2023-08-10 07:52:29 +10:00
Zámbó, Levente
e72e4aa179
add new programName option to linux options (#2817)
* add new programName option to linux options

* modify changelog

* free program name string
2023-08-10 07:48:09 +10:00
Lea Anthony
b48579892b [docs] Add mac flash troubleshooting guide 2023-08-05 17:45:08 +10:00
Lea Anthony
083e6b03f3
Update Screen docs 2023-08-04 08:18:34 +10:00
Lea Anthony
2859143b2f
Add Screen docs 2023-08-03 08:35:34 +10:00
Andreas Christou
027edad51b
Create-React-App documentation updates (#2805)
* Add documentation for running a create-react-app project in watch mode

* Fix build warning
2023-08-02 08:58:05 +10:00
Lea Anthony
a96d51be02
Update project-config.mdx 2023-07-29 12:04:41 +10:00
github-actions[bot]
fe479876c5
chore: update sponsors.svg (#2794)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-07-28 08:15:00 +10:00
Li Yang
84d2576e06
Update README.zh-Hans.md (#2791)
Fixed a link error
2023-07-26 20:32:43 +10:00
Aranggi J. Toar
48b35aaafe
chore: update npm and docker package names for dnf package manager (#2790)
* chore: update package names for dnf package manager

* chore: update changelog
2023-07-24 19:53:24 +10:00
github-actions[bot]
7f402bf0c4
chore: update sponsors.svg (#2778)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-07-18 23:04:16 +10:00
Lea Anthony
1e76b0b52e
Remove markdown formatter 2023-07-18 21:47:26 +10:00
figuerom16
e0a92712fe
SvelteKit Guide: Manual installation, Bash installation, Usage Notes. (#2771)
* Create SvelteKit.mdx

* Rename SvelteKit.mdx to sveltekit.mdx

* Update sveltekit.mdx

* Update sveltekit.mdx

* Update sveltekit.mdx

* Update sveltekit.mdx

* Update sveltekit.mdx

* Update sveltekit.mdx

* Update sveltekit.mdx

* Update sveltekit.mdx

* Update sveltekit.mdx

* Update sveltekit.mdx

* Update sveltekit.mdx

* Update sveltekit.mdx

* Update sveltekit.mdx

* Update sveltekit.mdx

* Update changelog.mdx
2023-07-15 23:52:33 +10:00
guangwu
150dac9ead
chore: slice replace loop (#2757)
Signed-off-by: guoguangwu <guoguangwu@magic-shield.com>
2023-07-13 23:13:47 +10:00
Ethan Reesor
22cfcbd5a1
Override error formatting (#2717) 2023-07-13 20:40:22 +10:00
Lea Anthony
61f7b10f36
[v2 templates] Add explicit style import (#2721)
* [v2 templates] Add explicit style import

* [v2] Remove style import
2023-07-10 21:27:41 +02:00
Marcus Crane
f150d25152
Update October showcase image (#2762) 2023-07-06 20:51:40 +10:00
Mohamed Gharib
8acbdc246c
[v2] Add smart default context-menu functionality (backported from v3) (#2748)
* [v2] Add smart default context-menu functionality (backported from v3)

* Update changelog
2023-06-28 06:35:02 +10:00
dependabot[bot]
cdbe77a0fc
Bump semver from 7.3.8 to 7.5.3 in /scripts/sponsors (#2747)
Bumps [semver](https://github.com/npm/node-semver) from 7.3.8 to 7.5.3.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v7.3.8...v7.5.3)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-28 06:25:00 +10:00
Mohamed Gharib
5292ced731
[v2, runtime] Separate runtime js debug build (#2745) 2023-06-27 21:31:08 +10:00
Mahcks
abbbf05a79
added shadcn-ui template (#2744) 2023-06-26 08:50:52 +10:00
github-actions[bot]
4c7c3d9d82
chore: update sponsors.svg (#2738)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-06-21 21:52:55 +10:00
stffabi
8fd16d4be3
[assetServer] Make WebView request URL and RequestURI RFC and Go docs compliant (#2722)
* [v2 dev] Improve logging of external AssetHandler

* [assetServer] Make WebView request URL and RequestURI RFC and Go docs conforme
2023-06-20 08:06:42 +02:00
Mohamed Gharib
4162f097f1
[v2, options] Add EnableDefaultContextMenu option (#2733)
* [v2, options] Add EnableDefaultContextMenu option

* Update changelog & docs

* go mod tidy (./v2)

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-06-20 06:31:47 +10:00
github-actions[bot]
07c971476d
chore: update sponsors.svg (#2729)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-06-19 20:54:20 +10:00
Mohamed Gharib
fa851f29c5
[v2] Add -devtools production build flag (#2725)
* [v2] Add devtools production build flag

* Update changelog

* Fix changelog spacing

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-06-19 06:45:01 +10:00
Lea Anthony
31a5c90673
Update bug_report.yml 2023-06-13 20:27:57 +10:00
Lea Anthony
f2ab205415
[chore] Use webview2 package (#2687)
* [v2 windows] Use external webview2 package

* Update CHANGELOG
2023-06-10 17:04:31 +10:00
Lea Anthony
41edd78953
Update format-markdown-files.yml 2023-06-10 17:01:01 +10:00
github-actions[bot]
3dbe6e96c1
chore: update sponsors.svg (#2701)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-06-09 10:40:39 +10:00
Lea Anthony
28a2b4fbd9
[v2] Update go mod dependency versions 2023-06-09 10:15:21 +10:00
5aaee9
6d857bf61a
windows/nsis: add hidpi support for nsis installer (#2694)
* feat(windows/nsis): add hidpi support for nsis installer

* website: add changelog
2023-06-04 07:26:24 +10:00
github-actions[bot]
4814e65da2
docs: sync translations (#2685)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-06-03 17:20:10 +10:00
github-actions[bot]
644dc653a9
chore: update sponsors.svg (#2698)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-06-03 17:18:59 +10:00
dependabot[bot]
19932bf3ad
Bump @antfu/utils and unconfig in /scripts/sponsors (#2696)
Bumps [@antfu/utils](https://github.com/antfu/utils) and [unconfig](https://github.com/antfu/unconfig). These dependencies needed to be updated together.

Updates `@antfu/utils` from 0.5.2 to 0.7.4
- [Release notes](https://github.com/antfu/utils/releases)
- [Commits](https://github.com/antfu/utils/compare/v0.5.2...v0.7.4)

Updates `unconfig` from 0.3.7 to 0.3.9
- [Release notes](https://github.com/antfu/unconfig/releases)
- [Commits](https://github.com/antfu/unconfig/compare/v0.3.7...v0.3.9)

---
updated-dependencies:
- dependency-name: "@antfu/utils"
  dependency-type: indirect
- dependency-name: unconfig
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-03 07:52:41 +10:00
Misite Bao
d3a4d89786
chore: add Prettier as format tool (#2689) 2023-05-30 07:40:54 +10:00
Lea Anthony
84919468ba
[v2 docs] Fix cli.mdx 2023-05-27 13:30:24 +10:00
Misite Bao
bd5b7e5e3f
feat(website): update the Crowdin branch (#2688) 2023-05-27 12:51:43 +10:00
Lea Anthony
4f3dc1b0e1
[v2 docs] Fix changelog + cli options. 2023-05-27 12:49:10 +10:00
Marvin Wendt
65c68301a0
Change style of doctor command (#2660)
* Refactor doctor command

* Refactor doctor command

* Refactor doctor command

* Refactor doctor command

* Added changelog entry
2023-05-26 17:55:53 +10:00
Misite Bao
37e43dabc0
docs: improve documentation (#2686)
* docs: fix changelog format

* fix: fix release tools

* chore: set sync translated documents as a scheduled task
2023-05-26 17:49:50 +10:00
github-actions[bot]
ec19458c1b
docs: sync translations (#2616)
Co-authored-by: misitebao <misitebao@users.noreply.github.com>
2023-05-25 18:43:31 +10:00
Amin Yahyaabadi
35eb1e0160
fix: avoid app crashing when the Linux GTK key is empty (#2672)
* fix: avoid app crash when the Linux GTK key is empty

Fixes this error:

```
DEBUG | Log dir is: /root/.config/surrealdb_explorer/log.txt

Overriding existing handler for signal 10. Set JSC_SIGNAL_FOR_GC if you want WebKit to use a different signal
panic: runtime error: index out of range [0] with length 0

goroutine 1 [running, locked to thread]:
github.com/wailsapp/wails/v2/internal/frontend/desktop/linux.parseKey({0x0, 0x0})
        /home/aminya/go/pkg/mod/github.com/wailsapp/wails/v2@v2.5.1/internal/frontend/desktop/linux/keys.go:87 +0xa5
github.com/wailsapp/wails/v2/internal/frontend/desktop/linux.acceleratorToGTK(0xc0001c5f20)
        /home/aminya/go/pkg/mod/github.com/wailsapp/wails/v2@v2.5.1/internal/frontend/desktop/linux/keys.go:72 +0x2c
github.com/wailsapp/wails/v2/internal/frontend/desktop/linux.processMenuItem(0x866bc0?, 0xc0001c8a80, 0xc0001c8a80?)
        /home/aminya/go/pkg/mod/github.com/wailsapp/wails/v2@v2.5.1/internal/frontend/desktop/linux/menu.go:159 +0x40b
github.com/wailsapp/wails/v2/internal/frontend/desktop/linux.processSubmenu(0xc0001c8a20, 0x79a2a9?)
        /home/aminya/go/pkg/mod/github.com/wailsapp/wails/v2@v2.5.1/internal/frontend/desktop/linux/menu.go:99 +0xdc
github.com/wailsapp/wails/v2/internal/frontend/desktop/linux.processMenu(0xc00021f6c0, 0x12?)
        /home/aminya/go/pkg/mod/github.com/wailsapp/wails/v2@v2.5.1/internal/frontend/desktop/linux/menu.go:82 +0x46
github.com/wailsapp/wails/v2/internal/frontend/desktop/linux.(*Window).SetApplicationMenu(0xc00021f6c0, 0xc000128dc8)
        /home/aminya/go/pkg/mod/github.com/wailsapp/wails/v2@v2.5.1/internal/frontend/desktop/linux/menu.go:75 +0x1b6
github.com/wailsapp/wails/v2/internal/frontend/desktop/linux.NewWindow(0xc00011ba40, 0x0)
        /home/aminya/go/pkg/mod/github.com/wailsapp/wails/v2@v2.5.1/internal/frontend/desktop/linux/window.go:126 +0x37b
github.com/wailsapp/wails/v2/internal/frontend/desktop/linux.NewFrontend({0x1cea4e8?, 0xc00023b890}, 0xc00011ba40, 0xc000128e40, 0xc0001c8b40, {0x1ce7480?, 0xc000139840})
        /home/aminya/go/pkg/mod/github.com/wailsapp/wails/v2@v2.5.1/internal/frontend/desktop/linux/frontend.go:182 +0x5c5
github.com/wailsapp/wails/v2/internal/frontend/desktop.NewFrontend(...)
        /home/aminya/go/pkg/mod/github.com/wailsapp/wails/v2@v2.5.1/internal/frontend/desktop/desktop_linux.go:16
github.com/wailsapp/wails/v2/internal/app.CreateApp(0xc00011ba40)
        /home/aminya/go/pkg/mod/github.com/wailsapp/wails/v2@v2.5.1/internal/app/app_production.go:84 +0x5a5
github.com/wailsapp/wails/v2/pkg/application.(*Application).Run(0xc000131940)
        /home/aminya/go/pkg/mod/github.com/wailsapp/wails/v2@v2.5.1/pkg/application/application.go:57 +0x29
wails_vue/backend.BootApplication(0xc000131640, 0xc000138a40, 0xc0001c5320, 0xc0001c55c0, 0xc000128b40, 0xc00012ec30, 0xc000131880)
        /home/aminya/Documents/GitHub/teamnoon/SurrealDB-Explorer/backend/Application.go:103 +0x718
reflect.Value.call({0x874160?, 0x1c761f0?, 0xc000138a00?}, {0x8e263d, 0x4}, {0xc0001584d0, 0x7, 0x1c761f0?})
        /usr/local/go/src/reflect/value.go:586 +0xb0b
reflect.Value.Call({0x874160?, 0x1c761f0?, 0x1c761f0?}, {0xc0001584d0?, 0x0?, 0x1c761f0?})
        /usr/local/go/src/reflect/value.go:370 +0xbc
github.com/Envuso/go-ioc-container.(*Invocable).CallMethodWith(0xc000138a00, 0x1c761f0?, {0x0?, 0x1cef290?, 0x8bd180?})
        /home/aminya/go/pkg/mod/github.com/!envuso/go-ioc-container@v0.0.5/invocable.go:149 +0xad
github.com/Envuso/go-ioc-container.(*ContainerInstance).Call(0xc00011c630?, {0x874160?, 0x1c761f0?}, {0x0, 0x0, 0x0})
        /home/aminya/go/pkg/mod/github.com/!envuso/go-ioc-container@v0.0.5/container_invocation.go:30 +0x6c
main.main()
        /home/aminya/Documents/GitHub/teamnoon/SurrealDB-Explorer/main.go:34 +0x112
```

* fix: merge the key length comparison
2023-05-25 18:40:37 +10:00
github-actions[bot]
12a9ff17d6
chore: update sponsors.svg (#2683)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-05-25 17:05:48 +10:00
Lea Anthony
a7116ff5e7 [website] Add windows icon troubleshooting guide 2023-05-21 17:55:38 +10:00
Lea Anthony
62d97f85ec v2.5.1 2023-05-16 19:43:41 +10:00
stffabi
496461920f
[v2] DevServer improvements and fixes (#2664)
* [assetserver, darwin] Fix copying request headers by using strdup

* [assetserver, linux] Fake some basic http headers for legacy webkit2 versions to support proxying requests to other servers

This fixes the devserver on v2 for newer vite versions that use the custom
scheme.

* [v2, windows] 304 responses are going to hang the WebView2 so prevent them by removing cache related headers in the request.

* [v2, dev] Now uses the custom schemes `wails://` on macOS and Linux for all Vite versions.

Prevent missing reload after fast multiple savings on Linux and Windows.
2023-05-16 09:35:48 +02:00
stffabi
22b53192e6
[v2, webview2loader] Prevent env and registry overrides when using the go loader (#2668) 2023-05-15 21:12:16 +02:00
Lea Anthony
c1a0e1338f
Add PR template 2023-05-14 08:46:57 +10:00
Lea Anthony
7266f2a78a
Add PR template 2023-05-14 08:42:03 +10:00
Lea Anthony
774cbdec38
Update changelog.mdx 2023-05-13 14:49:07 +10:00
Lea Anthony
ba6b28b3c2
v2.5.0 2023-05-13 14:18:06 +10:00
Misite Bao
3d68ef0115
chore: update channel (#2648) 2023-05-13 13:48:11 +10:00
github-actions[bot]
0342023990
chore: update sponsors.svg (#2656)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-05-13 13:44:15 +10:00
github-actions[bot]
2922a98f7c
chore: update sponsors.svg (#2650)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-05-06 11:16:28 +10:00
Misite Bao
b82be31d7e
chore: remove the v1 content (#2641)
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-05-04 18:36:01 +10:00
github-actions[bot]
8d7c033a66
chore: update sponsors.svg (#2643)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-05-03 19:52:34 +10:00
Misite Bao
516c4853f9
feat(cli): use Spinner instead of Print (#2637) 2023-05-01 22:57:10 +10:00
LGiki
832d6bc4d3
[v2, linux] Fix StartHidden option not working on Linux (#2624)
* fix: StartHidden option not working on Linux

* chore: add an entry to the changelog
2023-04-30 01:20:39 +10:00
dependabot[bot]
fa0afe92f0
Bump yaml from 2.2.1 to 2.2.2 in /v3/internal/runtime (#2623)
Bumps [yaml](https://github.com/eemeli/yaml) from 2.2.1 to 2.2.2.
- [Release notes](https://github.com/eemeli/yaml/releases)
- [Commits](https://github.com/eemeli/yaml/compare/v2.2.1...v2.2.2)

---
updated-dependencies:
- dependency-name: yaml
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-29 20:42:50 +10:00
github-actions[bot]
ea40cf8705
chore: update sponsors.svg (#2630)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-04-28 18:27:29 +10:00
stffabi
3853d2d1bf
[v2, windows] Handle webview2 process crashes and add DisableWebViewRendererCodeIntegrity flag (#2627)
* Add flag to disable webview RendererCodeIntegrity checks
* Handle webview2 process crashes
2023-04-27 23:03:26 +02:00
Dominic Lee
d249c2207b
fix: parse struct references for type generation (#2552)
* fix: parse struct references for type generation

* chore: update changelog for typescript generation fix
2023-04-26 23:23:39 +10:00
stffabi
0bf41090b0
[v2, darwin] Add some missing default shortcuts (#2586)
* [v2, darwin] Add "Hide, Hide Others, Show All“ to appmenu

This also includes shortcuts support for those commands.
Arrange the menu items in the well known MacOS order.

* [v2, darwin] Add Window menu with well known shortcuts Minimize, Full-Screen and Zoom.
2023-04-20 12:38:32 +02:00
stffabi
529ec569f7
[v2, dev] Use custom schemes for in-app dev mode (#2610)
This fixes some long-standing inconsistencies between
dev mode builds and production builds but is a breaking
change. Dev mode uses custom scheme for Vite versions >= 3.0.0
and for older it still behaves in the old way.
2023-04-20 12:37:40 +02:00
stffabi
7c1490a8b1
[assetServer] Improve release/close handling of webview requests (#2612) 2023-04-20 12:06:37 +02:00
github-actions[bot]
c7e5608a60
docs: sync translations (#2581)
Co-authored-by: misitebao <misitebao@users.noreply.github.com>
2023-04-17 23:48:27 +10:00
Misite Bao
d8d4997532
chore: optimize website building process (#2601)
* chore: remove pnpm from dependencies

* chore: upgrade devDependencies

* chore: set Nodejs version
2023-04-17 20:54:06 +10:00
github-actions[bot]
a1cc41c926
chore: update sponsors.svg (#2603)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-04-17 20:51:33 +10:00
stffabi
767bfcff89
[v2, windows] Make sure to open the CommonFileDialogs on the main thread (#2606)
Otherwise it might have some strange side-effects like blocking
the completion of Deferrals in WebView2 when using custom
IStreams.
2023-04-17 20:50:27 +10:00
Lea Anthony
46bcce7566 [website] Upgrade pnpm-lock.yaml 2023-04-16 20:58:19 +10:00
Lea Anthony
c4609efe01 [website] Upgrade pnpm 2023-04-16 20:26:43 +10:00
Lea Anthony
cc6518f984 Remove label-sponsors workflow for now 2023-04-16 20:22:56 +10:00
Lea Anthony
69d3a3f639 Remove generate-contributors workflow for now 2023-04-16 20:21:45 +10:00
Joshua Hull
489689b477
Use json.Marshal instead of strconv.Quote to correctly support unicode (#2509)
* Use json.Marshal instead of strconv.Quote to correctly support unicode

* Add fix to changelog

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-04-16 10:19:40 +10:00
George Wang
eaca3d06f6
Update zypper.go (#2593)
Add package(webkit2gtk3-soup2-devel) for `libwebkit`.
Change environment variable before running command to query information
of the package.
2023-04-16 10:00:39 +10:00
Matthew Davis
b302064f2f
Feature/templates/angular15 (#2595)
* added new angular template

* removed 2-year old template

* renamed to wails-template-angular from wails-angular-template

* added previous template back
2023-04-16 09:58:36 +10:00
Lea Anthony
67063d419c
Update generate-contributors.yml 2023-04-15 20:40:45 +10:00
github-actions[bot]
03cef1887f
chore: update sponsors.svg (#2596)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-04-15 18:14:43 +10:00
Lea Anthony
929593c5b8
Update generate-contributors.yml 2023-04-14 20:16:01 +10:00
Lea Anthony
57e718af68
Update generate-contributors.yml 2023-04-14 20:10:29 +10:00
github-actions[bot]
f96aab0d44
chore: update sponsors.svg (#2591)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-04-14 20:08:52 +10:00
Lea Anthony
140e3b5947
Update generate-contributors.yml 2023-04-14 20:05:45 +10:00
Lea Anthony
a8339c9e93
Update generate-contributors.yml 2023-04-14 20:04:12 +10:00
stffabi
39a7ab5856
[assetserver, linux] Add support for WebKit2GTK 2.40+ features (#2592) 2023-04-14 11:16:27 +02:00
stffabi
ec3da8b7ef
[v2, darwin] Fix updating the menu on runtime (#2588) 2023-04-14 00:14:19 +10:00
stffabi
b64b2a8da1
[v2, dev] Fix skipbindings flag in wails dev (#2584) 2023-04-13 07:45:49 +10:00
Misite Bao
1979bca0f5
chore: fix pnpm environment settings (#2580) 2023-04-12 22:21:25 +10:00
Misite Bao
0f791c71f4
fix: fix website build and add taskfile (#2577)
* chore: update dependencies

* docs: update source documents

* chore: use Taskfile instead of scripts
2023-04-12 21:36:01 +10:00
Travis McLane
fbe7d4de6b
Bugfix/remove miniaturize (#2579)
* remove duplicate 'minimize' from interface

already covered by 'minimise'

* [darwin] remove windowMiniaturize

duplicates the logic in windowMinimise

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-04-12 21:34:31 +10:00
stffabi
c8d203d4d6
[v3, darwin] Fix leaking WebKit processes on Window close (#2574)
* [v3, darwin] Fix leaking WebKit processes on Window close

* [v3] Remove window from window map if closed
[v3] Implement `HideOnClose` and ensure it isn't removed when closed

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-04-12 21:33:00 +10:00
Lea Anthony
f335cbd608
Update generate-contributors.yml 2023-04-12 08:44:17 +10:00
Lea Anthony
b67d1e72a7
Update generate-contributors.yml 2023-04-12 08:41:28 +10:00
Misite Bao
5e3c736bee
feat(cli): add Nodejs version in wails doctor (#2546)
* feat(cli): add Nodejs version in `wails doctor`

* Added check for output length

* docs: update changelog.mdx

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-04-12 07:11:37 +10:00
Lea Anthony
abc8f71a8d
Update generate-contributors.yml 2023-04-11 21:29:41 +10:00
Lea Anthony
cf8bb49093
Update generate-contributors.yml 2023-04-11 21:25:36 +10:00
Lea Anthony
3f62fa0d86 Update credits.mdx 2023-04-11 20:46:45 +10:00
Lea Anthony
8b977bcab4
Update generate-contributors.yml 2023-04-11 20:46:28 +10:00
Lea Anthony
3a1aeaab94
Update generate-contributors.yml 2023-04-11 20:22:27 +10:00
Travis McLane
a7bf359930
update wml events to be parseable (#2561)
* update wml events to be parseable

* [v3] Rename `CustomEvent` to `WailsEvent` to prevent clashing with the standard JS `CustomEvent` object

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-04-11 18:28:06 +10:00
github-actions[bot]
9574bfc054
chore: update sponsors.svg (#2566)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-04-11 18:26:28 +10:00
希嘉嘉
739ca98597
Update templates.mdx (#2571) 2023-04-10 22:00:04 +10:00
Lea Anthony
424e4fc2e8 [v3] Add ability to get window by name 2023-04-07 19:47:01 +10:00
Misite Bao
7f1093dc51
chore: update auto workflows (#2555)
* chore: update workflows

* chore: update Taskfile

* chore: add lable to auto-sync pr
2023-04-07 18:19:14 +10:00
Lea Anthony
a998465034 [v3] Update start_at_login plugin to allow better compilation on Linux 2023-04-06 08:29:20 +10:00
Lea Anthony
755e869fe7 [v3] Add start_at_login plugin
[v3] Fix plugin startup/shutdown order
2023-04-05 21:22:02 +10:00
Lea Anthony
7ecbc846b4 [v3] Improved plugin shutdown 2023-04-04 18:01:49 +10:00
Lea Anthony
767b7d6026 Check out repo for contributors workflow 2023-04-03 08:43:57 +10:00
Lea Anthony
086953bbe9
Do not directly commit contributors sag 2023-04-03 08:39:42 +10:00
Lea Anthony
c51df752a1
Create PR for contributors SVG 2023-04-03 08:37:46 +10:00
Lea Anthony
ea3b7ed9dd
Generate Contributors SVG 2023-04-03 08:33:55 +10:00
dependabot[bot]
ef6366af61
Bump webpack from 5.75.0 to 5.76.2 in /website (#2503)
Bumps [webpack](https://github.com/webpack/webpack) from 5.75.0 to 5.76.2.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.75.0...v5.76.2)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-01 22:02:24 +11:00
dependabot[bot]
488666f407
Bump undici from 5.13.0 to 5.21.0 in /scripts/sponsors (#2502)
Bumps [undici](https://github.com/nodejs/undici) from 5.13.0 to 5.21.0.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v5.13.0...v5.21.0)

---
updated-dependencies:
- dependency-name: undici
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-01 22:00:55 +11:00
Simon Shutter
34fd76617e
annotated menu example and updated runtime.Quit call (#2539) 2023-04-01 21:50:29 +11:00
憧憬Licoy
1e8b938d15
fix obfuscate build param name (#2542)
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-04-01 21:48:03 +11:00
Lea Anthony
3404250ac8 [v3] Add single_instance plugin 2023-04-01 20:36:55 +11:00
Misite Bao
eddc949295
fix: fix console printing (#2483) 2023-04-01 18:22:27 +11:00
Misite Bao
49bd33e642
docs: update routing.mdx (#2547) 2023-04-01 16:05:09 +11:00
github-actions[bot]
78f638a9bc
docs: sync documents (#2514)
Co-authored-by: misitebao <misitebao@users.noreply.github.com>
2023-04-01 16:04:43 +11:00
github-actions[bot]
fef6e2a616
chore: update sponsors.svg (#2535)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-04-01 16:03:09 +11:00
Noah Gorstein
2a22933220
docs: fix broken link for react router HashRouter (#2544) 2023-04-01 08:43:15 +11:00
Lea Anthony
eae4fe62cd Merge branch 'v3/api-package' 2023-03-31 20:39:41 +11:00
stffabi
b3a9332a5b [assetserver] Add linux platform implementation (#2543) 2023-03-31 20:39:13 +11:00
Lea Anthony
e91b7832ee Provide types to runtime api 2023-03-31 20:37:50 +11:00
stffabi
db527c0fc2
[assetserver] Add linux platform implementation (#2543) 2023-03-31 10:08:31 +02:00
Lea Anthony
0d25edc0c4 Improved api package 2023-03-30 12:51:43 +11:00
Lea Anthony
eb36258c73 Merge branch 'master' into v3/plugins 2023-03-27 20:58:00 +11:00
Misite Bao
bdb138d42c
chore: fix push.yml (#2530) 2023-03-27 07:37:38 +11:00
Arpit Jain
abe6f520b4
Fix dates in changelog (#2527) 2023-03-26 16:19:12 +11:00
Adam Tenderholt
130fab6c01 Feature/v3 parser: expand TS model generation tests & some fixes (#2485)
* v3 parser: add tests for model generation

* v3 parser: use single quotes for got model.ts

* v3 parser: fixes for some failing tests

* v3 parser: misc simplification and cleanup

* v3 parser: fix model tests when no structs returned

* v3 parser: fix last failing test case

* Update contributors list

* v3 parser: update README

* Revert "Update contributors list"

This reverts commit f429d2ba89.

* Changelog: add line about my contribution
2023-03-25 10:09:17 +11:00
Lea Anthony
365aaf6bb1 Add sqlite plugin 2023-03-25 09:39:59 +11:00
github-actions[bot]
b5f1eab59b
chore: update sponsors.svg (#2525)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-03-24 23:20:18 +11:00
Lea Anthony
5949e305ea
Reorder startup sequence
Add plugin scripts to asset server
Add InjectJS support in plugins
2023-03-24 08:43:00 +11:00
github-actions[bot]
5988cdca9a
chore: update sponsors.svg (#2517)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-03-23 19:33:04 +11:00
Lea Anthony
bf86b0d9c1 Add Window creation hooks
Add InjectJS() to plugins interface
2023-03-23 06:51:24 +11:00
Misite Bao
93d7c6b5f3
docs: optimize code block display style (#2520) 2023-03-22 21:54:08 +11:00
Lea Anthony
d5808fde59 Simple logging plugin 2023-03-22 20:56:45 +11:00
Lea Anthony
3ae604e474 Exported() -> CallableByJS() 2023-03-22 20:42:20 +11:00
Lea Anthony
42fb91bc73 Fix for variadic args in bound methods 2023-03-22 20:36:46 +11:00
github-actions[bot]
7d28ad1a3b
docs: sync documents (#2510)
Co-authored-by: misitebao <misitebao@users.noreply.github.com>
2023-03-21 17:47:23 +11:00
Lea Anthony
4165caa02e Add Exported() []string to plugin API 2023-03-21 08:55:55 +11:00
Lea Anthony
b656bd2194 Prevent beeps when pressing a key in Mac window 2023-03-20 20:48:22 +11:00
Lea Anthony
a7278b4224 Update docs 2023-03-20 20:32:25 +11:00
Lea Anthony
e2b7b68ec9 v2.4.1 2023-03-20 20:31:35 +11:00
Lea Anthony
ba82f27534 Fix Bug with nil parameters.
Added browser and kvstore plugins.
2023-03-20 20:28:33 +11:00
stffabi
47af68a8cb
[windows] Allow single-clicks on wails-draggable items (#2482)
* [runtime] Make it possible to restore old drag behaviour on windows with window.wails.flags.deferDragToMouseMove

* [runtime] Use deferDragToMouseMove as new default

This enhanced version should work well in all cases for Windows:
- No lag/delayed start of dragging
- Double-Clicks and Single-Click events still work in JavaScript on elements

* [docs] Add changelog
2023-03-20 08:45:21 +01:00
github-actions[bot]
77f053068c
docs: sync documents (#2504)
Co-authored-by: misitebao <misitebao@users.noreply.github.com>
2023-03-19 20:37:06 +11:00
Lea Anthony
13f620ae54 Add plugin init. Update plugin signature. 2023-03-19 09:13:05 +11:00
github-actions[bot]
e3edea1cb3
chore: update sponsors.svg (#2498)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-03-18 11:48:23 +11:00
Lea Anthony
c774af48b7 Extend call subsystem to support plugins 2023-03-18 09:12:44 +11:00
Lea Anthony
4300521064 Initial implementation 2023-03-18 08:11:36 +11:00
Filip Borkiewicz
a0b7eb4ab6
Fix incorrect rendering of FAQ section header (#2497) 2023-03-18 07:37:21 +11:00
Lea Anthony
86aaa3a956 Merge branch 'v3/central-assetserver' into v3/plugins 2023-03-17 17:03:21 +11:00
stffabi
6ed0eb217d
[webview2] Fix error handling in CreateWebResourceResponse (#2496)
The old error handling fails on WebView2Runtimes > 110.0.1587.69 and
will show a "connection refused" page and reloads after a short time.
After the reload everything worked as expected again.
2023-03-16 10:49:59 +01:00
github-actions[bot]
a2c1c507e1
chore: update sponsors.svg (#2492)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-03-16 19:27:23 +11:00
stffabi
74f349862e [v3] AssetServer options update comments 2023-03-16 06:49:46 +01:00
stffabi
0e614b0194 [v3] Centralize the AssetServer and move it to the application 2023-03-16 06:49:45 +01:00
github-actions[bot]
4bffc57cb5
chore: update sponsors.svg (#2488)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-03-14 17:32:25 +11:00
stffabi
5dba18c853
[dev] Fix panic in devserver when using the logger (#2481) 2023-03-13 08:12:09 +01:00
github-actions[bot]
4cd873fecb
docs: sync documents (#2443)
Co-authored-by: misitebao <misitebao@users.noreply.github.com>
2023-03-11 17:57:56 +11:00
Misite Bao
e339c40e85
feat: update sync translated document script (#2479) 2023-03-11 14:09:48 +11:00
github-actions[bot]
050ac9e613
chore: update sponsors.svg (#2478)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-03-11 12:54:20 +11:00
Lea Anthony
58986237b9 [v3] Minor fixes to templates + improved Taskfile 2023-03-11 12:48:10 +11:00
Lea Anthony
7cb4c7b505
[v3] Improve init command 2023-03-10 08:05:13 +11:00
dependabot[bot]
e3816e714e
Bump golang.org/x/net in /v3/examples/binding (#2472)
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.0.0-20220722155237-a158d28d115b to 0.7.0.
- [Release notes](https://github.com/golang/net/releases)
- [Commits](https://github.com/golang/net/commits/v0.7.0)

---
updated-dependencies:
- dependency-name: golang.org/x/net
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-09 20:07:11 +11:00
github-actions[bot]
1684894b52
chore: update sponsors.svg (#2474)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-03-09 20:06:35 +11:00
Lea Anthony
e302d11f12 Update module deps 2023-03-09 08:23:20 +11:00
Lea Anthony
eb670f4ba1 Merge branch 'master' into feature/v3-parser
# Conflicts:
#	v3/go.mod
#	v3/go.sum
2023-03-09 08:22:47 +11:00
Lea Anthony
5e0ce40b41 Update TODO 2023-03-09 08:21:37 +11:00
Lea Anthony
ebc14debdf
Release/v2.4.0 (#2470)
* Release v2.4.0

* Add docs
2023-03-08 23:27:23 +11:00
github-actions[bot]
66bd24e184
chore: update sponsors.svg (#2455)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-03-08 08:31:23 +11:00
dependabot[bot]
5e88d8d8cf
Bump golang.org/x/net in /v2/internal/staticanalysis/test/standard (#2458)
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.0.0-20221014081412-f15817d10f9b to 0.7.0.
- [Release notes](https://github.com/golang/net/releases)
- [Commits](https://github.com/golang/net/commits/v0.7.0)

---
updated-dependencies:
- dependency-name: golang.org/x/net
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-08 08:30:51 +11:00
dependabot[bot]
5c7bfc3557
Bump golang.org/x/crypto in /v2 (#2459)
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.0.0-20210921155107-089bfa567519 to 0.1.0.
- [Release notes](https://github.com/golang/crypto/releases)
- [Commits](https://github.com/golang/crypto/commits/v0.1.0)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-08 08:30:35 +11:00
dependabot[bot]
8f27685ebd
Bump golang.org/x/crypto in /v2/examples/customlayout (#2466)
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.0.0-20210921155107-089bfa567519 to 0.1.0.
- [Release notes](https://github.com/golang/crypto/releases)
- [Commits](https://github.com/golang/crypto/commits/v0.1.0)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-08 08:30:10 +11:00
dependabot[bot]
30efebd76a
Bump golang.org/x/image from 0.0.0-20200430140353-33d19683fad8 to 0.5.0 (#2467)
Bumps [golang.org/x/image](https://github.com/golang/image) from 0.0.0-20200430140353-33d19683fad8 to 0.5.0.
- [Release notes](https://github.com/golang/image/releases)
- [Commits](https://github.com/golang/image/commits/v0.5.0)

---
updated-dependencies:
- dependency-name: golang.org/x/image
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-08 08:29:38 +11:00
dependabot[bot]
fdda3d2238
Bump golang.org/x/image in /v3 (#2460)
Bumps [golang.org/x/image](https://github.com/golang/image) from 0.0.0-20201208152932-35266b937fa6 to 0.5.0.
- [Release notes](https://github.com/golang/image/releases)
- [Commits](https://github.com/golang/image/commits/v0.5.0)

---
updated-dependencies:
- dependency-name: golang.org/x/image
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-08 08:25:36 +11:00
dependabot[bot]
f59ce04ac2
Bump golang.org/x/image in /v2 (#2463)
Bumps [golang.org/x/image](https://github.com/golang/image) from 0.0.0-20201208152932-35266b937fa6 to 0.5.0.
- [Release notes](https://github.com/golang/image/releases)
- [Commits](https://github.com/golang/image/commits/v0.5.0)

---
updated-dependencies:
- dependency-name: golang.org/x/image
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-03-08 08:25:07 +11:00
dependabot[bot]
1d9bb20584
Bump golang.org/x/net in /v2/examples/customlayout (#2465)
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.0.0-20220722155237-a158d28d115b to 0.7.0.
- [Release notes](https://github.com/golang/net/releases)
- [Commits](https://github.com/golang/net/commits/v0.7.0)

---
updated-dependencies:
- dependency-name: golang.org/x/net
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-08 08:24:26 +11:00
dependabot[bot]
f551ebdffa
Bump github.com/tidwall/gjson from 1.8.0 to 1.9.3 in /v2 (#2464)
Bumps [github.com/tidwall/gjson](https://github.com/tidwall/gjson) from 1.8.0 to 1.9.3.
- [Release notes](https://github.com/tidwall/gjson/releases)
- [Commits](https://github.com/tidwall/gjson/compare/v1.8.0...v1.9.3)

---
updated-dependencies:
- dependency-name: github.com/tidwall/gjson
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-08 08:22:32 +11:00
dependabot[bot]
3afc7f7763
Bump golang.org/x/net in /v2 (#2457)
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.0.0-20220722155237-a158d28d115b to 0.7.0.
- [Release notes](https://github.com/golang/net/releases)
- [Commits](https://github.com/golang/net/commits/v0.7.0)

---
updated-dependencies:
- dependency-name: golang.org/x/net
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-08 08:09:59 +11:00
stffabi
c11c32940e
[events] Fix race condition and missing unlock of mutex (#2453) 2023-03-07 10:40:33 +01:00
Lea Anthony
26530a0f5a Fix reserve word check.
Add model generation.
Warn if field is unexported in the Go struct
2023-03-07 19:48:30 +11:00
Lea Anthony
7340247e25 Create bindings file per package
Improved bindings tests
2023-03-07 18:22:33 +11:00
stffabi
d7a8406640
[options] Mergo doesn't play well with reference types (#2452)
Remove mergo and just use a simple hardcoded defaults approach.
2023-03-07 07:04:37 +01:00
Lea Anthony
f1a7f1b781 Improved bindings generation 2023-03-06 20:54:04 +11:00
github-actions[bot]
17ff16c1ad
chore: update sponsors.svg (#2449)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-03-06 19:10:57 +11:00
github-actions[bot]
ac4de2289a
chore: update sponsors.svg (#2440)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-03-05 11:18:33 +11:00
Lea Anthony
71aa7c9731
Initial bindings.js generation 2023-03-03 19:54:12 +11:00
Lea Anthony
41860ade10
Update all-contributosrc 2023-03-02 08:22:33 +11:00
Lea Anthony
868b769e7f Initial bindings generation 2023-03-01 21:31:29 +11:00
wander
29a4c28da4
add showcase (#2435) 2023-03-01 19:49:11 +11:00
Rachel Chen
ad2fed8f08
[v2] frontend/runtime/wrapper: return function return value in runtime wrapper (#2434) 2023-03-01 07:37:09 +01:00
Lea Anthony
8dc8c8e15e Merge remote-tracking branch 'origin/feature/v3-parser' into feature/v3-parser 2023-02-28 20:35:39 +11:00
Adam Tenderholt
da90e74268
v3 parser: initial work on model generation w/ templates (#2428)
* v3 parser: initial work on model generation w/ templates

* v3 parser: expand models to namespaces
2023-02-28 20:35:18 +11:00
stffabi
c6146ccbf8
[darwin] Fix undo/redo (#2430) 2023-02-28 19:41:18 +11:00
Lea Anthony
443ea46d1d Example bindings 2023-02-27 20:05:54 +11:00
github-actions[bot]
d66e75c456
chore: update sponsors.svg (#2429)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-02-27 19:54:00 +11:00
Lea Anthony
00c458f948 Implement basic binding 2023-02-26 20:49:29 +11:00
Lea Anthony
33855ff01d Add tests for bound structs returned by function calls. 2023-02-26 19:18:47 +11:00
Lea Anthony
bcde850bac Revert changes to file output 2023-02-26 15:11:24 +11:00
Lea Anthony
f9ffe915f2 Add bindings hook 2023-02-26 15:06:05 +11:00
github-actions[bot]
393a4c9251
chore: update sponsors.svg (#2424)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-02-26 13:14:25 +11:00
Lea Anthony
91676080eb Support binding variables that were assigned by functions 2023-02-26 13:12:30 +11:00
Lea Anthony
6afb5260a7
Refactor parsing functions 2023-02-26 08:56:27 +11:00
Adam Tenderholt
0f80f031fd
v3 parser: add some more test cases (functions) (#2422)
* [v3] add test case for parser (create struct from func)

* [v3] add another test case for parser (func in other pkg) + misc
2023-02-26 07:46:26 +11:00
Lea Anthony
76371fcb27
Refactor recent mac updates (#2419) 2023-02-25 20:28:27 +11:00
dependabot[bot]
9b35926789
Bump cacheable-request from 10.2.5 to 10.2.7 in /v3/internal/runtime (#2368)
Bumps [cacheable-request](https://github.com/jaredwray/cacheable-request) from 10.2.5 to 10.2.7.
- [Release notes](https://github.com/jaredwray/cacheable-request/releases)
- [Commits](https://github.com/jaredwray/cacheable-request/commits)

---
updated-dependencies:
- dependency-name: cacheable-request
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-02-25 13:01:23 +11:00
Hao
0212698714
Patch 1 (#2352)
* update function notifyListeners in events.js

newEventListenerList will delete wrong listener if it call splice method in for-loop.

* Update events.js

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-02-25 12:58:59 +11:00
Watson-Sei
dcfd525dd1
ja translation of tutorials (#2393)
* ja translation of tutorials

* reset v2.3.1 md and moved translate md to current

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-02-25 12:52:16 +11:00
github-actions[bot]
01820d0e8e
chore: update sponsors.svg (#2418)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-02-25 12:32:22 +11:00
Lea Anthony
3eaaf31803 Upgrade sponsorkit 2023-02-25 12:29:46 +11:00
github-actions[bot]
64ff075302
chore: update sponsors.svg (#2416)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-02-25 10:02:34 +11:00
Lea Anthony
ecc1791420 Support bound variables (struct literals)
Factor out unaryexpression parsing
Fix package bleed between tests
2023-02-25 09:47:50 +11:00
Lea Anthony
4a8917ecbc
Add nested anonymous struct test 2023-02-25 08:27:36 +11:00
Lea Anthony
cc1a6a3d50
Support anonymous struct fields 2023-02-25 08:24:58 +11:00
Gwyn
017ce1e33e
The outputFile was only being set for darwin universal builds. I move… (#2358)
* The outputFile was only being set for darwin universal builds. I moved the
variable assignment to a location where it will take place for all builds.

The ProjectData entries are used in generating the .app plist file, so
setting them here ensures that the app will run with the custom binary name.

* Increases the reach of the output flag.

* Updates the changelog with a record of this fix.
2023-02-25 06:13:27 +11:00
Lea Anthony
cd11c0a83c Support references to structs in other packages 2023-02-24 21:15:39 +11:00
Lea Anthony
8fd0e06c24 Use package path instead of name 2023-02-23 20:26:15 +11:00
dependabot[bot]
c20ccfb9a6
Bump golang.org/x/text from 0.3.0 to 0.3.8 (#2404)
Bumps [golang.org/x/text](https://github.com/golang/text) from 0.3.0 to 0.3.8.
- [Release notes](https://github.com/golang/text/releases)
- [Commits](https://github.com/golang/text/compare/v0.3.0...v0.3.8)

---
updated-dependencies:
- dependency-name: golang.org/x/text
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-02-23 20:05:25 +11:00
dependabot[bot]
2686d5c61a
Bump golang.org/x/text from 0.3.7 to 0.3.8 in /v2/examples/customlayout (#2409)
Bumps [golang.org/x/text](https://github.com/golang/text) from 0.3.7 to 0.3.8.
- [Release notes](https://github.com/golang/text/releases)
- [Commits](https://github.com/golang/text/compare/v0.3.7...v0.3.8)

---
updated-dependencies:
- dependency-name: golang.org/x/text
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-02-23 20:04:29 +11:00
github-actions[bot]
6c2b0fcb02
chore: update sponsors.svg (#2403)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-02-23 20:03:16 +11:00
dependabot[bot]
42f43462e8
Bump golang.org/x/text from 0.3.7 to 0.3.8 in /v2 (#2408)
Bumps [golang.org/x/text](https://github.com/golang/text) from 0.3.7 to 0.3.8.
- [Release notes](https://github.com/golang/text/releases)
- [Commits](https://github.com/golang/text/compare/v0.3.7...v0.3.8)

---
updated-dependencies:
- dependency-name: golang.org/x/text
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-23 20:02:19 +11:00
stffabi
0f57292555
[darwin] Add a macOS version guard for opening the web inspector (#2397)
Log if the inspector could not be opened due to missing or
incorrect private API.
2023-02-22 20:55:40 +11:00
Lea Anthony
4e5be36459
Parse structs bound from other packages 2023-02-22 20:36:30 +11:00
stffabi
cccd708b2b
[assetserver] Add more builtin mimetypes by extension (#2391) 2023-02-21 18:20:01 +11:00
Lea Anthony
6bfd654ec8
Tidy up. More tests. 2023-02-21 17:10:36 +11:00
Lea Anthony
dc0d99a8e9
Cover all type combinations
Fix bug in pointer type resolution
2023-02-21 07:52:29 +11:00
Lea Anthony
b606561f8d
Move struct cache into parsed package
Fix bug in package path calculation
2023-02-21 07:18:08 +11:00
Lea Anthony
d0769ecd1c
Parse Models
Support recursive fields
Add loads of tests
2023-02-20 20:36:58 +11:00
Lea Anthony
95bb15eef4
[v3] MUCH Improved parser for bound structs 2023-02-19 20:59:03 +11:00
Lea Anthony
93aa8345dc
[v3] Improved parser for bound structs 2023-02-17 21:01:16 +11:00
Lea Anthony
e1279a054f
[v3] Improved parser for bound structs 2023-02-17 20:57:31 +11:00
Lea Anthony
bd184cab85
[v3] Improve plain example 2023-02-16 20:28:24 +11:00
Lea Anthony
94f0f6ff82
wml refresh -> wml reload 2023-02-16 20:19:53 +11:00
Lea Anthony
af5e383905
Add wml demo 2023-02-16 20:16:20 +11:00
Lea Anthony
0881914244
Support data-wml-trigger attribute 2023-02-16 20:15:06 +11:00
github-actions[bot]
c9492ec258
chore: update sponsors.svg (#2379)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-02-16 19:56:42 +11:00
Lea Anthony
c415c1b321
Added Wails ML experiment
added Window.Close to js runtime
2023-02-15 20:58:57 +11:00
Lea Anthony
a5e10557c5
Support Screens API 2023-02-15 18:56:52 +11:00
Lea Anthony
045a830fbc
Add "DragAndDropEnabled" option for window
Add "FileDraggingExited" event
2023-02-15 18:56:52 +11:00
stffabi
260fd061f6
[nsis] Adjust template to install shortcuts for all users (#2373) 2023-02-13 18:40:42 +11:00
Lea Anthony
d86e11cef1
Fix bad merge 2023-02-12 13:36:58 +11:00
Lea Anthony
9c42049c6a
Merge remote-tracking branch 'origin/master' 2023-02-12 12:38:36 +11:00
Lea Anthony
b16b263820
Merge branch 'feature/asset-server-runtime'
# Conflicts:
#	v3/V3 Changes.md
#	v3/examples/events/assets/index.html
#	v3/examples/events/main.go
#	v3/internal/runtime/desktop/main.js
#	v3/internal/runtime/package-lock.json
#	v3/internal/runtime/package.json
#	v3/internal/runtime/runtime_debug_desktop_darwin.js
#	v3/internal/runtime/runtime_debug_desktop_linux.js
#	v3/internal/runtime/runtime_debug_desktop_windows.js
#	v3/internal/runtime/runtime_production_desktop_darwin.js
#	v3/internal/runtime/runtime_production_desktop_linux.js
#	v3/internal/runtime/runtime_production_desktop_windows.js
#	v3/pkg/application/application.go
#	v3/pkg/application/messageprocessor.go
#	v3/pkg/application/messageprocessor_window.go
#	v3/pkg/application/options_webview_window.go
#	v3/pkg/application/webview_window.go
#	v3/pkg/application/webview_window_darwin.go
#	v3/pkg/options/application.go
2023-02-12 12:35:46 +11:00
github-actions[bot]
adca2150d4
chore: update sponsors.svg (#2370)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-02-12 12:33:08 +11:00
Lea Anthony
24b639646a
Merge master 2023-02-12 09:14:23 +11:00
Lea Anthony
2c4c0b4b6b
Add dnd window event + demo 2023-02-12 08:54:08 +11:00
Lea Anthony
23bfeac02a
Window event callbacks now take a WindowEventContext
Improved event example
2023-02-12 07:58:14 +11:00
Lea Anthony
a2528fd066
data-contextmenu-id -> data-contextmenu 2023-02-12 06:58:51 +11:00
dependabot[bot]
40ab0d3983
Bump json5 from 1.0.1 to 1.0.2 in /runtime/js (#2274)
Bumps [json5](https://github.com/json5/json5) from 1.0.1 to 1.0.2.
- [Release notes](https://github.com/json5/json5/releases)
- [Changelog](https://github.com/json5/json5/blob/main/CHANGELOG.md)
- [Commits](https://github.com/json5/json5/compare/v1.0.1...v1.0.2)

---
updated-dependencies:
- dependency-name: json5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-11 15:00:27 +11:00
Joshua Mangiola
fa33e5d2bc
Update to Mac App Store Guide (#2369) 2023-02-11 15:00:03 +11:00
Lea Anthony
9b25e639f5
Support context menus 2023-02-10 08:25:52 +11:00
Lea Anthony
23d2c9a741
Refactor main.tmpl.go -> main.go.tmpl 2023-02-09 21:14:16 +11:00
github-actions[bot]
3fde885d34
chore: update sponsors.svg (#2361)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-02-09 18:41:47 +11:00
Lea Anthony
f951b51c11
Context menu WIP
options refactor
2023-02-09 18:35:26 +11:00
Lea Anthony
5dbda4aead
Feature: AssetServer Runtime (#2335)
* Tidy up runtime JS

* Initial implementation of runtime over http

* Update runtime deps. Fix test task.

* Support Clipboard.
Message Processor refactor.

* Add `Window.Screen()`
Clipboard `GetText` -> `Text`

* Support most dialogs
Better JS->Go object mapping
Implement Go->JS callback mechanism
Rename `window.runtime` -> `window.wails` to better reflect the Go API

* Support SaveFile dialog

* Remove go.work

* Tidy up

* Event->CustomEvent to prevent potential clash with native JS Event object
Support Eventing

* Support application calls

* Support logging

* Support named windows
Remove debug info

* Update v3 changes
2023-02-06 20:50:11 +11:00
Lea Anthony
cd1e3f5bb0
Update v3 changes 2023-02-06 20:45:50 +11:00
Lea Anthony
00ee79ecdc
Support named windows
Remove debug info
2023-02-06 20:43:11 +11:00
Lea Anthony
f94e798c50
Support logging 2023-02-06 20:29:33 +11:00
Lea Anthony
3bd6c34ae6
Support application calls 2023-02-04 19:49:30 +11:00
github-actions[bot]
88e79f2598
chore: update sponsors.svg (#2346)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-02-04 11:35:16 +11:00
Lea Anthony
f26756be9c
Event->CustomEvent to prevent potential clash with native JS Event object
Support Eventing
2023-02-04 11:27:27 +11:00
github-actions[bot]
522a634b86
chore: update sponsors.svg (#2341)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-02-03 08:54:12 +11:00
github-actions[bot]
0fed83ec21
chore: update sponsors.svg (#2337)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-02-01 20:18:16 +11:00
David Walton
709244c3a2
Fix #2280 - code block highlights (#2338)
* Fix #2280; code highlight & minor linter change

* Fix #2280; adjust code highlight
2023-02-01 17:52:43 +11:00
David Florness
e1bd841be3
fix grammar (#2334) 2023-01-31 17:51:51 +11:00
Lea Anthony
0e8144e52f
Tidy up 2023-01-30 19:52:53 +11:00
Lea Anthony
00e585e864
Remove go.work 2023-01-30 19:22:39 +11:00
Lea Anthony
c46c0c335c
Support SaveFile dialog 2023-01-30 19:21:49 +11:00
Lea Anthony
73b08a45de
Support most dialogs
Better JS->Go object mapping
Implement Go->JS callback mechanism
Rename `window.runtime` -> `window.wails` to better reflect the Go API
2023-01-29 21:01:54 +11:00
Lea Anthony
226572a1df
Add Window.Screen()
Clipboard `GetText` -> `Text`
2023-01-28 09:11:06 +11:00
Lea Anthony
25577b7655
Support Clipboard.
Message Processor refactor.
2023-01-28 08:59:44 +11:00
Lea Anthony
c0ec5af18a
Update runtime deps. Fix test task. 2023-01-28 08:51:34 +11:00
Lea Anthony
14b201bb65
Initial implementation of runtime over http 2023-01-27 21:05:53 +11:00
Lea Anthony
8534b32a9f
Tidy up runtime JS 2023-01-27 15:47:23 +11:00
Lea Anthony
368f0e48bc
Fix build and test workflow 2023-01-27 11:55:59 +11:00
Richard Guay
5a747e75f1
The title was still wrong (#2331)
Fixing the title to properly reflect the page. Somehow I messed up the merge.
2023-01-26 21:42:47 +11:00
Lea Anthony
1c72e1fa33
[v3] Add gowork.sum 2023-01-26 20:43:51 +11:00
Lea Anthony
293d730708
[v3] Updated runtime to take window id into consideration
[v3] Ported most of the window functions for JS
2023-01-26 20:43:26 +11:00
Lea Anthony
2a68fae55e
[v3] Remove 'assets.URL' 2023-01-26 20:43:26 +11:00
Richard Guay
3148154308
Fixing BulletinBoard page (#2328)
* Adding Tutorial link

* Fixed EmailIt, Modal File Manager, and ScriptBar descriptions and added BulletinBoard

* Fixing BulletinBoard page

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-01-26 18:40:53 +11:00
Adam Tenderholt
88549a14ac
Fix differeng bugs when generating bindings (#2326)
* Bindings: work in better typescript generation

* More work on generating typescript

* Bindings: fix a couple of failing tests

* Binding: fix map bindings

* Bindings: comment out debug statement

* Bindings: misc cleanup
2023-01-26 18:40:05 +11:00
Sebastian Bauer
180eef34a2
Remove all systray related for v2. (#2329)
Possible fix for #2265. Close systray separately after the application ran.
2023-01-26 18:11:31 +11:00
Lea Anthony
c34c761c5f
[v3] Fix crash when calling window.Show() before application.Run() 2023-01-26 07:34:25 +11:00
Oleg Gulevskyy
651a1a5d66
Bugfix: Include ts pref & suffixes in module generation (#2227)
* include ts gen pref and suff in class fields

* fix nested namespaces not prefixed

* add basic unit test for parent child

* test for diff namespaces imports

* make entityReturn type func more generic

* get full entity name for TS args list

* fix failing test on empty struct

* wire up gen tests

* remove comment

* remove redundant line
2023-01-23 21:18:17 +11:00
Lea Anthony
4bb7b80d62
[v3] Add wails build info 2023-01-23 21:11:19 +11:00
Lea Anthony
82287a4758
[v3] Support task flags pass through
[v3] `wails build` -> `wails task build`
2023-01-23 21:08:03 +11:00
github-actions[bot]
8239964c28
chore: update sponsors.svg (#2327)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-01-23 17:16:01 +11:00
Lea Anthony
428584d583
[v3] Add TODO 2023-01-22 16:52:26 +11:00
Lea Anthony
ee1978aa42
[v3] Initial template support (likely to change) 2023-01-22 15:39:57 +11:00
Sebastian Bauer
895d6d4b80
Size() calculates DPIs back to default space. (#2325) 2023-01-22 15:25:26 +11:00
github-actions[bot]
a5ddce2c7c
chore: update sponsors.svg (#2317)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-01-22 15:25:04 +11:00
Richard Guay
e4789750c8
Updating and Adding (#2324)
* Adding Tutorial link

* Fixed EmailIt, Modal File Manager, and ScriptBar descriptions and added BulletinBoard

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-01-22 07:28:51 +11:00
Brian Dwyer
f8c673874b
Fix memory leak on Darwin when toggling system tray icon (#2322) 2023-01-21 15:46:06 +11:00
Lea Anthony
5ef32760f0
Update task 2023-01-18 22:08:25 +11:00
Lea Anthony
81645190f0
merge exp branch 2023-01-18 21:42:49 +11:00
Lea Anthony
18d0ed890a
Merge branch 'blog/v3-roadmap' 2023-01-18 20:59:38 +11:00
Lea Anthony
2479603143
Add github issue link 2023-01-18 17:41:33 +11:00
Lea Anthony
dbf6b3a718
updated 2023-01-18 07:57:10 +11:00
stffabi
45c3a501d9
[cli] Fix applying default arch to platform flag (#2309) 2023-01-17 20:39:15 +01:00
Lea Anthony
401165ce30
blog 2023-01-17 21:19:17 +11:00
stffabi
caa0b6c804
[assetServer, darwin] Use AssetServer native WKWebView request handling (#2283) 2023-01-16 13:02:18 +01:00
stffabi
8f92cf1074
[assetHandler] Allow middleware to set the content-type for an assets file (#2286) 2023-01-16 21:05:25 +11:00
Gwyn
8c7fa4cf4c
Updates all default gitignore templates to be newline terminated. (#2306)
This allows echoing new patterns to the end of the file without
causing a string concatenation error.
2023-01-16 21:02:52 +11:00
Oussama Sethoum
d0bd849be6
Update events.mdx (#2300)
* Update events.mdx

* Add doc update to docs dir

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-01-16 20:59:58 +11:00
stffabi
0a98efeea9
[runtime] Improve —wails-draggable by starting a drag immediately but only for the first click in a series (#2302)
This removes the sometime lagging experience when
starting to drag on Windows. But it's still possible to use
double-click events for adding e.g. a WindowToggleMaximise.
2023-01-16 20:56:13 +11:00
github-actions[bot]
93cfc777f9
chore: update sponsors.svg (#2293)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-01-16 20:53:31 +11:00
stffabi
d15e673a19
[windows] Some improvements to fullscreen (#2299) 2023-01-15 06:14:15 +01:00
Supian M
ec8e9b2715
Fix Broken Badge (#2292) 2023-01-12 20:01:56 +11:00
stffabi
aaf039bcff
[windows] Disable frameless decorations during fullscreen (#2288)
Otherwise this leads to thin transparent lines on the window borders on older Windows versions.
2023-01-11 15:22:48 +01:00
stffabi
05679e70d0
[runtime] Frameless resize now sets the cursor on documentElement (#2289)
Otherwise if the body does not cover the full viewport the cursor won't
be shown outside of its rectangle.
2023-01-10 13:19:09 +01:00
stffabi
8e4606d104
[windows] Improve fullscreen mode for frameless windows (#2279)
* Improve fullscreen mode for frameless windows
* Set Window background color in addition to WebView2 background color
2023-01-09 12:15:43 +01:00
Lea Anthony
54ca6c7059
Refactor assetserver into pkg (#2260) 2023-01-08 11:25:21 +01:00
Lea Anthony
6e3b4cf1a1
Add Warmine to showcase 2023-01-08 12:53:14 +11:00
Zámbó, Levente
c3011813b0
linux separate window c and go file (#2275) 2023-01-07 16:20:11 +11:00
Johannes Haseitl
ccceadbd24
Replace more slack links with discord invites (#2256)
* Add Discord link and deprecate slack links

* More slack -> discord changes

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-01-07 16:19:33 +11:00
Noah Hsu
e1fc7119bc
docs: fix admonitions syntax (#2263) 2023-01-07 15:36:37 +11:00
Zámbó, Levente
add10df5ff
fix missing bin dir on build hook (#2273)
* fix missing bin dir on build hook

* add fix to changelog
2023-01-07 06:51:01 +11:00
stffabi
284e20a290
Add EnableFraudulentWebsiteDetection to options (#2269)
This allows to explicitly opt-in to scan services for fraudulent
content, such as malware or phishing attempts.
2023-01-06 00:06:26 +11:00
Zámbó, Levente
0a32c1124e
Add common text clipboard support (#2228) 2023-01-05 16:41:07 +11:00
Igor Sementsov
fc9dd99dea
Update troubleshooting.mdx (#2252)
* Update troubleshooting.mdx

https://github.com/wailsapp/wails/issues/2249

* Move guide to docs

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-01-05 16:19:49 +11:00
希嘉嘉
2727af43d4
Update templates.mdx (#2230)
添加 solid 模版的中文描述信息。
2023-01-05 16:09:53 +11:00
github-actions[bot]
4d0163d8af
chore: update sponsors.svg (#2271)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2023-01-05 15:12:13 +11:00
stffabi
ebc653a584
[windows] Add support for AdditionalBrowserArgs to the legacy Webview2Loader (#2267) 2023-01-02 22:41:56 +01:00
Zámbó, Levente
ef5f547d27
Support GPU acceleration settings on Windows & Linux (#2266)
* support GPU acceleration settings Window & Linux

* fix linux empty option crash

* fix change linux gpu policy switch case

* add PR to changelog
2023-01-02 09:38:53 +11:00
Lea Anthony
d3b4105f75
Chore/refactor assetserver (#2250)
* Remove context from API calls

* Remove logger dependency

* Remove fs dependency

* Remove runtime dependency

* Update Windows/Linux calls to NewAssetServerMainPage

* Add missing imports

* fix runtime import clash
2022-12-31 10:36:07 +11:00
stffabi
66bc258f81
[windows] Fix compile error for 386 platform (#2257) 2022-12-30 21:33:39 +01:00
Lea Anthony
908aecfd1c
Update Changelog 2022-12-30 15:58:11 +11:00
Lea Anthony
0aa056fcc5
Bump version to v2.3.1 2022-12-30 07:38:22 +11:00
Lea Anthony
1b2bc8ee27 Remove old docs 2022-12-29 16:00:10 +11:00
Lea Anthony
f01e1e5bda Update docs to v2.3.0 2022-12-29 15:59:38 +11:00
Lea Anthony
5c0f1e409d Fix crowdin client code 2022-12-29 12:34:43 +11:00
Oleg Gulevskyy
fff0fd4d07
Website / Documentation - Slack to Discord (#2200)
* change slack to discord in footer

* change Slack to Discord in community guideline
2022-12-29 11:54:18 +11:00
Oleg Gulevskyy
d11b459486
refactor crowdin init to not throw without key (#2231) 2022-12-29 10:51:49 +11:00
Adam Tenderholt
52f872b65c
[binding] TS returns Promise<void> when go returns error (#2247) 2022-12-28 22:32:29 +11:00
github-actions[bot]
0474a9e89a
chore: update sponsors.svg (#2236)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2022-12-26 16:00:25 +11:00
stffabi
2345d3b3c2
[assetHandler] Add request path checks (#2235) 2022-12-24 18:45:07 +11:00
stffabi
a312c0ffcb
[darwin] Add support for Request/Response streaming (#2219) 2022-12-20 13:44:33 +01:00
Vadim Shchepotev
e2f1429c67
Fix issue with anonymous structures (#2186)
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-12-20 22:54:11 +11:00
NullCode
04e92a813b
Update libwebkit package name for Fedora (#2218)
* Update libwebkit package name for Fedora

Fixes issue with `wails doctor` not detecting updated version of libwebkit on Fedora

* Keep existing libwebkit package

...for backwards compatibility

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-12-20 22:53:36 +11:00
Lea Anthony
d588c7a4d2
Bugfix/sync go mod (#2222)
* Add nosyncgomod flag

* Fix tests on unix

* Fix tests on unix
2022-12-20 22:15:36 +11:00
Lea Anthony
8067a1cedb
Add nosyncgomod flag (#2215)
* Add nosyncgomod flag

* Fix tests on unix
2022-12-20 22:08:02 +11:00
stffabi
7d61971f86
[darwin] Add support for file input selection (#2209)
This will show a message on the console
"+[CATransaction synchronize] called within transaction"
but there's seem no way to mitigate that. Still everything
works as expected.
2022-12-15 11:18:13 +01:00
github-actions[bot]
aa5875e8ca
chore: update sponsors.svg (#2207)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2022-12-15 20:57:34 +11:00
Oleg Gulevskyy
6b110c83e9
basic check if a specific commit is in use (#2107) 2022-12-14 23:06:37 +11:00
stffabi
006b0c65b4
[webview2loader] Add missing windows build constraint (#2201) 2022-12-13 13:51:01 +01:00
stffabi
55ca6c0bf3
[dev] Remove redundant steps that are also executed during build.Build (#2196)
* Remove redundant generation of bindings
* Remove redundant CreateEmbedDirectories
2022-12-13 13:44:00 +01:00
stffabi
4aab1e6b93
[webview2loader] Promote go loader from experimental to stable (#2199)
Default webview2loader is now the go loader
2022-12-13 23:27:50 +11:00
Lea Anthony
e57bfe002a
Fix right mouse button event (#2190) 2022-12-13 07:09:45 +11:00
Matt Holt
38ffbb3161
Trim spaces around version (#2197)
Co-authored-by: stffabi <stffabi@users.noreply.github.com>
2022-12-12 20:40:02 +01:00
stffabi
eb2d929824
[bindings] Pass ts_generation flags as env variable (#2194)
Otherwise this will clash if an app also uses flags internally
2022-12-11 07:38:06 +11:00
Vadim Shchepotev
7a22e0f885
Add dummy systray_mac to fix unit tests (#2187) 2022-12-10 19:57:11 +01:00
tk
3f077d9bdb
Update templates.mdx (#2184)
Add wails-template-naive
2022-12-07 18:50:22 +11:00
Lea Anthony
b84a2e5255
Windows tray menus (#2181)
* Add example

* Add windows systray

* Add gitkeep

* use windows.GUID
2022-12-06 20:55:56 +11:00
dependabot[bot]
0581ad03b1
Bump minimatch from 3.0.4 to 3.1.2 in /runtime/js (#2164)
Bumps [minimatch](https://github.com/isaacs/minimatch) from 3.0.4 to 3.1.2.
- [Release notes](https://github.com/isaacs/minimatch/releases)
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v3.0.4...v3.1.2)

---
updated-dependencies:
- dependency-name: minimatch
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-12-06 08:29:08 +11:00
dependabot[bot]
81aa376b09
Bump decode-uri-component from 0.2.0 to 0.2.2 in /runtime/js (#2179)
* Bump decode-uri-component from 0.2.0 to 0.2.2 in /runtime/js

Bumps [decode-uri-component](https://github.com/SamVerschueren/decode-uri-component) from 0.2.0 to 0.2.2.
- [Release notes](https://github.com/SamVerschueren/decode-uri-component/releases)
- [Commits](https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.2)

---
updated-dependencies:
- dependency-name: decode-uri-component
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update build-and-test.yml

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-12-06 08:28:36 +11:00
Travis McLane
d2339de5ff
chore: remove unreachable code (#2182)
pkg/menu/styledlabel.go:255:2: unreachable code
2022-12-06 08:27:48 +11:00
Misite Bao
f70d9de366
fix: fix go test errors (#2169)
* fix: fix go test errors

* Add flags to mac test

* Run on all branches

* Update PR workflow

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-12-06 06:45:06 +11:00
github-actions[bot]
606ce3de1d
chore: update sponsors.svg (#2180)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2022-12-04 14:05:37 +11:00
Lea Anthony
76f68aa392
Update sponsor-image workflow 2022-12-04 14:03:43 +11:00
Misite Bao
6d6e74e7f0
chore: fix-generate-sponsor (#2177)
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-12-04 13:58:08 +11:00
Lea Anthony
51b3488eac
Update build-and-test.yml 2022-12-04 13:26:58 +11:00
希嘉嘉
026bb7c02c
Added templates (#2178)
* Added  templates

vite + solid + js 
vite + solid + ts

* Update templates.mdx

Co-authored-by: Misite Bao <i@misitebao.com>
2022-12-04 09:30:28 +11:00
github-actions[bot]
5262153fa8
docs: sync documents (#2170)
Co-authored-by: misitebao <misitebao@users.noreply.github.com>
2022-12-03 22:32:08 +11:00
Fredrik Holmqvist
53f63f71a0
examples/customlayout: feature: add event listener for enter key (#2176) 2022-12-03 10:16:46 +11:00
Lea Anthony
dc209d1462
Fix build and test pipeline 2022-12-02 07:52:13 +11:00
Misite Bao
c1c1b8b8e6
chore: update-workflows (#2154)
* chore: merge test workflow

* chore: simplify sponsors image generation workflow

* chore: merge PR check workflow

* chore: merge push workflow

* chore: add auto sync translation document workflow

* chore: remove PR branch name check job

* chore: update go test job
2022-12-02 07:05:22 +11:00
stffabi
5cc012d763
[darwin] Inspector tools should also be included into a debug build (#2162) 2022-12-01 09:20:18 +01:00
Misite Bao
bd66451dd9
docs: fix and sync documents (#2140) 2022-12-01 19:18:59 +11:00
Lea Anthony
ea6aee91f1
Refactored build command (#2123)
* Refactored build command

* Update v2/cmd/wails/build.go

Co-authored-by: stffabi <stffabi@users.noreply.github.com>

* WIP

* Refactor `wails doctor`

* Refactor `wails dev`

* Refactor `wails dev`

* Fix merge conflict

* Fix test

* Update build_and_test.yml

Co-authored-by: stffabi <stffabi@users.noreply.github.com>
2022-12-01 18:18:02 +11:00
github-actions[bot]
9d53db4281
chore: update sponsors.svg (#2150)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2022-12-01 12:27:11 +11:00
stffabi
5418b879c4
[linux] Add support for WebKit2GTK 2.36+ features (#2151) 2022-11-30 11:04:12 +01:00
Lea Anthony
7f8952ebe5
Fix signal handler (#2152)
* Fix signal handler

* Update changelog
2022-11-30 20:37:55 +11:00
Aman
ac1e150315
Initial Mac App Store Guide (#2142)
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-11-29 20:03:45 +11:00
stffabi
3fb9169196
Fix compile error (#2147) 2022-11-29 20:01:42 +11:00
stffabi
993f87af97
[assetserver] Add support for serving the index.html file when requesting a directory (#2110)
* [assets] Improve error message if no `index.html` could be found in the assets

* [assetoptions] Valide options that at least one property has been set

* [assetserver] Move defaultHTML handling for 404 from assethandler to assetserver

* [assetserver] Add support for serving the index.html file when requesting a directory

* [docs] Update changelog
2022-11-29 09:29:08 +01:00
Misite Bao
15b7d291f3
fix(cli): fix install error (#2146)
Fixed: https://github.com/wailsapp/wails/issues/2145
2022-11-29 19:26:49 +11:00
Misite Bao
73caeb9793
docs: fix and sync documents (#2135)
* docs: standardize JavaScript and TypeScript name writing

* docs: sync translated documents

* docs: fix broken link

* docs: sync translated documents
2022-11-28 20:13:22 +11:00
github-actions[bot]
6d975b965b
chore: update sponsors.svg (#2131)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2022-11-28 12:55:39 +11:00
Lea Anthony
6cd5edcc4d
More clarity around bug reports 2022-11-25 14:50:05 +11:00
Lea Anthony
3e8ae9835b
Small update to Mac troubleshooting guide 2022-11-24 21:38:16 +11:00
Oleg Gulevskyy
ca8a1fab36
Ability to define prefix / suffix for TS module (#2101)
* add tspostfix and tsprefix flags + organise under struct

* postifx -> suffix

* tsPrefix options on bindings struct

* pass prefix and suffix to the executable

* add support for CLI flags for generating module

* method to set TSpref/suff to bindings

* use passed ts prefix for typescriptify

* add brief Readme udpate to include new flags

* create reusable common flags

* use common flags instead of hardcoded text

* support tsprefix & suffix for dev

* add tsPrefix & tsSuffix for build cmd

* take pref & suff in account when gen d.ts

* export colorsful log functions into utils for reuse

* detect and warn the user about usage of reserved keyword

* fmt

* add TrimSpace on fn input

* refactor utils -> logutils

* add bindings -> ts_generation options to wailsjson parse

* use wailsjson for ts generation

* update warning message + extract to func

* remove suff/pref info from readme

* update json schema

* add tests for prefix and suffix case

* rename suffix method

* Update v2/internal/typescriptify/typescriptify.go

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>

* Update website/static/schemas/config.v2.json

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>

* Update website/static/schemas/config.v2.json

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>

* update changelog

* Minor tweaks

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-11-24 21:33:58 +11:00
Lea Anthony
c1c1bff7a4
Update changelog.mdx 2022-11-24 06:13:24 +11:00
Dieter Zhu
011d8e3094
Supplement the missing WindowSetAlwaysOnTop in runtime.d.ts and runtime.js (#2128) 2022-11-24 06:08:15 +11:00
stffabi
72aef804ef
[windows] Prevent a thin white line at the bottom of a frameless window (#2111)
This seems to be only a problem on some Windows versions.
2022-11-22 20:37:45 +11:00
Misite Bao
d0b403b9b8
docs: fix and sync documents (#2119)
* docs: fix Russian documents

* docs: sync French documents
2022-11-22 18:34:04 +11:00
dependabot[bot]
a1bff912a0
Bump loader-utils from 1.4.1 to 1.4.2 in /runtime/js (#2115)
Bumps [loader-utils](https://github.com/webpack/loader-utils) from 1.4.1 to 1.4.2.
- [Release notes](https://github.com/webpack/loader-utils/releases)
- [Changelog](https://github.com/webpack/loader-utils/blob/v1.4.2/CHANGELOG.md)
- [Commits](https://github.com/webpack/loader-utils/compare/v1.4.1...v1.4.2)

---
updated-dependencies:
- dependency-name: loader-utils
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-22 05:34:10 +11:00
Misite Bao
51a12131a4
feat(website): add translation progress (#2113)
* feat(website): add translation progress

* feat(website): add French and Portuguese to language list

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-11-21 22:19:34 +11:00
Misite Bao
91de3ab0c5
docs: update and sync documents (#2112)
* docs: update options documentation

* docs: sync documents

* docs: sync Korean, Russian, French and Portuguese documents

* docs: sync Chinese, Japanese and Korean documents
2022-11-21 22:13:43 +11:00
Oleg Gulevskyy
b3d7682efc
Fix multiple nested build/bin folders in dev mode (#2103)
* stop circular assigning to OutputFilename

* update changelog

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-11-19 10:04:46 +11:00
Misite Bao
ec56f8807f
docs: sync documents (#2083) 2022-11-18 22:11:25 +11:00
github-actions[bot]
8850b453d9
chore: update sponsors.svg (#2106)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2022-11-18 22:10:45 +11:00
Marvin Collins Hosea
a8bbce6a12
React Hash Router Links returns 404 (#2050)
The linked Hash Router link is not valid anymore and returns a 404.

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-11-17 20:19:24 +11:00
Christian Kilb
66dd310823
Update obfuscated.mdx (#2102)
Fixed a typo.
2022-11-17 20:01:54 +11:00
juju
29acbe3079
Update events.mdx (#2105) 2022-11-17 20:01:02 +11:00
cybertramp
ec82739df1
docs: Add README.ko.md (#2093)
* docs: Add README.ko.md

- Add korean version README
- Update 'README.ko.md' link in README.md

* Update README.zh-Hans.md

* Update README.ja.md

Co-authored-by: Misite Bao <i@misitebao.com>
2022-11-17 05:40:59 +11:00
stffabi
177d90497a
[assetserver] Add support for range requests if the fs.FS provides an io.Seeker (#2091)
This allows streaming audio and videos with range requests if the
platform webview supports it.
2022-11-15 07:19:25 +11:00
stffabi
efd209b7c5
[darwin] Show Xcode version in wails doctor (#2089) 2022-11-14 20:11:07 +11:00
Lea Anthony
236570909c
Rename bleeding edge -> local development (#2086) 2022-11-13 22:44:50 +11:00
stffabi
0607777bec
[darwin, inspector] Fix build (#2082) 2022-11-12 21:02:53 +11:00
stffabi
f6e46ac1c3
[debug] Introducing debug options for debug builds to allow opening the inspector on startup (#2080) 2022-11-12 19:51:54 +11:00
Antonio Cheong
e3e20bdb42
Reference NSIS as optional dependency and provide more info (#2070)
* Update system.go

* Update installation.mdx

* Update base docs
2022-11-12 18:36:57 +11:00
stffabi
6d0ae669f9
[dev] Fix noreload flag and only skip reloads triggered by assetdir (#2081) 2022-11-12 17:08:54 +11:00
Misite Bao
8c4c4a9df3
docs: sync documents (#2073)
* docs: fix document formatting

* docs: sync documents
2022-11-12 08:30:16 +11:00
github-actions[bot]
fc312a5f04
chore: update sponsors.svg (#2077)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2022-11-11 23:46:30 +11:00
Lea Anthony
d77b920ed5
Merge branch 'release/v2.2.0' 2022-11-09 22:33:01 +11:00
dependabot[bot]
4b57d55db2
Bump loader-utils from 1.4.0 to 1.4.1 in /runtime/js (#2068)
Bumps [loader-utils](https://github.com/webpack/loader-utils) from 1.4.0 to 1.4.1.
- [Release notes](https://github.com/webpack/loader-utils/releases)
- [Changelog](https://github.com/webpack/loader-utils/blob/v1.4.1/CHANGELOG.md)
- [Commits](https://github.com/webpack/loader-utils/compare/v1.4.0...v1.4.1)

---
updated-dependencies:
- dependency-name: loader-utils
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-09 22:29:37 +11:00
Lea Anthony
67e2a4bdeb
Update docs and changelog 2022-11-09 22:26:22 +11:00
Lea Anthony
f7c602c212
Update docs and changelog 2022-11-09 22:06:10 +11:00
Lea Anthony
0a7293d6b6
Update runtime 2022-11-09 21:22:32 +11:00
Misite Bao
4c840c07f2
docs: sync documents (#2063)
* docs: sync documents

* docs: fix document escape syntax
2022-11-09 06:25:18 +11:00
Sean Gosiaco
8ee493f48d
Added quasar-js and quasar-ts templates (#2062) 2022-11-08 20:34:05 +11:00
github-actions[bot]
95116912a2
chore: update sponsors.svg (#2054)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2022-11-06 15:32:15 +11:00
github-actions[bot]
55f76a291b
chore: update sponsors.svg (#2051)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2022-11-05 14:34:14 +11:00
github-actions[bot]
928bc75602
chore: update sponsors.svg (#2049)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2022-11-04 18:32:17 +11:00
Lea Anthony
18b2d315dd
Modularize wails (#2009)
Co-authored-by: stffabi <stffabi@users.noreply.github.com>
2022-11-03 21:21:40 +11:00
stffabi
0a1c05df16
[windows] Fix frameless maximizing in multi monitor setup (#2043) 2022-11-03 19:14:00 +11:00
github-actions[bot]
3d62681450
chore: update sponsors.svg (#2022)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2022-10-30 19:27:08 +11:00
stffabi
638caf72f0
[assetserver] Introduce middleware and extract options (#2016)
* [assetserver] Add support for HTTP Middlewares

* [dev] Disable frontend DevServer if no Assets has been defined and inform user

* [dev] Consistent WebSocket behaviour in dev and prod mode for assets handler and middleware

In prod mode we can't support WebSockets so make sure the
assets handler and middleware never see WebSockets in dev mode.

* [templates] Migrate to new AssetServer option

* [docs] Add assetserver.Options to the reference
2022-10-29 23:15:15 +02:00
Lea Anthony
4cd89e1507
Add Angular docs 2022-10-29 19:35:41 +11:00
github-actions[bot]
ac8ed94ae6
chore: update sponsors.svg (#2018)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2022-10-26 18:29:36 +11:00
Lea Anthony
52238f0fdd
Update Mac troubleshooting guide 2022-10-26 08:23:00 +11:00
Lea Anthony
6a12d01624
Update v2.1.0 release notes 2022-10-26 08:19:46 +11:00
Misite Bao
00864fa14f
docs: sync documents (#2013) 2022-10-26 08:02:36 +11:00
Lea Anthony
6d94cb4afe
Add installation error docs 2022-10-25 06:06:53 +11:00
Joshua Hull
9f751d66e0
Add single listener deregistration (#1969)
* Add single listener deregistration

* Return function to stop listening, updates types

* Add missing returns, improve documentation

* Duplicate interface in go

* Define eventName

* Use lo instead for filtering

* Move logger to Interface. Add sample test.

* Add vite test for events

* Add js test workflow

* Add corresponding go method to remove all events

* Update documentation

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-10-23 09:03:37 +11:00
Binyamin Aron Green
4bff4af2b0
Add JSON schema for config file (#1864)
* Add JSON schema for config file

* Fix typo in wails config schema

* Update wails.tmpl.json

* Update wails.tmpl.json

* Add reference to schema in docs

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-10-22 21:07:37 +11:00
ParkourLiu
dc65f77baf
repair panic (#1999)
* repair panic

* Add empty struct field test

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-10-22 21:04:49 +11:00
Will Andrews
c55f94a3dc
[Docs] Add troubleshooting guide for unable to start service (#2001)
* add troubleshooting

* moved

* Added to the docs repo

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-10-22 21:04:18 +11:00
Lea Anthony
b32069e4e4
Fix call in checkWebView2 2022-10-22 17:45:23 +11:00
github-actions[bot]
2fd704e47c
chore: update sponsors.svg (#2003)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2022-10-22 00:40:09 +11:00
stffabi
0a20c8db96
[webview2loader] Add full featured go implementation (#1974)
* [webview2loader] Add full featured go implementation

The new go loader can be activated with the exp_gowebview2loader build tag.

* [build] Add information for using the new webvie2loader
2022-10-22 00:29:16 +11:00
Will Andrews
38f6b8787f
[Docs] Add troubleshooting guide for unable to start service (#2000)
* add troubleshooting

* moved
2022-10-21 07:42:57 +11:00
Scott Opell
7fcb537f85
feature/turn off color terminal output of dev command (#1947)
* feat: Adds option to dev command to turn off color terminal output

* Update docs

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-10-20 21:11:20 +11:00
Misite Bao
8b07a0f582
chore: update workflows (#1977)
* chore: remove useless files

* chore: fix check path

* chore: add workflow to auto push to crowdin after website update

* fix: fix workflow config
2022-10-20 20:51:59 +11:00
Lea Anthony
3e73368540
Remove issue translator 2022-10-20 08:45:03 +11:00
github-actions[bot]
789a4e9bba
chore: update sponsors.svg (#1991)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2022-10-19 20:34:17 +11:00
stffabi
39addf2011
[dragging] Trim the css property value (#1989)
Webview2 on Windows returns a potential whitespace when defining the
style like this `style="--wails-draggable: drag"`. Whereas Darwin already
trims the value and returns "drag" and not " drag".
2022-10-18 10:28:59 +02:00
Lea Anthony
d9e077389c
Update changelog 2022-10-18 07:28:41 +11:00
Lea Anthony
94a936e3ad
Update changelog 2022-10-18 07:26:59 +11:00
Lea Anthony
639389022b
Update date 2022-10-18 07:24:10 +11:00
Lea Anthony
a5fba5b218
Release/v2.1.0 (#1988)
* Add changelog. Fix zoom docs. Add Info.dev.plist info

* Update build assets README.md

* Update changelog

* actions/checkout@v2 => v3

* Docs
2022-10-18 07:21:07 +11:00
Lea Anthony
96fa18846c
Feature/static analysis (#1983)
* Support parsing embed directives from package

* Validate `embed` directives on build

* `.gitkeep` -> `gitkeep`

* Make step silent. Fix for `wails dev`
2022-10-16 23:08:34 +11:00
Lyon
4d7959dd5b
fix: init command not listed in wails help message (#1976)
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-10-15 20:13:07 +11:00
cuigege
ef6263c164
Update events.mdx (#1979) 2022-10-15 20:08:25 +11:00
Misite Bao
7b501a8fd1
docs: sync documents (#1968)
* docs: update template description

* docs: sync documents
2022-10-15 10:29:31 +11:00
github-actions[bot]
24dbd71be0
chore: update sponsors.svg (#1973)
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2022-10-15 10:28:58 +11:00
Pierre Joye
f4adff1cb3
#1057 expose ZoomFactor get/set and add the respective windows only options (#1463)
* #1057 expose ZoomFactor get/set and add the respective windows only options

* Remove debug log, use IsZoomControlEnabled as well

* use math.float to/from 64bits functions instead

* Add new windows options ZoomFactor and IsZoomControlEnabled doc

* Grammar

* Update options.mdx

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-10-14 08:46:14 +11:00
Lea Anthony
7effede62b
Add support for Info.dev.plist (#1960) 2022-10-14 07:58:43 +11:00
stffabi
7f733d787f
[dev] Do not try to infer assetdir from fs.FS when a frontend dev server is in use (#1972) 2022-10-14 07:52:52 +11:00
Lea Anthony
2d4f7f4de8
Sort structs in models.ts. Fixes #1958 (#1961) 2022-10-14 07:50:22 +11:00
Lea Anthony
de1d032f10
Use swc + pnpm (#1966)
* Use swc + pnpm

* Upgrade deps
2022-10-13 21:22:57 +11:00
Lea Anthony
4ca0580ced
Chore/generate sponsors (#1965)
* Create PR

* chore: update sponsors.svg (#1964)

Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>

* Delete branch after merge

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: leaanthony <leaanthony@users.noreply.github.com>
2022-10-13 20:10:12 +11:00
Lea Anthony
855c74ff30
Make highlighted code line easier to read. Fixes #1951. 2022-10-12 21:43:28 +11:00
Lea Anthony
c62c915fdc
Run tests on approval 2022-10-12 21:12:16 +11:00
Rob Nice
c78f59bbc1
Add Elm Tailwind CSS community template (#1939)
* add link/description

* rename project
2022-10-11 19:22:24 +11:00
Valentin Trinqué
2a20049ea7
fix: Prevent type parsing to interfere with package name in typescript generation (#1942)
Before that fix:

The method...

```go
func (h *Handler) RespondToInteraction(interaction interactor.Interaction) {}
```

... would generate...

```ts
export function RespondToInteraction(arg1:number):Promise<Error>;
```

... because the `interaction` package starts with `int` and anything starting with `int` is interpreted as `number`.
2022-10-10 23:50:55 +11:00
Alex
504531f340
Update README.zh-Hans.md (#1949)
replace the star history chart with star-history.com
2022-10-10 00:15:36 +11:00
Scott Opell
eae90df323
fix for dev file watching missing some file updates due to platform oddities (#1946) 2022-10-09 20:27:24 +11:00
Lea Anthony
eee6797907
Add WindowExecJS method (#1927)
* Add WindowExecJS

* [devserver] Embed the base frontend into the DevServer struct

* Update docs

Co-authored-by: stffabi <stffabi@users.noreply.github.com>
2022-10-05 08:44:23 +11:00
JulioDRF
bd378b2e0f
Fix wails dev (#1931)
* Fix wails dev

* Pass wg as pointer to both goroutines in DevWebServer.Run

* Remove shutdown goroutine
2022-10-05 06:47:37 +11:00
Misite Bao
130f4cc36a
docs: sync documents (#1936) 2022-10-04 19:22:35 +11:00
Artur S
f3cbd383a3
add react-ts-vite-tailwind template (#1930) 2022-10-02 22:38:58 +11:00
Misite Bao
ef32ea2575
fix: remove the .git directory in the template (#1929)
fixed: https://github.com/wailsapp/wails/issues/1928
2022-10-02 21:03:11 +11:00
Lea Anthony
6a3b89d212
fix: exemption typo 2022-10-01 19:03:20 +10:00
JulioDRF
40e326a708
Fix binding generation special cases (#1902)
* Make binding.go easier to test

* Fix non-deterministic namespace order for bindings

* Add binding tests

* Fix nested import structs, non-string map keys, and escape invalid variable names

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-10-01 15:49:51 +10:00
Zámbó, Levente
de49b1f125
fix gtk_window_begin_resize_drag's mouse button (#1920)
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-10-01 15:45:37 +10:00
Zámbó, Levente
2690250378
Add window transparency for linux (#1926) 2022-10-01 15:44:38 +10:00
dependabot[bot]
32e9cb30bf
Bump github.com/labstack/echo/v4 from 4.7.2 to 4.9.0 in /v2 (#1924) 2022-09-30 22:00:01 +02:00
Zámbó, Levente
13532e00a0
add missing resize for framless window on linux (#1918)
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-09-30 08:51:08 +10:00
Lea Anthony
3ed0d69d61 Update generate-sponsor-image.yml 2022-09-30 08:41:49 +10:00
Richard Guay
d92e8d43c8
Adding Tutorial link (#1903)
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-09-30 08:40:30 +10:00
Lea Anthony
c05666af7b
Fix asset handler on linux 2022-09-30 08:34:32 +10:00
Lea Anthony
e7188e877f
Update build and test workflow 2022-09-30 08:27:22 +10:00
Lea Anthony
37954141cc
Update build_and_test.yml 2022-09-30 08:25:03 +10:00
Lea Anthony
d699e77c33
Update build and test workflow 2022-09-30 08:22:22 +10:00
Lea Anthony
60a59f12b2
Update build and test workflow 2022-09-30 08:15:20 +10:00
Misite Bao
5421f559df
docs: sync documents (#1907)
* fix(website): fix command flag name

* feat(website): sync translations
2022-09-30 07:17:34 +10:00
Zámbó, Levente
b1e04772d9
bugfix/linux framless window drag (#1916) 2022-09-30 00:06:11 +10:00
Lea Anthony
941218d1c8
Update README.md 2022-09-29 20:51:41 +10:00
Lea Anthony
b2069c871d
Refactor app (#1909)
* Application refactor

* [windows] refactor out main loop. Create new application struct. Refactor assethandler/assetserver signatures.

* Refactor darwin app

* Refactor app for linux

* Update v2/internal/frontend/assetserver/assethandler.go

Co-authored-by: stffabi <stffabi@users.noreply.github.com>

* Update v2/internal/frontend/assetserver/assethandler.go

Co-authored-by: stffabi <stffabi@users.noreply.github.com>

* Update v2/internal/frontend/assetserver/assetserver.go

Co-authored-by: stffabi <stffabi@users.noreply.github.com>

* Update v2/internal/frontend/assetserver/assetserver.go

Co-authored-by: stffabi <stffabi@users.noreply.github.com>

Co-authored-by: stffabi <stffabi@users.noreply.github.com>
2022-09-29 18:43:35 +10:00
Lea Anthony
e22cfc18c9
Update howdoesitwork.mdx 2022-09-28 08:32:14 +10:00
ALMAS
2d61278125
Update Chinese translation (#1894)
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-09-26 20:43:28 +10:00
Lea Anthony
9f81013530
chore: Update workflows 2022-09-26 18:00:38 +10:00
Lea Anthony
52845a7ca5
chore: Update release workflow 2022-09-26 17:54:56 +10:00
Lea Anthony
1571b10b84
Quote command arguments if they have a space (#1892) 2022-09-25 22:20:01 +10:00
stffabi
f5549db85d
[dev] Do not generate bindings in the dev app itself (#1899)
* [dev] Pass skip bindings to the building process

* [dev] Do not generate bindings in the dev app itself

This is done outside during `wails dev` bootstrapping and
fast regeneration seems to sometime cause locking problems
on Windows.
2022-09-25 21:21:41 +10:00
stffabi
953e67e7ed
[assetHandler] Remove redundant log prefix (#1896) 2022-09-24 18:03:16 +10:00
Arif Ali
73b9dead5d
obfuscated instead of obfuscate in the docs (#1895)
the option in the docs is the wrong flag you have to add a d at the end
2022-09-24 15:05:18 +10:00
Misite Bao
211eb52747
chore: update the label name in the issue template (#1893) 2022-09-24 11:50:57 +10:00
Lea Anthony
91d0d96359
Add issue translator (#1891) 2022-09-24 07:52:19 +10:00
Lea Anthony
fbf11aa088
Auto label project cards (#1881) 2022-09-23 14:16:34 +10:00
Lea Anthony
fd32734382
Add support for default No button (#1875)
* Add support for default No button

* Fix tests
2022-09-23 10:50:54 +10:00
Lea Anthony
48b3fb0f51
Add PR checks (#1879)
* Add PR checks

* Update PR workflow

* Update PR workflow

* Update PR workflow

* Add branch name check + doc check

* Update PR branch check

* Update PR branch check

* Update PR branch check
2022-09-23 08:52:01 +10:00
Lea Anthony
8bbbb0f148
Fix i18n blog 2022-09-22 18:34:04 +10:00
Lea Anthony
495c129ec6
Update blog 2022-09-22 11:27:40 +10:00
Lea Anthony
74133c9ae3
v2.0.0 2022-09-22 11:00:57 +10:00
Misite Bao
e9b2c15664
feat: optimize documentation website (#1849)
* fix(website): fix i18n configuration

* feat: add i18n file to auto generate code

* feat: move the crowdin configuration file to the website directory

* feat(website): add crowdin dependencies and scripts

* feat: add COC

* feat: use escape hatch syntax to wrap JSX code in MDX files

* feat: remove ach language

* feat: generate default language configuration

* feat: remove compare link

* feat: add COC link

* feat(website): update documentation

* feat: use escape hatch syntax to wrap JSX code in MDX files

* style: add prettier

* style: format mdx files

* chore: remove prettier command

* feat: update en docs

* feat: sync Chinese documents

* feat: update doc

* Update website/src/pages/coc.mdx

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-09-18 22:01:50 +10:00
Lea Anthony
d0a39349d4
Update release workflow 2022-09-18 08:56:13 +10:00
Lea Anthony
b93cdcd942
Releasetest/release workflow (#1869)
* Test release workflow

* Update release.yml

* Update release.yml

* add linux deps

* Update release.yml

* Update release.yml

* Update release.yml

* Update release.yml

* Update release.yml

* Update release.yml

* Update release.yml

* Update release.yml

* Update release.yml

* Fix: Misc tests

* Fix: Misc tests + linux build tags

* Fix: Bindings tests + move templates to pkg. Add json schema for templates

* Fix: template tests

* Add tests to release workflow. Test for go 1.18 + go 1.19
Fix: ignore .m files for non darwin builds. Fix watcher test. Fix warning in clilogger.

* Fix release pipeline

* Matrix for tests

* Rename templates to make tests work

* Update template test

* Debug template test

* Debug template test

* Debug template test

* Fix gitignore

* Update release.yml
2022-09-18 08:55:21 +10:00
Parvin Eyvazov
96ffe5b7b2
Update introduction.mdx (#1863) 2022-09-17 06:09:00 +10:00
stffabi
1026119eca
[templates] Use embed all to include all files (#1862)
Otherwise files prefixed with `.` and `_` won't get embedded.
2022-09-17 00:37:30 +10:00
Lea Anthony
f78476e051
Fix: lit template 2022-09-16 17:48:48 +10:00
Lea Anthony
124295a79c
Remove support for < Go 1.18 in wails doctor 2022-09-16 13:36:33 +10:00
Misite Bao
14adbc12aa
chore: update README and workflows (#1848)
* Update README

* Update crowdin.yml

* chore: update workflows and README

* fix: fix error

* feat: remove unnecessary content

* Update .github/workflows/build.yml

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-09-15 21:49:35 +10:00
Lea Anthony
28fd3cdba1
Fix link to runtime docs in introduction page 2022-09-15 21:11:12 +10:00
stffabi
f97f5bb602
[build] Fix buildtags parsing if only one tag is specified (#1858)
* [build] Fix buildtags parsing if only one tag is specified
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-09-15 17:04:00 +10:00
stffabi
f1dc9eb4ef
[cli] Add check for minimum required go version (#1853)
- Update out of sync go.mod with minimum go version
- Check for minimum go version during build with build constraint
  “internal/goversion/build_constraint.go:9:2: MinGoVersionRequired (constant "You need Go 1.18 or newer to compile this program" of type string) is not used”
2022-09-15 07:28:28 +10:00
stffabi
854bd9433d
[go] Bump minimum required go version to 1.18 (#1854) 2022-09-14 23:47:15 +10:00
Lea Anthony
e75fb53fa5
Fix version text v2.0.0-rc.1.1 2022-09-13 12:06:54 +10:00
Lea Anthony
847cd67077
v2.0.0-rc.1 (#1846)
* v2.0.0-rc.1

* Fix changelog jsx errors. Can't wait to get rid of jsx.
2022-09-13 11:47:13 +10:00
Lea Anthony
052b9222c1
Add garble support (#1793)
Co-authored-by: AlbinoDrought <sean@albinodrought.com>
Co-authored-by: stffabi <stffabi@users.noreply.github.com>
2022-09-13 10:05:37 +10:00
imgbot[bot]
eef99ee577
[ImgBot] Optimize images (#1812)
*Total -- 5,696.04kb -> 5,003.34kb (12.16%)

/v2/pkg/commands/build/internal/packager/icon32.png -- 7.95kb -> 2.95kb (62.83%)
/v2/internal/frontend/desktop/windows/winc/dock_topbottom.png -- 4.27kb -> 1.82kb (57.31%)
/assets/images/jetbrains-grayscale.png -- 102.85kb -> 52.29kb (49.16%)
/v2/internal/frontend/desktop/windows/winc/dock_topleft.png -- 3.47kb -> 1.88kb (45.81%)
/cmd/templates/svelte/frontend/public/favicon.png -- 3.05kb -> 1.91kb (37.45%)
/website/static/img/icon-windows-dark.svg -- 0.63kb -> 0.45kb (28.35%)
/v2/pkg/buildassets/build/appicon.png -- 174.74kb -> 129.52kb (25.88%)
/website/static/img/favicon.svg -- 0.99kb -> 0.76kb (23.37%)
/website/static/img/go_js.svg -- 4.49kb -> 3.45kb (23.14%)
/website/static/img/go_js_dark.svg -- 4.54kb -> 3.50kb (22.97%)
/cmd/templates/vuetify2-basic/frontend/src/assets/images/logo.png -- 300.95kb -> 234.35kb (22.13%)
/cmd/templates/vuetify-basic/frontend/src/assets/images/logo.png -- 300.95kb -> 234.35kb (22.13%)
/cmd/templates/create-react-app/frontend/src/logo.png -- 300.95kb -> 234.35kb (22.13%)
/cmd/templates/vuebasic/frontend/src/assets/images/logo.png -- 300.95kb -> 234.35kb (22.13%)
/cmd/templates/svelte/frontend/src/logo.png -- 300.95kb -> 234.35kb (22.13%)
/website/static/img/architecture.svg -- 3.83kb -> 3.04kb (20.6%)
/website/static/img/Terminal-icon-dark.svg -- 0.99kb -> 0.79kb (20.37%)
/website/static/img/Terminal-icon.svg -- 0.99kb -> 0.79kb (19.84%)
/website/static/img/wails-logo-textless.svg -- 4.11kb -> 3.40kb (17.31%)
/assets/images/pace.jpeg -- 3.06kb -> 2.55kb (16.57%)
/website/static/img/icon-apple-dark.svg -- 1.10kb -> 0.92kb (16.33%)
/website/static/img/Go_Logo_Blue.svg -- 2.20kb -> 1.86kb (15.21%)
/website/static/img/logo-dark.svg -- 7.19kb -> 6.18kb (14.12%)
/website/static/img/wails-logo-horizontal-dark.svg -- 6.29kb -> 5.41kb (14.02%)
/website/static/img/logo-light.svg -- 7.12kb -> 6.13kb (14%)
/website/static/img/wails-logo-horizontal.svg -- 6.22kb -> 5.36kb (13.87%)
/website/static/img/icon-windows.svg -- 0.42kb -> 0.39kb (8.14%)
/v2/cmd/wails/internal/commands/generate/template/base/frontend/dist/assets/images/logo-universal.png -- 146.83kb -> 136.42kb (7.09%)
/v2/cmd/wails/internal/commands/initialise/templates/templates/vue-ts/frontend/src/assets/images/logo-universal.png -- 146.83kb -> 136.42kb (7.09%)
/v2/cmd/wails/internal/commands/initialise/templates/templates/plain/frontend/src/assets/images/logo-universal.png -- 146.83kb -> 136.42kb (7.09%)
/assets/images/logo-universal.png -- 146.83kb -> 136.42kb (7.09%)
/v2/cmd/wails/internal/commands/initialise/templates/generate/assets/lit/frontend/src/assets/images/logo-universal.png -- 146.83kb -> 136.42kb (7.09%)
/v2/cmd/wails/internal/commands/initialise/templates/templates/react-ts/frontend/src/assets/images/logo-universal.png -- 146.83kb -> 136.42kb (7.09%)
/v2/cmd/wails/internal/commands/initialise/templates/generate/assets/common/frontend/src/assets/images/logo-universal.png -- 146.83kb -> 136.42kb (7.09%)
/v2/cmd/wails/internal/commands/initialise/templates/templates/lit-ts/frontend/src/assets/images/logo-universal.png -- 146.83kb -> 136.42kb (7.09%)
/v2/cmd/wails/internal/commands/initialise/templates/templates/svelte-ts/frontend/src/assets/images/logo-universal.png -- 146.83kb -> 136.42kb (7.09%)
/v2/cmd/wails/internal/commands/initialise/templates/templates/lit/frontend/src/assets/images/logo-universal.png -- 146.83kb -> 136.42kb (7.09%)
/v2/cmd/wails/internal/commands/initialise/templates/templates/svelte/frontend/src/assets/images/logo-universal.png -- 146.83kb -> 136.42kb (7.09%)
/v2/cmd/wails/internal/commands/initialise/templates/templates/preact/frontend/src/assets/images/logo-universal.png -- 146.83kb -> 136.42kb (7.09%)
/v2/cmd/wails/internal/commands/initialise/templates/generate/assets/preact/frontend/src/assets/images/logo-universal.png -- 146.83kb -> 136.42kb (7.09%)
/v2/cmd/wails/internal/commands/initialise/templates/generate/plain/frontend/src/assets/images/logo-universal.png -- 146.83kb -> 136.42kb (7.09%)
/v2/cmd/wails/internal/commands/initialise/templates/templates/react/frontend/src/assets/images/logo-universal.png -- 146.83kb -> 136.42kb (7.09%)
/v2/cmd/wails/internal/commands/initialise/templates/templates/vanilla/frontend/src/assets/images/logo-universal.png -- 146.83kb -> 136.42kb (7.09%)
/v2/cmd/wails/internal/commands/initialise/templates/templates/vue/frontend/src/assets/images/logo-universal.png -- 146.83kb -> 136.42kb (7.09%)
/v2/cmd/wails/internal/commands/initialise/templates/generate/assets/react/frontend/src/assets/images/logo-universal.png -- 146.83kb -> 136.42kb (7.09%)
/v2/cmd/wails/internal/commands/initialise/templates/templates/vanilla-ts/frontend/src/assets/images/logo-universal.png -- 146.83kb -> 136.42kb (7.09%)
/v2/cmd/wails/internal/commands/initialise/templates/templates/preact-ts/frontend/src/assets/images/logo-universal.png -- 146.83kb -> 136.42kb (7.09%)
/v2/cmd/wails/internal/commands/initialise/templates/generate/assets/vue/frontend/src/assets/images/logo-universal.png -- 146.83kb -> 136.42kb (7.09%)
/cmd/templates/vue3-js/frontend/src/assets/logo.png -- 6.69kb -> 6.33kb (5.4%)
/v2/cmd/wails/internal/commands/initialise/templates/templates/preact/frontend/src/assets/preact.svg -- 1.57kb -> 1.49kb (4.99%)
/website/static/img/icon-apple.svg -- 0.76kb -> 0.72kb (4.52%)
/website/static/img/desktop-application-app-dark.svg -- 4.56kb -> 4.37kb (4.34%)
/website/static/img/desktop-application-app.svg -- 4.54kb -> 4.35kb (4.34%)
/website/static/img/logo.svg -- 6.55kb -> 6.29kb (4.05%)
/website/static/img/vitejs.svg -- 3.76kb -> 3.62kb (3.79%)
/cmd/templates/create-react-app/frontend/public/logo512.png -- 175.92kb -> 169.55kb (3.62%)
/v2/pkg/commands/build/internal/packager/icon128.png -- 16.10kb -> 15.52kb (3.58%)
/cmd/templates/vue3-full/frontend/src/assets/appicon.png -- 105.56kb -> 101.81kb (3.56%)
/cmd/packages/darwin/icon.png -- 105.56kb -> 101.81kb (3.56%)
/cmd/templates/vue3-js/frontend/src/assets/appicon.png -- 105.56kb -> 101.81kb (3.56%)
/cmd/packages/windows/icon.png -- 105.56kb -> 101.81kb (3.56%)
/cmd/templates/create-react-app/frontend/public/logo192.png -- 37.41kb -> 36.24kb (3.14%)
/cmd/templates/vuebasic/frontend/src/assets/fonts/roboto/roboto-v18-latin-regular.svg -- 47.83kb -> 46.81kb (2.13%)
/v2/pkg/commands/build/internal/packager/icon256.png -- 26.46kb -> 25.99kb (1.79%)
/website/static/img/icon-linux.svg -- 2.94kb -> 2.92kb (0.4%)

Signed-off-by: ImgBotApp <ImgBotHelp@gmail.com>

Signed-off-by: ImgBotApp <ImgBotHelp@gmail.com>
Co-authored-by: ImgBotApp <ImgBotHelp@gmail.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-09-12 21:57:07 +10:00
Lea Anthony
583b3cd1c3
New Crowdin updates (#1800)
* New translations markdown-page.md (Acholi)
[ci skip]

* New translations stats.mdx (Acholi)
[ci skip]

* New translations code.json (Acholi)
[ci skip]

* New translations options.json (Acholi)
[ci skip]

* New translations current.json (Acholi)
[ci skip]

* New translations version-v2.0.0-beta.43.json (Acholi)
[ci skip]

* New translations helloworld.mdx (Acholi)
[ci skip]

* New translations footer.json (Acholi)
[ci skip]

* New translations navbar.json (Acholi)
[ci skip]

* New translations emailit.mdx (Acholi)
[ci skip]

* New translations modalfilemanager.mdx (Acholi)
[ci skip]

* New translations linux.mdx (Acholi)
[ci skip]

* New translations scriptbar.mdx (Acholi)
[ci skip]

* New translations minecraftupdater.mdx (Acholi)
[ci skip]

* New translations faq.mdx (Acholi)
[ci skip]

* New translations community-guide.mdx (Acholi)
[ci skip]

* New translations vscode.mdx (Acholi)
[ci skip]

* New translations 2021-09-27-v2-beta1-release-notes.mdx (Acholi)
[ci skip]

* New translations _category_.json (Acholi)
[ci skip]

* New translations templates.mdx (Acholi)
[ci skip]

* New translations _category_.json (Acholi)
[ci skip]

* New translations troubleshooting.mdx (Acholi)
[ci skip]

* New translations windows-installer.mdx (Acholi)
[ci skip]

* New translations windows.mdx (Acholi)
[ci skip]

* New translations howdoesitwork.mdx (Acholi)
[ci skip]

* New translations introduction.mdx (Acholi)
[ci skip]

* New translations cli.mdx (Acholi)
[ci skip]

* New translations _category_.json (Acholi)
[ci skip]

* New translations _category_.json (Acholi)
[ci skip]

* New translations _category_.json (Acholi)
[ci skip]

* New translations _category_.json (Acholi)
[ci skip]

* New translations _category_.json (Acholi)
[ci skip]

* New translations window.mdx (Acholi)
[ci skip]

* New translations menus.mdx (Acholi)
[ci skip]

* New translations options.mdx (Acholi)
[ci skip]

* New translations project-config.mdx (Acholi)
[ci skip]

* New translations _category_.json (Acholi)
[ci skip]

* New translations browser.mdx (Acholi)
[ci skip]

* New translations dialog.mdx (Acholi)
[ci skip]

* New translations events.mdx (Acholi)
[ci skip]

* New translations intro.mdx (Acholi)
[ci skip]

* New translations log.mdx (Acholi)
[ci skip]

* New translations menu.mdx (Acholi)
[ci skip]

* New translations dogsapi.mdx (Acholi)
[ci skip]

* New translations templates.mdx (Chinese Simplified)
[ci skip]

* New translations templates.mdx (Russian)
[ci skip]

* New translations templates.mdx (Japanese)
[ci skip]

* New translations templates.mdx (Korean)
[ci skip]

* New translations troubleshooting.mdx (Chinese Simplified)
[ci skip]

* New translations templates.mdx (Acholi)
[ci skip]

* New translations encrypteasy.mdx (Japanese)
[ci skip]

* New translations wally.mdx (Korean)
[ci skip]

* New translations wally.mdx (Japanese)
[ci skip]

* New translations wally.mdx (Russian)
[ci skip]

* New translations wally.mdx (Chinese Simplified)
[ci skip]

* New translations wombat.mdx (Japanese)
[ci skip]

* New translations wombat.mdx (Korean)
[ci skip]

* New translations wombat.mdx (Russian)
[ci skip]

* New translations wombat.mdx (Chinese Simplified)
[ci skip]

* New translations ytd.mdx (Japanese)
[ci skip]

* New translations ytd.mdx (Korean)
[ci skip]

* New translations ytd.mdx (Russian)
[ci skip]

* New translations ytd.mdx (Chinese Simplified)
[ci skip]

* New translations encrypteasy.mdx (Korean)
[ci skip]

* New translations october.mdx (Japanese)
[ci skip]

* New translations encrypteasy.mdx (Russian)
[ci skip]

* New translations encrypteasy.mdx (Chinese Simplified)
[ci skip]

* New translations filehound.mdx (Japanese)
[ci skip]

* New translations filehound.mdx (Korean)
[ci skip]

* New translations filehound.mdx (Russian)
[ci skip]

* New translations filehound.mdx (Chinese Simplified)
[ci skip]

* New translations mollywallet.mdx (Japanese)
[ci skip]

* New translations mollywallet.mdx (Korean)
[ci skip]

* New translations mollywallet.mdx (Russian)
[ci skip]

* New translations mollywallet.mdx (Chinese Simplified)
[ci skip]

* New translations october.mdx (Korean)
[ci skip]

* New translations october.mdx (Russian)
[ci skip]

* New translations october.mdx (Chinese Simplified)
[ci skip]

* New translations optimus.mdx (Japanese)
[ci skip]

* New translations optimus.mdx (Korean)
[ci skip]

* New translations optimus.mdx (Russian)
[ci skip]

* New translations optimus.mdx (Chinese Simplified)
[ci skip]

* New translations portfall.mdx (Japanese)
[ci skip]

* New translations portfall.mdx (Korean)
[ci skip]

* New translations portfall.mdx (Russian)
[ci skip]

* New translations portfall.mdx (Chinese Simplified)
[ci skip]

* New translations scriptbar.mdx (Russian)
[ci skip]

* New translations emailit.mdx (Japanese)
[ci skip]

* New translations emailit.mdx (Korean)
[ci skip]

* New translations emailit.mdx (Russian)
[ci skip]

* New translations emailit.mdx (Chinese Simplified)
[ci skip]

* New translations modalfilemanager.mdx (Japanese)
[ci skip]

* New translations modalfilemanager.mdx (Korean)
[ci skip]

* New translations modalfilemanager.mdx (Russian)
[ci skip]

* New translations modalfilemanager.mdx (Chinese Simplified)
[ci skip]

* New translations scriptbar.mdx (Japanese)
[ci skip]

* New translations scriptbar.mdx (Korean)
[ci skip]

* New translations scriptbar.mdx (Chinese Simplified)
[ci skip]

* New translations minecraftupdater.mdx (Japanese)
[ci skip]

* New translations minecraftupdater.mdx (Korean)
[ci skip]

* New translations minecraftupdater.mdx (Russian)
[ci skip]

* New translations minecraftupdater.mdx (Chinese Simplified)
[ci skip]

* New translations troubleshooting.mdx (Chinese Simplified)
[ci skip]

* New translations optimus.mdx (Acholi)
[ci skip]

* New translations portfall.mdx (Acholi)
[ci skip]

* New translations wally.mdx (Acholi)
[ci skip]

* New translations october.mdx (Acholi)
[ci skip]

* New translations mollywallet.mdx (Acholi)
[ci skip]

* New translations filehound.mdx (Acholi)
[ci skip]

* New translations encrypteasy.mdx (Acholi)
[ci skip]

* New translations wombat.mdx (Acholi)
[ci skip]

* New translations ytd.mdx (Acholi)
[ci skip]

* New translations scriptbar.mdx (Acholi)
[ci skip]

* New translations minecraftupdater.mdx (Acholi)
[ci skip]

* New translations modalfilemanager.mdx (Acholi)
[ci skip]

* New translations emailit.mdx (Acholi)
[ci skip]

* New translations troubleshooting.mdx (Japanese)
[ci skip]

* New translations troubleshooting.mdx (Korean)
[ci skip]

* New translations troubleshooting.mdx (Russian)
[ci skip]

* New translations troubleshooting.mdx (Chinese Simplified)
[ci skip]

* New translations troubleshooting.mdx (Acholi)
[ci skip]

* New translations troubleshooting.mdx (Chinese Simplified)
[ci skip]

* New translations troubleshooting.mdx (Chinese Simplified)
[ci skip]

* New translations building.mdx (Japanese)
[ci skip]

* New translations 2021-11-08-v2-beta2-release-notes.mdx (Japanese)
[ci skip]

* New translations howdoesitwork.mdx (Chinese Simplified)
[ci skip]

* New translations introduction.mdx (Japanese)
[ci skip]

* New translations introduction.mdx (Korean)
[ci skip]

* New translations introduction.mdx (Russian)
[ci skip]

* New translations introduction.mdx (Chinese Simplified)
[ci skip]

* New translations 2021-09-27-v2-beta1-release-notes.mdx (Japanese)
[ci skip]

* New translations 2021-09-27-v2-beta1-release-notes.mdx (Korean)
[ci skip]

* New translations 2021-09-27-v2-beta1-release-notes.mdx (Russian)
[ci skip]

* New translations 2021-09-27-v2-beta1-release-notes.mdx (Chinese Simplified)
[ci skip]

* New translations 2021-11-08-v2-beta2-release-notes.mdx (Korean)
[ci skip]

* New translations howdoesitwork.mdx (Korean)
[ci skip]

* New translations 2021-11-08-v2-beta2-release-notes.mdx (Russian)
[ci skip]

* New translations 2021-11-08-v2-beta2-release-notes.mdx (Chinese Simplified)
[ci skip]

* New translations 2022-02-22-v2-beta3-release-notes.mdx (Japanese)
[ci skip]

* New translations 2022-02-22-v2-beta3-release-notes.mdx (Korean)
[ci skip]

* New translations 2022-02-22-v2-beta3-release-notes.mdx (Russian)
[ci skip]

* New translations 2022-02-22-v2-beta3-release-notes.mdx (Chinese Simplified)
[ci skip]

* New translations dogsapi.mdx (Japanese)
[ci skip]

* New translations dogsapi.mdx (Korean)
[ci skip]

* New translations dogsapi.mdx (Russian)
[ci skip]

* New translations dogsapi.mdx (Chinese Simplified)
[ci skip]

* New translations howdoesitwork.mdx (Russian)
[ci skip]

* New translations howdoesitwork.mdx (Japanese)
[ci skip]

* New translations building.mdx (Korean)
[ci skip]

* New translations ides.mdx (Chinese Simplified)
[ci skip]

* New translations building.mdx (Russian)
[ci skip]

* New translations building.mdx (Chinese Simplified)
[ci skip]

* New translations installation.mdx (Korean)
[ci skip]

* New translations dynamic-assets.mdx (Japanese)
[ci skip]

* New translations dynamic-assets.mdx (Korean)
[ci skip]

* New translations dynamic-assets.mdx (Russian)
[ci skip]

* New translations dynamic-assets.mdx (Chinese Simplified)
[ci skip]

* New translations ides.mdx (Japanese)
[ci skip]

* New translations ides.mdx (Korean)
[ci skip]

* New translations ides.mdx (Russian)
[ci skip]

* New translations windows-installer.mdx (Japanese)
[ci skip]

* New translations helloworld.mdx (Chinese Simplified)
[ci skip]

* New translations windows-installer.mdx (Korean)
[ci skip]

* New translations windows-installer.mdx (Russian)
[ci skip]

* New translations windows-installer.mdx (Chinese Simplified)
[ci skip]

* New translations options.mdx (Japanese)
[ci skip]

* New translations options.mdx (Korean)
[ci skip]

* New translations options.mdx (Russian)
[ci skip]

* New translations options.mdx (Chinese Simplified)
[ci skip]

* New translations helloworld.mdx (Japanese)
[ci skip]

* New translations helloworld.mdx (Korean)
[ci skip]

* New translations helloworld.mdx (Russian)
[ci skip]

* New translations building.mdx (Acholi)
[ci skip]

* New translations dynamic-assets.mdx (Acholi)
[ci skip]

* New translations ides.mdx (Acholi)
[ci skip]

* New translations windows-installer.mdx (Acholi)
[ci skip]

* New translations howdoesitwork.mdx (Acholi)
[ci skip]

* New translations introduction.mdx (Acholi)
[ci skip]

* New translations options.mdx (Acholi)
[ci skip]

* New translations helloworld.mdx (Acholi)
[ci skip]

* New translations 2021-09-27-v2-beta1-release-notes.mdx (Acholi)
[ci skip]

* New translations 2021-11-08-v2-beta2-release-notes.mdx (Acholi)
[ci skip]

* New translations 2022-02-22-v2-beta3-release-notes.mdx (Acholi)
[ci skip]

* New translations dogsapi.mdx (Acholi)
[ci skip]

* New translations troubleshooting.mdx (Japanese)
[ci skip]

* New translations troubleshooting.mdx (Korean)
[ci skip]

* New translations troubleshooting.mdx (Russian)
[ci skip]

* New translations troubleshooting.mdx (Chinese Simplified)
[ci skip]

* New translations window.mdx (Japanese)
[ci skip]

* New translations window.mdx (Korean)
[ci skip]

* New translations window.mdx (Russian)
[ci skip]

* New translations window.mdx (Chinese Simplified)
[ci skip]

* New translations troubleshooting.mdx (Acholi)
[ci skip]

* New translations window.mdx (Acholi)
[ci skip]

* New translations troubleshooting.mdx (Chinese Simplified)
[ci skip]

* New translations installation.mdx (Korean)
[ci skip]

* New translations troubleshooting.mdx (Japanese)
[ci skip]

* New translations troubleshooting.mdx (Korean)
[ci skip]

* New translations troubleshooting.mdx (Russian)
[ci skip]

* New translations troubleshooting.mdx (Chinese Simplified)
[ci skip]

* New translations window.mdx (Japanese)
[ci skip]

* New translations window.mdx (Korean)
[ci skip]

* New translations window.mdx (Russian)
[ci skip]

* New translations window.mdx (Chinese Simplified)
[ci skip]

* New translations navbar.json (Japanese)
[ci skip]

* New translations troubleshooting.mdx (Acholi)
[ci skip]

* New translations navbar.json (Chinese Simplified)
[ci skip]

* New translations navbar.json (Russian)
[ci skip]

* New translations navbar.json (Korean)
[ci skip]

* New translations navbar.json (Acholi)
[ci skip]

* New translations events.mdx (Japanese)
[ci skip]

* New translations events.mdx (Korean)
[ci skip]

* New translations events.mdx (Russian)
[ci skip]

* New translations events.mdx (Chinese Simplified)
[ci skip]

* New translations events.mdx (Acholi)
[ci skip]

* New translations howdoesitwork.mdx (Japanese)
[ci skip]

* New translations building.mdx (Korean)
[ci skip]

* New translations development.mdx (Korean)
[ci skip]

* New translations overscroll.mdx (Japanese)
[ci skip]

* New translations overscroll.mdx (Korean)
[ci skip]

* New translations overscroll.mdx (Russian)
[ci skip]

* New translations overscroll.mdx (Chinese Simplified)
[ci skip]

* New translations introduction.mdx (Korean)
[ci skip]

* New translations overscroll.mdx (Acholi)
[ci skip]

* New translations bleeding-edge.mdx (Japanese)
[ci skip]

* New translations bleeding-edge.mdx (Korean)
[ci skip]

* New translations bleeding-edge.mdx (Russian)
[ci skip]

* New translations bleeding-edge.mdx (Chinese Simplified)
[ci skip]

* New translations bleeding-edge.mdx (Acholi)
[ci skip]

* New translations introduction.mdx (Korean)
[ci skip]

* New translations introduction.mdx (Korean)
[ci skip]

* New translations troubleshooting.mdx (Japanese)
[ci skip]

* New translations troubleshooting.mdx (Korean)
[ci skip]

* New translations troubleshooting.mdx (Russian)
[ci skip]

* New translations troubleshooting.mdx (Chinese Simplified)
[ci skip]

* New translations howdoesitwork.mdx (Japanese)
[ci skip]

* New translations troubleshooting.mdx (Acholi)
[ci skip]

* New translations frameless.mdx (Japanese)
[ci skip]

* New translations frameless.mdx (Korean)
[ci skip]

* New translations frameless.mdx (Russian)
[ci skip]

* New translations frameless.mdx (Chinese Simplified)
[ci skip]

* New translations options.mdx (Japanese)
[ci skip]

* New translations options.mdx (Korean)
[ci skip]

* New translations options.mdx (Russian)
[ci skip]

* New translations options.mdx (Chinese Simplified)
[ci skip]

* New translations frameless.mdx (Acholi)
[ci skip]

* New translations options.mdx (Acholi)
[ci skip]

* Fix issues again
2022-09-12 21:56:43 +10:00
Lea Anthony
dae1388f3b
Update docusaurus version 2022-09-12 21:13:13 +10:00
Lea Anthony
d23108a49e
Make draggable CSS property customisable (#1828)
Co-authored-by: stffabi <stffabi@users.noreply.github.com>
2022-09-10 14:33:35 +10:00
Lea Anthony
ec0e1cca58
Add macOS build failure help 2022-09-08 21:51:29 +10:00
Sean
85b8c3025d
fix: remove duplicate defs in win32/window.go (#1832)
Introduced in 70c484f603
2022-09-07 05:43:47 +10:00
Lea Anthony
6e35e9a3e4
Update PR testing docs 2022-09-06 08:04:51 +10:00
Lea Anthony
3920402017
Update overscroll CSS 2022-09-04 11:33:47 +10:00
Lea Anthony
58a2dbb42a
Update overscroll CSS 2022-09-04 11:33:08 +10:00
Lea Anthony
fca6e9e3d4
Better watcher (#1827)
* Better watcher

* Delete rogue code
2022-09-04 07:47:27 +10:00
SheetJSDev
53ebb67b72
Use Promise<void> when Go routine does not output (#1821) 2022-09-03 09:56:18 +10:00
Zámbó, Levente
7816b0b67f
[v2] feature: make EventsOff capable of removing multiple listeners (#1822)
[v2] feature: add missing wrapper
2022-09-02 07:34:59 +10:00
Lea Anthony
01e46f0c24
Fix vue-ts template (#1813) 2022-08-31 23:28:55 +10:00
Misite Bao
3a7ef4c26d
fix: fix bugs in website (#1810)
* feat: remove useless configuration files

* fix: fix image tags

* fix: delete unnecessary files and fix file names

* fix: automatically generate translations using official tools

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-08-31 22:32:34 +10:00
Lea Anthony
961dc4ded6
Remove stats page 2022-08-31 20:00:22 +10:00
Kevin MacMartin
27f36a8edd
Only set GDK_BACKEND to "x11" if GDK_BACKEND is unset and XDG_SESSION_TYPE is not "wayland" (#1811)
* Only set GDK_BACKEND to "x11" if GDK_BACKEND is unset and XDG_SESSION_TYPE is not "wayland"

* GDK_BACKEND should only be set if XDG_SESSION_TYPE is unset, "unspecified" or "x11"
2022-08-31 17:31:52 +10:00
Lea Anthony
ffb4a1360b
Add too many open files guide 2022-08-30 07:41:46 +10:00
ZanderCodes
70c484f603
Add Some WindowState (#1349)
* Add Check for WindowState IsMaximised, IsMinimized, IsNormal and IsFullscreen

Solve conflicts

# Conflicts:
#	v2/internal/frontend/desktop/darwin/WailsContext.m
#	v2/internal/frontend/desktop/darwin/frontend.go
#	v2/internal/frontend/desktop/linux/window.go
#	v2/internal/frontend/desktop/windows/window.go

* Add Check for WindowState IsMaximised, IsMinimized, IsNormal and IsFullscreen

Solve conflict
# Conflicts:
#	v2/pkg/runtime/window.go

* Forgot some function to use it

# Conflicts:
#	v2/internal/frontend/desktop/darwin/WailsContext.h
#	v2/internal/frontend/desktop/windows/win32/consts.go
#	v2/internal/frontend/desktop/windows/win32/window.go

* Modify the instructions

# Conflicts:
#	v2/internal/frontend/devserver/devserver.go

* Add Functions to DevServer

# Conflicts:
#	v2/internal/frontend/dispatcher/systemcalls.go
#	v2/internal/frontend/runtime/desktop/window.js
#	v2/internal/frontend/runtime/package-lock.json
#	v2/internal/frontend/runtime/runtime_prod_desktop.js
#	v2/internal/frontend/runtime/wrapper/runtime.d.ts
#	v2/internal/frontend/runtime/wrapper/runtime.js

* Add Callback and JavaScript Functions

# Conflicts:
#	v2/cmd/wails/internal/commands/initialise/templates/generate/assets/common/frontend/wailsjs/runtime/runtime.js
#	v2/internal/frontend/runtime/package-lock.json
#	v2/internal/frontend/runtime/runtime_dev_desktop.js

* Remove Merge lines

* Fix IsMaximised

* Add WindowState Docs

* Update docs

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-08-30 06:52:01 +10:00
Lea Anthony
d70d8055cc
Update README 2022-08-29 20:51:14 +10:00
Lea Anthony
cdf4927e58
Optimise images part 2 2022-08-29 20:19:43 +10:00
Lea Anthony
96bf669d62
Optimise images 2022-08-28 20:55:36 +10:00
KiddoV
9287649e0b
Update templates.mdx (#1799)
* Update templates.mdx

* Update templates.mdx
2022-08-28 17:01:27 +10:00
Lea Anthony
92e85cd9b2
Update sponsors 2022-08-28 07:05:11 +10:00
Lea Anthony
c283c47be4
Update Sponsors 2022-08-27 20:45:07 +10:00
Lea Anthony
b5e98d5780
New Crowdin updates (#1726)
* New translations minecraftupdater.mdx (Korean)
[ci skip]

* New translations links.mdx (Korean)
[ci skip]

* New translations templates.mdx (Korean)
[ci skip]

* New translations _category_.json (Korean)
[ci skip]

* New translations developing-new-features.mdx (Korean)
[ci skip]

* New translations documenting.mdx (Korean)
[ci skip]

* New translations troubleshooting.mdx (Korean)
[ci skip]

* New translations windows-installer.mdx (Korean)
[ci skip]

* New translations faq.mdx (Korean)
[ci skip]

* New translations 2021-11-08-v2-beta2-release-notes.mdx (Korean)
[ci skip]

* New translations 2022-02-22-v2-beta3-release-notes.mdx (Korean)
[ci skip]

* New translations authors.yml (Korean)
[ci skip]

* New translations credits.mdx (Korean)
[ci skip]

* New translations markdown-page.md (Korean)
[ci skip]

* New translations stats.mdx (Korean)
[ci skip]

* New translations faq.mdx (Japanese)
[ci skip]

* New translations faq.mdx (Russian)
[ci skip]

* New translations introduction.mdx (Korean)
[ci skip]

* New translations faq.mdx (Chinese Simplified)
[ci skip]

* New translations options.json (Korean)
[ci skip]

* New translations current.json (Korean)
[ci skip]

* New translations version-v2.0.0-beta.38.json (Korean)
[ci skip]

* New translations version-v2.0.0-beta.39.json (Korean)
[ci skip]

* New translations footer.json (Korean)
[ci skip]

* New translations navbar.json (Korean)
[ci skip]

* New translations 2021-09-27-v2-beta1-release-notes.mdx (Korean)
[ci skip]

* New translations howdoesitwork.mdx (Korean)
[ci skip]

* New translations windows.mdx (Korean)
[ci skip]

* New translations log.mdx (Korean)
[ci skip]

* New translations _category_.json (Korean)
[ci skip]

* New translations linux.mdx (Korean)
[ci skip]

* New translations _category_.json (Korean)
[ci skip]

* New translations browser.mdx (Korean)
[ci skip]

* New translations dialog.mdx (Korean)
[ci skip]

* New translations events.mdx (Korean)
[ci skip]

* New translations intro.mdx (Korean)
[ci skip]

* New translations menu.mdx (Korean)
[ci skip]

* New translations _category_.json (Korean)
[ci skip]

* New translations window.mdx (Korean)
[ci skip]

* New translations cli.mdx (Korean)
[ci skip]

* New translations _category_.json (Korean)
[ci skip]

* New translations menus.mdx (Korean)
[ci skip]

* New translations options.mdx (Korean)
[ci skip]

* New translations project-config.mdx (Korean)
[ci skip]

* New translations _category_.json (Korean)
[ci skip]

* New translations helloworld.mdx (Korean)
[ci skip]

* New translations code.json (Korean)
[ci skip]

* New translations developing-new-features.mdx (Chinese Simplified)
[ci skip]

* New translations firstproject.mdx (Japanese)
[ci skip]

* New translations firstproject.mdx (Russian)
[ci skip]

* New translations firstproject.mdx (Chinese Simplified)
[ci skip]

* New translations installation.mdx (Japanese)
[ci skip]

* New translations installation.mdx (Russian)
[ci skip]

* New translations installation.mdx (Chinese Simplified)
[ci skip]

* New translations dynamic-assets.mdx (Japanese)
[ci skip]

* New translations dynamic-assets.mdx (Russian)
[ci skip]

* New translations dynamic-assets.mdx (Chinese Simplified)
[ci skip]

* New translations frameless.mdx (Japanese)
[ci skip]

* New translations frameless.mdx (Russian)
[ci skip]

* New translations frameless.mdx (Chinese Simplified)
[ci skip]

* New translations documenting.mdx (Japanese)
[ci skip]

* New translations documenting.mdx (Russian)
[ci skip]

* New translations frontend.mdx (Japanese)
[ci skip]

* New translations frontend.mdx (Russian)
[ci skip]

* New translations windows.mdx (Chinese Simplified)
[ci skip]

* New translations troubleshooting.mdx (Japanese)
[ci skip]

* New translations troubleshooting.mdx (Russian)
[ci skip]

* New translations troubleshooting.mdx (Chinese Simplified)
[ci skip]

* New translations windows-installer.mdx (Japanese)
[ci skip]

* New translations windows-installer.mdx (Russian)
[ci skip]

* New translations windows-installer.mdx (Chinese Simplified)
[ci skip]

* New translations dialog.mdx (Japanese)
[ci skip]

* New translations dialog.mdx (Russian)
[ci skip]

* New translations signing.mdx (Chinese Simplified)
[ci skip]

* New translations migrating.mdx (Russian)
[ci skip]

* New translations ides.mdx (Japanese)
[ci skip]

* New translations ides.mdx (Russian)
[ci skip]

* New translations ides.mdx (Chinese Simplified)
[ci skip]

* New translations migrating.mdx (Japanese)
[ci skip]

* New translations migrating.mdx (Chinese Simplified)
[ci skip]

* New translations signing.mdx (Russian)
[ci skip]

* New translations mouse-buttons.mdx (Japanese)
[ci skip]

* New translations mouse-buttons.mdx (Russian)
[ci skip]

* New translations mouse-buttons.mdx (Chinese Simplified)
[ci skip]

* New translations overscroll.mdx (Japanese)
[ci skip]

* New translations overscroll.mdx (Russian)
[ci skip]

* New translations routing.mdx (Japanese)
[ci skip]

* New translations routing.mdx (Russian)
[ci skip]

* New translations routing.mdx (Chinese Simplified)
[ci skip]

* New translations signing.mdx (Japanese)
[ci skip]

* New translations dialog.mdx (Chinese Simplified)
[ci skip]

* New translations project-config.mdx (Chinese Simplified)
[ci skip]

* New translations options.mdx (Chinese Simplified)
[ci skip]

* New translations howdoesitwork.mdx (Japanese)
[ci skip]

* New translations howdoesitwork.mdx (Russian)
[ci skip]

* New translations howdoesitwork.mdx (Chinese Simplified)
[ci skip]

* New translations 2021-09-27-v2-beta1-release-notes.mdx (Japanese)
[ci skip]

* New translations 2021-09-27-v2-beta1-release-notes.mdx (Russian)
[ci skip]

* New translations 2021-09-27-v2-beta1-release-notes.mdx (Chinese Simplified)
[ci skip]

* New translations 2021-11-08-v2-beta2-release-notes.mdx (Japanese)
[ci skip]

* New translations options.mdx (Russian)
[ci skip]

* New translations window.mdx (Japanese)
[ci skip]

* New translations menu.mdx (Japanese)
[ci skip]

* New translations menu.mdx (Russian)
[ci skip]

* New translations menu.mdx (Chinese Simplified)
[ci skip]

* New translations window.mdx (Russian)
[ci skip]

* New translations options.mdx (Japanese)
[ci skip]

* New translations cli.mdx (Chinese Simplified)
[ci skip]

* New translations menus.mdx (Japanese)
[ci skip]

* New translations menus.mdx (Russian)
[ci skip]

* New translations menus.mdx (Chinese Simplified)
[ci skip]

* New translations 2021-11-08-v2-beta2-release-notes.mdx (Russian)
[ci skip]

* New translations 2021-11-08-v2-beta2-release-notes.mdx (Chinese Simplified)
[ci skip]

* New translations emailit.mdx (Chinese Simplified)
[ci skip]

* New translations modalfilemanager.mdx (Chinese Simplified)
[ci skip]

* New translations 2022-02-22-v2-beta3-release-notes.mdx (Japanese)
[ci skip]

* New translations 2022-02-22-v2-beta3-release-notes.mdx (Russian)
[ci skip]

* New translations 2022-02-22-v2-beta3-release-notes.mdx (Chinese Simplified)
[ci skip]

* New translations credits.mdx (Japanese)
[ci skip]

* New translations credits.mdx (Russian)
[ci skip]

* New translations credits.mdx (Chinese Simplified)
[ci skip]

* New translations code.json (Korean)
[ci skip]

* New translations developing-new-features.mdx (Japanese)
[ci skip]

* New translations developing-new-features.mdx (Russian)
[ci skip]

* New translations ways-of-contributing.mdx (Japanese)
[ci skip]

* New translations documenting.mdx (Japanese)
[ci skip]

* New translations testing.mdx (Japanese)
[ci skip]

* New translations setting-up-a-dev-environment.mdx (Japanese)
[ci skip]

* New translations fixing-bugs.mdx (Japanese)
[ci skip]

* New translations helping-others.mdx (Japanese)
[ci skip]

* New translations ways-of-contributing.mdx (Russian)
[ci skip]

* New translations fixing-bugs.mdx (Chinese Simplified)
[ci skip]

* New translations documenting.mdx (Russian)
[ci skip]

* New translations documenting.mdx (Chinese Simplified)
[ci skip]

* New translations testing.mdx (Chinese Simplified)
[ci skip]

* New translations fixing-bugs.mdx (Russian)
[ci skip]

* New translations ways-of-contributing.mdx (Chinese Simplified)
[ci skip]

* New translations testing.mdx (Russian)
[ci skip]

* New translations helping-others.mdx (Russian)
[ci skip]

* New translations helping-others.mdx (Chinese Simplified)
[ci skip]

* New translations setting-up-a-dev-environment.mdx (Chinese Simplified)
[ci skip]

* New translations setting-up-a-dev-environment.mdx (Russian)
[ci skip]

* New translations developing-new-features.mdx (Chinese Simplified)
[ci skip]

* New translations current.json (Japanese)
[ci skip]

* New translations current.json (Russian)
[ci skip]

* New translations current.json (Chinese Simplified)
[ci skip]

* New translations version-v2.0.0-beta.44.json (Japanese)
[ci skip]

* New translations version-v2.0.0-beta.44.json (Russian)
[ci skip]

* New translations version-v2.0.0-beta.44.json (Chinese Simplified)
[ci skip]

* New translations version-v2.0.0-beta.43.json (Japanese)
[ci skip]

* New translations version-v2.0.0-beta.43.json (Russian)
[ci skip]

* New translations version-v2.0.0-beta.43.json (Chinese Simplified)
[ci skip]

* New translations installation.mdx (Korean)
[ci skip]

* New translations ways-of-contributing.mdx (Korean)
[ci skip]

* New translations testing.mdx (Korean)
[ci skip]

* New translations developing-new-features.mdx (Korean)
[ci skip]

* New translations documenting.mdx (Korean)
[ci skip]

* New translations fixing-bugs.mdx (Korean)
[ci skip]

* New translations helping-others.mdx (Korean)
[ci skip]

* New translations setting-up-a-dev-environment.mdx (Korean)
[ci skip]

* New translations current.json (Korean)
[ci skip]

* New translations options.json (Korean)
[ci skip]

* New translations version-v2.0.0-beta.44.json (Korean)
[ci skip]

* New translations version-v2.0.0-beta.43.json (Korean)
[ci skip]

* New translations footer.json (Korean)
[ci skip]

* New translations navbar.json (Korean)
[ci skip]

* New translations code.json (Korean)
[ci skip]

* New translations community-guide.mdx (Japanese)
[ci skip]

* New translations community-guide.mdx (Korean)
[ci skip]

* New translations community-guide.mdx (Russian)
[ci skip]

* New translations community-guide.mdx (Chinese Simplified)
[ci skip]

* New translations current.json (Japanese)
[ci skip]

* New translations current.json (Russian)
[ci skip]

* New translations current.json (Chinese Simplified)
[ci skip]

* New translations code.json (Japanese)
[ci skip]

* New translations code.json (Russian)
[ci skip]

* New translations code.json (Chinese Simplified)
[ci skip]

* New translations introduction.mdx (Korean)
[ci skip]

* New translations current.json (Korean)
[ci skip]

* New translations code.json (Korean)
[ci skip]

* New translations community-guide.mdx (Japanese)
[ci skip]

* New translations community-guide.mdx (Korean)
[ci skip]

* New translations community-guide.mdx (Russian)
[ci skip]

* New translations community-guide.mdx (Chinese Simplified)
[ci skip]

* New translations community-guide.mdx (Chinese Simplified)
[ci skip]

* New translations vscode.mdx (Japanese)
[ci skip]

* New translations vscode.mdx (Korean)
[ci skip]

* New translations vscode.mdx (Russian)
[ci skip]

* New translations vscode.mdx (Chinese Simplified)
[ci skip]

* New translations current.json (Chinese Simplified)
[ci skip]

* New translations riftshare.mdx (Chinese Simplified)
[ci skip]

* New translations surge.mdx (Chinese Simplified)
[ci skip]

* New translations wally.mdx (Chinese Simplified)
[ci skip]

* New translations encrypteasy.mdx (Chinese Simplified)
[ci skip]

* New translations filehound.mdx (Chinese Simplified)
[ci skip]

* New translations mollywallet.mdx (Chinese Simplified)
[ci skip]

* New translations optimus.mdx (Chinese Simplified)
[ci skip]

* New translations _category_.json (Chinese Simplified)
[ci skip]

* New translations emailit.mdx (Chinese Simplified)
[ci skip]

* New translations modalfilemanager.mdx (Chinese Simplified)
[ci skip]

* New translations browser.mdx (Chinese Simplified)
[ci skip]

* New translations vscode.mdx (Russian)
[ci skip]

* New translations vscode.mdx (Chinese Simplified)
[ci skip]

* New translations browser.mdx (Japanese)
[ci skip]

* New translations browser.mdx (Korean)
[ci skip]

* New translations browser.mdx (Russian)
[ci skip]

* New translations dialog.mdx (Japanese)
[ci skip]

* New translations vscode.mdx (Japanese)
[ci skip]

* New translations dialog.mdx (Korean)
[ci skip]

* New translations dialog.mdx (Russian)
[ci skip]

* New translations dialog.mdx (Chinese Simplified)
[ci skip]

* New translations events.mdx (Japanese)
[ci skip]

* New translations events.mdx (Korean)
[ci skip]

* New translations events.mdx (Russian)
[ci skip]

* New translations events.mdx (Chinese Simplified)
[ci skip]

* New translations intro.mdx (Japanese)
[ci skip]

* New translations intro.mdx (Korean)
[ci skip]

* New translations intro.mdx (Russian)
[ci skip]

* New translations vscode.mdx (Korean)
[ci skip]

* New translations intro.mdx (Chinese Simplified)
[ci skip]

* New translations log.mdx (Japanese)
[ci skip]

* New translations options.mdx (Russian)
[ci skip]

* New translations introduction.mdx (Japanese)
[ci skip]

* New translations options.mdx (Chinese Simplified)
[ci skip]

* New translations options.mdx (Korean)
[ci skip]

* New translations log.mdx (Korean)
[ci skip]

* New translations log.mdx (Russian)
[ci skip]

* New translations log.mdx (Chinese Simplified)
[ci skip]

* New translations menu.mdx (Japanese)
[ci skip]

* New translations menu.mdx (Korean)
[ci skip]

* New translations menu.mdx (Russian)
[ci skip]

* New translations menu.mdx (Chinese Simplified)
[ci skip]

* New translations window.mdx (Japanese)
[ci skip]

* New translations window.mdx (Korean)
[ci skip]

* New translations window.mdx (Russian)
[ci skip]

* New translations window.mdx (Chinese Simplified)
[ci skip]

* New translations options.mdx (Japanese)
[ci skip]

* New translations introduction.mdx (Korean)
[ci skip]

* New translations introduction.mdx (Russian)
[ci skip]

* New translations community-guide.mdx (Chinese Simplified)
[ci skip]

* New translations stats.mdx (Chinese Simplified)
[ci skip]

* New translations faq.mdx (Chinese Simplified)
[ci skip]

* New translations markdown-page.md (Chinese Simplified)
[ci skip]

* New translations introduction.mdx (Chinese Simplified)
[ci skip]

* New translations 2021-09-27-v2-beta1-release-notes.mdx (Chinese Simplified)
[ci skip]

* New translations version-v2.0.0-beta.44.json (Chinese Simplified)
[ci skip]

* Empty-Commit

* Fix crowdin screwups again
2022-08-27 20:17:15 +10:00
Debdut Karmakar
6c3418d199
preact-ts template build fix (#1781)
* preact imports

* Copy fix to template template(!). Remove unused Fragment.

* Fix template template!

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-08-27 16:42:33 +10:00
Lea Anthony
e67980ee39
Add dogs-api tutorial. Thanks @tatadan! 2022-08-27 16:27:23 +10:00
Lea Anthony
5a3af94772
Documentation update + refactor 2022-08-27 11:17:03 +10:00
stffabi
3632ef9dc8
[webviewloader] Use go implementation to retrieve the version of a fixed runtime (#1790)
* [webview2loader] Start porting of OpenWebView2Loader to go

* [webviewloader] Use go implementation to retrieve the version of a fixed runtime

This fixes a problem with the go-winloader and using GetAvailableCoreWebView2BrowserVersionString

Fixes #1569

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-08-27 09:29:09 +10:00
Zámbó, Levente
bbfb64a965
fix frontend/tsconfig.js (#1795)
change frontend/tsconfig.js to frontend/tsconfig.json.
2022-08-27 06:55:49 +10:00
Lea Anthony
e6c9b1350c
Vetur documentation 2022-08-26 20:25:29 +10:00
Misite Bao
5f7a413cf3
fix(website): fix link (#1785) 2022-08-24 06:22:48 +10:00
Misite Bao
18dae3c5f0
Reorganized contribution guidelines page (#1784)
* feat(website): update dependencies

* docs: reorganized contribution guidelines page

* feat(website): modify the side directory configuration

* chore: update issue documentation template and configuration
2022-08-23 23:49:23 +10:00
Yuki Shindo
fba9411235
Add README.ja.md (#1783)
* Add README.ja.md

* Fix text
2022-08-23 23:46:04 +10:00
Misite Bao
250c97e6a2
feat(website): change contribution guide type from "doc" to "page" (#1777) 2022-08-23 20:52:56 +10:00
Jae-Sung Lee
7da8b28d0b
Add Korean to doc (#1774)
* Add Korean

* remove other content
2022-08-22 20:42:00 +10:00
Misite Bao
791c13f29f
chore: sort out files (#1776)
* chore: organize resources and delete useless files

* chore: add CONTRIBUTING.md

* chore: update doc issue template

* docs: update and sync README
2022-08-22 20:02:27 +10:00
Misite Bao
cb6064ff39
feat(website): repair document content (#1775)
* docs: update changelog

* feat: update website config

* feat(website): add formatting configuration

* docs: fix image resource paths and format documents

* feat(website): update community guide page

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-08-22 19:59:28 +10:00
stffabi
7e030f3f2b
[webviewloader] Prevent env variables and registry overrides from changing behaviour (#1771) 2022-08-22 07:37:00 +02:00
Lea Anthony
3c69289013
Update generate.go 2022-08-20 15:01:33 +10:00
Lea Anthony
2de1421d83
Update preact template 2022-08-20 15:00:05 +10:00
Lea Anthony
317e0a6fef
Preact templates for vite 3 (#1770) 2022-08-20 14:55:07 +10:00
Lea Anthony
a9fcdd705e
Support vite3 for Vue (#1746) 2022-08-20 14:54:48 +10:00
Lea Anthony
4d51d9b742
Upgrade Lit to use Vite v3 (#1745)
* Upgrade Lit to use Vite v3

* Remove unused files
2022-08-20 14:54:27 +10:00
Lea Anthony
d9a535c393
Upgrade React to use Vite v3 (#1744) 2022-08-20 14:54:06 +10:00
Lea Anthony
3474d4e1e1
v2.0.0-beta.44.2 2022-08-20 13:51:26 +10:00
Lea Anthony
2466bb1fac
v2.0.0-beta.44.1 2022-08-20 13:47:50 +10:00
Niklas
f73c394010
doc: added minecraft updater as showcase (#1768) 2022-08-20 12:35:49 +10:00
Lea Anthony
c11c769c04
v2.0.0-beta.44 (updated) 2022-08-20 09:59:34 +10:00
Lea Anthony
58d3ffd241
v2.0.0-beta.44 2022-08-20 09:58:18 +10:00
Lea Anthony
ff52d4d5f0
Fix: tutorial.mdx styling 2022-08-20 09:05:30 +10:00
Giovanni Palma
c1c950e98c
Text outside style's brackets (#1765)
I deleted some text that was written outside the img tag

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-08-20 09:04:08 +10:00
Lea Anthony
2651d5d01a
Fix: Do not generate bindings for OnBeforeClose 2022-08-20 08:59:43 +10:00
stffabi
e353b49784
[docs] Link to general webview2 runtime download page and not to a specific language (#1764) 2022-08-18 21:58:21 +10:00
Lea Anthony
9ee3157780
Update website. Show deprecation notice for 2022-08-18 20:55:05 +10:00
Lea Anthony
f2568f1899
Experimental support for CSS Drag detection (#1750)
* Support CSS Drag

* Support CSS Drag as experimental option
2022-08-18 20:39:05 +10:00
Lea Anthony
a0c4c1ea58
Fix Crowdin screw ups again 2022-08-18 20:30:50 +10:00
Lea Anthony
5e2fd56bc9
Fix: Set file permissions for generated files (#1763) 2022-08-18 20:07:18 +10:00
Richard Guay
a93a3a2f60
Adding my ScriptBar program (#1761)
* Added EmailIt and Modal File Manager

* Added EmailIt and Modal File Manager

* Adding ScriptBar
2022-08-18 18:22:19 +10:00
Maicarons J
1e8ab4b2c1
doc: add react-router to routing.mdx (#1755) 2022-08-16 21:15:41 +10:00
allcontributors[bot]
24c45ee488
docs: add Maicarons2022 as a contributor for doc (#1756)
* docs: update website/src/pages/credits.mdx [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2022-08-16 21:15:30 +10:00
Lea Anthony
35aaf096d7
doc: Update licenses 2022-08-15 19:45:09 +10:00
Lea Anthony
35e961df12
doc: fix headers 2022-08-15 08:33:33 +10:00
Lea Anthony
07ec9fc0ec
New translations installation.mdx (Chinese Simplified)
[ci skip]
2022-08-13 22:25:20 +10:00
Lea Anthony
9167b8b2de
New translations credits.mdx (Chinese Simplified)
[ci skip]
2022-08-13 22:25:20 +10:00
Lea Anthony
04d19ea0cf
New translations modalfilemanager.mdx (Chinese Simplified)
[ci skip]
2022-08-13 22:25:20 +10:00
Lea Anthony
ceb747327b
New translations modalfilemanager.mdx (Russian)
[ci skip]
2022-08-13 22:25:20 +10:00
Lea Anthony
c501210c1b
New translations modalfilemanager.mdx (Japanese)
[ci skip]
2022-08-13 22:25:19 +10:00
Lea Anthony
e5c89cc8e1
New translations emailit.mdx (Chinese Simplified)
[ci skip]
2022-08-13 22:25:19 +10:00
Lea Anthony
f437f283bb
New translations emailit.mdx (Russian)
[ci skip]
2022-08-13 22:25:19 +10:00
Lea Anthony
1ee1b717f6
New translations emailit.mdx (Japanese)
[ci skip]
2022-08-13 22:25:19 +10:00
Lea Anthony
76d94fb497
New translations navbar.json (Chinese Simplified)
[ci skip]
2022-08-13 22:25:19 +10:00
Lea Anthony
1b2eefe2aa
New translations changelog.md (Chinese Simplified)
[ci skip]
2022-08-13 22:25:19 +10:00
Lea Anthony
534ddf2b14
New translations 2022-02-22-v2-beta3-release-notes.mdx (Chinese Simplified)
[ci skip]
2022-08-13 22:25:18 +10:00
Lea Anthony
b255eb9306
New translations 2022-02-22-v2-beta3-release-notes.mdx (Russian)
[ci skip]
2022-08-13 22:25:18 +10:00
Lea Anthony
844149cbe2
New translations 2022-02-22-v2-beta3-release-notes.mdx (Japanese)
[ci skip]
2022-08-13 22:25:18 +10:00
Lea Anthony
756002eb46
New translations 2021-11-08-v2-beta2-release-notes.mdx (Chinese Simplified)
[ci skip]
2022-08-13 22:25:18 +10:00
Lea Anthony
a791a0c5f2
New translations 2021-11-08-v2-beta2-release-notes.mdx (Russian)
[ci skip]
2022-08-13 22:25:18 +10:00
Lea Anthony
3dc681de17
New translations cli.mdx (Chinese Simplified)
[ci skip]
2022-08-13 22:25:18 +10:00
Lea Anthony
68c8bee24e
New translations options.mdx (Japanese)
[ci skip]
2022-08-13 22:25:17 +10:00
Lea Anthony
b920e718ab
New translations intro.mdx (Chinese Simplified)
[ci skip]
2022-08-13 22:25:17 +10:00
Lea Anthony
22f05248f7
New translations options.mdx (Russian)
[ci skip]
2022-08-13 22:25:17 +10:00
Lea Anthony
54d3bf22a3
New translations 2021-11-08-v2-beta2-release-notes.mdx (Japanese)
[ci skip]
2022-08-13 22:25:17 +10:00
Lea Anthony
a6c79d559e
New translations 2021-09-27-v2-beta1-release-notes.mdx (Chinese Simplified)
[ci skip]
2022-08-13 22:25:17 +10:00
Lea Anthony
4b2762c356
New translations 2021-09-27-v2-beta1-release-notes.mdx (Russian)
[ci skip]
2022-08-13 22:25:16 +10:00
Lea Anthony
80ef3dc3cb
New translations 2021-09-27-v2-beta1-release-notes.mdx (Japanese)
[ci skip]
2022-08-13 22:25:16 +10:00
Lea Anthony
31ca5ac9ed
New translations options.mdx (Chinese Simplified)
[ci skip]
2022-08-13 22:25:16 +10:00
Lea Anthony
25adfc9f51
New translations project-config.mdx (Chinese Simplified)
[ci skip]
2022-08-13 22:25:16 +10:00
Lea Anthony
61c9c4d685
New translations dialog.mdx (Chinese Simplified)
[ci skip]
2022-08-13 22:25:16 +10:00
Lea Anthony
d5d1fbc591
New translations signing.mdx (Japanese)
[ci skip]
2022-08-13 22:25:16 +10:00
Lea Anthony
1d857b2980
New translations signing.mdx (Russian)
[ci skip]
2022-08-13 22:25:15 +10:00
Lea Anthony
9f45a80523
New translations migrating.mdx (Chinese Simplified)
[ci skip]
2022-08-13 22:25:15 +10:00
Lea Anthony
144f6c906e
New translations ides.mdx (Chinese Simplified)
[ci skip]
2022-08-13 22:25:15 +10:00
Lea Anthony
cdb73a2134
New translations migrating.mdx (Russian)
[ci skip]
2022-08-13 22:25:15 +10:00
Lea Anthony
bcaf75851c
New translations signing.mdx (Chinese Simplified)
[ci skip]
2022-08-13 22:25:15 +10:00
Lea Anthony
b25a3c853e
New translations dialog.mdx (Russian)
[ci skip]
2022-08-13 22:25:15 +10:00
Lea Anthony
2efab049f0
New translations dialog.mdx (Japanese)
[ci skip]
2022-08-13 22:25:14 +10:00
Lea Anthony
102f91ca7b
New translations windows-installer.mdx (Chinese Simplified)
[ci skip]
2022-08-13 22:25:14 +10:00
Lea Anthony
d1f71a2b20
New translations troubleshooting.mdx (Chinese Simplified)
[ci skip]
2022-08-13 22:25:14 +10:00
Lea Anthony
f9c8dd1d2d
New translations windows.mdx (Chinese Simplified)
[ci skip]
2022-08-13 22:25:14 +10:00
Lea Anthony
d7ebb383e6
New translations building.mdx (Russian)
[ci skip]
2022-08-13 22:25:14 +10:00
Lea Anthony
ede69f8df9
New translations building.mdx (Japanese)
[ci skip]
2022-08-13 22:25:13 +10:00
Lea Anthony
226335e566
New translations building.mdx (Chinese Simplified)
[ci skip]
2022-08-13 22:25:13 +10:00
Lea Anthony
86f76f0de6
New translations dynamic-assets.mdx (Chinese Simplified)
[ci skip]
2022-08-13 22:25:13 +10:00
Lea Anthony
81c2e7cbb2
New translations bleeding-edge.mdx (Chinese Simplified)
[ci skip]
2022-08-13 22:25:13 +10:00
Lea Anthony
182a67b805
New translations installation.mdx (Chinese Simplified)
[ci skip]
2022-08-13 22:25:13 +10:00
Lea Anthony
a890f3148c
New translations installation.mdx (Russian)
[ci skip]
2022-08-13 22:25:13 +10:00
Lea Anthony
41291b4cb7
New translations installation.mdx (Japanese)
[ci skip]
2022-08-13 22:25:13 +10:00
Lea Anthony
4d5d212e1b
New translations firstproject.mdx (Chinese Simplified)
[ci skip]
2022-08-13 22:25:12 +10:00
Lea Anthony
f358fe410f
New translations firstproject.mdx (Russian)
[ci skip]
2022-08-13 22:25:12 +10:00
Lea Anthony
8ea167af21
New translations firstproject.mdx (Japanese)
[ci skip]
2022-08-13 22:25:12 +10:00
Lea Anthony
75e58d43e8
New translations developing-new-features.mdx (Chinese Simplified)
[ci skip]
2022-08-13 22:25:11 +10:00
Lea Anthony
6e85560817
doc: linux workaround for ended event in video tag 2022-08-13 17:04:41 +10:00
Lea Anthony
add21f6411
fix: handling of default folder for windows dialogs 2022-08-13 16:52:35 +10:00
Lea Anthony
4e05b2b8e8
docs: add guide to hide spawned windows 2022-08-13 16:43:04 +10:00
Richard Guay
57e4964a12
Added EmailIt and Modal File Manager (#1728)
* Added EmailIt and Modal File Manager

* Added EmailIt and Modal File Manager
2022-08-11 21:02:23 +10:00
Valentin Trinqué
cf3c65f0cc
Fix registration of exposed fields (#1727) 2022-08-11 08:41:37 +10:00
Lea Anthony
04094ddf19
New Crowdin updates (#1720) 2022-08-10 18:41:22 +10:00
Ryo TAGAMI
3f813aeb41
Add Japanese (#1716)
Co-authored-by: 田上 諒 <tagami@4thapp.jp>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-08-10 07:26:10 +10:00
Lea Anthony
0e2696f648
Update crowdin config 2022-08-10 07:22:10 +10:00
Lea Anthony
4385fea49b
skip ci on crowdin translations 2022-08-10 07:19:11 +10:00
Lea Anthony
9eea492928
Fixup translations
Fixup translations
2022-08-09 21:05:20 +10:00
Lea Anthony
ab37d633ed
New Crowdin updates (#1719) 2022-08-09 20:48:29 +10:00
Lea Anthony
a07cbf8685 Update Crowdin configuration file 2022-08-09 20:24:14 +10:00
Lea Anthony
ff86bbc471 Update Crowdin configuration file 2022-08-09 19:47:01 +10:00
Lea Anthony
4e49852bdb
Update crowdin.yml 2022-08-09 19:37:38 +10:00
Ian M. Jones
48cf03cb0d
Fix column widths for doctor command dependencies. (#1717)
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-08-09 17:54:03 +10:00
Lea Anthony
57c9158551
Chore/tidy up (#1713)
* Tidy up dev mode output

* Rename `appng` package to `app`

* Remove `crypto`,`parse`,`messagedispatcher`,`servicebus`,`runtime`,`subsystem`,`ffenestri` packages and `.vscode` dir

* Remove misc `fs` functions

* Remove `str` package

* Fix redundant alias
2022-08-09 07:42:11 +10:00
stffabi
c13c4a29f5
[v2, build] Bug fix collecting of output binaries for platforms (#1715) 2022-08-09 07:41:26 +10:00
Lea Anthony
ba11e5c6d6
Fix version number 2022-08-08 20:28:38 +10:00
Lea Anthony
62526a3e2b
Update release.go to auto-patch paths 2022-08-08 20:26:06 +10:00
Lea Anthony
fb7f84a033
docs fix 2022-08-08 20:11:39 +10:00
Lea Anthony
1955570264
v2.0.0-beta.43 2022-08-08 20:08:32 +10:00
Lea Anthony
d86daaa211
Allow frameless window to be miniturisable (#1705) 2022-08-08 17:28:11 +10:00
Lea Anthony
b6dee773c5
Attempted fix for both drag and doubleclick (#1704)
* Attempted fix for both drag and doubleclick

* Shameful hack for windows doubleclick events

* Handle end of drag

* Remove dbClickInterval
2022-08-08 17:27:23 +10:00
stffabi
833b6bdbb8
Merge pull request #1711
* [v2, dev] Improve error message for auto dev server discovery without…
2022-08-08 17:25:36 +10:00
stffabi
501f7a129e
[v2, dev] Build frontend only before starting the dev watcher command (#1694)
* [v2, dev] Improve logging of dev watcher command during stop

* [v2, dev] Build frontend only before starting the dev watcher command

Breaking Change: Ignore flags take precedence over Force flag.
2022-08-05 20:01:47 +10:00
Lea Anthony
0bb1c0202b
Update troubleshooting.mdx 2022-08-04 18:32:41 +10:00
LGiki
b33211495e
Change frontend:dev to frontend:dev:build (#1691) 2022-08-03 21:19:06 +10:00
Lea Anthony
baff28bb20
Bugfix/linux warnings (#1656)
* Use scaling when setting min/max window

* Fix compile issue. Add debug

* Fix scaling issue

* Fix window widget warnings & shutdown issue. Remove debug lines for linux

* Update dev build with shutdown fix
2022-08-03 21:17:38 +10:00
stffabi
42ef125fb4
[v2, build] gcflags don't need to be quoted (#1689)
This seemed to work for Go < 1.19 but since 1.19 this gives
an error.
2022-08-03 17:15:56 +10:00
LGiki
568015972a
Add frontend:dev:install configuration (#1666)
* Add frontend:dev:install configuration

* When building the frontend in dev mode, use `frontend:dev:install` (if it has been defined) to install the dependencies

* Simplified logic for determining installation command

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-08-03 17:15:22 +10:00
Lea Anthony
224f7c0c56
Move SetMin/Max calls to main thread (#1684)
* Move SetMin/MAx calls to main thread

* Move setsize back to original location

* Remove debug
2022-08-02 06:51:20 +10:00
Lea Anthony
6154bdac90
Add wails generate module to docs. 2022-08-01 20:11:49 +10:00
Lea Anthony
e9fc5c9d5c
Add support for retrieving the release notes from Github. (#1679)
* New command `show`. Adds support for retrieving the release notes from Github. Shown automatically after update.

* Improve code

* Don't show release notes by default, but show how to view them

* Add version flag for release notes

* Escape path
2022-08-01 20:05:05 +10:00
Sam Hennessy
cf985cacee
Update application-development.mdx (#1682) 2022-08-01 18:59:40 +10:00
stffabi
3d24a9b4c4
[v2, darwin] Assign a unique requestId to every WKWebView request (#1681)
This makes sure we always use the correct WKURLSchemeTask during
processURLResponse. Only using the URL is not unique enough and
might result in pending requests if two requests with the same URL
are getting processed.
2022-08-01 18:55:25 +10:00
Lea Anthony
d5574ba9d7
Improve colour scheme for light mode terminals 2022-07-31 09:15:20 +10:00
Lea Anthony
c58071be92
Improve template README 2022-07-30 12:31:19 +10:00
Lea Anthony
57f506fa66
Better "context is nil" errors 2022-07-30 09:20:18 +10:00
stffabi
de36477ddc
[v2, darwin] Use kern.osversion for os id in doctor (#1673)
It seems like kern.osrevision is always 199506 since several years
and kern.osversion maps to the official documented build id.

Example: MacOS 12.5 with ID 21G72
2022-07-29 05:43:48 +10:00
hiroki yagi
a224236b22
add wails-sveltekit-template (#1671) 2022-07-28 17:53:25 +10:00
stffabi
53e875d96f
[v2, darwin] Make sure to copy the uri during processURLRequest (#1668)
There's no guarantee that the pointer is still valid when
processURLRequest is finished. So we might end up with an
invalid pointer when the request is asynchronously processed.
2022-07-28 08:56:11 +02:00
Lea Anthony
17b17558e6
Update events.mdx 2022-07-28 05:20:19 +10:00
Lea Anthony
a229e04e3e
Windows dialogs - Handle scenario when window is not visible yet. (#1662)
* Handle scenario when window is not visible yet.

* Handle scenario when window is not visible yet for all dialogs
2022-07-27 19:38:56 +10:00
stffabi
229d36207c
[v2] Fix formatting of some error messages (#1665) 2022-07-27 19:20:30 +10:00
Lea Anthony
b9882eabe2
Update sponsors 2022-07-26 20:50:34 +10:00
Lea Anthony
6e0c2f7f79 Update Crowdin configuration file 2022-07-26 08:50:04 +10:00
Lea Anthony
8e21061e78
Remove debug info for linux 2022-07-26 08:29:00 +10:00
Lea Anthony
87b1d1d2aa
Updated changelog 2022-07-25 22:15:30 +10:00
Lea Anthony
6a474cec53
v2.0.0-beta.42 2022-07-25 22:13:25 +10:00
Lea Anthony
59cfe88628
v2.0.0-beta.41.2 2022-07-25 22:09:07 +10:00
Lea Anthony
e68b419cc8
Update changelog and version 2022-07-25 22:06:21 +10:00
stffabi
11d50c32bd
[dev] Ignore empty install command, we also do ignore it during the build step (#1651)
Otherwise we can't use `wails dev` for projects where `wails build` works, e.g. on the plain template.
2022-07-25 22:03:39 +10:00
Lea Anthony
a0b06c4700
Bugfix/devwatcher error (#1650)
* Fix error logging

* Fix building frontend on initial run of wails dev
2022-07-25 21:47:45 +10:00
Lea Anthony
7ea6f6d28e
Fix BackgroundColour documentation. Update changelog. Move contributors into website. Create changelog link. 2022-07-25 20:11:04 +10:00
Antonio Cheong
63b47cc852
Generalize manual compile steps (#1644)
`go build -tags desktop,production -ldflags "-w -s -H windowsgui"` returns an error on MacOS/Linux.
It is referenced in Wails CLI that manually only `-w -s` are passed by default.
2022-07-24 22:12:45 +10:00
Lea Anthony
ebb76d85ed
Update deprecation notice 2022-07-24 20:49:16 +10:00
Lea Anthony
8f431aa314
Add deprecation notice 2022-07-24 20:47:10 +10:00
Lea Anthony
cf01d7f2f7
Update credits 2022-07-24 20:43:23 +10:00
Lea Anthony
a43c077423
v2.0.0-beta.40 2022-07-24 20:33:23 +10:00
Lea Anthony
0f7bd65815
Update Svelte to Vite 3 (#1643)
Updates to svelte template.
Refactor url detector to strip ANSI codes at point of source
Ignore frontend if external dev server used.
[AssetServer] WebSockets can always directly be forwarded to the handler

Co-authored-by: stffabi <stffabi@users.noreply.github.com>

Co-authored-by: stffabi <stffabi@users.noreply.github.com>
2022-07-24 20:20:02 +10:00
Lea Anthony
7b656c49c2
Add -s support for wails dev (#1632)
* Add -s support for wails dev

* Ignore frontend if external dev server used.
2022-07-24 19:19:48 +10:00
Lea Anthony
ae756a8409
Use scaling when setting min/max window (#1557)
* Use scaling when setting min/max window

* Fix compile issue. Add debug

* Fix scaling issue
2022-07-23 17:15:22 +10:00
Antonio Cheong
f3516d0810
Deprecate Fullscreen appoption (#1640)
Add comments and notes to recommend WindowStartState: options.Fullscreen instead
2022-07-23 17:12:45 +10:00
allcontributors[bot]
f0b8ab2fb8
docs: add MyNameIsAres as a contributor for doc (#1638)
* docs: update README.md [skip ci]

* docs: update README.zh-Hans.md [skip ci]

* docs: update website/src/pages/credits.mdx [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2022-07-23 16:52:53 +10:00
MyNameIsAres
fad453da9c
📝 Fixed typo in documentation page howdoesitwork (#1636) 2022-07-23 10:54:35 +10:00
Lea Anthony
5a3d45b535
Override platform with GOOS and GOARCH (#1618)
* Override platform with GOOS and GOARCH

* Update v2/cmd/wails/internal/commands/build/build.go

Co-authored-by: stffabi <stffabi@users.noreply.github.com>

* Only use GOOS and GOARCH env vars for default target

* Update docs. Add dryrun flag for testing

* Update v2/cmd/wails/internal/commands/build/build.go

Co-authored-by: stffabi <stffabi@users.noreply.github.com>

* Fix scenario where no arch specified

* Fixed banner

Co-authored-by: stffabi <stffabi@users.noreply.github.com>
2022-07-21 21:25:57 +10:00
Misite Bao
ecdda0154f
docs: translate and correct documents (#1525)
* feat(website): write english translations

* docs(website): delete unnecessary files

* feat(website): update term translations

* docs(website): add Chinese documents

* chore(crowdin): update crowdin config

* docs(filename): keep the new document filename consistent with the old filename style

* chore: add documentation issue template
2022-07-21 20:51:48 +10:00
dependabot[bot]
b9a62b0224
Bump terser from 5.12.0 to 5.14.2 in /website (#1627)
Bumps [terser](https://github.com/terser/terser) from 5.12.0 to 5.14.2.
- [Release notes](https://github.com/terser/terser/releases)
- [Changelog](https://github.com/terser/terser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/terser/terser/commits)

---
updated-dependencies:
- dependency-name: terser
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-21 07:49:09 +10:00
dependabot[bot]
d945e02f62
Bump terser from 4.8.0 to 4.8.1 in /runtime/js (#1625)
Bumps [terser](https://github.com/terser/terser) from 4.8.0 to 4.8.1.
- [Release notes](https://github.com/terser/terser/releases)
- [Changelog](https://github.com/terser/terser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/terser/terser/commits)

---
updated-dependencies:
- dependency-name: terser
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-21 07:41:43 +10:00
Lea Anthony
9516a81e5d
Update Crowdin configuration file 2022-07-20 23:41:57 +10:00
Lea Anthony
c0800e362d Update Crowdin configuration file 2022-07-20 23:36:21 +10:00
Lea Anthony
73de035915 Update Crowdin configuration file 2022-07-20 23:27:05 +10:00
Lea Anthony
c9a7d3f520
Fix container size (#1616) 2022-07-20 21:28:53 +10:00
Lea Anthony
29912785fa
Add Show() and Hide() to runtime to show/hide application (#1599)
* Add Show() and Hide() to runtime to show/hide application

* Fix devserver

* Update API docs
2022-07-20 20:59:49 +10:00
Lea Anthony
b21a92ecdb
Install dev dependencies before starting dev mode (#1615) 2022-07-20 20:52:35 +10:00
stffabi
1f62b5773d
[v2] Fix plain template (#1609)
* [template] Add missing main.go file to plain template

* [dev] If wails could not be find in go.mod output a gracefull error message
2022-07-20 08:45:48 +10:00
Lea Anthony
848eee5a7c
v2.0.0-beta.39.2 2022-07-20 07:23:25 +10:00
Lea Anthony
461d0c4448
Add compatibility for Go1.17 (#1605) 2022-07-20 07:10:05 +10:00
Antonio
41126759cf
Update example for macOS Menu (#1600)
* Update example for macOS compatibility

Reference https://github.com/wailsapp/wails/issues/1588

* Add comments, remove duplicates
2022-07-20 05:32:31 +10:00
Lea Anthony
072c56da0d
Fix Varly link 2022-07-19 23:37:02 +10:00
Lea Anthony
b6713d4ce0
Fix Varly link 2022-07-19 23:35:51 +10:00
Lea Anthony
eea519224e
Fix docs again! 2022-07-19 21:51:37 +10:00
Lea Anthony
e9ae3e7655
Docs FTLOG 2022-07-19 21:38:31 +10:00
Lea Anthony
4f7c94e380
Fix docs for good 2022-07-19 21:33:05 +10:00
Lea Anthony
6effdf3fa8
fix docs again
(cherry picked from commit 0a9ae0dff3)
2022-07-19 21:07:48 +10:00
Lea Anthony
f7976a5c85
v2.0.0-beta.39 2022-07-19 20:58:11 +10:00
Lea Anthony
1c1eb89a53
Update sponsors. Improve website for mobile. 2022-07-19 18:53:10 +10:00
Lea Anthony
ab2a6f1d2d
use secondary button 2022-07-19 07:56:25 +10:00
Lea Anthony
14a4a05fc5
Docs/better homepage (#1591)
* Better carousel width

* Learn more button

* Learn more button

* Fix button/width

* Update introduction

* Fix outline colour

* remove custom css

* remove default css
2022-07-19 07:38:23 +10:00
stffabi
1247c8aa28
[windows] Fix stack corruption when using ICoreWebView2HttpHeadersCollectionIterator (#1589)
The API expects a `BOOL *` with `typedef int BOOL` therefore
we need to use a `int32` on the stack.
2022-07-18 18:57:30 +10:00
Lea Anthony
af1c530442
Remove usage of unsafe.Pointer in winc (#1556)
* Remove usage of unsafe.Pointer

* [windows] Remove MakeIntResource and add overloads for Load functions

* Fix `EnumProc` race condition.

* Refactor `EnumDisplayMonitors` to use `unsafe.Pointer` instead of `uintptr`

Co-authored-by: stffabi <stffabi@users.noreply.github.com>
2022-07-18 18:22:46 +10:00
Antonio
463f5b3cb7
Add troubleshooting for Not Found error (#1586)
Issues with Vite's optimizer
2022-07-18 18:20:14 +10:00
Lea Anthony
f46e825d24
Add pre-build hooks. Print command output when verbosity flag set. (#1578)
* Add pre-build hooks. Print command output when verbosity flag set.

* Refactor build hooks
2022-07-17 22:08:55 +10:00
Lea Anthony
8e43206ae5
Add restic-browser to showcase 2022-07-17 20:04:28 +10:00
Lea Anthony
ee988dfb9e
Update runtime 2022-07-16 12:37:56 +10:00
skamensky
04d35410de
Expose screen dimensions (#1519)
* get dimensions working for linux

* Cleaning up some GTK code

I was getting the following errors due to some bad casts.

Gdk-CRITICAL **: 18:58:51.943: gdk_monitor_get_geometry: assertion 'GDK_IS_MONITOR (monitor)' failed
Gdk-CRITICAL **: 18:58:51.943: gdk_display_get_monitor_at_window: assertion 'GDK_IS_DISPLAY (display)' failed

This commit fixes these errors

* Adding Screen namespace along with linux implementation

* moving ScreenGetAll into a more appropriate place

* Fixing typescript definition mistake, documentation, ordering of functions, and formatting

* add ScreenGetAll to more templates

* moving screen into its own javascript file

* fixing bug where screen objects are not returned from the runtime function

* rebuilding frontend wrapper package

* adding windows implementation of ScreenGetAll

* adding screen get all implementation for darwin

* reverting a change that is unrelated to the work on expose-dimensions

* removing duplicate comparison

* changing GetNthScreen in screen API on macos

To use frame instead of visibleframe to keep into account the space the the dock takes up
We want to include that space in the calculation in order to keep the sizes of screens consistent across platforms

* Correcting screen jsdoc

It used to say it returned a single screen object. Now it says that it returns an array of screen objects

* Fixing typo in function name

* reverting pointless spacing change

* reverting pointless spacing change

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
Co-authored-by: shmuel.kamensky <shmuel.kamensky@shutterfly.com>
2022-07-16 12:33:37 +10:00
Lea Anthony
6579cc3ce7
Fix all contributors section 2022-07-16 12:25:58 +10:00
Lea Anthony
aea482c221
Fix all contributors section 2022-07-16 12:11:18 +10:00
Lea Anthony
29a059a20f
Update all contributors section (#1575) 2022-07-16 12:07:36 +10:00
Lea Anthony
a098d3a071
Update all contributors section 2022-07-16 10:29:53 +10:00
Lea Anthony
c3f1f626f9
Fix badge 2022-07-16 10:22:38 +10:00
allcontributors[bot]
984dcda775
docs: add skamensky as a contributor for code, ideas, doc (#1574)
* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2022-07-16 10:20:42 +10:00
Lea Anthony
1121991e31
Add all contributors section 2022-07-16 10:18:28 +10:00
dependabot[bot]
60e4127b24
Bump svelte from 3.42.5 to 3.49.0 in /v2/internal/frontend/runtime (#1573)
Bumps [svelte](https://github.com/sveltejs/svelte) from 3.42.5 to 3.49.0.
- [Release notes](https://github.com/sveltejs/svelte/releases)
- [Changelog](https://github.com/sveltejs/svelte/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sveltejs/svelte/compare/v3.42.5...v3.49.0)

---
updated-dependencies:
- dependency-name: svelte
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-16 03:58:15 +10:00
dependabot[bot]
db7f24ff93
Bump svelte from 3.42.2 to 3.49.0 in /v2/internal/frontend/runtime/dev (#1572)
Bumps [svelte](https://github.com/sveltejs/svelte) from 3.42.2 to 3.49.0.
- [Release notes](https://github.com/sveltejs/svelte/releases)
- [Changelog](https://github.com/sveltejs/svelte/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sveltejs/svelte/compare/v3.42.2...v3.49.0)

---
updated-dependencies:
- dependency-name: svelte
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-16 03:58:05 +10:00
Lea Anthony
743d7cc4dd
Add stargazers 2022-07-15 17:19:01 +10:00
Lea Anthony
dedd2864f0
Update sponsors 2022-07-14 22:49:36 +10:00
Lea Anthony
12e6445a30
Fix loglevel for wails build -debug 2022-07-14 22:40:27 +10:00
Lea Anthony
931913a1d3
Update mouse-buttons.mdx 2022-07-14 22:27:48 +10:00
Lea Anthony
5987f17cca
Check for line length when scanning for local devserver url (#1566) 2022-07-14 22:22:26 +10:00
Lea Anthony
f068c33dcf
Add support for production log levels (#1555) 2022-07-14 21:45:13 +10:00
Lea Anthony
77db50a76a
Add mouse buttons guide 2022-07-14 21:35:21 +10:00
Lea Anthony
3ecd72d6c9
Add navigation from index.html troubleshooting guide 2022-07-14 21:13:02 +10:00
Lea Anthony
69016c6c6f
Fix OnBeforeClose code for Mac (#1558)
* Fix OnBeforeClose code for Mac

* Fix OnBeforeClose for linux
2022-07-14 21:04:45 +10:00
Ian M. Jones
82cc5498f1
Add nixpkgs support to doctor command. (#1551)
* Dependancy => Dependency typo fix.

* Add Nixpkgs support to doctor command.

* Add mention of nixpkgs to linux distro support doc.
2022-07-13 07:29:41 +10:00
Lea Anthony
51a7630cd7
Fix dynamic asset image 2022-07-12 21:45:37 +10:00
Lea Anthony
1dec40db33
Feature/auto devserver port (#1547)
* Support "auto" devserverurl
2022-07-12 21:41:41 +10:00
Lea Anthony
d1ae16ad3c
Add guide on dynamic assets 2022-07-12 21:38:18 +10:00
Ian M. Jones
095ef5ab64
Fix checking for installed apt package in none English session. (#1548) 2022-07-12 07:07:01 +10:00
Lea Anthony
1cbc34eff8
Fixes #1546 2022-07-11 20:56:05 +10:00
Lea Anthony
c82683babf
Update tutorial 2022-07-11 20:50:19 +10:00
Lea Anthony
d4662bd797
Support Maps in TS conversion (#1435) 2022-07-10 20:54:49 +10:00
Lea Anthony
55ec688331
Add helloworld tutorial 2022-07-10 15:07:42 +10:00
Lea Anthony
7a63464997
Update vscode template (#1398) 2022-07-08 20:33:49 +10:00
Lea Anthony
bf2d83d939
Change: Order of generated bindings now consistent
Closes #1531
2022-07-08 20:18:31 +10:00
Lea Anthony
1cd31573a9
change: improve cli output for wails update
closes #1528
2022-07-08 19:53:13 +10:00
Lea Anthony
39cebffa87
Fix: use correct json value for buildtype 2022-07-08 10:58:38 +10:00
Ian M. Jones
f4b4e4cdb8
Allow -appargs flag to pass flags to binary. (#1534) 2022-07-06 19:25:28 +10:00
Lea Anthony
73f5cc3b92
Update issue template with links 2022-07-05 08:50:05 +10:00
Lea Anthony
c48ad9be67
doc: white screen fix for Mac. Closes #1508 2022-07-05 08:44:26 +10:00
Lea Anthony
4726b72708
feature: Add -windowsconsole flag 2022-07-04 22:52:50 +10:00
Lea Anthony
4c312b155d
[docs] Update -debug flag 2022-07-04 22:33:03 +10:00
Lea Anthony
cd35536a79
[linux] Fix SetBackgroundColour 2022-07-04 22:29:51 +10:00
Lea Anthony
91d6c23c71
Updated contribution guide 2022-07-03 15:37:21 +10:00
Lea Anthony
59f84b8905
Development -> Contributing 2022-07-03 14:52:37 +10:00
Lea Anthony
a1a06a6198
Initial development guides 2022-07-03 12:06:35 +10:00
Lea Anthony
5292721517
Update Sponsors 2022-07-03 10:19:15 +10:00
stffabi
41d1bf3d10
[v2] Improvements to the dev command (#1510)
* [v2, darwin] Fix nullreference exception when dev watcher failed to start and the user stopped wails dev with ctrl-c

* [v2] Improve starting of dev watcher command

Wails dev now also fails if the dev watcher could not be started. Since
the dev watcher is used to start e.g. vite to serve the frontend, it does
not make much sense to let Wails dev be running if the dev
watcher failed to start.

* [v2] Improve killing and cleanup of debug binary

- Make sure to kill the debug process in all cases even if an error occured.
- Make sure to kill the last started binary process
2022-06-30 20:13:06 +10:00
Lea Anthony
3e42d2da05
Rename WindowSetRGBA -> WindowSetBackgroundColour (#1506)
* Rename WindowSetRGBA -> WindowSetBackgroundColour

* Fix Typos
2022-06-29 22:31:49 +10:00
Lea Anthony
7141c972fd
Move WindowGet* to main thread (#1464) 2022-06-29 20:07:16 +10:00
Lea Anthony
7cc3652a39
Updated docs. Closes #1501 2022-06-29 08:08:12 +10:00
Lea Anthony
95082336cd
changelog + doc fix 2022-06-27 21:09:07 +10:00
NYSSEN Michaël
b2cec41fbf
Fix lit-ts template (#1494)
* Fix lit-ts template

* Fixing generate Template

* Remove bad null check

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-06-27 20:56:18 +10:00
Lea Anthony
66f79c2e51
v2.0.0-beta.38 + release script 2022-06-27 20:41:09 +10:00
Lea Anthony
f8e6fa4bf3
Regenerate templates 2022-06-27 18:09:25 +10:00
Tom
d9888ce6af
Chore/react 18 create root (#1489)
* chore: use createRoot for react-ts

* chore: use createRoot for react-js

* fix: quotes

* fix: remove semi

* chore: update react templates to use createRoot instead of ReactDOM.render

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-06-27 18:00:04 +10:00
Lea Anthony
0531645377
Better signal handling (#1488)
* Better signal handling

* Remove waitgroup
2022-06-25 09:26:17 +10:00
Sidharth Rathi
c22f59adb9
Update templates.mdx (#1492)
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-06-25 09:21:02 +10:00
Nan0
2065600096
Feature: set browser path (#1448)
* Added option to specify webview2 path

* Added `manual` webview strategy

* Update documentation

* Fixed build with manual tag

* Check for browser directory existence

* Added version check for manually specified webview, removed fallback for installed webview in manual strategy

* Update WebviewBrowserPath documentation

* Replaced deprecated StringToUTF16Ptr

* Return on error

* Removed manual strategy, return error in wv2installer for fixed runtime

* Removed manual strategy from CLI
2022-06-25 07:49:00 +10:00
stffabi
c61ce1e2de
[v2, windows] Make SetBackgroundColour compatible for windows/386 (#1493)
* [v2, windows] Remove duplicate SetBackgroundColour

* [v2, windows] Make SetBackgroundColour compatible for windows/386
2022-06-25 06:46:23 +10:00
Lea Anthony
16581ceff9
Regenerate templates to use BackgroundColour 2022-06-23 20:30:18 +10:00
Lea Anthony
beb909fc0f Update README.md 2022-06-22 21:51:21 +10:00
Lea Anthony
5cddf8864e Add roadmap to docs 2022-06-22 21:39:40 +10:00
Lea Anthony
e504d1124a
Fix AlwaysOnTop code for Mac 2022-06-22 21:36:57 +10:00
dependabot[bot]
91afa396ba
Bump shell-quote from 1.7.2 to 1.7.3 in /v2/internal/frontend/runtime (#1485)
Bumps [shell-quote](https://github.com/substack/node-shell-quote) from 1.7.2 to 1.7.3.
- [Release notes](https://github.com/substack/node-shell-quote/releases)
- [Changelog](https://github.com/substack/node-shell-quote/blob/master/CHANGELOG.md)
- [Commits](https://github.com/substack/node-shell-quote/compare/v1.7.2...1.7.3)

---
updated-dependencies:
- dependency-name: shell-quote
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-22 20:56:16 +10:00
dependabot[bot]
08eee061ab
Bump shell-quote in /v2/internal/frontend/runtime/dev (#1486)
Bumps [shell-quote](https://github.com/substack/node-shell-quote) from 1.7.2 to 1.7.3.
- [Release notes](https://github.com/substack/node-shell-quote/releases)
- [Changelog](https://github.com/substack/node-shell-quote/blob/master/CHANGELOG.md)
- [Commits](https://github.com/substack/node-shell-quote/compare/v1.7.2...1.7.3)

---
updated-dependencies:
- dependency-name: shell-quote
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-22 20:56:01 +10:00
chenxiao
072929689c
feature: add runtime func WindowSetAlwaysOnTop (#1442)
* feature: add runtime func WindowSetAlwaysOnTop

* add runtime WindowSetUnalwaysOnTop

* add  JavaScript runtime method  ,  docs update

* WindowSetAlwaysOnTop(b bool)

* Add AlwaysOnTop for MacOS

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-06-22 20:55:02 +10:00
stffabi
72d019cb48
[v2, windows] Pass the correct installationStatus to the webview installation strategy (#1483)
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-06-22 20:50:45 +10:00
Lea Anthony
91ed594049 Update feature request template 2022-06-22 20:46:00 +10:00
stffabi
4493a05fb9
[v2] AssetsHandler remove retry logic in dev mode (#1479) 2022-06-22 20:06:20 +10:00
Lea Anthony
f8eac34212
Bugfix: Don't stop if unable to remove temporary bindings build (#1465) 2022-06-22 08:40:30 +10:00
Lea Anthony
1687906376
Improve theme change at runtime (#1473)
* Improve theme change at runtime

* Handle change to dark mode

* Refactor theme calculation

* Ensure theme is updated for WM_ACTIVATE and WM_SETTINGCHANGE events
2022-06-22 08:34:41 +10:00
Lea Anthony
381909696b
[Windows] Add Suspend/Resume callback support (#1474)
* Add Suspend/Resume callback support

* Fix comment
2022-06-22 06:37:18 +10:00
Lea Anthony
c477100374
Add BackgroundColour and deprecate RGBA (#1475) 2022-06-21 19:47:05 +10:00
Lea Anthony
cb169611b1
Set Window Background colour if provided + debounce redraw option (#1466)
* Set Window Background colour if provided. Added debounce option for Webview2 redraw on resize

* [windows] Workaround resize flickering in frameless mode

Co-authored-by: stffabi <stffabi@users.noreply.github.com>
2022-06-20 17:47:13 +10:00
Lea Anthony
4dd1be5252 Update sponsors 2022-06-19 13:38:25 +10:00
Lea Anthony
a7f1ea21ef Bugfix: Better support for showing window 2022-06-19 13:32:48 +10:00
Lea Anthony
e4f2bfe699 Bugfix: Windows start maximised
Fixes #1462
2022-06-18 16:21:32 +10:00
Lea Anthony
9bd765d2c8 Update README.md 2022-06-18 15:33:34 +10:00
Lea Anthony
d77c556c4e Update Sponsors 2022-06-18 15:31:29 +10:00
Abtin
9a01c757bd
Fix apt command syntax (#1458) (#1461) 2022-06-18 09:26:22 +10:00
Andreas Wenk
41051e8848
fix the url to surge (#1460)
fix the url to surge in the docs
2022-06-18 09:24:19 +10:00
stffabi
884773a218
[v2, windows] Fix WebView2 minimum runtime version check (#1456)
* [v2, windows] CompareBrowserVersions needs a int32 pointer

Otherwise 4294967295 will be returned instead of -1 and the
minimum version check can't detect an older version.
So an older version than the minimum might be used and will
result in AccessViolationExceptions.

* [v2, windows] Use the correct minimum runtime version for SDK 1.0.992.28

The Webview2Loader.dll are already at version 1.0.992.28 for all platforms.
2022-06-16 18:43:19 +10:00
Luken
1e54eb2eaf
Fix small typo in docs (#1449) 2022-06-13 08:53:49 +10:00
Lea Anthony
cb4ba5bca6
Add Typescript troubleshooting guide 2022-06-12 14:57:45 +10:00
stffabi
664f6a952c
[v2, windows] Unlock OSThread after native calls have been finished (#1441)
* [v2, windows] Remove unnecessary LockOSThread

Form.Invoke makes sure the call is on the correct thread and does
lock the OSThread during the call.

* [v2, windows] Unlock OSThread after native calls have been finished

This makes sure the OSThread can be reused by other go
routines after a native call has been finished. Otherwise the
OSThread will be destroyed as soon as the goroutine has
finished.
2022-06-08 20:56:07 +10:00
Lea Anthony
fe341741b5
Always use return in wrapped method (#1410) 2022-06-06 00:41:44 -10:00
Marcus Crane
cd162918d4
Add showcase entry for October + update homepage carousel entry for October (#1436)
* Add showcase entry for October

* Update home carousel image for October
2022-06-02 01:59:33 -10:00
Lea Anthony
6a07cbd505 Move go-common-file-dialog into project. Fix Title bug. 2022-06-01 21:00:52 +10:00
stffabi
614f50d5d3
[v2, windows] Load WebView2 loader from embedded only (#1432) 2022-05-31 10:00:02 -10:00
Jae-Sung Lee
f292e221f1
Create gitignore when using g option (#1430)
* Create gitignore when using g option
2022-05-31 20:29:20 +10:00
stffabi
2a0673f99f
[v2, linux] Improve switching to main thread for callbacks (#1392)
Make sure no pointers to the stack are passed to g_idle_add,
because at the time the callback gets executed on the
main thread, the pointer might be invalid.
Go might have reused the stack or grown the stack and the
pointer is invalid.

The concept used on Windows has been ported to Linux.
2022-05-31 20:28:37 +10:00
Zámbó, Levente
794a8ce19f
feature - support linux/arm (#1427) 2022-05-27 19:09:50 -10:00
Zámbó, Levente
f6425a64a6
feature - add race detector to build & dev (#1426) 2022-05-27 19:07:39 -10:00
Lea Anthony
b49dce8676
Update Changelog 2022-05-26 17:52:25 -10:00
Lea Anthony
6a88568f0a
v2.0.0-beta.37 2022-05-26 17:45:57 -10:00
Edward Browncross
a10a9e5b36
Add missing className to input in React and Preact templates (#1419)
* add missing className to input in react and preact templates

* add missing className to input in react and preact assets
2022-05-26 02:56:37 +10:00
刀刀
e7f9e2f267
docs: add macos custom menu EditMenu tips (#1423)
* docs: add macos custom menu EditMenu tips

On macos platform, if custom the menu, we should append EditMenu to enable Cmd+C,Cmd+V,Cmd+Z... shortcut
2022-05-25 08:49:04 +02:00
yuzu
316a24f6da
update runtime.d.ts & templates (#1421) 2022-05-24 21:20:53 +02:00
stffabi
c874e30339
Merge pull request #1413 from mondy/feature/nogen-flag 2022-05-23 10:40:46 +02:00
mondy
043d83e39e Add nogen flag in cli document. 2022-05-23 09:08:35 +09:00
Blake Bourque
7e64038265
Add blurb on wails generate module (#1414)
For users who wish to keep the wailsjs directory out of source control, the `wails generate module` command is valuable in a CI environment where wails build does not automatically generate the needed javascript module.
2022-05-23 08:43:18 +10:00
mondy
d4ecaad0e1 Add nogen flag in wails dev command 2022-05-21 14:22:18 +09:00
Lea Anthony
953bc09343
Merge pull request #1400 from wailsapp/feature/native-translucency
Initial support for new native translucency in Windows Preview
2022-05-18 18:52:45 +10:00
Lea Anthony
935f6871ab
Merge pull request #1406 from rayshoo/master
fix typo bindings.js to ipc.js
2022-05-18 17:38:17 +10:00
rayshoo
0d793124fd fix typo bindings.js to ipc.js 2022-05-18 15:58:33 +09:00
stffabi
c97e1c50af
[v2, linux] Make sure to execute the menu callbacks on a new goroutine (#1403)
* Make sure to execute the menu callbacks on a new goroutine
* Fix assertion message when opening file dialogs by passing the correct parent window
2022-05-17 20:45:48 +10:00
Lea Anthony
35b1dfdd2a
Merge pull request #1394 from LGiki/add-template-nextjs
Add Next.js template
2022-05-13 20:57:32 +10:00
LGiki
e705c20de9
Add Next.js template 2022-05-13 14:33:07 +08:00
stffabi
ae25b38f9e
Merge pull request #1393 from LGiki/fix-typo-in-docs 2022-05-12 12:52:15 +02:00
LGiki
ec2202765c
fix: typo in docs 2022-05-12 09:50:16 +08:00
Lea Anthony
e0e55e6e76 Better website spacing 2022-05-11 20:18:53 +10:00
Lea Anthony
4d5f31ab84
Merge pull request #1391 from wailsapp/bugfix/typo
bugfix: correct typo
2022-05-11 13:09:23 +10:00
Travis McLane
b84fd76e86 bugfix: correct typo 2022-05-10 21:56:19 -05:00
Lea Anthony
55115742c1 fix: TS conversion of interface{} 2022-05-11 08:21:17 +10:00
Lea Anthony
f2f8ed2e99
Merge pull request #1390 from lambdajack/v2-events-fix
[v2] Events | fixes #1388
2022-05-10 21:06:53 +10:00
Jack Bizzell
d59bec171e Changing all occurrences of calls to OnMultiple() inside EventsOn() and EventsOnce() in the frontend definitions, to calls to EventsOnMultiple()
OnMultiple is undefined
2022-05-09 20:42:40 +01:00
Lea Anthony
bff0ece017
Merge pull request #1387 from Junkher/patch-1
Update events.mdx
2022-05-08 04:16:48 +10:00
Junker
7c0d1019f2
Update events.mdx
A little mistake in the arguments of Js EventEmit
2022-05-07 23:12:01 +08:00
Lea Anthony
a3de4577dd Update tagline 2022-05-07 12:05:30 +10:00
Lea Anthony
4986f9cea5
Fix docs formatting (#1372)
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-05-07 10:36:39 +10:00
Lea Anthony
0f2fc1ab7a
Merge branch 'master' into patch-1 2022-05-07 10:36:02 +10:00
stffabi
5f612301f9
[v2] During wails dev only use reload logic if no AssetsHandler are in use (#1385)
This slows down every GET request to the AssetsHandler taking 5s
2022-05-07 09:11:07 +10:00
Lea Anthony
84b6273baf
Bugfix/incorrect bindings (#1383)
* Print struct path

* Better handling of anon structs
2022-05-05 23:07:33 +10:00
Lea Anthony
9c8a3a62da Update sponsors 2022-05-05 20:53:35 +10:00
Lea Anthony
6224d3aa82 Re-add plain template, Improve stalebot. 2022-05-05 06:53:39 +10:00
stffabi
2d66d2146a
[v2] Improve multi platform builds (#1373)
- Make sure to reset the default Arch of the build options and not keep the previous one.
- Expand to the full platform in outputBinaries so e.g. `-platform windows` can be used with `-nsis`
2022-05-04 07:27:13 +10:00
Arpit Jain
e5cc18cfc5
Fix docs formatting 2022-05-03 23:21:23 +05:30
Aleksey Polyakov
531d7cfb62
replace OnMultiple with EventsOnMultiple (#1369) 2022-05-02 22:10:33 +10:00
Lea Anthony
9c7ef2d47c
v2.0.0-beta.36 2022-05-01 11:10:05 +10:00
Lea Anthony
490388ae8f
Another vue fix 2022-05-01 10:47:09 +10:00
Lea Anthony
fac2a8ba3c
Closes #1357 #1366 2022-05-01 10:41:07 +10:00
Lea Anthony
912d7cf34b
Add startup method to templates by default 2022-05-01 10:19:15 +10:00
Lea Anthony
848ea88207
Update stale.yml 2022-05-01 09:47:43 +10:00
stffabi
22d3f93b52
[v2, darwin] Initialize native variables on stack to prevent segfault (#1362) 2022-04-30 06:11:19 +10:00
stffabi
d9120181b7
[v2] Validate devServer property to be of the correct form (#1359) 2022-04-29 07:22:45 +10:00
Lea Anthony
0a9ae0dff3 fix docs again 2022-04-27 22:29:25 +10:00
Lea Anthony
3dbe2a0942 Fix docs 2022-04-27 22:13:12 +10:00
Lea Anthony
ac81d5aa3d v2.0.0-beta.35 2022-04-27 22:01:32 +10:00
Lea Anthony
2e1f758f20 v2.0.0-beta.35 2022-04-27 21:47:11 +10:00
Lea Anthony
41f9c07c88 Fixes #1343 2022-04-27 21:29:54 +10:00
Lea Anthony
a8357a2459 Update templates 2022-04-27 20:53:59 +10:00
Lea Anthony
bd344bf32c Update runtime.d.ts + regenerate templates 2022-04-27 20:53:24 +10:00
Lea Anthony
ded28cf9c2 Remove redundant dev .js files 2022-04-27 19:26:42 +10:00
Lea Anthony
e7aa74905a
Initial commit (#1352) 2022-04-27 19:10:20 +10:00
Lea Anthony
781a0df72e
Fix for TS/JS generation on methods with no returns (#1356) 2022-04-27 19:09:55 +10:00
Lontten
8aaa0e0d9d
add a template docs : zh-Hans (#1354)
add a template with Vite + React + TypeScript
基于 Vite + React + TypeScript 的模板
2022-04-27 07:11:49 +10:00
Lontten
ef8dc44317
add a template with Vite + React + TypeScript (#1353)
a template with Vite + React + TypeScript
2022-04-26 21:00:26 +10:00
stffabi
524411964f
[v2] WindowReloadApp should use the startURL of the frontend to support reloading when a frontend dev server is used (#1347) 2022-04-23 07:09:53 +10:00
Lea Anthony
75ee36f8eb
Update docs regarding TitlebarAppearsTransparent 2022-04-21 08:30:15 +10:00
Lea Anthony
7f3f56663f
Fix: wails dev 2022-04-21 07:40:56 +10:00
Lea Anthony
f6257d3d31 Add Environment and WindowReloadApp calls to runtime. Updated default templates. 2022-04-20 20:28:41 +10:00
Lea Anthony
2e3c90c096 Update runtime.d.ts documentation. Regenerate templates 2022-04-19 21:48:26 +10:00
Lea Anthony
4e9eda8e1f Fix bug in WindowSet*Theme 2022-04-19 17:44:40 +10:00
Lea Anthony
02fcf738d3 Update runtime wrapper. Update base templates. 2022-04-19 17:43:55 +10:00
Lea Anthony
053f2748d5
Use Algolia Search (#1339) 2022-04-18 09:41:56 +10:00
Lea Anthony
ad6a7d5a8c
Fix: Outputfilename in flags now works as it should 2022-04-17 06:59:39 +10:00
Benjamin Thomas
93defccf4d
Add Elm template :) (#1336) 2022-04-16 21:50:41 +10:00
dependabot[bot]
5ffc815d34
Bump async from 2.6.3 to 2.6.4 in /website (#1335)
Bumps [async](https://github.com/caolan/async) from 2.6.3 to 2.6.4.
- [Release notes](https://github.com/caolan/async/releases)
- [Changelog](https://github.com/caolan/async/blob/v2.6.4/CHANGELOG.md)
- [Commits](https://github.com/caolan/async/compare/v2.6.3...v2.6.4)

---
updated-dependencies:
- dependency-name: async
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-16 14:01:57 +10:00
Lea Anthony
4e03c84fbb
Feature/default templates (#1334) 2022-04-15 20:30:10 +10:00
Lea Anthony
7fbae0d333
Fix: event data processing (#1326) 2022-04-15 20:26:13 +10:00
Lea Anthony
82806d47b3 Move experimental tag 2022-04-13 07:50:23 +10:00
stffabi
cb2de2ad30
[v2, docs] Add experimental badge for assets handler and fix type definitions (#1328) 2022-04-12 22:35:09 +10:00
stffabi
6d09a45a30
[v2] Add support for AssetsHandler (#1325)
* [website] Fix devserver default value doc

* [v2] Add support for AssetsHandler

AssetsHandler is a http.Handler delegate, which gets called
as a fallback for all Non-GET requests and for GET requests
for which the Assets didn’t find the file.

Known Limitations on Linux:
- All requests are GET requests
- No request headers
- No request body
- No response status code, only StatusOK will be returned
- No response headers

Known Limitations on Windows:
-  Request body is leaking memory. Seems to be a bug in
    WebView2, investigation angoing.

Most of these limitations on Linux will be fixed in the future with
adding support for Webkit2Gtk 2.36.0+.

* [v2, linux] Add response streaming support

The complete response won’t be held anymore in memory and will
be streamed to WebKit2.

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-04-12 20:18:27 +10:00
Lea Anthony
3fbe4f71c4 Ensure there's a default wailsJS dir 2022-04-12 20:13:05 +10:00
Lea Anthony
56206729ef Update sponsors 2022-04-12 06:15:56 +10:00
stffabi
c70d93b482
Suppress resizing during minimize of a frameless window (#1322)
If the window is frameless and we are minimizing, then we need to suppress
the Resize on the WebView2. If we don't do this, restoring does not work as
expected and first restores with some wrong size during the restore animation
and only fully renders when the animation is done.
This highly depends on the content in the WebView.
Possible fix for #1319
2022-04-10 18:45:09 +10:00
Lea Anthony
5f596c7679
Update go.mod 2022-04-10 09:41:44 +10:00
Lea Anthony
ebf4cf13f2
Feature: Add menu helpers 2022-04-09 20:36:48 +10:00
Lea Anthony
f08176079c
Feature: Support double click in drag areas 2022-04-09 10:27:54 +10:00
归位
65a97a668e
If the element adds the data-rails-drag attribute, it can trigger the dbclick event. (#1317)
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-04-09 10:18:01 +10:00
Lea Anthony
0c244b1ce4
Fix: broken links 2022-04-09 10:11:35 +10:00
Lea Anthony
3b85c75359
Update application-development.mdx 2022-04-09 07:21:08 +10:00
Florent
c3a98b058e
ensure webkit/gtk callbacks run on main thread (#1320)
prevent close event being propagated when handled in app
closes #1268
closes #1288
2022-04-08 06:42:17 +10:00
Lea Anthony
b94db409dd Fixes #1315 2022-04-06 21:53:40 +10:00
Lea Anthony
43f8a1f773 fix: blank namespaces, unknown structs 2022-04-06 19:13:10 +10:00
Lea Anthony
dce5fd442f fix: i18n messages/bug + docs bug. 2022-04-05 21:41:49 +10:00
Lea Anthony
f21c9ba880 docs: update binding sections 2022-04-05 21:30:55 +10:00
Lea Anthony
55855ccc4d fix: duplicate model generation 2022-04-05 21:30:55 +10:00
Lea Anthony
eb97f53124 Feature: Don't generate models.ts if there are no models. 2022-04-05 21:30:55 +10:00
Misitebao
f192cbd01b
feat(website): convert documents that don't require version management to individual pages (#1311) 2022-04-05 19:46:07 +10:00
Lea Anthony
625eca27f6 Feature: TS namespaces 2022-04-05 18:11:56 +10:00
Misitebao
a65a40fb4c
chore: upgrade issue template (#1312) 2022-04-05 08:49:11 +10:00
Lea Anthony
2465538448 Fix: TS namespace inference 2022-04-05 08:26:54 +10:00
Lea Anthony
bb2da2f810 Chore: remove debug output 2022-04-04 21:19:36 +10:00
Lea Anthony
6b38f0c68e
Improved TS Generation (#1310)
Improve TS Generation
2022-04-04 21:01:00 +10:00
Lea Anthony
95b70de01f
chore: add build tags to win32 package 2022-04-04 20:55:25 +10:00
Misitebao
78c6705cc3
feat(website): improve website content (#1309)
Update Chinese translation
2022-04-04 20:05:54 +10:00
Lea Anthony
8bb3af2282
Refactor TS imports 2022-04-04 07:19:39 +10:00
Ariel
2c8d94ca48
Add missing method declaration (#1308)
* Add missing method declaration

* Add eventsoff to the wrapper
2022-04-03 22:01:31 +10:00
Ariel
d5a8ee0132
Do not duplicate imports (#1307)
* Do not duplicate imports

* Fix warning as first element
2022-04-03 20:17:20 +10:00
Lea Anthony
55cec7af17 Fix: Handle struct pointers in new TS generation 2022-04-03 17:58:53 +10:00
Lea Anthony
90fc96b494 Translations docs 2022-04-03 17:47:56 +10:00
Lea Anthony
8e8b88ef48 Translations refactor 2022-04-03 17:22:37 +10:00
Lea Anthony
4a20655b29 Translations + Tidy Up 2022-04-03 17:18:36 +10:00
Lea Anthony
4721949657
Improved bindings generation 2022-04-03 07:31:07 +10:00
Florent
d119fce3c3
remove duplicate mimetype entries (#1304) 2022-04-01 20:35:53 +11:00
Lea Anthony
f6cdafa5ff Bugfix: generate correct model reference in bindings.d.ts 2022-04-01 13:08:56 +11:00
Lea Anthony
7af39e4819 Feature: Go logger "f" equivalents 2022-04-01 12:27:40 +11:00
Lea Anthony
073f8202e5 Fix windows/frontend compile error 2022-04-01 09:59:33 +11:00
Florent
8f860c9ea6
[Feature #1300] mime check for bom and comments (#1302)
* check for BOM and SVG comments
2022-04-01 08:39:54 +11:00
Lea Anthony
f734d26adb Use wailsapp/mimetype module 2022-04-01 08:21:57 +11:00
Sebastian Bauer
7dd3f96915 [Feature/1149] Dark mode: functions for manually switching theme (#1291)
* [Feature/1149] Dark mode: functions for manually switching theme
2022-04-01 08:21:37 +11:00
Travis McLane
584f88f727
cleanup Version (#1303) 2022-03-31 17:59:23 +11:00
Lea Anthony
2376062008 Update NSIS guide. Backport docs to .34. Fix references. Fix titles. 2022-03-31 12:23:28 +11:00
Lea Anthony
5ead563989 Update NSIS guide 2022-03-31 11:24:35 +11:00
Lea Anthony
f55f965b3d Update NSIS guide 2022-03-31 10:11:44 +11:00
gardc
a22383df07
added docs for signing and NSIS (#1301) 2022-03-31 08:10:34 +11:00
stffabi
65fb42d9e7
[v2] Add support for external frontend dev servers (#1290)
* [v2] Consolidate AssetServers

* [v2] Support starturl for webview on linux and darwin

* [v2] Add support for frontend DevServer

* [v2] Activate frontend DevServer in svelte template

* [website] Add bleeding edge guide for PRs

* DoNotMerge: Bump Version for testing

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-03-31 00:40:44 +11:00
Lea Anthony
4cedfdc091
Docs versioning (#1299)
* Add beta.34 version

* Fix up document links
2022-03-30 23:21:33 +11:00
Misitebao
085d59612b
refactor(website): upgrade site to docusaurus@2.0.0-beta.17 (#1223)
* refactor(website): Upgrade site to `docusaurus@2.0.0-beta.17`
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-03-30 21:49:19 +11:00
bearsh
d8bcf7ac70
v2: linux: add icon to linux specific app option and load it during w… (#1272)
* v2: linux: add icon to linux specific app option and load it during window creation

Signed-off-by: Martin Gysel <me@bearsh.org>

* doc: linux specific option: icon
2022-03-30 18:15:58 +11:00
Florent
ec31d49b59
prevent close event being propagated when handled in app (#1297)
closes #1288
2022-03-30 18:13:01 +11:00
Lea Anthony
6883337a18 Update headers code 2022-03-29 22:17:41 +11:00
Lea Anthony
3b81986bdd Fix wails doctor 1.18 2022-03-29 22:13:33 +11:00
Lea Anthony
ec59eff352 Update go-webview. Fix wails doctor 2022-03-29 22:05:56 +11:00
Lea Anthony
b6de689400 Update go-webview 2022-03-29 21:55:34 +11:00
Lea Anthony
1da68cfc7c Remove unused directories + tidy up 2022-03-29 21:47:26 +11:00
Lea Anthony
a5bf76b30f Fix up dev. Pull in go-webview and winc 2022-03-29 21:45:16 +11:00
dependabot[bot]
c78ee7e49b
Bump minimist from 1.2.5 to 1.2.6 in /website (#1287)
Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6)

---
updated-dependencies:
- dependency-name: minimist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-03-29 21:41:22 +11:00
dependabot[bot]
7749980040
Bump ansi-regex from 4.1.0 to 4.1.1 in /runtime/js (#1286)
Bumps [ansi-regex](https://github.com/chalk/ansi-regex) from 4.1.0 to 4.1.1.
- [Release notes](https://github.com/chalk/ansi-regex/releases)
- [Commits](https://github.com/chalk/ansi-regex/compare/v4.1.0...v4.1.1)

---
updated-dependencies:
- dependency-name: ansi-regex
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-29 21:41:04 +11:00
dependabot[bot]
222deff03c
Bump minimist from 1.2.5 to 1.2.6 in /v2/internal/runtime/js (#1284)
Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6)

---
updated-dependencies:
- dependency-name: minimist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-29 21:40:26 +11:00
dependabot[bot]
6a3e73de3f
Bump node-forge from 1.2.1 to 1.3.0 in /website (#1282)
Bumps [node-forge](https://github.com/digitalbazaar/forge) from 1.2.1 to 1.3.0.
- [Release notes](https://github.com/digitalbazaar/forge/releases)
- [Changelog](https://github.com/digitalbazaar/forge/blob/main/CHANGELOG.md)
- [Commits](https://github.com/digitalbazaar/forge/compare/v1.2.1...v1.3.0)

---
updated-dependencies:
- dependency-name: node-forge
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-03-29 21:39:38 +11:00
dependabot[bot]
498fa51605
Bump minimist from 1.2.5 to 1.2.6 in /runtime/js (#1280)
Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6)

---
updated-dependencies:
- dependency-name: minimist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-29 21:39:12 +11:00
dependabot[bot]
92df5fabba
Bump ajv from 6.12.0 to 6.12.6 in /v2/internal/runtime/js (#1194)
Bumps [ajv](https://github.com/ajv-validator/ajv) from 6.12.0 to 6.12.6.
- [Release notes](https://github.com/ajv-validator/ajv/releases)
- [Commits](https://github.com/ajv-validator/ajv/compare/v6.12.0...v6.12.6)

---
updated-dependencies:
- dependency-name: ajv
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-03-29 21:38:48 +11:00
dependabot[bot]
983306c13d
Bump prismjs from 1.26.0 to 1.27.0 in /website (#1191)
Bumps [prismjs](https://github.com/PrismJS/prism) from 1.26.0 to 1.27.0.
- [Release notes](https://github.com/PrismJS/prism/releases)
- [Changelog](https://github.com/PrismJS/prism/blob/master/CHANGELOG.md)
- [Commits](https://github.com/PrismJS/prism/compare/v1.26.0...v1.27.0)

---
updated-dependencies:
- dependency-name: prismjs
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-03-29 21:38:12 +11:00
dependabot[bot]
e403ad8063
Bump follow-redirects from 1.14.7 to 1.14.8 in /website (#1151)
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.14.7 to 1.14.8.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.14.7...v1.14.8)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-03-29 21:37:45 +11:00
stffabi
1f7b7f5e6c
[v2] Wails doctor add information about wails (#1294)
Also outputs VCS information if Go 1.18+ has been used
to build wails.
2022-03-29 20:10:33 +11:00
Lea Anthony
48254b73e5
[Feature/1149] Dark mode (#1281)
* Add Windows version helper

* Initial theme support

* Support custom themes

* Update docs

* Honour HighContrast theme. Remove import "C". Refactor

* Small refactor

* Support inactive theme

* Update Docs
2022-03-27 22:57:45 +11:00
Lea Anthony
2e21f25182
Fix S 2022-03-27 20:47:57 +11:00
Lea Anthony
1f96484e8c
Update features 2022-03-27 20:47:27 +11:00
Lea Anthony
ccbfafd576
Remove v1 Install instructions 2022-03-27 20:41:25 +11:00
Lea Anthony
0053641796 Update Sponsors 2022-03-27 19:51:14 +11:00
Lea Anthony
55f2a24a94
[Mac] Close window immediately on quit 2022-03-26 19:48:34 +11:00
Lea Anthony
2d2ee95c8a v2.0.0-beta.34 2022-03-26 19:00:20 +11:00
Lea Anthony
47bf92850c
Update bleeding-edge.mdx 2022-03-25 21:02:56 +11:00
Lea Anthony
f98571fae5
Update bleeding-edge.mdx 2022-03-25 21:02:36 +11:00
Lea Anthony
e314c41337 Update WindowStartState for Linux 2022-03-19 11:26:14 +11:00
Lea Anthony
2c65415268 More info in the project template READMEs 2022-03-19 11:02:22 +11:00
Lea Anthony
b002830897 Clarify supported platforms 2022-03-17 21:14:07 +11:00
Lea Anthony
fcf52abec8
Fix CGO_LDFLAGS 2022-03-16 21:44:34 +11:00
Lea Anthony
8e3cb27bfe #1265 Support CGO_LDFLAGS 2022-03-16 21:40:58 +11:00
Lea Anthony
78212603bc #1265 Support debug IDE config 2022-03-16 21:13:56 +11:00
Lea Anthony
1996e8b2ba Fix compile issue 2022-03-16 08:41:34 +11:00
Lea Anthony
d7395fc56a
Check system for user installed Linux dependencies (#1180)
* [linux] Fix discovery of other deps

* Update v2/internal/system/system_linux.go

Co-authored-by: stffabi <stffabi@users.noreply.github.com>

* Try setting locale before running apt

* Use LC_ALL

* Remove continue

Co-authored-by: stffabi <stffabi@users.noreply.github.com>
2022-03-15 20:25:23 +11:00
Lea Anthony
a278c9e164
Try to focus window when Show() is called. (#1212)
* Try to focus window when Show() is called.

* Ensure Focus is regained by Webview2 when tabbing

* Run restore code on main thread
2022-03-15 20:16:38 +11:00
Lea Anthony
60c6dce07d
Ensure Focus is regained by Webview2 when tabbing (#1257) 2022-03-15 20:15:21 +11:00
Misitebao
3972093ede
docs: sync documents (#1260) 2022-03-15 20:13:32 +11:00
Stefanos Papadakis
e78557ec24
Windows switch scheme: https -> http (#1255) 2022-03-15 05:58:43 +11:00
stffabi
ea4d479be3
[v2] Use os.Args[0] for self starting wails (#1258)
This removes the dependency of wails being in the PATH
2022-03-15 05:55:13 +11:00
Lea Anthony
15e5eb67f9 Output error message in runCommand 2022-03-14 22:53:46 +11:00
Lea Anthony
8aea6a3bfc Update domReady comment in templates + website 2022-03-14 22:48:32 +11:00
Lea Anthony
9c5600d8f3 Ensure default icon is generated regardless of icon.ico availability 2022-03-14 22:35:21 +11:00
Lea Anthony
97b24a51a1
Show extension by default (#1228) 2022-03-14 22:05:33 +11:00
Lea Anthony
106ff03f2e Add reference to community templates 2022-03-14 20:54:11 +11:00
Florent
d9e5cce2b2
add support for 'DomReady' callback on linux (#1249)
* add support for 'DomReady' callback on linux
cosmetic: use bodyLen instead of len() in processRequest()

* reformat webViewLoadChanged() for consistency

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-03-14 18:42:38 +11:00
Lea Anthony
daad8437c2 Update troubleshooting guide 2022-03-13 20:36:40 +11:00
Lea Anthony
8037eab895 Ignore .git dirs in dev 2022-03-13 10:19:25 +11:00
Lea Anthony
09756b5150 Initial commit 2022-03-13 10:15:57 +11:00
BillBuilt
a52d68438b
Fix, or at least a workaround, for (#1232) (#1247) 2022-03-12 17:30:25 +11:00
fengweiqiang
f4d1d02ded
Build added win32 compatibility (#1238) 2022-03-12 17:29:25 +11:00
Lea Anthony
3d12935e2e
Fix memory leak in ExecJS for Mac (#1230) 2022-03-11 23:43:51 +11:00
Ian M. Jones
64480ff1ab
Ensure Linux IsFullScreen uses GDK_WINDOW_STATE_FULLSCREEN bitmask appropriately. (#1245) 2022-03-11 15:41:28 +11:00
stffabi
abe8ba9266
[v2, windows] Fix maximised start state (#1243) 2022-03-11 06:26:59 +11:00
Lea Anthony
1048782eb4
Initial commit (#1241) 2022-03-10 21:20:41 +11:00
Florent
622c4adad6
ensure binary resources can be served (#1240)
* ensure binary resources can be served
fixes #1235

* use free instead of g_free
check that C.malloc does not fail before using C.memcpy
2022-03-10 21:17:24 +11:00
Lea Anthony
ae6da05e9d
Feature/1175 default index page (#1229)
* Initial commit

* Retry index.html every 500ms for 5s before defaulting to the default index page.

* Load all files using the same technique

* Remove reload script
2022-03-09 23:49:27 +11:00
Lea Anthony
ba0b173e02
Use local search (#1234) 2022-03-09 22:30:24 +11:00
Ariel
9097c9086b
import models on binding definition (#1231) 2022-03-09 07:44:32 +11:00
stffabi
c5c0617c89
[v2, nsis] Seems like / as path separator works only for some directives in a cross platform way (#1227)
Especially the File directive seems not to work with a `/` on
Windows. Whereas `\` works for all directives and on all platforms.
So the `\` in NSIS can be used also on Linux and MacOS.
2022-03-08 20:35:16 +11:00
Misitebao
d29e01d552
docs: sync documents (#1224) 2022-03-08 06:54:40 +11:00
Lea Anthony
122806161b Output errors in dev mode #1031 2022-03-07 21:12:26 +11:00
Lea Anthony
3a23662a34 Added variadic workaround to troubleshooting guide 2022-03-07 20:08:59 +11:00
Lea Anthony
659cc3ed61 Tidy project init banner 2022-03-07 19:35:31 +11:00
Misitebao
2a096a6ff9
feat(website): optimize website and sync documents (#1219)
- Optimize the homepage carousel
- Sync documents
- Update style files and images
2022-03-07 19:28:37 +11:00
Lea Anthony
0c09fe4560 Update tagline 2022-03-06 22:31:15 +11:00
Lea Anthony
51dd1361e3
Feature/docs update (#1218)
* Doc updates

* Add carousel

* Add more images to carousel

* Add search

* Fix CSS

* Cheeky fix for 1px bug
2022-03-06 22:29:26 +11:00
Lea Anthony
a48ea8768f
Update installation.mdx 2022-03-06 22:22:09 +11:00
Lea Anthony
95d34c510e
Run watcher after initial build (#1216) 2022-03-06 22:20:50 +11:00
Misitebao
d36e130315
refactor(cli): optimize default templates (#1214)
* refactor(cli): optimize the template that generates the base template

* refactor: optimize the default vanilla template

* feat(cli): add script to default vanilla template

* refactor(cli): refactor default svelte template and add script

* fix: remove manually added assetdir fields

Manually specified values are removed as the application will automatically infer from embed.FS.

* fix: remove drag attribute within page

* Update v2/cmd/wails/internal/commands/initialise/templates/templates/svelte/frontend/README.md

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2022-03-06 22:00:08 +11:00
Misitebao
7d8f2243ae
feat(website): sync documents and add content (#1215)
* feat(website): sync documents and add content

- Add a directory to the website
- Update site navigation menu
- Update site tagline(Emphasis on cross-platform)
- Sync the changelog of the latest version to the website

* docs: remove the `appendix` directory
2022-03-06 16:18:02 +11:00
Lea Anthony
27ab3cf4e7 v2.0.0-beta.33 2022-03-05 13:35:34 +11:00
Lea Anthony
31b609dff0 Print friendlier file path when file does not exist 2022-03-05 13:33:24 +11:00
stffabi
fbf75b1d14
[v2, windows] Move assets from file://wails to https://wails.localhost (#1211)
This should allow web workers to be used
2022-03-05 13:32:28 +11:00
Ian M. Jones
e9aa0d5c5a
Fix fullscreen on linux arm64 (#1209)
* Fix fatal error on otherwise clean exit.

* Fix race condition while setting title during window creation.

* Fix unexpected signal error when clicking webview should initiate a drag window operation.

* Ensure ExecuteOnMainThread callbacks are removed from the event source list on completion.

* Ensure all ExecuteOnMainThread callbacks use the expected return value on completion.

* Fix potential memory leak when exiting early from startDrag.

* Fix using runtime.WindowFullscreen on Linux ARM64.
2022-03-04 23:07:40 +11:00
Misitebao
cdfd70d3f7
docs: improve and synchronize chinese documents (#1205) 2022-03-04 17:59:46 +11:00
Lea Anthony
7287fcc170 Fixes #1208. Add docs about go.mod version updates in dev mode 2022-03-04 17:56:46 +11:00
Ian M. Jones
c378d935f3
Fix linux unexpected signal errors (#1200)
* Fix fatal error on otherwise clean exit.

* Fix race condition while setting title during window creation.

* Fix unexpected signal error when clicking webview should initiate a drag window operation.

* Ensure ExecuteOnMainThread callbacks are removed from the event source list on completion.

* Ensure all ExecuteOnMainThread callbacks use the expected return value on completion.

* Fix potential memory leak when exiting early from startDrag.
2022-03-04 17:50:43 +11:00
Lea Anthony
8eae31d865 Fixes #1206. ERROR level used in Production 2022-03-04 17:46:04 +11:00
Lea Anthony
c7c068ade0 Add Javascriptcore include. #1198 2022-03-02 20:17:30 +11:00
stffabi
b02dbfaddf
[v2] NSIS installer support for Windows (#1184)
* [v2] Add support for post build hooks

Currently only supports build-level hooks

* [v2] Improve build assets handling and use single source for manifest generation

The manifest asset files are now a go template and data will be
resolved before they are included into the build output.

Breaking Change: Windows manifest file must be named
“wails.exe.manifest” and doesn’t depend on the project name
anymore.

* [v2, windows] NSIS installer generation
2022-03-02 19:44:31 +11:00
stffabi
c63b1f1981
[v2] Consolidate processRequest, improve logging and error handling (#1158) 2022-02-28 19:14:03 +11:00
Lea Anthony
944494c4ef Add troubleshooting guide. #1187 2022-02-28 08:33:18 +11:00
Misitebao
a971751dab
feat(cli): optimized template generation (#1166)
* feat(cli): update base template configuration

* feat: optimize template project script

(https://github.com/wailsapp/wails/issues/1165)
2022-02-27 20:40:55 +11:00
Lea Anthony
6ec670129b
Update README.md 2022-02-27 15:51:46 +11:00
Lea Anthony
4506da041a
Update bug_report.md 2022-02-27 15:48:01 +11:00
Lea Anthony
e9962198d0
Update feature_request.md 2022-02-27 15:46:18 +11:00
Misitebao
82cb3b99e5
feat(cli): add version support for remote templates (#1181)
(https://github.com/wailsapp/wails/issues/925)
2022-02-26 10:52:56 +11:00
Lea Anthony
dfb3ab0681 Run webview2 bootstrapper as normal user, not administrator 2022-02-26 10:40:18 +11:00
Lea Anthony
5b60fcc8f6
Update menus.mdx 2022-02-26 10:11:05 +11:00
Misitebao
9e08fd668c
docs: update and sync all documents (#1183)
* docs: update and sync all documents

* docs: sync readme
2022-02-24 22:08:00 +11:00
Lea Anthony
513c1fd981
Add Linux Arch 2022-02-24 06:10:38 +11:00
Lea Anthony
3866da944c
Update Linux Status 2022-02-24 06:09:28 +11:00
Lea Anthony
613a9e3143 Bugfix: Fix potential nil dereference 2022-02-23 20:57:05 +11:00
stffabi
ff8e701793
[v2] Introduce frontend:dev:watcher command (#1170) 2022-02-23 20:12:59 +11:00
Lea Anthony
451b0c1e15 Update logo 2022-02-23 19:53:15 +11:00
Lea Anthony
8ce9ee8e41 v2.0.0-beta.32 2022-02-23 07:12:51 +11:00
Lea Anthony
9593ea95f7
[linux] Fix discovery of npm, docker and upx (#1174) 2022-02-23 07:11:27 +11:00
Lea Anthony
c872802ced v2.0.0-beta.31 2022-02-22 21:36:14 +11:00
Lea Anthony
a445db1b7b
Feature/linux v2 beta (#1171)
* Update docusaurus version

* Add install instructions

* Add Linus Distro Support Page

* Update Linus Distro Support Page

* v2.0.0-beta.30

* image

* update blog

* Update blog

* Remove exp tag

* Update banner

* Update banner

* [linux] Fix warning
2022-02-22 21:35:03 +11:00
Lea Anthony
fff838d7c6 Clarify frontend:dev option. Closes #1169 2022-02-22 19:16:19 +11:00
7195 changed files with 586637 additions and 114621 deletions

1871
.all-contributorsrc Normal file

File diff suppressed because it is too large Load diff

View file

@ -1 +0,0 @@
runtime/assets/default.html

View file

@ -1,30 +0,0 @@
{
"env": {
"browser": true,
"es6": true,
"node": true,
},
"extends": "eslint:recommended",
"parserOptions": {
"ecmaVersion": 2016,
"sourceType": "module",
},
"rules": {
"indent": [
"error",
"tab"
],
"linebreak-style": [
"error",
"unix"
],
"quotes": [
"error",
"single"
],
"semi": [
"error",
"always"
]
}
}

View file

@ -1,41 +0,0 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: bug
assignees: ''
---
#####################################################
**V1 users: If you have a technical issue, please do not open a bug this way!**
Please use the `wails issue` command!
If you do not do this then the issue may be closed automatically.
NOTE: If your bug is related to Windows, make sure you read
the [Windows Developer Guide](https://wails.app/guides/windows/)
#####################################################
**Description**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behaviour:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behaviour**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**System Details**
V2 users: Please add the output of `wails doctor`.
**Additional context**
Add any other context about the problem here.
- [ ] This issue is for Windows and I have read the [Windows Developer Guide](https://wails.app/guides/windows/)

87
.github/ISSUE_TEMPLATE/bug_report.yml vendored Normal file
View file

@ -0,0 +1,87 @@
name: Bug Report
description: Create a report to help us improve
# title: ""
labels: ["Bug"]
body:
- type: markdown
attributes:
value: |
***Please note: No bug reports are currently being accepted for Wails v3***
Before submitting this issue, please do the following:
- Do a web search for your error. This usually leads to a much better understanding of the issue.
- Prove that the error is indeed a Wails bug and not an application bug, with a specific set of steps to reproduce.
- Search the issue tracker using [this link](https://github.com/wailsapp/wails/issues?q=is%3Aissue+).
- Search the [discussion forums](https://github.com/wailsapp/wails/discussions?discussions_q=type+your+issue+here).
- Read the [Troubleshooting Guide](https://wails.io/docs/next/guides/troubleshooting).
- Create a [Minimal Reproducible Example](https://stackoverflow.com/help/minimal-reproducible-example) and link to it in the issue.
- If your issue is related to TypeScript generation, please open a ticket and create a PR with a failing test case.
TS tests can be found [here](https://github.com/wailsapp/wails/tree/master/v2/internal/binding/binding_test). Remember to add
your test to the `binding_test.go` file.
- Try to fix it yourself. Keep a list of things you have done to fix the problem.
If after doing all the above, the problem remains, please continue with this ticket providing *all* the information requested.
Bug reports that do not follow these steps will likely be closed, so please help us to help you.
- type: textarea
id: description
attributes:
label: Description
description: A clear and concise description of what the bug is.
placeholder: A clear and concise description of what the bug is.
# value: ""
validations:
required: true
- type: textarea
id: reproduce
attributes:
label: To Reproduce
description: Steps to reproduce the behaviour
placeholder: |
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
validations:
required: true
- type: textarea
id: expected-behaviour
attributes:
label: Expected behaviour
description: A clear and concise description of what you expected to happen.
placeholder: A clear and concise description of what you expected to happen.
validations:
required: true
- type: textarea
id: screenshots
attributes:
label: Screenshots
description: If applicable, add screenshots to help explain your problem.
placeholder: If applicable, add screenshots to help explain your problem.
validations:
required: false
- type: textarea
id: attempted-fixes
attributes:
label: Attempted Fixes
description: A list of things you have tried to fix the problem, including search engine links.
placeholder: A list of things you have tried to fix the problem, including search engine links.
validations:
required: false
- type: textarea
id: systemdetails
attributes:
label: System Details
description: Please add the output of `wails doctor`.
render: shell
validations:
required: true
- type: textarea
id: additional-context
attributes:
label: Additional context
description: Add any other context about the problem here.
placeholder: Add any other context about the problem here.
validations:
required: false

9
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View file

@ -0,0 +1,9 @@
blank_issues_enabled: true
contact_links:
- name: Discord Chat
url: https://discord.gg/BrRSWTaxVK
about: Ask questions and discuss with other Wails users in real time.
- name: GitHub Community Discussions
url: https://github.com/wailsapp/wails/discussions
about: If your question is not a feature or a bug, please go to the discussion panel and retrieve if your question already exists before submitting.

View file

@ -0,0 +1,40 @@
name: Documentation
description: Report an issue related to documentation.
# title: ""
labels: ["Documentation"]
body:
- type: markdown
attributes:
value: |
This template is only used for documentation related requests, including:
- Log undocumented APIs
- Update link
- Documentation other than non-project code
- Add new language
If you followed the documentation but things don't work, take some time to consider if it's the documentation or the code that's wrong. In the latter, prefer using the "[Bug Report](https://github.com/wailsapp/wails/issues/new?assignees=&labels=bug&template=bug_report.yml)" template.
- type: checkboxes
attributes:
label: Have you read the Documentation Contribution Guidelines?
options:
- label: I have read the [Documentation Contribution Guidelines](https://wails.io/community-guide#ways-of-contributing).
required: true
- type: textarea
attributes:
label: Description
description: A clear and concise description of what the issue is.
validations:
required: true
- type: checkboxes
attributes:
label: Self-service
description: |
If you feel like you could contribute to this issue, please check the box below. This would tell us and other people looking for contributions that someone's working on it.
If you do check this box, please send a pull request within 7 days so we can still delegate this to someone else.
options:
- label: I'd be willing to address this documentation request myself.

View file

@ -1,20 +0,0 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: enhancement
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

View file

@ -0,0 +1,39 @@
name: Feature request
description: Suggest an idea for this project
# title: ""
labels: ["Enhancement"]
body:
- type: markdown
attributes:
value: |
Before opening a feature request, please check the [Roadmap](https://github.com/wailsapp/wails/discussions/1484) to see if it has already been requested.
***Please note: No new feature requests are being accepted for Wails v1***
- type: textarea
attributes:
label: Is your feature request related to a problem? Please describe.
description: A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
validations:
required: false
- type: textarea
attributes:
label: Describe the solution you'd like
description: A clear and concise description of what you want to happen.
validations:
required: true
- type: textarea
attributes:
label: Describe alternatives you've considered
description: A clear and concise description of any alternative solutions or features you've considered.
validations:
required: false
- type: textarea
attributes:
label: Additional context
description: Add any other context or screenshots about the feature request here.
validations:
required: false

44
.github/file-labeler.yml vendored Normal file
View file

@ -0,0 +1,44 @@
# File path specific labels
v2-only:
- 'v2/**/*'
v3-alpha:
- 'v3/**/*'
windows:
- '**/*_windows.go'
- 'v2/internal/frontend/desktop/windows/**/*'
macos:
- '**/*_darwin.go'
- 'v2/internal/frontend/desktop/darwin/**/*'
linux:
- '**/*_linux.go'
- 'v2/internal/frontend/desktop/linux/**/*'
cli:
- 'v2/cmd/**/*'
- 'v3/cmd/**/*'
- '**/cli/**/*'
- '**/commands/**/*'
documentation:
- '**/*.md'
- 'docs/**/*'
- 'website/**/*'
- 'mkdocs-website/**/*'
templates:
- '**/templates/**/*'
- '**/template/**/*'
runtime:
- '**/runtime/**/*'
- 'v2/internal/runtime/**/*'
- 'v3/internal/runtime/**/*'
bindings:
- 'v2/internal/binding/**/*'
- 'v3/internal/generator/**/*'

144
.github/issue-labeler.yml vendored Normal file
View file

@ -0,0 +1,144 @@
# Version labels
v2-only:
- '\[v2\]'
- '\(v2\)'
- 'v2:'
- 'version 2'
- 'wails v2'
- 'using v2'
- 'master branch'
v3-alpha:
- '\[v3\]'
- '\(v3\)'
- 'v3:'
- '\[v3-alpha\]'
- '\(v3-alpha\)'
- 'version 3'
- 'wails v3'
- 'using v3'
- 'v3-alpha branch'
# Component labels
webview2:
- 'webview2'
- 'windows'
- 'microsoft edge'
- 'edge browser'
- 'IE'
- 'Explorer'
- 'browser crashes'
macos:
- 'macOS'
- 'mac OS'
- 'OS X'
- 'darwin'
- 'cocoa'
- 'Safari'
- 'Catalyst'
- 'Ventura'
- 'Sonoma'
- 'apple'
linux:
- 'linux'
- 'ubuntu'
- 'debian'
- 'fedora'
- 'gtk'
- 'webkitgtk'
- 'webkit2gtk'
- 'gnome'
- 'x11'
- 'wayland'
cli:
- 'cli'
- 'command line'
- 'wails doctor'
- 'wails init'
- 'wails build'
- 'wails dev'
- 'template'
- 'scaffolding'
# Type labels
bug:
- 'bug'
- 'crash'
- 'broken'
- 'failure'
- 'error'
- 'failed'
- 'panic'
- 'segfault'
- 'issue'
- 'not working'
- 'problem'
enhancement:
- 'feature'
- 'enhancement'
- 'request'
- 'add'
- 'new'
- 'improve'
- 'functionality'
- 'support for'
- 'please add'
- 'would be nice'
documentation:
- 'docs'
- 'documentation'
- 'readme'
- 'example'
- 'tutorial'
- 'guide'
- 'explanation'
- 'clarification'
- 'instructions'
security:
- 'security'
- 'vulnerability'
- 'exploit'
- 'hack'
- 'CVE'
- 'secure'
- 'encryption'
- 'hardening'
performance:
- 'performance'
- 'slow'
- 'speed'
- 'memory leak'
- 'cpu usage'
- 'high memory'
- 'lag'
- 'freeze'
- 'optimization'
# Priority labels
high-priority:
- 'urgent'
- 'critical'
- 'security'
- 'high priority'
- 'important'
- 'production'
- 'blocker'
- 'blocking'
question:
- 'how to'
- 'how do i'
- 'can I'
- 'is it possible'
- 'question'
- 'help me'
- 'need help'
- 'assistance'
- 'confused'

57
.github/pull_request_template.md vendored Normal file
View file

@ -0,0 +1,57 @@
<!--
*********************************************************************
* PLEASE READ BEFORE SUBMITTING YOUR PR *
* YOUR PR MAY BE REJECTED IF IT DOES NOT FOLLOW THESE STEPS *
*********************************************************************
- *DO NOT* submit PRs for v3 alpha enhancements, unless you have opened a post on the discord channel.
All enhancements must be discussed first.
The feedback guide for v3 is here: https://v3alpha.wails.io/getting-started/feedback/
- Before submitting your PR, please ensure you have created and linked the PR to an issue.
- If a relevant issue already exists, please reference it in your PR by including `Fixes #<issue number>` in your PR description.
- Please fill in the checklists.
-->
# Description
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes # (issue)
## Type of change
Please select the option that is relevant.
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] This change requires a documentation update
# How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration using `wails doctor`.
- [ ] Windows
- [ ] macOS
- [ ] Linux
If you checked Linux, please specify the distro and version.
## Test Configuration
Please paste the output of `wails doctor`. If you are unable to run this command, please describe your environment in as much detail as possible.
# Checklist:
- [ ] I have updated `website/src/pages/changelog.mdx` with details of this PR
- [ ] My code follows the general coding style of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my feature works
- [ ] New and existing unit tests pass locally with my changes

29
.github/stale.yml vendored
View file

@ -1,19 +1,36 @@
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 30
daysUntilStale: 45
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 7
daysUntilClose: 10
# Issues with these labels will never be considered stale
exemptLabels:
- pinned
- security
- onhold
- inprogress
- "Selected For Development"
- bug
- enhancement
- v3-alpha
- high-priority
# Label to use when marking an issue as stale
staleLabel: wontfix
staleLabel: "stale"
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. Thank you
for your contributions.
recent activity. It will be closed if no further activity occurs within the next 10 days.
If this issue is still relevant, please add a comment to keep it open.
Thank you for your contributions.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: false
closeComment: >
This issue has been automatically closed due to lack of activity.
Please feel free to reopen it if it's still relevant.
exemptMilestones: true
exemptAssignees: true
# Only mark issues (not PRs)
only: issues
# Exempt issues created before a certain date
exemptCreatedBefore: "2024-01-01T00:00:00Z"
# Starts checking issues only after the specified date
startDate: "2025-06-01T00:00:00Z"

33
.github/workflows/auto-label-issues.yml vendored Normal file
View file

@ -0,0 +1,33 @@
name: Auto Label Issues
on:
issues:
types: [opened, edited, reopened]
pull_request:
types: [opened, edited, reopened, synchronize]
jobs:
auto-label:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
contents: read
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Label issues and PRs by content
uses: github/issue-labeler@v3.4
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
configuration-path: .github/issue-labeler.yml
enable-versioned-regex: 0
include-title: 1
- name: Label issues and PRs by file paths
uses: actions/labeler@v4
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
configuration-path: .github/file-labeler.yml
sync-labels: true

201
.github/workflows/build-and-test-v3.yml vendored Normal file
View file

@ -0,0 +1,201 @@
name: Build + Test v3
on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
branches:
- v3-alpha
paths:
- 'v3/**'
pull_request_review:
types: [submitted]
branches:
- v3-alpha
jobs:
check_approval:
name: Check PR Approval
runs-on: ubuntu-latest
if: github.base_ref == 'v3-alpha'
outputs:
approved: ${{ steps.check.outputs.approved }}
steps:
- name: Check if PR is approved
id: check
run: |
if [[ "${{ github.event.review.state }}" == "approved" || "${{ github.event.pull_request.approved }}" == "true" ]]; then
echo "approved=true" >> $GITHUB_OUTPUT
else
echo "approved=false" >> $GITHUB_OUTPUT
fi
test_go:
name: Run Go Tests v3
needs: check_approval
runs-on: ${{ matrix.os }}
if: github.base_ref == 'v3-alpha'
strategy:
fail-fast: false
matrix:
os: [windows-latest, ubuntu-latest, macos-latest]
go-version: [1.24]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install linux dependencies
uses: awalsh128/cache-apt-pkgs-action@latest
if: matrix.os == 'ubuntu-latest'
with:
packages: libgtk-3-dev libwebkit2gtk-4.1-dev build-essential pkg-config xvfb x11-xserver-utils at-spi2-core xdg-desktop-portal-gtk
version: 1.0
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
cache-dependency-path: "v3/go.sum"
- name: Install Task
uses: arduino/setup-task@v2
with:
version: 3.x
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Build Examples
working-directory: v3
run: task test:examples
- name: Run tests (mac)
if: matrix.os == 'macos-latest'
env:
CGO_LDFLAGS: -framework UniformTypeIdentifiers -mmacosx-version-min=10.13
working-directory: v3
run: go test -v ./...
- name: Run tests (windows)
if: matrix.os == 'windows-latest'
working-directory: v3
run: go test -v ./...
- name: Run tests (ubuntu)
if: matrix.os == 'ubuntu-latest'
working-directory: v3
run: >
xvfb-run --auto-servernum
sh -c '
dbus-update-activation-environment --systemd --all &&
go test -v ./...
'
- name: Typecheck binding generator output
working-directory: v3
run: task generator:test:check
test_js:
name: Run JS Tests
needs: check_approval
runs-on: ubuntu-latest
if: github.base_ref == 'v3-alpha'
strategy:
matrix:
node-version: [20.x]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Install dependencies
run: npm install
working-directory: v2/internal/frontend/runtime
- name: Run tests
run: npm test
working-directory: v2/internal/frontend/runtime
test_templates:
name: Test Templates
needs: test_go
runs-on: ${{ matrix.os }}
if: github.base_ref == 'v3-alpha'
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
template:
- svelte
- svelte-ts
- vue
- vue-ts
- react
- react-ts
- preact
- preact-ts
- lit
- lit-ts
- vanilla
- vanilla-ts
go-version: [1.24]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install linux dependencies
uses: awalsh128/cache-apt-pkgs-action@latest
if: matrix.os == 'ubuntu-latest'
with:
packages: libgtk-3-dev libwebkit2gtk-4.1-dev build-essential pkg-config
version: 1.0
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
cache-dependency-path: "v3/go.sum"
- name: Install Task
uses: arduino/setup-task@v2
with:
version: 3.x
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Build Wails3 CLI
working-directory: v3
run: |
task install
wails3 doctor
- name: Generate template '${{ matrix.template }}'
run: |
mkdir -p ./test-${{ matrix.template }}
cd ./test-${{ matrix.template }}
wails3 init -n ${{ matrix.template }} -t ${{ matrix.template }}
cd ${{ matrix.template }}
wails3 build
build_results:
if: ${{ always() }}
runs-on: ubuntu-latest
name: v3 Build Results
needs: [test_go, test_js, test_templates]
steps:
- run: |
go_result="${{ needs.test_go.result }}"
js_result="${{ needs.test_js.result }}"
templates_result="${{ needs.test_templates.result }}"
if [[ $go_result == "success" || $go_result == "skipped" ]] && \
[[ $js_result == "success" || $js_result == "skipped" ]] && \
[[ $templates_result == "success" || $templates_result == "skipped" ]]; then
echo "All required jobs succeeded or were skipped"
exit 0
else
echo "One or more required jobs failed"
exit 1
fi

160
.github/workflows/build-and-test.yml vendored Normal file
View file

@ -0,0 +1,160 @@
name: Build + Test v2
on:
push:
branches: [release/*, master, bugfix/*]
workflow_dispatch:
jobs:
test_go:
name: Run Go Tests
if: github.repository == 'wailsapp/wails'
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-22.04, ubuntu-24.04, windows-latest, macos-latest]
go-version: ['1.22']
steps:
- name: Checkout code
uses: actions/checkout@v4
- uses: awalsh128/cache-apt-pkgs-action@latest
if: matrix.os == 'ubuntu-22.04'
with:
packages: libgtk-3-dev libwebkit2gtk-4.0-dev build-essential pkg-config
version: 1.0
- uses: awalsh128/cache-apt-pkgs-action@latest
if: matrix.os == 'ubuntu-24.04'
with:
packages: libgtk-3-dev libwebkit2gtk-4.1-dev build-essential pkg-config libegl1
version: 1.0
- name: Setup Go
uses: actions/setup-go@v4
with:
go-version: ${{ matrix.go-version }}
cache-dependency-path: ./v2/go.sum
- name: Run tests (mac)
if: matrix.os == 'macos-latest'
env:
CGO_LDFLAGS: -framework UniformTypeIdentifiers -mmacosx-version-min=10.13
working-directory: ./v2
run: go test -v ./...
- name: Run tests (!mac)
if: matrix.os != 'macos-latest' && matrix.os != 'ubuntu-24.04'
working-directory: ./v2
run: go test -v ./...
- name: Run tests (Ubuntu 24.04)
if: matrix.os == 'ubuntu-24.04'
working-directory: ./v2
run: go test -v -tags webkit2_41 ./...
test_js:
name: Run JS Tests
if: github.repository == 'wailsapp/wails'
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [20.x]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Install dependencies
run: npm install
working-directory: v2/internal/frontend/runtime
- name: Run tests
run: npm test
working-directory: v2/internal/frontend/runtime
test_templates:
name: Test Templates
needs: test_go
runs-on: ${{ matrix.os }}
strategy:
fail-fast: true
matrix:
os: [ubuntu-22.04, windows-latest, macos-latest, ubuntu-24.04]
template:
[
svelte,
svelte-ts,
vue,
vue-ts,
react,
react-ts,
preact,
preact-ts,
lit,
lit-ts,
vanilla,
vanilla-ts,
plain,
]
go-version: ['1.22']
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
cache-dependency-path: ./v2/go.sum
- name: Build Wails CLI
run: |
cd ./v2/cmd/wails
go install
wails -help
- uses: awalsh128/cache-apt-pkgs-action@latest
if: matrix.os == 'ubuntu-22.04'
with:
packages: libgtk-3-dev libwebkit2gtk-4.0-dev build-essential pkg-config
version: 1.0
# - name: Install linux dependencies ( 22.04 )
# if: matrix.os == 'ubuntu-22.04'
# run: sudo apt-get update -y && sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev build-essential pkg-config
- uses: awalsh128/cache-apt-pkgs-action@latest
if: matrix.os == 'ubuntu-24.04'
with:
packages: libgtk-3-dev libwebkit2gtk-4.1-dev build-essential pkg-config libegl1
version: 1.0
# - name: Install linux dependencies ( 24.04 )
# if: matrix.os == 'ubuntu-24.04'
# run: sudo apt-get update -y && sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev build-essential pkg-config
- name: Generate & Build template '${{ matrix.template }}'
if: matrix.os != 'ubuntu-24.04'
run: |
mkdir -p ./test-${{ matrix.template }}
cd ./test-${{ matrix.template }}
wails init -n ${{ matrix.template }} -t ${{ matrix.template }} -ci
cd ${{ matrix.template }}
wails build -v 2
- name: Generate & Build template '${{ matrix.template }}' (ubuntu-24.04)
if: matrix.os == 'ubuntu-24.04'
run: |
mkdir -p ./test-${{ matrix.template }}
cd ./test-${{ matrix.template }}
wails init -n ${{ matrix.template }} -t ${{ matrix.template }} -ci
cd ${{ matrix.template }}
wails build -v 2 -tags webkit2_41

423
.github/workflows/build-cross-image.yml vendored Normal file
View file

@ -0,0 +1,423 @@
name: Build Cross-Compiler Image
on:
workflow_dispatch:
inputs:
branch:
description: 'Branch containing Dockerfile'
required: true
default: 'v3-alpha'
sdk_version:
description: 'macOS SDK version'
required: true
default: '14.5'
zig_version:
description: 'Zig version'
required: true
default: '0.14.0'
image_version:
description: 'Image version tag'
required: true
default: 'latest'
skip_tests:
description: 'Skip cross-compilation tests'
required: false
default: 'false'
type: boolean
push:
branches:
- v3-alpha
paths:
- 'v3/internal/commands/build_assets/docker/Dockerfile.cross'
env:
REGISTRY: ghcr.io
IMAGE_NAME: wailsapp/wails-cross
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
outputs:
image_tag: ${{ steps.vars.outputs.image_version }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ inputs.branch || github.ref }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to Container Registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set build variables
id: vars
run: |
echo "sdk_version=${{ inputs.sdk_version || '14.5' }}" >> $GITHUB_OUTPUT
echo "zig_version=${{ inputs.zig_version || '0.14.0' }}" >> $GITHUB_OUTPUT
echo "image_version=${{ inputs.image_version || 'latest' }}" >> $GITHUB_OUTPUT
- name: Extract metadata
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=raw,value=latest
type=raw,value=${{ steps.vars.outputs.image_version }}
type=raw,value=sdk-${{ steps.vars.outputs.sdk_version }}
- name: Build and push
uses: docker/build-push-action@v5
with:
context: v3/internal/commands/build_assets/docker
file: v3/internal/commands/build_assets/docker/Dockerfile.cross
platforms: linux/amd64,linux/arm64
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: |
${{ steps.meta.outputs.labels }}
io.wails.zig.version=${{ steps.vars.outputs.zig_version }}
io.wails.sdk.version=${{ steps.vars.outputs.sdk_version }}
build-args: |
ZIG_VERSION=${{ steps.vars.outputs.zig_version }}
MACOS_SDK_VERSION=${{ steps.vars.outputs.sdk_version }}
cache-from: type=gha
cache-to: type=gha,mode=max
# Test cross-compilation for all platforms
test-cross-compile:
needs: build
if: ${{ inputs.skip_tests != 'true' }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
# Darwin targets (Zig + macOS SDK) - no platform emulation needed
- os: darwin
arch: arm64
platform: ""
expected_file: "Mach-O 64-bit.*arm64"
- os: darwin
arch: amd64
platform: ""
expected_file: "Mach-O 64-bit.*x86_64"
# Linux targets (GCC) - need platform to match architecture
- os: linux
arch: amd64
platform: "linux/amd64"
expected_file: "ELF 64-bit LSB.*x86-64"
- os: linux
arch: arm64
platform: "linux/arm64"
expected_file: "ELF 64-bit LSB.*ARM aarch64"
# Windows targets (Zig + mingw) - no platform emulation needed
- os: windows
arch: amd64
platform: ""
expected_file: "PE32\\+ executable.*x86-64"
- os: windows
arch: arm64
platform: ""
expected_file: "PE32\\+ executable.*Aarch64"
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ inputs.branch || github.ref }}
- name: Set up QEMU
if: matrix.platform != ''
uses: docker/setup-qemu-action@v3
- name: Log in to Container Registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Create test CGO project
run: |
mkdir -p test-project
cd test-project
# Create a minimal CGO test program
cat > main.go << 'EOF'
package main
/*
#include <stdlib.h>
int add(int a, int b) {
return a + b;
}
*/
import "C"
import "fmt"
func main() {
result := C.add(1, 2)
fmt.Printf("CGO test: 1 + 2 = %d\n", result)
}
EOF
cat > go.mod << 'EOF'
module test-cgo
go 1.21
EOF
- name: Build ${{ matrix.os }}/${{ matrix.arch }} (CGO)
run: |
cd test-project
PLATFORM_FLAG=""
if [ -n "${{ matrix.platform }}" ]; then
PLATFORM_FLAG="--platform ${{ matrix.platform }}"
fi
docker run --rm $PLATFORM_FLAG \
-v "$(pwd):/app" \
-e APP_NAME="test-cgo" \
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ needs.build.outputs.image_tag || 'latest' }} \
${{ matrix.os }} ${{ matrix.arch }}
- name: Verify binary format
run: |
cd test-project/bin
ls -la
# Find the built binary
if [ "${{ matrix.os }}" = "windows" ]; then
BINARY=$(ls test-cgo-${{ matrix.os }}-${{ matrix.arch }}.exe 2>/dev/null || ls *.exe | head -1)
else
BINARY=$(ls test-cgo-${{ matrix.os }}-${{ matrix.arch }} 2>/dev/null || ls test-cgo* | grep -v '.exe' | head -1)
fi
echo "Binary: $BINARY"
FILE_OUTPUT=$(file "$BINARY")
echo "File output: $FILE_OUTPUT"
# Verify the binary format matches expected
if echo "$FILE_OUTPUT" | grep -qE "${{ matrix.expected_file }}"; then
echo "✅ Binary format verified: ${{ matrix.os }}/${{ matrix.arch }}"
else
echo "❌ Binary format mismatch!"
echo "Expected pattern: ${{ matrix.expected_file }}"
echo "Got: $FILE_OUTPUT"
exit 1
fi
- name: Check library dependencies (Linux only)
if: matrix.os == 'linux'
run: |
cd test-project/bin
BINARY=$(ls test-cgo-${{ matrix.os }}-${{ matrix.arch }} 2>/dev/null || ls test-cgo* | grep -v '.exe' | head -1)
echo "## Library Dependencies for $BINARY"
echo ""
# Use readelf to show dynamic dependencies
echo "### NEEDED libraries:"
readelf -d "$BINARY" | grep NEEDED || echo "No dynamic dependencies (statically linked)"
# Verify expected libraries are linked
echo ""
echo "### Verifying required libraries..."
NEEDED=$(readelf -d "$BINARY" | grep NEEDED)
MISSING=""
for lib in libwebkit2gtk-4.1.so libgtk-3.so libglib-2.0.so libc.so; do
if echo "$NEEDED" | grep -q "$lib"; then
echo "✅ $lib"
else
echo "❌ $lib MISSING"
MISSING="$MISSING $lib"
fi
done
if [ -n "$MISSING" ]; then
echo ""
echo "ERROR: Missing required libraries:$MISSING"
exit 1
fi
# Test non-CGO builds (pure Go cross-compilation)
test-non-cgo:
needs: build
if: ${{ inputs.skip_tests != 'true' }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- os: darwin
arch: arm64
expected_file: "Mach-O 64-bit.*arm64"
- os: darwin
arch: amd64
expected_file: "Mach-O 64-bit.*x86_64"
- os: linux
arch: amd64
expected_file: "ELF 64-bit LSB"
- os: linux
arch: arm64
expected_file: "ELF 64-bit LSB.*ARM aarch64"
- os: windows
arch: amd64
expected_file: "PE32\\+ executable.*x86-64"
- os: windows
arch: arm64
expected_file: "PE32\\+ executable.*Aarch64"
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ inputs.branch || github.ref }}
- name: Log in to Container Registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Create test non-CGO project
run: |
mkdir -p test-project
cd test-project
# Create a pure Go test program (no CGO)
cat > main.go << 'EOF'
package main
import "fmt"
func main() {
fmt.Println("Pure Go cross-compilation test")
}
EOF
cat > go.mod << 'EOF'
module test-pure-go
go 1.21
EOF
- name: Build ${{ matrix.os }}/${{ matrix.arch }} (non-CGO)
run: |
cd test-project
# For non-CGO, we can use any platform since Go handles cross-compilation
# We set CGO_ENABLED=0 to ensure pure Go build
docker run --rm \
-v "$(pwd):/app" \
-e APP_NAME="test-pure-go" \
-e CGO_ENABLED=0 \
--entrypoint /bin/sh \
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ needs.build.outputs.image_tag || 'latest' }} \
-c "GOOS=${{ matrix.os }} GOARCH=${{ matrix.arch }} go build -o bin/test-pure-go-${{ matrix.os }}-${{ matrix.arch }}${{ matrix.os == 'windows' && '.exe' || '' }} ."
- name: Verify binary format
run: |
cd test-project/bin
ls -la
# Find the built binary
if [ "${{ matrix.os }}" = "windows" ]; then
BINARY="test-pure-go-${{ matrix.os }}-${{ matrix.arch }}.exe"
else
BINARY="test-pure-go-${{ matrix.os }}-${{ matrix.arch }}"
fi
echo "Binary: $BINARY"
FILE_OUTPUT=$(file "$BINARY")
echo "File output: $FILE_OUTPUT"
# Verify the binary format matches expected
if echo "$FILE_OUTPUT" | grep -qE "${{ matrix.expected_file }}"; then
echo "✅ Binary format verified: ${{ matrix.os }}/${{ matrix.arch }} (non-CGO)"
else
echo "❌ Binary format mismatch!"
echo "Expected pattern: ${{ matrix.expected_file }}"
echo "Got: $FILE_OUTPUT"
exit 1
fi
- name: Check library dependencies (Linux only)
if: matrix.os == 'linux'
run: |
cd test-project/bin
BINARY="test-pure-go-${{ matrix.os }}-${{ matrix.arch }}"
echo "## Library Dependencies for $BINARY (non-CGO)"
echo ""
# Non-CGO builds should have minimal dependencies (just libc or statically linked)
echo "### NEEDED libraries:"
readelf -d "$BINARY" | grep NEEDED || echo "No dynamic dependencies (statically linked)"
# Verify NO GTK/WebKit libraries (since CGO is disabled)
NEEDED=$(readelf -d "$BINARY" | grep NEEDED || true)
if echo "$NEEDED" | grep -q "libwebkit\|libgtk"; then
echo "❌ ERROR: Non-CGO binary should not link to GTK/WebKit!"
exit 1
else
echo "✅ Confirmed: No GTK/WebKit dependencies (expected for non-CGO)"
fi
# Summary job
test-summary:
needs: [build, test-cross-compile, test-non-cgo]
if: always() && inputs.skip_tests != 'true'
runs-on: ubuntu-latest
steps:
- name: Check test results
run: |
echo "## Cross-Compilation Test Results" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
if [ "${{ needs.test-cross-compile.result }}" = "success" ]; then
echo "✅ **CGO Tests**: All passed" >> $GITHUB_STEP_SUMMARY
else
echo "❌ **CGO Tests**: Failed" >> $GITHUB_STEP_SUMMARY
fi
if [ "${{ needs.test-non-cgo.result }}" = "success" ]; then
echo "✅ **Non-CGO Tests**: All passed" >> $GITHUB_STEP_SUMMARY
else
echo "❌ **Non-CGO Tests**: Failed" >> $GITHUB_STEP_SUMMARY
fi
echo "" >> $GITHUB_STEP_SUMMARY
echo "### Tested Platforms" >> $GITHUB_STEP_SUMMARY
echo "| Platform | Architecture | CGO | Non-CGO |" >> $GITHUB_STEP_SUMMARY
echo "|----------|-------------|-----|---------|" >> $GITHUB_STEP_SUMMARY
echo "| Darwin | arm64 | ✅ | ✅ |" >> $GITHUB_STEP_SUMMARY
echo "| Darwin | amd64 | ✅ | ✅ |" >> $GITHUB_STEP_SUMMARY
echo "| Linux | arm64 | ✅ | ✅ |" >> $GITHUB_STEP_SUMMARY
echo "| Linux | amd64 | ✅ | ✅ |" >> $GITHUB_STEP_SUMMARY
echo "| Windows | arm64 | ✅ | ✅ |" >> $GITHUB_STEP_SUMMARY
echo "| Windows | amd64 | ✅ | ✅ |" >> $GITHUB_STEP_SUMMARY
# Fail if any test failed
if [ "${{ needs.test-cross-compile.result }}" != "success" ] || [ "${{ needs.test-non-cgo.result }}" != "success" ]; then
echo ""
echo "❌ Some tests failed. Check the individual job logs for details."
exit 1
fi

216
.github/workflows/changelog-v3.yml vendored Normal file
View file

@ -0,0 +1,216 @@
name: Changelog Validation (v3)
on:
pull_request:
branches: [ v3-alpha ]
paths:
- 'docs/src/content/docs/changelog.mdx'
workflow_dispatch:
inputs:
pr_number:
description: 'PR number to validate'
required: true
type: string
jobs:
validate:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
actions: write
steps:
- name: Checkout PR code
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha || format('refs/pull/{0}/head', github.event.inputs.pr_number) }}
fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN || github.token }}
- name: Get REAL validation script from v3-alpha
run: |
echo "Fetching the REAL validation script from v3-alpha branch..."
git fetch origin v3-alpha
git checkout origin/v3-alpha -- v3/scripts/validate-changelog.go
echo "Validation script fetched successfully:"
ls -la v3/scripts/
- name: Setup Go
uses: actions/setup-go@v4
with:
go-version: '1.23'
- name: Get PR information
id: pr_info
run: |
if [ "${{ github.event_name }}" = "pull_request" ]; then
echo "pr_number=${{ github.event.pull_request.number }}" >> $GITHUB_OUTPUT
echo "base_ref=${{ github.event.pull_request.base.ref }}" >> $GITHUB_OUTPUT
else
echo "pr_number=${{ github.event.inputs.pr_number }}" >> $GITHUB_OUTPUT
echo "base_ref=v3-alpha" >> $GITHUB_OUTPUT
fi
- name: Check changelog modifications
id: changelog_check
run: |
echo "Checking PR #${{ steps.pr_info.outputs.pr_number }} for changelog changes"
git fetch origin ${{ steps.pr_info.outputs.base_ref }}
if git diff --name-only origin/${{ steps.pr_info.outputs.base_ref }}..HEAD | grep -q "docs/src/content/docs/changelog.mdx"; then
echo "changelog_modified=true" >> $GITHUB_OUTPUT
echo "✅ Changelog was modified in this PR"
else
echo "changelog_modified=false" >> $GITHUB_OUTPUT
echo " Changelog was not modified - skipping validation"
fi
- name: Get changelog diff
id: get_diff
if: steps.changelog_check.outputs.changelog_modified == 'true'
run: |
echo "Getting diff for changelog changes..."
git diff origin/${{ steps.pr_info.outputs.base_ref }}..HEAD docs/src/content/docs/changelog.mdx | grep "^+" | grep -v "^+++" | sed 's/^+//' > /tmp/pr_added_lines.txt
echo "Lines added in this PR:"
cat /tmp/pr_added_lines.txt
echo "Total lines added: $(wc -l < /tmp/pr_added_lines.txt)"
- name: Validate changelog
id: validate
if: steps.changelog_check.outputs.changelog_modified == 'true'
run: |
echo "Running changelog validation..."
cd v3/scripts
OUTPUT=$(go run validate-changelog.go ../../docs/src/content/docs/changelog.mdx /tmp/pr_added_lines.txt 2>&1)
echo "$OUTPUT"
RESULT=$(echo "$OUTPUT" | grep "VALIDATION_RESULT=" | cut -d'=' -f2)
echo "result=$RESULT" >> $GITHUB_OUTPUT
- name: Commit fixes
id: commit_fixes
if: steps.validate.outputs.result == 'fixed'
run: |
echo "Committing automatic fixes..."
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
# Check only the changelog file for changes
if git diff --quiet docs/src/content/docs/changelog.mdx; then
echo "No changes to commit"
echo "committed=false" >> $GITHUB_OUTPUT
else
# Ensure validation script doesn't get committed
echo "v3/scripts/validate-changelog.go" >> .git/info/exclude
# Get the correct branch name to push to
REPO_OWNER="wailsapp" # Always wailsapp for this repo
if [ "${{ github.event_name }}" = "pull_request" ]; then
BRANCH_NAME="${{ github.event.pull_request.head.ref }}"
else
# For manual workflow dispatch, get PR info
PR_INFO=$(gh pr view ${{ steps.pr_info.outputs.pr_number }} --json headRefName,headRepository)
BRANCH_NAME=$(echo "$PR_INFO" | jq -r '.headRefName')
HEAD_REPO=$(echo "$PR_INFO" | jq -r '.headRepository.name')
echo "🔍 PR source branch: $BRANCH_NAME"
echo "🔍 Head repository: $HEAD_REPO"
# Don't push if this is from a fork or if branch is v3-alpha (main branch)
if [ "$HEAD_REPO" != "wails" ] || [ "$BRANCH_NAME" = "v3-alpha" ]; then
echo "⚠️ Cannot push - either fork or direct v3-alpha branch. Manual fix required."
echo "committed=false" >> $GITHUB_OUTPUT
exit 0
fi
fi
echo "Pushing to branch: $BRANCH_NAME in repo: $REPO_OWNER"
# Only commit the changelog changes, not the validation script
git add docs/src/content/docs/changelog.mdx
git commit -m "🤖 Fix changelog: move entries to Unreleased section"
# Only push if running on the main wailsapp repository
if [ "${{ github.repository }}" = "wailsapp/wails" ]; then
# Pull latest changes and rebase our commit
git fetch origin $BRANCH_NAME
git rebase origin/$BRANCH_NAME
git push origin HEAD:$BRANCH_NAME
else
echo "⚠️ Running on fork (${{ github.repository }}). Skipping push - manual fix required."
echo "committed=false" >> $GITHUB_OUTPUT
exit 0
fi
echo "committed=true" >> $GITHUB_OUTPUT
echo "✅ Changes committed and pushed"
fi
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Get PR author for tagging
id: pr_author
if: steps.validate.outputs.result && github.event.inputs.pr_number
run: |
PR_AUTHOR=$(gh pr view ${{ steps.pr_info.outputs.pr_number }} --json author --jq '.author.login')
echo "author=$PR_AUTHOR" >> $GITHUB_OUTPUT
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Comment on PR
if: steps.validate.outputs.result && github.event.inputs.pr_number
uses: actions/github-script@v7
with:
script: |
const result = '${{ steps.validate.outputs.result }}';
const committed = '${{ steps.commit_fixes.outputs.committed }}';
const author = '${{ steps.pr_author.outputs.author }}';
let message;
if (result === 'success') {
message = '## ✅ Changelog Validation Passed\n\nNo misplaced changelog entries detected.';
} else if (result === 'fixed' && committed === 'true') {
message = '## 🔧 Changelog Updated\n\nMisplaced entries were automatically moved to the `[Unreleased]` section. The changes have been committed to this PR.';
} else if (result === 'fixed' || result === 'cannot_fix' || result === 'error') {
// Read the fixed changelog content
const fs = require('fs');
let fixedContent = '';
try {
fixedContent = fs.readFileSync('docs/src/content/docs/changelog.mdx', 'utf8');
} catch (error) {
fixedContent = 'Error reading fixed changelog content';
}
message = '## ⚠️ Changelog Validation Issue\\n\\n' +
'@' + author + ' Your PR contains changelog entries that were added to already-released versions. These need to be moved to the `[Unreleased]` section.\\n\\n' +
(committed === 'true' ?
'✅ **Auto-fix applied**: The changes have been automatically committed to this PR.' :
'❌ **Manual fix required**: Please apply the changes shown below manually.') + '\\n\\n' +
'<details>\\n' +
'<summary>📝 Click to see the corrected changelog content</summary>\\n\\n' +
'```mdx\\n' +
fixedContent +
'\\n```\\n\\n' +
'</details>\\n\\n' +
'**What happened?** \\n' +
'The validation script detected that you added changelog entries to a version section that has already been released (like `v3.0.0-alpha.10`). All new entries should go in the `[Unreleased]` section under the appropriate category (`### Added`, `### Fixed`, etc.).\\n\\n' +
(committed !== 'true' ? '**Action needed:** Please copy the corrected content from above and replace your changelog file.' : '');
}
if (message) {
await github.rest.issues.createComment({
issue_number: ${{ steps.pr_info.outputs.pr_number }},
owner: context.repo.owner,
repo: context.repo.repo,
body: message
});
}
- name: Fail if validation failed
if: steps.validate.outputs.result == 'cannot_fix' || steps.validate.outputs.result == 'error'
run: |
echo "❌ Changelog validation failed"
exit 1

View file

@ -0,0 +1,44 @@
name: Claude Code Review
on:
pull_request:
types: [opened, synchronize, ready_for_review, reopened]
# Optional: Only run on specific file changes
# paths:
# - "src/**/*.ts"
# - "src/**/*.tsx"
# - "src/**/*.js"
# - "src/**/*.jsx"
jobs:
claude-review:
# Optional: Filter by PR author
# if: |
# github.event.pull_request.user.login == 'external-contributor' ||
# github.event.pull_request.user.login == 'new-developer' ||
# github.event.pull_request.author_association == 'FIRST_TIME_CONTRIBUTOR'
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: read
issues: read
id-token: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Run Claude Code Review
id: claude-review
uses: anthropics/claude-code-action@v1
with:
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
plugin_marketplaces: 'https://github.com/anthropics/claude-code.git'
plugins: 'code-review@claude-code-plugins'
prompt: '/code-review:code-review ${{ github.repository }}/pull/${{ github.event.pull_request.number }}'
# See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md
# or https://code.claude.com/docs/en/cli-reference for available options

50
.github/workflows/claude.yml vendored Normal file
View file

@ -0,0 +1,50 @@
name: Claude Code
on:
issue_comment:
types: [created]
pull_request_review_comment:
types: [created]
issues:
types: [opened, assigned]
pull_request_review:
types: [submitted]
jobs:
claude:
if: |
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
(github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
(github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
(github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: read
issues: read
id-token: write
actions: read # Required for Claude to read CI results on PRs
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Run Claude Code
id: claude
uses: anthropics/claude-code-action@v1
with:
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
# This is an optional setting that allows Claude to read CI results on PRs
additional_permissions: |
actions: read
# Optional: Give a custom prompt to Claude. If this is not specified, Claude will perform the instructions specified in the comment that tagged it.
# prompt: 'Update the pull request description to include a summary of changes.'
# Optional: Add claude_args to customize behavior and configuration
# See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md
# or https://code.claude.com/docs/en/cli-reference for available options
# claude_args: '--allowed-tools Bash(gh pr:*)'

View file

@ -1,50 +0,0 @@
name: Sync upstream branch and deploy mirror | 同步上游分支并部署镜像
on:
schedule:
- cron: "0 8,20 * * *"
workflow_dispatch:
jobs:
build-and-deploy:
name: Automatic deployment | 自动部署
runs-on: ubuntu-latest
if: github.repository == 'misitebao/wails'
steps:
- name: Checkout | 切换到部署分支
uses: actions/checkout@v2
with:
ref: "master"
submodules: true
fetch-depth: 0
- name: Setup Git | 设置Git
run: |
git config --local user.email "i@misitebao.com"
git config --local user.name "misitebao"
- name: Add remote upstream repository and sync | 添加远程上游仓库并同步
run: |
git remote add upstream https://github.com/wailsapp/wails
git pull -v --progress --no-rebase "upstream" master
- name: Push | 推送
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branch: ${{ github.ref }}
- name: Build Site | 构建网站
run: |
cd website &&
npm install && npm run build
- name: Deploy to Server | 部署到服务器
uses: hengkx/ssh-deploy@v1.0.1
with:
HOST: ${{ secrets.DEPLOY_HOST }}
USERNAME: ${{ secrets.DEPLOY_HOST_USER }}
PASSWORD: ${{ secrets.DEPLOY_HOST_PASSWORD }}
SOURCE: "website/build"
TARGET: "/www/wwwroot/wails.top"

View file

@ -0,0 +1,40 @@
name: Generate Sponsor Image
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * *"
jobs:
update-sponsors:
name: Update Sponsors
runs-on: ubuntu-latest
if: github.repository == 'wailsapp/wails'
steps:
- uses: actions/checkout@v3
- name: Set Node
uses: actions/setup-node@v2
with:
node-version: 20.x
- name: Update Sponsors
run: cd scripts/sponsors && chmod 755 ./generate-sponsor-image.sh && ./generate-sponsor-image.sh
env:
SPONSORKIT_GITHUB_TOKEN: ${{ secrets.SPONSORS_TOKEN }}
SPONSORKIT_GITHUB_LOGIN: wailsapp
- name: Create Pull Request
uses: peter-evans/create-pull-request@v6
with:
commit-message: "chore: update sponsors.svg"
add-paths: "website/static/img/sponsors.svg"
title: "chore: update sponsors.svg"
body: |
Auto-generated by the sponsor image workflow
[skip ci] [skip actions]
branch: update-sponsors
base: master
delete-branch: true
draft: false

View file

@ -0,0 +1,77 @@
name: Issue Triage Automation
on:
issues:
types: [opened]
jobs:
triage:
runs-on: ubuntu-latest
permissions:
issues: write
contents: read
steps:
# Request more info for unclear bug reports
- name: Request more info
uses: actions/github-script@v6
if: |
contains(github.event.issue.labels.*.name, 'bug') &&
!contains(github.event.issue.body, 'wails doctor') &&
!contains(github.event.issue.body, 'reproduction')
with:
script: |
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: `👋 Thanks for reporting this issue! To help us investigate, could you please:
1. Add the output of \`wails doctor\` if not already included
2. Provide clear steps to reproduce the issue
3. If possible, create a minimal reproduction of the issue
This will help us resolve your issue much faster. Thank you!`
});
github.rest.issues.addLabels({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
labels: ['awaiting feedback']
});
# Prioritize security issues
- name: Prioritize security issues
uses: actions/github-script@v6
if: contains(github.event.issue.labels.*.name, 'security')
with:
script: |
github.rest.issues.addLabels({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
labels: ['high-priority']
});
# Tag version-specific issues for project boards
- name: Add to v2 project
uses: actions/github-script@v6
if: |
contains(github.event.issue.labels.*.name, 'v2-only') &&
!contains(github.event.issue.labels.*.name, 'v3-alpha')
with:
script: |
// Replace PROJECT_ID with your actual GitHub project ID
// This is a placeholder as the actual implementation would require
// GraphQL API calls to add to a project board
console.log('Would add to v2 project board');
# Tag version-specific issues for project boards
- name: Add to v3 project
uses: actions/github-script@v6
if: contains(github.event.issue.labels.*.name, 'v3-alpha')
with:
script: |
// Replace PROJECT_ID with your actual GitHub project ID
// This is a placeholder as the actual implementation would require
// GraphQL API calls to add to a project board
console.log('Would add to v3 project board');

View file

@ -1,34 +0,0 @@
name: latest pre-release
on:
push:
branches:
- develop
tags:
- '**-pre**'
jobs:
build:
name: Test Build Latest Pre-Release
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macOS-latest]
steps:
- name: Set up Go 1.16
uses: actions/setup-go@v1
with:
go-version: 1.16
id: go
- name: Check out code into the Go module directory
uses: actions/checkout@v1
- name: Get dependencies
run: |
go get -v -d ./...
- name: Build
run: go build -v ./cmd/wails
- name: Test
run: ./wails version

210
.github/workflows/nightly-release-v3.yml vendored Normal file
View file

@ -0,0 +1,210 @@
name: Nightly Release v3-alpha
on:
schedule:
- cron: '0 2 * * *' # 2 AM UTC daily
workflow_dispatch:
inputs:
force_release:
description: 'Force release even if no changes detected'
required: false
default: false
type: boolean
dry_run:
description: 'Run in dry-run mode (no actual release)'
required: false
default: true
type: boolean
jobs:
nightly-release:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: read
actions: write
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: v3-alpha
fetch-depth: 0
token: ${{ secrets.WAILS_REPO_TOKEN || github.token }}
- name: Setup Go
uses: actions/setup-go@v4
with:
go-version: '1.24'
cache: true
cache-dependency-path: 'v3/go.sum'
- name: Install Task
uses: arduino/setup-task@v2
with:
version: 3.x
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Git
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
# Configure git to use the token for authentication
git config --global url."https://x-access-token:${{ secrets.WAILS_REPO_TOKEN || github.token }}@github.com/".insteadOf "https://github.com/"
- name: Check for existing release tag
id: check_tag
run: |
if git describe --tags --exact-match HEAD 2>/dev/null; then
echo "has_tag=true" >> $GITHUB_OUTPUT
echo "tag=$(git describe --tags --exact-match HEAD)" >> $GITHUB_OUTPUT
else
echo "has_tag=false" >> $GITHUB_OUTPUT
echo "tag=" >> $GITHUB_OUTPUT
fi
- name: Check for unreleased changelog content
id: changelog_check
run: |
echo "🔍 Checking UNRELEASED_CHANGELOG.md for content..."
# Run the release script in check mode to see if there's content
cd v3/tasks/release
# Use the release script itself to check for content
if go run release.go --check-only 2>/dev/null; then
echo "has_unreleased_content=true" >> $GITHUB_OUTPUT
echo "✅ Found unreleased changelog content"
else
echo "has_unreleased_content=false" >> $GITHUB_OUTPUT
echo " No unreleased changelog content found"
fi
- name: Quick change detection and early exit
id: quick_check
run: |
echo "🔍 Quick check for changes to determine if we should continue..."
# First check if we have unreleased changelog content
if [ "${{ steps.changelog_check.outputs.has_unreleased_content }}" == "true" ]; then
echo "✅ Found unreleased changelog content, proceeding with release"
echo "has_changes=true" >> $GITHUB_OUTPUT
echo "should_continue=true" >> $GITHUB_OUTPUT
echo "reason=Found unreleased changelog content" >> $GITHUB_OUTPUT
exit 0
fi
# If no unreleased changelog content, check for git changes as fallback
echo "No unreleased changelog content found, checking for git changes..."
# Check if current commit has a release tag
if git describe --tags --exact-match HEAD 2>/dev/null; then
CURRENT_TAG=$(git describe --tags --exact-match HEAD)
echo "Current commit has release tag: $CURRENT_TAG"
# For tagged commits, check if there are changes since the tag
COMMIT_COUNT=$(git rev-list ${CURRENT_TAG}..HEAD --count)
if [ "$COMMIT_COUNT" -eq 0 ]; then
echo "has_changes=false" >> $GITHUB_OUTPUT
echo "should_continue=false" >> $GITHUB_OUTPUT
echo "reason=No changes since existing tag $CURRENT_TAG and no unreleased changelog content" >> $GITHUB_OUTPUT
else
echo "has_changes=true" >> $GITHUB_OUTPUT
echo "should_continue=true" >> $GITHUB_OUTPUT
fi
else
# No current tag, check against latest release
LATEST_TAG=$(git tag --list "v3.0.0-alpha.*" | sort -V | tail -1)
if [ -z "$LATEST_TAG" ]; then
echo "No previous release found, proceeding with release"
echo "has_changes=true" >> $GITHUB_OUTPUT
echo "should_continue=true" >> $GITHUB_OUTPUT
else
COMMIT_COUNT=$(git rev-list ${LATEST_TAG}..HEAD --count)
if [ "$COMMIT_COUNT" -gt 0 ]; then
echo "Found $COMMIT_COUNT commits since $LATEST_TAG"
echo "has_changes=true" >> $GITHUB_OUTPUT
echo "should_continue=true" >> $GITHUB_OUTPUT
else
echo "has_changes=false" >> $GITHUB_OUTPUT
echo "should_continue=false" >> $GITHUB_OUTPUT
echo "reason=No changes since latest release $LATEST_TAG and no unreleased changelog content" >> $GITHUB_OUTPUT
fi
fi
fi
- name: Early exit - No changes detected
if: |
steps.quick_check.outputs.should_continue == 'false' &&
github.event.inputs.force_release != 'true'
run: |
echo "🛑 EARLY EXIT: ${{ steps.quick_check.outputs.reason }}"
echo ""
echo " No changes detected since last release and force_release is not enabled."
echo " Workflow will exit early to save resources."
echo ""
echo " To force a release anyway, run this workflow with 'force_release=true'"
echo ""
echo "## 🛑 Early Exit Summary" >> $GITHUB_STEP_SUMMARY
echo "**Reason:** ${{ steps.quick_check.outputs.reason }}" >> $GITHUB_STEP_SUMMARY
echo "**Action:** Workflow exited early to save resources" >> $GITHUB_STEP_SUMMARY
echo "**Force Release:** Set 'force_release=true' to override this behavior" >> $GITHUB_STEP_SUMMARY
exit 0
- name: Continue with release process
if: |
steps.quick_check.outputs.should_continue == 'true' ||
github.event.inputs.force_release == 'true'
run: |
echo "✅ Proceeding with release process..."
if [ "${{ github.event.inputs.force_release }}" == "true" ]; then
echo "🔨 FORCE RELEASE: Overriding change detection"
fi
- name: Run release script
id: release
if: |
steps.quick_check.outputs.should_continue == 'true' ||
github.event.inputs.force_release == 'true'
env:
WAILS_REPO_TOKEN: ${{ secrets.WAILS_REPO_TOKEN || github.token }}
GITHUB_TOKEN: ${{ secrets.WAILS_REPO_TOKEN || github.token }}
run: |
cd v3/tasks/release
ARGS=()
if [ "${{ github.event.inputs.dry_run }}" == "true" ]; then
ARGS+=(--dry-run)
fi
go run release.go "${ARGS[@]}"
- name: Summary
if: always()
run: |
if [ "${{ github.event.inputs.dry_run }}" == "true" ]; then
echo "## 🧪 DRY RUN Release Summary" >> $GITHUB_STEP_SUMMARY
else
echo "## 🚀 Nightly Release Summary" >> $GITHUB_STEP_SUMMARY
fi
echo "================================" >> $GITHUB_STEP_SUMMARY
if [ -n "${{ steps.release.outputs.release_version }}" ]; then
echo "- **Version:** ${{ steps.release.outputs.release_version }}" >> $GITHUB_STEP_SUMMARY
echo "- **Tag:** ${{ steps.release.outputs.release_tag }}" >> $GITHUB_STEP_SUMMARY
echo "- **Status:** ${{ steps.release.outcome == 'success' && '✅ Success' || '⚠️ Failed' }}" >> $GITHUB_STEP_SUMMARY
echo "- **Mode:** ${{ steps.release.outputs.release_dry_run == 'true' && '🧪 Dry Run' || '🚀 Live release' }}" >> $GITHUB_STEP_SUMMARY
if [ -n "${{ steps.release.outputs.release_url }}" ]; then
echo "- **Release URL:** ${{ steps.release.outputs.release_url }}" >> $GITHUB_STEP_SUMMARY
fi
echo "" >> $GITHUB_STEP_SUMMARY
echo "### Changelog" >> $GITHUB_STEP_SUMMARY
if [ "${{ steps.changelog_check.outputs.has_unreleased_content }}" == "true" ]; then
echo "✅ Unreleased changelog processed and reset." >> $GITHUB_STEP_SUMMARY
else
echo " No unreleased changelog content detected." >> $GITHUB_STEP_SUMMARY
fi
else
echo "- Release script did not run (skipped or failed before execution)." >> $GITHUB_STEP_SUMMARY
fi

104
.github/workflows/pr-master.yml vendored Normal file
View file

@ -0,0 +1,104 @@
# Updated to ensure "Run Go Tests" runs for pull requests as expected.
# Key fix: the test_go job previously required github.event.review.state == 'approved'
# which only exists on pull_request_review events. That prevented the job from
# running for regular pull_request events (opened / synchronize / reopened).
# New logic: run tests for pull_request events, and also allow running when a
# pull_request_review is submitted with state == 'approved'.
on:
pull_request:
types: [opened, synchronize, reopened]
branches:
- master
pull_request_review:
types: [submitted]
branches:
- master
workflow_dispatch: {}
name: PR Checks (master)
jobs:
check_docs:
name: Check Docs
if: ${{ github.repository == 'wailsapp/wails' && github.base_ref == 'master' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Verify Changed files
uses: step-security/changed-files@3dbe17c78367e7d60f00d78ae6781a35be47b4a1 # v45.0.1
id: verify-changed-files
with:
files: |
website/**/*.mdx
website/**/*.md
- name: Run step only when files change.
if: steps.verify-changed-files.outputs.files_changed != 'true'
run: |
echo "::warning::Feature branch does not contain any changes to the website."
test_go:
name: Run Go Tests
runs-on: ${{ matrix.os }}
# Run when:
# - the event is a pull_request (opened/synchronize/reopened) OR
# - the event is a pull_request_review AND the review state is 'approved'
# plus other existing filters (not the update-sponsors branch, repo and base_ref)
if: >
github.repository == 'wailsapp/wails' &&
github.base_ref == 'master' &&
github.event.pull_request.head.ref != 'update-sponsors' &&
(
github.event_name == 'pull_request' ||
(github.event_name == 'pull_request_review' && github.event.review.state == 'approved')
)
strategy:
matrix:
os: [ubuntu-22.04, windows-latest, macos-latest, ubuntu-24.04]
go-version: ['1.23']
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Install linux dependencies (22.04)
if: matrix.os == 'ubuntu-22.04'
run: sudo apt-get update -y && sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev build-essential pkg-config
- name: Install linux dependencies (24.04)
if: matrix.os == 'ubuntu-24.04'
run: sudo apt-get update -y && sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev build-essential pkg-config
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: ${{ matrix.go-version }}
- name: Run tests (mac)
if: matrix.os == 'macos-latest'
env:
CGO_LDFLAGS: -framework UniformTypeIdentifiers -mmacosx-version-min=10.13
working-directory: ./v2
run: go test -v ./...
- name: Run tests (!mac)
if: matrix.os != 'macos-latest' && matrix.os != 'ubuntu-24.04'
working-directory: ./v2
run: go test -v ./...
- name: Run tests (Ubuntu 24.04)
if: matrix.os == 'ubuntu-24.04'
working-directory: ./v2
run: go test -v -tags webkit2_41 ./...
# This job will run instead of test_go for the update-sponsors branch
skip_tests:
name: Skip Tests (Sponsor Update)
if: github.event.pull_request.head.ref == 'update-sponsors'
runs-on: ubuntu-latest
steps:
- name: Skip tests for sponsor updates
run: |
echo "Skipping tests for sponsor update branch"
echo "This is an automated update of the sponsors image."
continue-on-error: true

View file

@ -1,32 +0,0 @@
name: pr
on:
pull_request:
branches:
- develop
jobs:
build:
name: Test Build PR
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macOS-latest]
steps:
- name: Set up Go 1.16
uses: actions/setup-go@v1
with:
go-version: 1.16
id: go
- name: Check out code into the Go module directory
uses: actions/checkout@v1
- name: Get dependencies
run: |
go get -v -d ./...
- name: Build
run: go build -v ./cmd/wails
- name: Test
run: ./wails version

17
.github/workflows/projects.yml vendored Normal file
View file

@ -0,0 +1,17 @@
name: Update Project
on:
project_card:
types: [ moved ]
jobs:
projectcardautolabel_job:
runs-on: ubuntu-latest
if: github.repository == 'wailsapp/wails'
steps:
- name: Run ProjectCard AutoLabel
id: runprojectcardautolabel
uses: Matticusau/projectcard-autolabel@v1.0.0
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
autolabel-config: '[{"column": "TODO", "add_labels":["TODO"], "remove_labels":["In Progress", "Ready For Testing"]},{"column":"In progress", "add_labels":["In Progress"], "remove_labels":["TODO", "Ready For Testing"]},{"column":"In review", "add_labels":["Ready For Testing"], "remove_labels":["TODO", "In Progress"]}, {"column":"Done", "add_labels":["Done"], "remove_labels":["TODO", "In Progress", "Ready For Testing"]}]'

View file

@ -1,34 +0,0 @@
name: release
on:
push:
branches:
- master
tags:
- '!**pre**'
jobs:
build:
name: Test Build Latest Release
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macOS-latest]
steps:
- name: Set up Go 1.16
uses: actions/setup-go@v1
with:
go-version: 1.16
id: go
- name: Check out code into the Go module directory
uses: actions/checkout@v1
- name: Get dependencies
run: |
go get -v -d ./...
- name: Build
run: go build -v ./cmd/wails
- name: Test
run: ./wails version

View file

@ -10,7 +10,7 @@ jobs:
name: Rebuild the runtime
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- uses: actions/setup-node@v2
with:
node-version: 14.17.6

25
.github/workflows/semgrep.yml vendored Normal file
View file

@ -0,0 +1,25 @@
on:
workflow_dispatch: {}
pull_request: {}
push:
branches:
- main
- master
- v3-alpha
paths:
- .github/workflows/semgrep.yml
schedule:
# random HH:MM to avoid a load spike on GitHub Actions at 00:00
- cron: 14 16 * * *
name: Semgrep
jobs:
semgrep:
name: semgrep/ci
runs-on: ubuntu-24.04
env:
SEMGREP_APP_TOKEN: ${{ secrets.SEMGREP_APP_TOKEN }}
container:
image: returntocorp/semgrep
steps:
- uses: actions/checkout@v3
- run: semgrep ci

57
.github/workflows/stale-issues.yml vendored Normal file
View file

@ -0,0 +1,57 @@
name: Mark and Close Stale Issues
on:
schedule:
- cron: '0 1 * * *' # Run at 1 AM UTC every day
workflow_dispatch: # Allow manual triggering
jobs:
stale:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
steps:
- uses: actions/stale@v9
with:
# General settings
repo-token: ${{ secrets.GITHUB_TOKEN }}
days-before-stale: 45
days-before-close: 10
stale-issue-label: 'stale'
operations-per-run: 250 # Increased from 50 to 250
# Issue specific settings
stale-issue-message: |
This issue has been automatically marked as stale because it has not had recent activity.
It will be closed if no further activity occurs within the next 10 days.
If this issue is still relevant, please add a comment to keep it open.
Thank you for your contributions.
close-issue-message: |
This issue has been automatically closed due to lack of activity.
Please feel free to reopen it if it's still relevant.
# PR specific settings - We will not mark PRs as stale
days-before-pr-stale: -1 # Disable PR staling
days-before-pr-close: -1 # Disable PR closing
# Exemptions
exempt-issue-labels: 'pinned,security,onhold,inprogress,Selected For Development,bug,enhancement,v3-alpha,high-priority'
exempt-all-issue-milestones: true
exempt-all-issue-assignees: true
# Protection for existing issues
exempt-issue-created-before: '2024-01-01T00:00:00Z'
start-date: '2025-06-01T00:00:00Z' # Don't start checking until June 1, 2025
# Only process issues, not PRs
only-labels: ''
any-of-labels: ''
remove-stale-when-updated: true
# Debug options
debug-only: false # Set to true to test without actually marking issues
ascending: true # Process older issues first

View file

@ -0,0 +1,41 @@
name: Sync Translations
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * *"
jobs:
sync-translated-documents:
runs-on: ubuntu-latest
if: github.repository == 'wailsapp/wails'
steps:
- uses: actions/checkout@v3
- name: Setup Nodejs
uses: actions/setup-node@v2
with:
node-version: 20.x
- name: Install Task
uses: arduino/setup-task@v1
with:
version: 3.x
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Sync Translated Documents
env:
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}
working-directory: ./website
run: task crowdin:pull
- name: Create Pull Request
uses: peter-evans/create-pull-request@v4
with:
commit-message: "docs: sync translations"
title: "docs: sync translations"
body: "- [x] Sync translated documents"
branch: chore/sync-translations
labels: translation
delete-branch: true
draft: true

View file

@ -0,0 +1,216 @@
name: Test Nightly Releases (Dry Run)
on:
workflow_dispatch:
inputs:
dry_run:
description: 'Run in dry-run mode (no actual releases)'
required: false
default: true
type: boolean
test_branch:
description: 'Branch to test against'
required: false
default: 'master'
type: string
env:
GO_VERSION: '1.24'
jobs:
test-permissions:
name: Test Release Permissions
runs-on: ubuntu-latest
outputs:
authorized: ${{ steps.check.outputs.authorized }}
steps:
- name: Check if user is authorized
id: check
run: |
# Test authorization logic
AUTHORIZED_USERS="leaanthony"
if [[ "$AUTHORIZED_USERS" == *"${{ github.actor }}"* ]]; then
echo "✅ User ${{ github.actor }} is authorized"
echo "authorized=true" >> $GITHUB_OUTPUT
else
echo "❌ User ${{ github.actor }} is not authorized"
echo "authorized=false" >> $GITHUB_OUTPUT
fi
test-changelog-extraction:
name: Test Changelog Extraction
runs-on: ubuntu-latest
needs: test-permissions
if: needs.test-permissions.outputs.authorized == 'true'
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: ${{ github.event.inputs.test_branch }}
fetch-depth: 0
- name: Test v2 changelog extraction
run: |
echo "🧪 Testing v2 changelog extraction..."
CHANGELOG_FILE="website/src/pages/changelog.mdx"
if [ ! -f "$CHANGELOG_FILE" ]; then
echo "❌ v2 changelog file not found"
exit 1
fi
# Extract unreleased section
awk '
/^## \[Unreleased\]/ { found=1; next }
found && /^## / { exit }
found && !/^$/ { print }
' $CHANGELOG_FILE > v2_release_notes.md
echo "📝 v2 changelog content (first 10 lines):"
head -10 v2_release_notes.md || echo "No content found"
echo "Total lines: $(wc -l < v2_release_notes.md)"
- name: Test v3 changelog extraction (if accessible)
run: |
echo "🧪 Testing v3 changelog extraction..."
if git show v3-alpha:docs/src/content/docs/changelog.mdx > /dev/null 2>&1; then
echo "✅ v3 changelog accessible"
git show v3-alpha:docs/src/content/docs/changelog.mdx | awk '
/^## \[Unreleased\]/ { found=1; next }
found && /^## / { exit }
found && !/^$/ { print }
' > v3_release_notes.md
echo "📝 v3 changelog content (first 10 lines):"
head -10 v3_release_notes.md || echo "No content found"
echo "Total lines: $(wc -l < v3_release_notes.md)"
else
echo "⚠️ v3 changelog not accessible from current context"
fi
test-version-detection:
name: Test Version Detection
runs-on: ubuntu-latest
needs: test-permissions
if: needs.test-permissions.outputs.authorized == 'true'
outputs:
v2_current_version: ${{ steps.versions.outputs.v2_current }}
v2_next_patch: ${{ steps.versions.outputs.v2_next_patch }}
v2_next_minor: ${{ steps.versions.outputs.v2_next_minor }}
v2_next_major: ${{ steps.versions.outputs.v2_next_major }}
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Test version detection logic
id: versions
run: |
echo "🧪 Testing version detection..."
# Test v2 version parsing
if [ -f "v2/cmd/wails/internal/version.txt" ]; then
CURRENT_V2=$(cat v2/cmd/wails/internal/version.txt | sed 's/^v//')
echo "Current v2 version: v$CURRENT_V2"
echo "v2_current=v$CURRENT_V2" >> $GITHUB_OUTPUT
# Parse and increment
IFS='.' read -ra VERSION_PARTS <<< "$CURRENT_V2"
MAJOR=${VERSION_PARTS[0]}
MINOR=${VERSION_PARTS[1]}
PATCH=${VERSION_PARTS[2]}
PATCH_VERSION="v$MAJOR.$MINOR.$((PATCH + 1))"
MINOR_VERSION="v$MAJOR.$((MINOR + 1)).0"
MAJOR_VERSION="v$((MAJOR + 1)).0.0"
echo "v2_next_patch=$PATCH_VERSION" >> $GITHUB_OUTPUT
echo "v2_next_minor=$MINOR_VERSION" >> $GITHUB_OUTPUT
echo "v2_next_major=$MAJOR_VERSION" >> $GITHUB_OUTPUT
echo "✅ Patch: v$CURRENT_V2 → $PATCH_VERSION"
echo "✅ Minor: v$CURRENT_V2 → $MINOR_VERSION"
echo "✅ Major: v$CURRENT_V2 → $MAJOR_VERSION"
else
echo "❌ v2 version file not found"
fi
test-commit-analysis:
name: Test Commit Analysis
runs-on: ubuntu-latest
needs: test-permissions
if: needs.test-permissions.outputs.authorized == 'true'
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Test commit analysis
run: |
echo "🧪 Testing commit analysis..."
# Get recent commits for testing
echo "Recent commits:"
git log --oneline -10
# Test conventional commit detection
RECENT_COMMITS=$(git log --oneline --since="7 days ago")
echo "Commits from last 7 days:"
echo "$RECENT_COMMITS"
# Analyze for release type
RELEASE_TYPE="patch"
if echo "$RECENT_COMMITS" | grep -q "feat!\|fix!\|BREAKING CHANGE:"; then
RELEASE_TYPE="major"
elif echo "$RECENT_COMMITS" | grep -q "feat\|BREAKING CHANGE"; then
RELEASE_TYPE="minor"
fi
echo "✅ Detected release type: $RELEASE_TYPE"
test-summary:
name: Test Summary
runs-on: ubuntu-latest
needs: [test-permissions, test-changelog-extraction, test-version-detection, test-commit-analysis]
if: always()
steps:
- name: Print test results
run: |
echo "# 🧪 Nightly Release Workflow Test Results" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
if [ "${{ needs.test-permissions.result }}" == "success" ]; then
echo "✅ **Permissions Test**: Passed" >> $GITHUB_STEP_SUMMARY
else
echo "❌ **Permissions Test**: Failed" >> $GITHUB_STEP_SUMMARY
fi
if [ "${{ needs.test-changelog-extraction.result }}" == "success" ]; then
echo "✅ **Changelog Extraction**: Passed" >> $GITHUB_STEP_SUMMARY
else
echo "❌ **Changelog Extraction**: Failed" >> $GITHUB_STEP_SUMMARY
fi
if [ "${{ needs.test-version-detection.result }}" == "success" ]; then
echo "✅ **Version Detection**: Passed" >> $GITHUB_STEP_SUMMARY
echo " - Current v2: ${{ needs.test-version-detection.outputs.v2_current_version }}" >> $GITHUB_STEP_SUMMARY
echo " - Next patch: ${{ needs.test-version-detection.outputs.v2_next_patch }}" >> $GITHUB_STEP_SUMMARY
echo " - Next minor: ${{ needs.test-version-detection.outputs.v2_next_minor }}" >> $GITHUB_STEP_SUMMARY
echo " - Next major: ${{ needs.test-version-detection.outputs.v2_next_major }}" >> $GITHUB_STEP_SUMMARY
else
echo "❌ **Version Detection**: Failed" >> $GITHUB_STEP_SUMMARY
fi
if [ "${{ needs.test-commit-analysis.result }}" == "success" ]; then
echo "✅ **Commit Analysis**: Passed" >> $GITHUB_STEP_SUMMARY
else
echo "❌ **Commit Analysis**: Failed" >> $GITHUB_STEP_SUMMARY
fi
echo "" >> $GITHUB_STEP_SUMMARY
echo "**Note**: This was a dry-run test. No actual releases were created." >> $GITHUB_STEP_SUMMARY

View file

@ -0,0 +1,129 @@
name: Auto Release on Changelog Update
on:
push:
branches:
- v3-alpha
paths:
- 'v3/UNRELEASED_CHANGELOG.md'
workflow_dispatch:
inputs:
dry_run:
description: 'Run in dry-run mode (no actual release)'
required: false
default: false
type: boolean
jobs:
check-permissions:
name: Check Release Permissions
runs-on: ubuntu-latest
outputs:
authorized: ${{ steps.check.outputs.authorized }}
steps:
- name: Check if user is authorized for releases
id: check
run: |
# Only allow specific users to trigger releases
AUTHORIZED_USERS="leaanthony"
if [[ "$AUTHORIZED_USERS" == *"${{ github.actor }}"* ]]; then
echo "✅ User ${{ github.actor }} is authorized for releases"
echo "authorized=true" >> $GITHUB_OUTPUT
else
echo "❌ User ${{ github.actor }} is not authorized for releases"
echo "authorized=false" >> $GITHUB_OUTPUT
fi
trigger-release:
name: Trigger v3-alpha Release
permissions:
contents: read
actions: write
runs-on: ubuntu-latest
needs: check-permissions
if: needs.check-permissions.outputs.authorized == 'true'
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: v3-alpha
fetch-depth: 0
token: ${{ secrets.WAILS_REPO_TOKEN || github.token }}
- name: Check for unreleased changelog content
id: changelog_check
run: |
echo "🔍 Checking UNRELEASED_CHANGELOG.md for content..."
cd v3
# Check if UNRELEASED_CHANGELOG.md has actual content beyond the template
if [ -f "UNRELEASED_CHANGELOG.md" ]; then
# Use a simple check for actual content (bullet points starting with -)
CONTENT_LINES=$(grep -E "^\s*-\s+[^[:space:]]" UNRELEASED_CHANGELOG.md | wc -l)
if [ "$CONTENT_LINES" -gt 0 ]; then
echo "✅ Found $CONTENT_LINES content lines in UNRELEASED_CHANGELOG.md"
echo "has_content=true" >> $GITHUB_OUTPUT
else
echo " No actual content found in UNRELEASED_CHANGELOG.md"
echo "has_content=false" >> $GITHUB_OUTPUT
fi
else
echo "❌ UNRELEASED_CHANGELOG.md not found"
echo "has_content=false" >> $GITHUB_OUTPUT
fi
- name: Trigger nightly release workflow
if: steps.changelog_check.outputs.has_content == 'true'
uses: actions/github-script@v7
with:
github-token: ${{ secrets.WAILS_REPO_TOKEN || github.token }}
script: |
const response = await github.rest.actions.createWorkflowDispatch({
owner: context.repo.owner,
repo: context.repo.repo,
workflow_id: 'nightly-release-v3.yml',
ref: 'v3-alpha',
inputs: {
force_release: 'true',
dry_run: '${{ github.event.inputs.dry_run || "false" }}'
}
});
console.log('🚀 Successfully triggered nightly release workflow');
console.log(`Workflow dispatch response status: ${response.status}`);
// Create a summary
core.summary
.addHeading('🚀 Auto Release Triggered')
.addRaw('The v3-alpha release workflow has been automatically triggered due to changes in UNRELEASED_CHANGELOG.md')
.addTable([
[{data: 'Trigger', header: true}, {data: 'Value', header: true}],
['Repository', context.repo.repo],
['Branch', 'v3-alpha'],
['Actor', context.actor],
['Dry Run', '${{ github.event.inputs.dry_run || "false" }}'],
['Force Release', 'true']
])
.addRaw('\n---\n*This release was automatically triggered by the unreleased-changelog-trigger workflow*')
.write();
- name: No content found
if: steps.changelog_check.outputs.has_content == 'false'
run: |
echo " No content found in UNRELEASED_CHANGELOG.md, skipping release trigger"
echo "## No Release Triggered" >> $GITHUB_STEP_SUMMARY
echo "**Reason:** UNRELEASED_CHANGELOG.md does not contain actual changelog content" >> $GITHUB_STEP_SUMMARY
echo "**Action:** No release workflow was triggered" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "To trigger a release, add actual changelog entries to the UNRELEASED_CHANGELOG.md file." >> $GITHUB_STEP_SUMMARY
- name: Unauthorized user
if: needs.check-permissions.outputs.authorized == 'false'
run: |
echo "❌ User ${{ github.actor }} is not authorized to trigger releases"
echo "## ❌ Unauthorized Release Attempt" >> $GITHUB_STEP_SUMMARY
echo "**User:** ${{ github.actor }}" >> $GITHUB_STEP_SUMMARY
echo "**Action:** Release trigger was blocked due to insufficient permissions" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "Only authorized users can trigger automatic releases via changelog updates." >> $GITHUB_STEP_SUMMARY

View file

@ -0,0 +1,41 @@
name: Upload Source Documents
on:
push:
branches: [master]
workflow_dispatch:
jobs:
push_files_to_crowdin:
name: Push files to Crowdin
if: github.repository == 'wailsapp/wails'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Verify Changed files
id: changed-files
uses: step-security/changed-files@3dbe17c78367e7d60f00d78ae6781a35be47b4a1 # v45.0.1
with:
files: |
website/**/*.mdx
website/**/*.md
website/**/*.json
- name: Setup Nodejs
uses: actions/setup-node@v2
with:
node-version: 20.x
- name: Setup Task
uses: arduino/setup-task@v1
with:
version: 3.x
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Upload source documents
if: steps.changed-files.outputs.any_changed == 'true'
env:
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}
working-directory: ./website
run: task crowdin:push

14
.gitignore vendored
View file

@ -27,7 +27,15 @@ v2/pkg/parser/testproject/frontend/wails
v2/test/kitchensink/frontend/public
v2/test/kitchensink/build/darwin/desktop/kitchensink
v2/test/kitchensink/frontend/package.json.md5
/v2/internal/ffenestri/windows/test/cmake-build-debug/
!v2/internal/ffenestri/windows/x64/webview2.dll
!v2/internal/ffenestri/windows/x64/WebView2Loader.dll
.idea/
v2/cmd/wails/internal/commands/initialise/templates/testtemplates/
.env
/website/static/img/.cache.json
/v3/.task
/v3/examples/build/bin/testapp
/websitev3/site/
/v3/examples/plugins/bin/testapp
# Temporary called mkdocs, should be renamed to more standard -website or similar
/mkdocs-website/site

View file

@ -1,34 +0,0 @@
# This is an example goreleaser.yaml file with some sane defaults.
# Make sure to check the documentation at http://goreleaser.com
builds:
- env:
- CGO_ENABLED=0
goos:
- windows
- linux
- darwin
goarch:
- 386
- amd64
ignore:
- goos: darwin
goarch: 386
main: ./cmd/wails/main.go
archive:
replacements:
darwin: Darwin
linux: Linux
windows: Windows
386: i386
amd64: x86_64
checksum:
name_template: 'checksums.txt'
snapshot:
name_template: "{{ .Tag }}-next"
changelog:
sort: asc
filters:
exclude:
- '^docs:'
- '^test:'

View file

@ -1,6 +0,0 @@
jshint:
config_file: .jshintrc
eslint:
enabled: true
config_file: .eslintrc
ignore_file: .eslintignore

View file

@ -1,3 +0,0 @@
{
"esversion": 6
}

3
.prettierignore Normal file
View file

@ -0,0 +1,3 @@
website
v2
v3

6
.prettierrc.yml Normal file
View file

@ -0,0 +1,6 @@
overrides:
- files:
- "**/*.md"
options:
printWidth: 80
proseWrap: always

8
.replit Normal file
View file

@ -0,0 +1,8 @@
modules = ["go-1.21", "web", "nodejs-20"]
run = "go run v2/cmd/wails/main.go"
[nix]
channel = "stable-24_05"
[deployment]
run = ["sh", "-c", "go run v2/cmd/wails/main.go"]

48
.vscode/launch.json vendored
View file

@ -1,48 +0,0 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Test cmd package",
"type": "go",
"request": "launch",
"mode": "test",
"program": "${workspaceFolder}/cmd/"
},
{
"name": "Wails Init",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "${workspaceFolder}/cmd/wails/main.go",
"env": {},
"cwd": "/tmp",
"args": [
"init",
"-name",
"runtime",
"-dir",
"runtime",
"-output",
"runtime",
"-template",
"vuebasic"
]
},
{
"name": "Wails Update Pre",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "${workspaceFolder}/cmd/wails/main.go",
"env": {},
"cwd": "/tmp",
"args": [
"update",
"-pre"
]
}
]
}

View file

@ -1,8 +0,0 @@
{
"go.formatTool": "goimports",
"eslint.alwaysShowStatus": true,
"files.associations": {
"__locale": "c",
"ios": "c"
}
}

View file

@ -1,34 +1 @@
2019-07-20 **v0.17.6-pre**
* Significant refactor of runtime
* Removed wailsbridge file - now a unified approach taken
* Fixed React on Windows - Thanks [Florian Didran](https://github.com/fdidron)!
2019-06-18 **v0.16.0**
* React template FTW! - Thanks [admin_3.exe](https://github.com/bh90210)!
* Updated contributors
* Arch Linux detection without lsb-release
* Removed deprecated methods for dealing with JS/CSS in the backend
2019-05-29 **v0.14.11-pre**
* Windows fix for spinner
2019-05-29 **v0.14.10-pre**
* Windows fix for Vuetify
2019-05-29 **v0.14.9-pre**
* Vuetify project template 🎉
2019-05-29 **v0.14.8-pre**
* Updated Ubuntu npm install command
2019-05-22 **v0.14.7-pre**
* New projects are built automatically when initialised
* Go 1.12 is now a minimum requirement
2019-05-21 **v0.14.6-pre**
* Hotfix for module dependency issue
2019-05-20 **v0.14.5-pre**
* Added developer tooling - New Template Generator
* Documentation fixes - Thanks [admin_3.exe](https://github.com/bh90210)!
The current changelog may be found at: https://wails.io/changelog/

1
CONTRIBUTING.md Normal file
View file

@ -0,0 +1 @@
The current Contribution Guidelines can be found at: https://wails.io/community-guide

View file

@ -1,48 +1,2 @@
# Contributors
Wails is what it is because of the time and effort given by these great people. A huge thank you to each and every one!
* [Dustin Krysak](https://wiki.ubuntu.com/bashfulrobot)
* [Qais Patankar](https://github.com/qaisjp)
* [Anthony Lee](https://github.com/alee792)
* [Adrian Lanzafame](https://github.com/lanzafame)
* [Mattn](https://github.com/mattn)
* [0xflotus](https://github.com/0xflotus)
* [Michael D Henderson](https://github.com/mdhender)
* [fred2104](https://github.com/fishfishfish2104)
* [intelwalk](https://github.com/intelwalk)
* [Mark Stenglein](https://github.com/ocelotsloth)
* [admin_3.exe](https://github.com/bh90210)
* [iceleo-com](https://github.com/iceleo-com)
* [fallendusk](https://github.com/fallendusk)
* [Nikolai Zimmermann](https://github.com/Chronophylos)
* [Toyam Cox](https://github.com/Vaelatern)
* [Robin Eklind](https://github.com/mewmew)
* [Kris Raney](https://github.com/kraney)
* [Jack Mordaunt](https://github.com/JackMordaunt)
* [Michael Hipp](https://github.com/MichaelHipp)
* [Travis McLane](https://github.com/tmclane)
* [Reuben Thomas-Davis](https://github.com/Rested)
* [Jarek](https://github.com/Jarek-SRT)
* [Konez2k](https://github.com/konez2k)
* [msms](https://github.com/sayuthisobri)
* [dedo1911](https://github.com/dedo1911)
* [Florian Didron](https://github.com/fdidron)
* [Christopher Murphy](https://github.com/Splode)
* [Zámbó, Levente](https://github.com/Lyimmi)
* [artem](https://github.com/Unix4ever)
* [Tim Kipp](https://github.com/timkippdev)
* [Dmitry Gomzyakov](https://github.com/kyoto44)
* [Arthur Wiebe](https://github.com/artooro)
* [Ilgıt Yıldırım](https://github.com/ilgityildirim)
* [Altynbek](https://github.com/gelleson)
* [Kyle](https://github.com/kmuchmore)
* [Balakrishna Prasad Ganne](https://github.com/aayush420)
* [Charaf Rezrazi](https://github.com/Rezrazi)
* [misitebao](https://github.com/misitebao)
* [Elie Grenon](https://github.com/DrunkenPoney)
* [SophieAu](https://github.com/SophieAu)
* [Alexander Matviychuk](https://github.com/alexmat)
* [RH12503](https://github.com/RH12503)
* [hi019](https://github.com/hi019)
* [Igor Minen](https://github.com/Igogrek)
The latest contributors list may be found at: https://wails.io/credits#contributors

160
README.de.md Normal file
View file

@ -0,0 +1,160 @@
<p align="center" style="text-align: center">
<img src="./assets/images/logo-universal.png" width="55%"><br/>
</p>
<p align="center">
Erschaffe Desktop Anwendungen mit Go & Web Technologien.
<br/>
<br/>
<a href="https://github.com/wailsapp/wails/blob/master/LICENSE">
<img alt="GitHub" src="https://img.shields.io/github/license/wailsapp/wails"/>
</a>
<a href="https://goreportcard.com/report/github.com/wailsapp/wails">
<img src="https://goreportcard.com/badge/github.com/wailsapp/wails" />
</a>
<a href="https://pkg.go.dev/github.com/wailsapp/wails">
<img src="https://pkg.go.dev/badge/github.com/wailsapp/wails.svg" alt="Go Reference"/>
</a>
<a href="https://github.com/wailsapp/wails/issues">
<img src="https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat" alt="CodeFactor" />
</a>
<a href="https://app.fossa.com/projects/git%2Bgithub.com%2Fwailsapp%2Fwails?ref=badge_shield" alt="FOSSA Status">
<img src="https://app.fossa.com/api/projects/git%2Bgithub.com%2Fwailsapp%2Fwails.svg?type=shield" />
</a>
<a href="https://github.com/avelino/awesome-go" rel="nofollow">
<img src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg" alt="Awesome" />
</a>
<a href="https://discord.gg/BrRSWTaxVK">
<img alt="Discord" src="https://img.shields.io/discord/1042734330029547630?logo=discord"/>
</a>
<br/>
<a href="https://github.com/wailsapp/wails/actions/workflows/build-and-test.yml" rel="nofollow">
<img src="https://img.shields.io/github/actions/workflow/status/wailsapp/wails/build-and-test.yml?branch=master&logo=Github" alt="Build" />
</a>
<a href="https://github.com/wailsapp/wails/tags" rel="nofollow">
<img alt="GitHub tag (latest SemVer pre-release)" src="https://img.shields.io/github/v/tag/wailsapp/wails?include_prereleases&label=version"/>
</a>
</p>
<div align="center">
<strong>
<samp>
[English](README.md) · [简体中文](README.zh-Hans.md) · [日本語](README.ja.md) ·
[한국어](README.ko.md) · [Español](README.es.md) · [Português](README.pt-br.md) ·
[Русский](README.ru.md) · [Francais](README.fr.md) · [Uzbek](README.uz.md) · [Deutsch](README.de.md)
</samp>
</strong>
</div>
## Inhaltsverzeichnis
- [Inhaltsverzeichnis](#inhaltsverzeichnis)
- [Einführung](#einführung)
- [Funktionen](#funktionen)
- [Roadmap](#roadmap)
- [Loslegen](#loslegen)
- [Sponsoren](#sponsoren)
- [FAQ](#faq)
- [Sterne Überblick](#sterne-überblick)
- [Mitwirkende](#mitwirkende)
- [Lizenz](#lizenz)
- [Inspiration](#inspiration)
## Einführung
Die herkömmliche Methode zur Bereitstellung von Web-Interfaces für Go ist über einen eingebauten Webserver.
Wails nutzt einen anderen Weg. Es kann sowohl Go-Code als auch ein Web-Frontend in eine einzige Datei bauen.
Beigelieferte Werkzeuge übernehmen die Projekterstellung, den Kompilierungsprozess und das bauen.
Du musst nur kreativ werden.
## Funktionen
- Nutze Standard Go für das Backend
- Nutze eine Frontend Technologie mit der du dich bereits auskennst um dein UI zu bauen.
- Erschaffe schnell und einfach Frontends mit vorgefertigten Vorlagen für deine Go-Programme
- Nutze Javascript um Go Methoden aufzurufen
- Automatisch generierte Typescript Definitionen für deine Go Strukturen und Methoden
- Native Dialoge und Menüs
- Native Dark-/Lightmode Unterstützung
- Unterstützt moderne Transluzenz- und Milchglaseffekte
- Vereinheitlichtes Eventsystem zwischen Go und Javascript
- Leistungsstarkes CLI-Tool zum einfachen erstellen und bauen von Projekten
- Multiplattformen
- Nutze native Render-Engines - _keine eingebetteten Browser_!
### Roadmap
Die Projekt Roadmap kann [hier](https://github.com/wailsapp/wails/discussions/1484) gefunden werden. Bitte lies diese
durch bevor du eine Idee vorschlägst
## Loslegen
Die Installationsinstruktionen sind auf der [offiziellen Website](https://wails.io/docs/gettingstarted/installation).
## Sponsoren
Dieses Projekt wird von diesen freundlichen Leuten und Firmen unterstützt:
<img src="website/static/img/sponsors.svg" style="width:100%;max-width:800px;"/>
<p align="center">
<img src="https://wails.io/img/sponsor/jetbrains-grayscale.webp" style="width: 100px"/>
</p>
## FAQ
- Ist das eine Alternative zu Electron?
Hängt von deinen Anforderungen ab. Wails wurde entwickelt um das Go-Programmieren leicht zu machen und effiziente
Desktop-Anwendungen zu erstellen oder ein Frontend zu einer bestehenden Anwendung hinzuzufügen.
Wails bietet native Elemente wie Dialoge und Menüs und könnte somit als eine leichte effiziente Electron-Alternative
betrachtet werden.
- Für wen ist dieses projekt geeignet?
Go Entwickler, die ein HTML/CSS/JS-Frontend in ihre Anwendung integrieren möchten, ohne einen Webserver zu erstellen und
einen Browser öffnen zu müssen, um dieses zu sehen
- Wie kam es zu diesem Namen?
Als ich WebView sah dachte ich "Was ich wirklich will, ist ein Werkzeug für die Erstellung von WebView Anwendungen so wie Rails für Ruby".
Also war es zunächst ein Wortspiel (Webview on Rails). Zufälligerweise ist es auch ein Homophon des englischen Namens des [Landes](https://en.wikipedia.org/wiki/Wales), aus dem ich komme.
Also ist es dabei geblieben.
## Sterne Überblick
<a href="https://star-history.com/#wailsapp/wails&Date">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=wailsapp/wails&type=Date&theme=dark" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=wailsapp/wails&type=Date" />
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=wailsapp/wails&type=Date" />
</picture>
</a>
## Mitwirkende
Die Liste der Mitwirkenden wird zu groß für diese Readme. All die fantastischen Menschen, die zu diesem
Projekt beigetragen haben, haben [hier](https://wails.io/credits#contributors) ihre eigene Seite.
## Lizenz
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fwailsapp%2Fwails.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fwailsapp%2Fwails?ref=badge_large)
## Inspiration
Dieses Projekt wurde hauptsächlich zu den folgenden Alben entwickelt
- [Manic Street Preachers - Resistance Is Futile](https://open.spotify.com/album/1R2rsEUqXjIvAbzM0yHrxA)
- [Manic Street Preachers - This Is My Truth, Tell Me Yours](https://open.spotify.com/album/4VzCL9kjhgGQeKCiojK1YN)
- [The Midnight - Endless Summer](https://open.spotify.com/album/4Krg8zvprquh7TVn9OxZn8)
- [Gary Newman - Savage (Songs from a Broken World)](https://open.spotify.com/album/3kMfsD07Q32HRWKRrpcexr)
- [Steve Vai - Passion & Warfare](https://open.spotify.com/album/0oL0OhrE2rYVns4IGj8h2m)
- [Ben Howard - Every Kingdom](https://open.spotify.com/album/1nJsbWm3Yy2DW1KIc1OKle)
- [Ben Howard - Noonday Dream](https://open.spotify.com/album/6astw05cTiXEc2OvyByaPs)
- [Adwaith - Melyn](https://open.spotify.com/album/2vBE40Rp60tl7rNqIZjaXM)
- [Gwidaith Hen Fran - Cedors Hen Wrach](https://open.spotify.com/album/3v2hrfNGINPLuDP0YDTOjm)
- [Metallica - Metallica](https://open.spotify.com/album/2Kh43m04B1UkVcpcRa1Zug)
- [Bloc Party - Silent Alarm](https://open.spotify.com/album/6SsIdN05HQg2GwYLfXuzLB)
- [Maxthor - Another World](https://open.spotify.com/album/3tklE2Fgw1hCIUstIwPBJF)
- [Alun Tan Lan - Y Distawrwydd](https://open.spotify.com/album/0c32OywcLpdJCWWMC6vB8v)

169
README.es.md Normal file
View file

@ -0,0 +1,169 @@
<p align="center" style="text-align: center">
<img src="./assets/images/logo-universal.png" width="55%"><br/>
</p>
<p align="center">
Construye aplicaciones de escritorio usando Go y tecnologías web.
<br/>
<br/>
<a href="https://github.com/wailsapp/wails/blob/master/LICENSE">
<img alt="GitHub" src="https://img.shields.io/github/license/wailsapp/wails"/>
</a>
<a href="https://goreportcard.com/report/github.com/wailsapp/wails">
<img src="https://goreportcard.com/badge/github.com/wailsapp/wails" />
</a>
<a href="https://pkg.go.dev/github.com/wailsapp/wails">
<img src="https://pkg.go.dev/badge/github.com/wailsapp/wails.svg" alt="Go Reference"/>
</a>
<a href="https://github.com/wailsapp/wails/issues">
<img src="https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat" alt="CodeFactor" />
</a>
<a href="https://app.fossa.com/projects/git%2Bgithub.com%2Fwailsapp%2Fwails?ref=badge_shield" alt="FOSSA Status">
<img src="https://app.fossa.com/api/projects/git%2Bgithub.com%2Fwailsapp%2Fwails.svg?type=shield" />
</a>
<a href="https://github.com/avelino/awesome-go" rel="nofollow">
<img src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg" alt="Awesome" />
</a>
<a href="https://discord.gg/BrRSWTaxVK">
<img alt="Discord" src="https://img.shields.io/discord/1042734330029547630?logo=discord"/>
</a>
<br/>
<a href="https://github.com/wailsapp/wails/actions/workflows/build-and-test.yml" rel="nofollow">
<img src="https://img.shields.io/github/actions/workflow/status/wailsapp/wails/build-and-test.yml?branch=master&logo=Github" alt="Build" />
</a>
<a href="https://github.com/wailsapp/wails/tags" rel="nofollow">
<img alt="GitHub tag (latest SemVer pre-release)" src="https://img.shields.io/github/v/tag/wailsapp/wails?include_prereleases&label=version"/>
</a>
</p>
<div align="center">
<strong>
<samp>
[English](README.md) · [简体中文](README.zh-Hans.md) · [日本語](README.ja.md) ·
[한국어](README.ko.md) · [Español](README.es.md) · [Português](README.pt-br.md) ·
[Русский](README.ru.md) · [Francais](README.fr.md) · [Uzbek](README.uz.md) · [Deutsch](README.de.md) ·
[Türkçe](README.tr.md)
</samp>
</strong>
</div>
## Tabla de Contenidos
- [Tabla de Contenidos](#tabla-de-contenidos)
- [Introducción](#introducción)
- [Funcionalidades](#funcionalidades)
- [Plan de Trabajo](#plan-de-trabajo)
- [Empezando](#empezando)
- [Patrocinadores](#patrocinadores)
- [Preguntas Frecuentes](#preguntas-frecuentes)
- [Estrellas a lo Largo del Tiempo](#estrellas-a-lo-largo-del-tiempo)
- [Colaboradores](#colaboradores)
- [Licencia](#licencia)
- [Inspiración](#inspiración)
## Introducción
El método tradicional para proveer una interfaz web en programas hechos con Go
es a través del servidor web incorporado. Wails ofrece un enfoque diferente al
permitir combinar el código hecho en Go con un frontend web en un solo archivo
binario. Las herramientas que proporcionamos facilitan este trabajo para ti, al
crear, compilar y empaquetar tu proyecto. ¡Lo único que debes hacer es ponerte
creativo!
## Funcionalidades
- Utiliza Go estándar para el backend
- Utiliza cualquier tecnología frontend con la que ya estés familiarizado para
construir tu interfaz de usuario
- Crea rápidamente interfaces de usuario enriquecidas para tus programas en Go
utilizando plantillas predefinidas
- Invoca fácilmente métodos de Go desde Javascript
- Definiciones de Typescript generadas automáticamente para tus structs y
métodos de Go
- Diálogos y menús nativos
- Soporte nativo de modo oscuro / claro
- Soporte de translucidez y efectos de ventana esmerilada
- Sistema de eventos unificado entre Go y Javascript
- Herramienta CLI potente para generar y construir tus proyectos rápidamente
- Multiplataforma
- Usa motores de renderizado nativos - ¡_sin navegador integrado_!
### Plan de Trabajo
El plan de trabajo se puede encontrar
[aqui](https://github.com/wailsapp/wails/discussions/1484). Por favor,
consúltalo antes de abrir una solicitud de mejora.
## Empezando
Las instrucciones de instalacion se encuentran en nuestra
[pagina web oficial](https://wails.io/docs/gettingstarted/installation).
## Patrocinadores
Este Proyecto cuenta con el apoyo de estas amables personas/ compañías:
<img src="website/static/img/sponsors.svg" style="width:100%;max-width:800px;"/>
<p align="center">
<img src="https://wails.io/img/sponsor/jetbrains-grayscale.webp" style="width: 100px"/>
</p>
## Preguntas Frecuentes
- ¿Es esta una alternativa a Electron?
Depende de tus requisitos. Está diseñado para facilitar a los programadores de
Go la creación de aplicaciones de escritorio livianas o agregar una interfaz
gráfica a sus aplicaciones existentes. Wails ofrece elementos nativos como
menús y diálogos, por lo que podría considerarse una alternativa liviana a
Electron.
- ¿A quien esta dirigido este proyecto?
El proyecto esta dirigido a programadores de Go que desean integrar una
interfaz HMTL/JS/CSS en sus aplicaciones, sin tener que recurrir a la creación
de un servidor y abrir el navegador para visualizarla.
- ¿Cual es el significado del nombre?
Cuando vi WebView, pensé: "Lo que realmente quiero es una herramienta para
construir una aplicación WebView, algo similar a lo que Rails es para Ruby".
Así que inicialmente fue un juego de palabras (WebView en Rails). Además, por
casualidad, también es homófono del nombre en inglés del
[país](https://en.wikipedia.org/wiki/Wales) del que provengo. Así que se quedó
con ese nombre.
## Estrellas a lo Largo del Tiempo
[![Star History Chart](https://api.star-history.com/svg?repos=wailsapp/wails&type=Date)](https://star-history.com/#wailsapp/wails&Date)
## Colaboradores
¡La lista de colaboradores se está volviendo demasiado grande para el archivo
readme! Todas las personas increíbles que han contribuido a este proyecto tienen
su propia página [aqui](https://wails.io/credits#contributors).
## Licencia
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fwailsapp%2Fwails.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fwailsapp%2Fwails?ref=badge_large)
## Inspiración
Este proyecto fue construido mientras se escuchaban estos álbumes:
- [Manic Street Preachers - Resistance Is Futile](https://open.spotify.com/album/1R2rsEUqXjIvAbzM0yHrxA)
- [Manic Street Preachers - This Is My Truth, Tell Me Yours](https://open.spotify.com/album/4VzCL9kjhgGQeKCiojK1YN)
- [The Midnight - Endless Summer](https://open.spotify.com/album/4Krg8zvprquh7TVn9OxZn8)
- [Gary Newman - Savage (Songs from a Broken World)](https://open.spotify.com/album/3kMfsD07Q32HRWKRrpcexr)
- [Steve Vai - Passion & Warfare](https://open.spotify.com/album/0oL0OhrE2rYVns4IGj8h2m)
- [Ben Howard - Every Kingdom](https://open.spotify.com/album/1nJsbWm3Yy2DW1KIc1OKle)
- [Ben Howard - Noonday Dream](https://open.spotify.com/album/6astw05cTiXEc2OvyByaPs)
- [Adwaith - Melyn](https://open.spotify.com/album/2vBE40Rp60tl7rNqIZjaXM)
- [Gwidaith Hen Fran - Cedors Hen Wrach](https://open.spotify.com/album/3v2hrfNGINPLuDP0YDTOjm)
- [Metallica - Metallica](https://open.spotify.com/album/2Kh43m04B1UkVcpcRa1Zug)
- [Bloc Party - Silent Alarm](https://open.spotify.com/album/6SsIdN05HQg2GwYLfXuzLB)
- [Maxthor - Another World](https://open.spotify.com/album/3tklE2Fgw1hCIUstIwPBJF)
- [Alun Tan Lan - Y Distawrwydd](https://open.spotify.com/album/0c32OywcLpdJCWWMC6vB8v)
[Alun Tan Lan - Y Distawrwydd](https://open.spotify.com/album/0c32OywcLpdJCWWMC6vB8v)

144
README.fr.md Normal file
View file

@ -0,0 +1,144 @@
<p align="center" style="text-align: center">
<img src="./assets/images/logo-universal.png" width="55%"><br/>
</p>
<p align="center">
Créer des applications de bureau avec Go et les technologies Web.
<br/>
<br/>
<a href="https://github.com/wailsapp/wails/blob/master/LICENSE">
<img alt="GitHub" src="https://img.shields.io/github/license/wailsapp/wails"/>
</a>
<a href="https://goreportcard.com/report/github.com/wailsapp/wails">
<img src="https://goreportcard.com/badge/github.com/wailsapp/wails" />
</a>
<a href="https://pkg.go.dev/github.com/wailsapp/wails">
<img src="https://pkg.go.dev/badge/github.com/wailsapp/wails.svg" alt="Go Reference"/>
</a>
<a href="https://github.com/wailsapp/wails/issues">
<img src="https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat" alt="CodeFactor" />
</a>
<a href="https://app.fossa.com/projects/git%2Bgithub.com%2Fwailsapp%2Fwails?ref=badge_shield" alt="FOSSA Status">
<img src="https://app.fossa.com/api/projects/git%2Bgithub.com%2Fwailsapp%2Fwails.svg?type=shield" />
</a>
<a href="https://github.com/avelino/awesome-go" rel="nofollow">
<img src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg" alt="Awesome" />
</a>
<a href="https://discord.gg/BrRSWTaxVK">
<img alt="Discord" src="https://img.shields.io/discord/1042734330029547630?logo=discord"/>
</a>
<br/>
<a href="https://github.com/wailsapp/wails/actions/workflows/build-and-test.yml" rel="nofollow">
<img src="https://img.shields.io/github/actions/workflow/status/wailsapp/wails/build-and-test.yml?branch=master&logo=Github" alt="Build" />
</a>
<a href="https://github.com/wailsapp/wails/tags" rel="nofollow">
<img alt="GitHub tag (latest SemVer pre-release)" src="https://img.shields.io/github/v/tag/wailsapp/wails?include_prereleases&label=version"/>
</a>
</p>
<div align="center">
<strong>
<samp>
[English](README.md) · [简体中文](README.zh-Hans.md) · [日本語](README.ja.md) ·
[한국어](README.ko.md) · [Español](README.es.md) · [Português](README.pt-br.md) ·
[Русский](README.ru.md) · [Francais](README.fr.md) · [Uzbek](README.uz.md) · [Deutsch](README.de.md) ·
[Türkçe](README.tr.md)
</samp>
</strong>
</div>
## Sommaire
- [Sommaire](#sommaire)
- [Introduction](#introduction)
- [Fonctionnalités](#fonctionnalités)
- [Feuille de route](#feuille-de-route)
- [Démarrage](#démarrage)
- [Les sponsors](#les-sponsors)
- [Foire aux questions](#foire-aux-questions)
- [Les étoiles au fil du temps](#les-étoiles-au-fil-du-temps)
- [Les contributeurs](#les-contributeurs)
- [License](#license)
- [Inspiration](#inspiration)
## Introduction
La méthode traditionnelle pour fournir des interfaces web aux programmes Go consiste à utiliser un serveur web intégré. Wails propose une approche différente : il offre la possibilité d'intégrer à la fois le code Go et une interface web dans un seul binaire. Des outils sont fournis pour vous faciliter la tâche en gérant la création, la compilation et le regroupement des projets. Il ne vous reste plus qu'à faire preuve de créativité!
## Fonctionnalités
- Utiliser Go pour le backend
- Utilisez n'importe quelle technologie frontend avec laquelle vous êtes déjà familier pour construire votre interface utilisateur.
- Créez rapidement des interfaces riches pour vos programmes Go à l'aide de modèles prédéfinis.
- Appeler facilement des méthodes Go à partir de Javascript
- Définitions Typescript auto-générées pour vos structures et méthodes Go
- Dialogues et menus natifs
- Prise en charge native des modes sombre et clair
- Prise en charge des effets modernes de translucidité et de "frosted window".
- Système d'événements unifié entre Go et Javascript
- Outil puissant pour générer et construire rapidement vos projets
- Multiplateforme
- Utilise des moteurs de rendu natifs - _pas de navigateur intégré_ !
### Feuille de route
La feuille de route du projet peut être consultée [ici](https://github.com/wailsapp/wails/discussions/1484). Veuillez consulter avant d'ouvrir une demande d'amélioration.
## Démarrage
Les instructions d'installation se trouvent sur le site [site officiel](https://wails.io/docs/gettingstarted/installation).
## Les sponsors
Ce projet est soutenu par ces personnes aimables et entreprises:
<img src="website/static/img/sponsors.svg" style="width:100%;max-width:800px;"/>
<p align="center">
<img src="https://wails.io/img/sponsor/jetbrains-grayscale.webp" style="width: 100px"/>
</p>
## Foire aux questions
- S'agit-il d'une alternative à Electron ?
Cela dépend de vos besoins. Il est conçu pour permettre aux programmeurs Go de créer facilement des applications de bureau légères ou d'ajouter une interface à leurs applications existantes. Wails offre des éléments natifs tels que des menus et des boîtes de dialogue, il peut donc être considéré comme une alternative légère à electron.
- À qui s'adresse ce projet ?
Les programmeurs Go qui souhaitent intégrer une interface HTML/JS/CSS à leurs applications, sans avoir à créer un serveur et à ouvrir un navigateur pour l'afficher.
- Pourquoi ce nom ??
Lorsque j'ai vu WebView, je me suis dit : "Ce que je veux vraiment, c'est un outil pour construire une application WebView, un peu comme Rails l'est pour Ruby". Au départ, il s'agissait donc d'un jeu de mots (Webview on Rails). Il se trouve que c'est aussi un homophone du nom anglais du [Pays](https://en.wikipedia.org/wiki/Wales) d'où je viens. Il s'est donc imposé.
## Les étoiles au fil du temps
[![Graphique de l'histoire des étoiles](https://api.star-history.com/svg?repos=wailsapp/wails&type=Date)](https://star-history.com/#wailsapp/wails&Date)
## Les contributeurs
La liste des contributeurs devient trop importante pour le readme ! Toutes les personnes extraordinaires qui ont contribué à ce projet ont leur propre page [ici](https://wails.io/credits#contributors).
## License
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fwailsapp%2Fwails.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fwailsapp%2Fwails?ref=badge_large)
## Inspiration
Ce projet a été principalement codé sur les albums suivants :
- [Manic Street Preachers - Resistance Is Futile](https://open.spotify.com/album/1R2rsEUqXjIvAbzM0yHrxA)
- [Manic Street Preachers - This Is My Truth, Tell Me Yours](https://open.spotify.com/album/4VzCL9kjhgGQeKCiojK1YN)
- [The Midnight - Endless Summer](https://open.spotify.com/album/4Krg8zvprquh7TVn9OxZn8)
- [Gary Newman - Savage (Songs from a Broken World)](https://open.spotify.com/album/3kMfsD07Q32HRWKRrpcexr)
- [Steve Vai - Passion & Warfare](https://open.spotify.com/album/0oL0OhrE2rYVns4IGj8h2m)
- [Ben Howard - Every Kingdom](https://open.spotify.com/album/1nJsbWm3Yy2DW1KIc1OKle)
- [Ben Howard - Noonday Dream](https://open.spotify.com/album/6astw05cTiXEc2OvyByaPs)
- [Adwaith - Melyn](https://open.spotify.com/album/2vBE40Rp60tl7rNqIZjaXM)
- [Gwidaith Hen Fran - Cedors Hen Wrach](https://open.spotify.com/album/3v2hrfNGINPLuDP0YDTOjm)
- [Metallica - Metallica](https://open.spotify.com/album/2Kh43m04B1UkVcpcRa1Zug)
- [Bloc Party - Silent Alarm](https://open.spotify.com/album/6SsIdN05HQg2GwYLfXuzLB)
- [Maxthor - Another World](https://open.spotify.com/album/3tklE2Fgw1hCIUstIwPBJF)
- [Alun Tan Lan - Y Distawrwydd](https://open.spotify.com/album/0c32OywcLpdJCWWMC6vB8v)

152
README.ja.md Normal file
View file

@ -0,0 +1,152 @@
<h1 align="center">Wails</h1>
<p align="center" style="text-align: center">
<img src="./assets/images/logo-universal.png" width="55%"><br/>
</p>
<p align="center">
GoとWebの技術を用いてデスクトップアプリケーションを構築します。
<br/>
<br/>
<a href="https://github.com/wailsapp/wails/blob/master/LICENSE">
<img alt="GitHub" src="https://img.shields.io/github/license/wailsapp/wails"/>
</a>
<a href="https://goreportcard.com/report/github.com/wailsapp/wails">
<img src="https://goreportcard.com/badge/github.com/wailsapp/wails" />
</a>
<a href="https://pkg.go.dev/github.com/wailsapp/wails">
<img src="https://pkg.go.dev/badge/github.com/wailsapp/wails.svg" alt="Go Reference"/>
</a>
<a href="https://github.com/wailsapp/wails/issues">
<img src="https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat" alt="CodeFactor" />
</a>
<a href="https://app.fossa.com/projects/git%2Bgithub.com%2Fwailsapp%2Fwails?ref=badge_shield" alt="FOSSA Status">
<img src="https://app.fossa.com/api/projects/git%2Bgithub.com%2Fwailsapp%2Fwails.svg?type=shield" />
</a>
<a href="https://github.com/avelino/awesome-go" rel="nofollow">
<img src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg" alt="Awesome" />
</a>
<a href="https://discord.gg/BrRSWTaxVK">
<img alt="Discord" src="https://img.shields.io/discord/1042734330029547630?logo=discord"/>
</a>
<br/>
<a href="https://github.com/wailsapp/wails/actions/workflows/build-and-test.yml" rel="nofollow">
<img src="https://img.shields.io/github/actions/workflow/status/wailsapp/wails/build-and-test.yml?branch=master&logo=Github" alt="Build" />
</a>
<a href="https://github.com/wailsapp/wails/tags" rel="nofollow">
<img alt="GitHub tag (latest SemVer pre-release)" src="https://img.shields.io/github/v/tag/wailsapp/wails?include_prereleases&label=version"/>
</a>
</p>
<div align="center">
<strong>
<samp>
[English](README.md) · [简体中文](README.zh-Hans.md) · [日本語](README.ja.md) ·
[한국어](README.ko.md) · [Español](README.es.md) · [Português](README.pt-br.md) ·
[Русский](README.ru.md) · [Francais](README.fr.md) · [Uzbek](README.uz.md) · [Deutsch](README.de.md) ·
[Türkçe](README.tr.md)
</samp>
</strong>
</div>
## 目次
- [目次](#目次)
- [はじめに](#はじめに)
- [特徴](#特徴)
- [ロードマップ](#ロードマップ)
- [始め方](#始め方)
- [スポンサー](#スポンサー)
- [FAQ](#faq)
- [スター数の推移](#スター数の推移)
- [コントリビューター](#コントリビューター)
- [ライセンス](#ライセンス)
- [インスピレーション](#インスピレーション)
## はじめに
Go プログラムにウェブインタフェースを提供する従来の方法は内蔵のウェブサーバを経由するものですが、 Wails では異なるアプローチを提供します。
Wails では Go のコードとウェブフロントエンドを単一のバイナリにまとめる機能を提供します。
また、プロジェクトの作成、コンパイル、ビルドを行うためのツールが提供されています。あなたがすべきことは創造性を発揮することです!
## 特徴
- バックエンドには Go を利用しています
- 使い慣れたフロントエンド技術を利用して UI を構築できます
- あらかじめ用意されたテンプレートを利用することで、リッチなフロントエンドを備えた Go プログラムを素早く作成できます
- JavaScript から Go のメソッドを簡単に呼び出すことができます
- あなたの書いた Go の構造体やメソットに応じた TypeScript の定義が自動生成されます
- ネイティブのダイアログとメニューが利用できます
- ネイティブなダーク/ライトモードをサポートします
- モダンな半透明や「frosted window」エフェクトをサポートしています
- Go と JavaScript 間で統一されたイベント・システムを備えています
- プロジェクトを素早く生成して構築する強力な cli ツールを用意しています
- マルチプラットフォームに対応しています
- ネイティブなレンダリングエンジンを使用しています - _つまりブラウザを埋め込んでいるわけではありません_
### ロードマップ
プロジェクトのロードマップは[こちら](https://github.com/wailsapp/wails/discussions/1484)になります。
機能拡張のリクエストを出す前にご覧ください。
## 始め方
インストール方法は[公式サイト](https://wails.io/docs/gettingstarted/installation)に掲載されています。
## スポンサー
このプロジェクトは、以下の方々・企業によって支えられています。
<img src="website/static/img/sponsors.svg" style="width:100%;max-width:800px;"/>
## FAQ
- Electron の代替品になりますか?
それはあなたの求める要件によります。Wails は Go プログラマーが簡単に軽量のデスクトップアプリケーションを作成したり、既存のアプリケーションにフロントエンドを追加できるように設計されています。
Wails v2 ではメニューやダイアログといったネイティブな要素を提供するようになったため、軽量な Electron の代替となりつつあります。
- このプロジェクトは誰に向けたものですか?
HTML/JS/CSS のフロントエンド技術をアプリケーションにバンドルさせることで、サーバーを作成してブラウザ経由で表示させることなくアプリケーションを利用したい Go プログラマにおすすめです。
- 名前の由来を教えて下さい
WebView を見たとき、私はこう思いました。
「私が本当に欲しいのは、WebView アプリを構築するためのツールであり、Ruby に対する Rails のようなものである」と。
そのため、最初は言葉遊びのつもりでしたWebview on Rails
また、私の[出身国](https://en.wikipedia.org/wiki/Wales)の英語名と同音異義語でもあります。そしてこの名前が定着しました。
## スター数の推移
[![Star History Chart](https://api.star-history.com/svg?repos=wailsapp/wails&type=Date)](https://star-history.com/#wailsapp/wails&Date)
## コントリビューター
貢献してくれた方のリストが大きくなりすぎて、readme に入りきらなくなりました!
このプロジェクトに貢献してくれた素晴らしい方々のページは[こちら](https://wails.io/credits#contributors)です。
## ライセンス
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fwailsapp%2Fwails.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fwailsapp%2Fwails?ref=badge_large)
## インスピレーション
プロジェクトを進める際に、以下のアルバムたちも支えてくれています。
- [Manic Street Preachers - Resistance Is Futile](https://open.spotify.com/album/1R2rsEUqXjIvAbzM0yHrxA)
- [Manic Street Preachers - This Is My Truth, Tell Me Yours](https://open.spotify.com/album/4VzCL9kjhgGQeKCiojK1YN)
- [The Midnight - Endless Summer](https://open.spotify.com/album/4Krg8zvprquh7TVn9OxZn8)
- [Gary Newman - Savage (Songs from a Broken World)](https://open.spotify.com/album/3kMfsD07Q32HRWKRrpcexr)
- [Steve Vai - Passion & Warfare](https://open.spotify.com/album/0oL0OhrE2rYVns4IGj8h2m)
- [Ben Howard - Every Kingdom](https://open.spotify.com/album/1nJsbWm3Yy2DW1KIc1OKle)
- [Ben Howard - Noonday Dream](https://open.spotify.com/album/6astw05cTiXEc2OvyByaPs)
- [Adwaith - Melyn](https://open.spotify.com/album/2vBE40Rp60tl7rNqIZjaXM)
- [Gwidaith Hen Fran - Cedors Hen Wrach](https://open.spotify.com/album/3v2hrfNGINPLuDP0YDTOjm)
- [Metallica - Metallica](https://open.spotify.com/album/2Kh43m04B1UkVcpcRa1Zug)
- [Bloc Party - Silent Alarm](https://open.spotify.com/album/6SsIdN05HQg2GwYLfXuzLB)
- [Maxthor - Another World](https://open.spotify.com/album/3tklE2Fgw1hCIUstIwPBJF)
- [Alun Tan Lan - Y Distawrwydd](https://open.spotify.com/album/0c32OywcLpdJCWWMC6vB8v)

155
README.ko.md Normal file
View file

@ -0,0 +1,155 @@
<h1 align="center">Wails</h1>
<p align="center" style="text-align: center">
<img src="./assets/images/logo-universal.png" width="55%"><br/>
</p>
<p align="center">
Go & Web 기술을 사용하여 데스크탑 애플리케이션을 빌드하세요.
<br/>
<br/>
<a href="https://github.com/wailsapp/wails/blob/master/LICENSE">
<img alt="GitHub" src="https://img.shields.io/github/license/wailsapp/wails"/>
</a>
<a href="https://goreportcard.com/report/github.com/wailsapp/wails">
<img src="https://goreportcard.com/badge/github.com/wailsapp/wails" />
</a>
<a href="https://pkg.go.dev/github.com/wailsapp/wails">
<img src="https://pkg.go.dev/badge/github.com/wailsapp/wails.svg" alt="Go Reference"/>
</a>
<a href="https://github.com/wailsapp/wails/issues">
<img src="https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat" alt="CodeFactor" />
</a>
<a href="https://app.fossa.com/projects/git%2Bgithub.com%2Fwailsapp%2Fwails?ref=badge_shield" alt="FOSSA Status">
<img src="https://app.fossa.com/api/projects/git%2Bgithub.com%2Fwailsapp%2Fwails.svg?type=shield" />
</a>
<a href="https://github.com/avelino/awesome-go" rel="nofollow">
<img src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg" alt="Awesome" />
</a>
<a href="https://discord.gg/BrRSWTaxVK">
<img alt="Discord" src="https://img.shields.io/discord/1042734330029547630?logo=discord"/>
</a>
<br/>
<a href="https://github.com/wailsapp/wails/actions/workflows/build-and-test.yml" rel="nofollow">
<img src="https://img.shields.io/github/actions/workflow/status/wailsapp/wails/build-and-test.yml?branch=master&logo=Github" alt="Build" />
</a>
<a href="https://github.com/wailsapp/wails/tags" rel="nofollow">
<img alt="GitHub tag (latest SemVer pre-release)" src="https://img.shields.io/github/v/tag/wailsapp/wails?include_prereleases&label=version"/>
</a>
</p>
<div align="center">
<strong>
<samp>
[English](README.md) · [简体中文](README.zh-Hans.md) · [日本語](README.ja.md) ·
[한국어](README.ko.md) · [Español](README.es.md) · [Português](README.pt-br.md) ·
[Русский](README.ru.md) · [Francais](README.fr.md) · [Uzbek](README.uz.md) · [Deutsch](README.de.md) ·
[Türkçe](README.tr.md)
</samp>
</strong>
</div>
## 목차
- [목차](#목차)
- [소개](#소개)
- [기능](#기능)
- [로드맵](#로드맵)
- [시작하기](#시작하기)
- [스폰서](#스폰서)
- [FAQ](#faq)
- [Stargazers 성장 추세](#stargazers-성장-추세)
- [기여자](#기여자)
- [라이센스](#라이센스)
- [영감](#영감)
## 소개
Go 프로그램에 웹 인터페이스를 제공하는 전통적인 방법은 내장 웹 서버를 이용하는 것입니다.
Wails는 다르게 접근합니다: Go 코드와 웹 프론트엔드를 단일 바이너리로 래핑하는 기능을 제공합니다.
프로젝트 생성, 컴파일 및 번들링을 처리하여 이를 쉽게 수행할 수 있도록 도구가 제공됩니다.
창의력을 발휘하기만 하면 됩니다!
## 기능
- 백엔드에 표준 Go 사용
- 이미 익숙한 프론트엔드 기술을 사용하여 UI 구축
- 사전 구축된 템플릿을 사용하여 Go 프로그램을 위한 풍부한 프론트엔드를 빠르게 생성
- Javascript에서 Go 메서드를 쉽게 호출
- Go 구조체 및 메서드에 대한 자동 생성된 Typescript 정의
- 기본 대화 및 메뉴
- 네이티브 다크/라이트 모드 지원
- 최신 반투명도 및 "반투명 창" 효과 지원
- Go와 Javascript 간의 통합 이벤트 시스템
- 프로젝트를 빠르게 생성하고 구축하는 강력한 CLI 도구
- 멀티플랫폼
- 기본 렌더링 엔진 사용 - _내장 브라우저 없음_!
### 로드맵
프로젝트 로드맵은 [여기](https://github.com/wailsapp/wails/discussions/1484)에서
확인할 수 있습니다. 개선 요청을 하기 전에 이것을 참조하십시오.
## 시작하기
설치 지침은
[공식 웹사이트](https://wails.io/docs/gettingstarted/installation)에 있습니다.
## 스폰서
이 프로젝트는 친절한 사람들 / 회사들이 지원합니다.
<img src="website/static/img/sponsors.svg" style="width:100%;max-width:800px;"/>
## FAQ
- 이것은 Electron의 대안인가요?
요구 사항에 따라 다릅니다. Go 프로그래머가 쉽게 가벼운 데스크톱 애플리케이션을
만들거나 기존 애플리케이션에 프론트엔드를 추가할 수 있도록 설계되었습니다.
Wails는 메뉴 및 대화 상자와 같은 기본 요소를 제공하므로 가벼운 Electron 대안으로
간주될 수 있습니다.
- 이 프로젝트는 누구를 대상으로 하나요?
서버를 생성하고 이를 보기 위해 브라우저를 열 필요 없이 HTML/JS/CSS 프런트엔드를
애플리케이션과 함께 묶고자 하는 프로그래머를 대상으로 합니다.
- Wails 이름의 의미는 무엇인가요?
WebView를 보았을 때 저는 "내가 정말로 원하는 것은 WebView 앱을 구축하기 위한
도구를 사용하는거야. 마치 Ruby on Rails 처럼 말이야."라고 생각했습니다.
그래서 처음에는 말장난(Webview on Rails)이었습니다.
[국가](https://en.wikipedia.org/wiki/Wales)에 대한 영어 이름의 동음이의어이기도 하여 정했습니다.
## Stargazers 성장 추세
[![Star History Chart](https://api.star-history.com/svg?repos=wailsapp/wails&type=Date)](https://star-history.com/#wailsapp/wails&Date)
## 기여자
기여자 목록이 추가 정보에 비해 너무 커지고 있습니다! 이 프로젝트에 기여한 모든 놀라운 사람들은
[여기](https://wails.io/credits#contributors)에 자신의 페이지를 가지고 있습니다.
## 라이센스
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fwailsapp%2Fwails.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fwailsapp%2Fwails?ref=badge_large)
## 영감
이 프로젝트는 주로 다음 앨범을 들으며 코딩되었습니다.
- [Manic Street Preachers - Resistance Is Futile](https://open.spotify.com/album/1R2rsEUqXjIvAbzM0yHrxA)
- [Manic Street Preachers - This Is My Truth, Tell Me Yours](https://open.spotify.com/album/4VzCL9kjhgGQeKCiojK1YN)
- [The Midnight - Endless Summer](https://open.spotify.com/album/4Krg8zvprquh7TVn9OxZn8)
- [Gary Newman - Savage (Songs from a Broken World)](https://open.spotify.com/album/3kMfsD07Q32HRWKRrpcexr)
- [Steve Vai - Passion & Warfare](https://open.spotify.com/album/0oL0OhrE2rYVns4IGj8h2m)
- [Ben Howard - Every Kingdom](https://open.spotify.com/album/1nJsbWm3Yy2DW1KIc1OKle)
- [Ben Howard - Noonday Dream](https://open.spotify.com/album/6astw05cTiXEc2OvyByaPs)
- [Adwaith - Melyn](https://open.spotify.com/album/2vBE40Rp60tl7rNqIZjaXM)
- [Gwidaith Hen Fran - Cedors Hen Wrach](https://open.spotify.com/album/3v2hrfNGINPLuDP0YDTOjm)
- [Metallica - Metallica](https://open.spotify.com/album/2Kh43m04B1UkVcpcRa1Zug)
- [Bloc Party - Silent Alarm](https://open.spotify.com/album/6SsIdN05HQg2GwYLfXuzLB)
- [Maxthor - Another World](https://open.spotify.com/album/3tklE2Fgw1hCIUstIwPBJF)
- [Alun Tan Lan - Y Distawrwydd](https://open.spotify.com/album/0c32OywcLpdJCWWMC6vB8v)

416
README.md
View file

@ -1,311 +1,114 @@
<p align="center" style="text-align: center">
<img src="logo.png" width="55%"><br/>
<img src="./assets/images/logo-universal.png" width="55%"><br/>
</p>
<p align="center">
Build desktop applications using Go & Web Technologies.<br/><br/>
Build desktop applications using Go & Web Technologies.
<br/>
<br/>
<a href="https://github.com/wailsapp/wails/blob/master/LICENSE">
<img src="https://img.shields.io/badge/License-MIT-blue.svg">
<img alt="GitHub" src="https://img.shields.io/github/license/wailsapp/wails"/>
</a>
<a href="https://goreportcard.com/report/github.com/wailsapp/wails">
<img src="https://goreportcard.com/badge/github.com/wailsapp/wails"/>
<img src="https://goreportcard.com/badge/github.com/wailsapp/wails" />
</a>
<a href="http://godoc.org/github.com/wailsapp/wails">
<img src="https://img.shields.io/badge/godoc-reference-blue.svg"/>
</a>
<a href="https://www.codefactor.io/repository/github/wailsapp/wails">
<img src="https://www.codefactor.io/repository/github/wailsapp/wails/badge" alt="CodeFactor" />
<a href="https://pkg.go.dev/github.com/wailsapp/wails">
<img src="https://pkg.go.dev/badge/github.com/wailsapp/wails.svg" alt="Go Reference"/>
</a>
<a href="https://github.com/wailsapp/wails/issues">
<img src="https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat" alt="CodeFactor" />
</a>
<a href="https://app.fossa.io/projects/git%2Bgithub.com%2Fwailsapp%2Fwails?ref=badge_shield" alt="FOSSA Status">
<img src="https://app.fossa.io/api/projects/git%2Bgithub.com%2Fwailsapp%2Fwails.svg?type=shield"/>
</a>
<a href="https://houndci.com">
<img src="https://img.shields.io/badge/Reviewed_by-Hound-8E64B0.svg"/>
<a href="https://app.fossa.com/projects/git%2Bgithub.com%2Fwailsapp%2Fwails?ref=badge_shield" alt="FOSSA Status">
<img src="https://app.fossa.com/api/projects/git%2Bgithub.com%2Fwailsapp%2Fwails.svg?type=shield" />
</a>
<a href="https://github.com/avelino/awesome-go" rel="nofollow">
<img src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg" alt="Awesome"/>
<img src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg" alt="Awesome" />
</a>
<a href="https://github.com/wailsapp/wails/workflows/release/badge.svg?branch=master" rel="nofollow">
<img src="https://github.com/wailsapp/wails/workflows/release/badge.svg?branch=master" alt="Release Pipelines"/>
<a href="https://discord.gg/BrRSWTaxVK">
<img alt="Discord" src="https://img.shields.io/discord/1042734330029547630?logo=discord"/>
</a>
<br/>
<a href="https://github.com/wailsapp/wails/actions/workflows/build-and-test.yml" rel="nofollow">
<img src="https://img.shields.io/github/actions/workflow/status/wailsapp/wails/build-and-test.yml?branch=master&logo=Github" alt="Build" />
</a>
<a href="https://github.com/wailsapp/wails/tags" rel="nofollow">
<img alt="GitHub tag (latest SemVer pre-release)" src="https://img.shields.io/github/v/tag/wailsapp/wails?include_prereleases&label=version"/>
</a>
</p>
<span id="nav-1"></span>
<div align="center">
<strong>
<samp>
## Internationalization
[English](README.md) · [简体中文](README.zh-Hans.md) · [日本語](README.ja.md) ·
[한국어](README.ko.md) · [Español](README.es.md) · [Português](README.pt-br.md) ·
[Русский](README.ru.md) · [Francais](README.fr.md) · [Uzbek](README.uz.md) · [Deutsch](README.de.md) ·
[Türkçe](README.tr.md)
[English](README.md) | [简体中文](README.zh-Hans.md)
<span id="nav-2"></span>
</samp>
</strong>
</div>
## Table of Contents
<details>
<summary>Click me to Open/Close the directory listing</summary>
- [Table of Contents](#table-of-contents)
- [Introduction](#introduction)
- [Features](#features)
- [Roadmap](#roadmap)
- [Getting Started](#getting-started)
- [Sponsors](#sponsors)
- [FAQ](#faq)
- [Stargazers over time](#stargazers-over-time)
- [Contributors](#contributors)
- [License](#license)
- [Inspiration](#inspiration)
- [1. Internationalization](#nav-1)
- [2. Table of Contents](#nav-2)
- [3. Introduction](#nav-3)
- [3.1 Official Website](#nav-3-1)
- [4. Features](#nav-4)
- [5. Sponsors](#nav-5)
- [6. Installation](#nav-6)
- [6.1 MacOS](#nav-6-1)
- [6.2 Linux](#nav-6-2)
- [6.2.1 Debian/Ubuntu](#nav-6-2-1)
- [6.2.2 Arch Linux / ArchLabs / Ctlos Linux](#nav-6-2-2)
- [6.2.3 Centos](#nav-6-2-3)
- [6.2.4 Fedora](#nav-6-2-4)
- [6.2.5 VoidLinux & VoidLinux-musl](#nav-6-2-5)
- [6.2.6 Gentoo](#nav-6-2-6)
- [6.3 Windows](#nav-6-3)
- [7. Usage](#nav-7)
- [7.1 Next Steps](#nav-7-1)
- [8. FAQ](#nav-8)
- [9. Contributors](#nav-9)
- [10. Special Mentions](#nav-10)
- [12. Special Thanks](#nav-11)
</details>
<span id="nav-3"></span>
## Introductions
## Introduction
The traditional method of providing web interfaces to Go programs is via a built-in web server. Wails offers a different
approach: it provides the ability to wrap both Go code and a web frontend into a single binary. Tools are provided to
make this easy for you by handling project creation, compilation and bundling. All you have to do is get creative!
<span id="nav-3-1"></span>
### Official Website
The official docs can be found at [https://wails.app](https://wails.app).
Click [here](https://wails.io) if you are interested in trying out v2 Beta for Windows.
<span id="nav-4"></span>
## Features
- Use standard Go for the backend
- Use any frontend technology to build your UI
- Quickly create Vue, Vuetify or React frontends for your Go programs
- Expose Go methods/functions to the frontend via a single bind command
- Uses native rendering engines - no embedded browser
- Shared events system
- Native file dialogs
- Powerful cli tool
- Use any frontend technology you are already familiar with to build your UI
- Quickly create rich frontends for your Go programs using pre-built templates
- Easily call Go methods from Javascript
- Auto-generated Typescript definitions for your Go structs and methods
- Native Dialogs & Menus
- Native Dark / Light mode support
- Supports modern translucency and "frosted window" effects
- Unified eventing system between Go and Javascript
- Powerful cli tool to quickly generate and build your projects
- Multiplatform
- Uses native rendering engines - _no embedded browser_!
<span id="nav-5"></span>
### Roadmap
The project roadmap may be found [here](https://github.com/wailsapp/wails/discussions/1484). Please consult
it before creating an enhancement request.
## Getting Started
The installation instructions are on the [official website](https://wails.io/docs/gettingstarted/installation).
## Sponsors
This project is supported by these kind people / companies:
<img src="website/static/img/sponsors.svg" style="width:100%;max-width:800px;"/>
<a href="https://github.com/sponsors/leaanthony" style="width:100px;">
<img src="/img/silver%20sponsor.png" width="100"/>
</a>
<a href="https://github.com/letheanVPN" style="width:100px;">
<img src="https://github.com/letheanVPN.png?size=100" width="100"/>
</a>
<br/>
<br/>
<a href="https://github.com/sponsors/leaanthony" style="width:100px;">
<img src="img/bronze%20sponsor.png" width="100"/>
</a>
<a href="https://github.com/snider" style="width:100px;">
<img src="https://github.com/snider.png?size=100" width="100"/>
</a>
<a href="https://github.com/codydbentley" style="width:100px">
<img src="https://github.com/codydbentley.png?size=100" width="100"/>
</a>
<a href="https://github.com/CrackDavid" style="width:100px">
<img src="https://github.com/CrackDavid.png?size=100" width="100"/>
</a>
<a href="https://www.easywebadv.it/" style="width:100px">
<img src="website/static/img/easyweb.png" width="100"/>
</a>
<br/>
<br/>
<a href="https://github.com/matryer" style="width:100px">
<img src="https://github.com/matryer.png" width="100"/>
</a>
<a href="https://www.jetbrains.com?from=Wails" style="width:100px">
<img src="/assets/images/jetbrains-grayscale.png" width="100"/>
</a>
<a href="https://github.com/tc-hib" style="width:55px">
<img src="https://github.com/tc-hib.png?size=55" width="55"/>
</a>
<a href="https://github.com/picatz" style="width:50px">
<img src="https://github.com/picatz.png?size=50" width="50"/>
</a>
<a href="https://github.com/tylertravisty" style="width:50px">
<img src="https://github.com/tylertravisty.png?size=50" width="50"/>
</a>
<a href="https://github.com/akhudek" style="width:50px">
<img src="https://github.com/akhudek.png?size=50" width="50"/>
</a>
<a href="https://github.com/trea" style="width:50px">
<img src="https://github.com/trea.png?size=50" width="50"/>
</a>
<a href="https://github.com/LanguageAgnostic" style="width:55px">
<img src="https://github.com/LanguageAgnostic.png?size=55" width="55"/>
</a>
<a href="https://github.com/fcjr" style="width:55px">
<img src="https://github.com/fcjr.png?size=55" width="55"/>
</a>
<a href="https://github.com/nickarellano" style="width:60px">
<img src="https://github.com/nickarellano.png?size=60" width="60"/>
</a>
<a href="https://github.com/bglw" style="width:65px">
<img src="https://github.com/bglw.png?size=65" width="65"/>
</a>
<a href="https://github.com/jugglingjsons" style="width:50px">
<img src="https://github.com/jugglingjsons.png?size=50" width="50"/>
</a>
<a href="https://github.com/marcus-crane" style="width:65px">
<img src="https://github.com/marcus-crane.png?size=65" width="65"/>
</a>
<a href="https://github.com/bbergshaven" style="width:45px">
<img src="https://github.com/bbergshaven.png?size=45" width="45"/>
</a>
<a href="https://github.com/Gilgames000" style="width:45px">
<img src="https://github.com/Gilgames000.png?size=45" width="45"/>
</a>
<a href="https://github.com/ilgityildirim" style="width:50px">
<img src="https://github.com/ilgityildirim.png?size=50" width="50"/>
</a>
<a href="https://github.com/questrail" style="width:50px">
<img src="https://github.com/questrail.png?size=50" width="50"/>
</a>
<a href="https://github.com/DonTomato" style="width:45px">
<img src="https://github.com/DonTomato.png?size=45" width="45"/>
</a>
<a href="https://github.com/taigrr" style="width:55px">
<img src="https://github.com/taigrr.png?size=55" width="55"/>
</a>
<a href="https://github.com/charlie-dee" style="width:55px">
<img src="https://github.com/charlie-dee.png?size=55" width="55"/>
</a>
<a href="https://github.com/EdenNetworkItalia" style="width:65px">
<img src="https://github.com/EdenNetworkItalia.png?size=65" width="65"/>
</a>
<a href="https://github.com/michaelolson1996" style="width:55px">
<img src="https://github.com/michaelolson1996.png?size=55" width="55"/>
</a>
<a href="https://github.com/GargantuaX" style="width:45px">
<img src="https://github.com/GargantuaX.png?size=45" width="45"/>
</a>
## Powered By
<span id="nav-6"></span>
## Installation
Wails uses cgo to bind to the native rendering engines so a number of platform dependent libraries are needed as well as
an installation of Go. The basic requirements are:
- Go 1.16
- npm
<span id="nav-6-1"></span>
### MacOS
Make sure you have the xcode command line tools installed. This can be done by running:
`xcode-select --install`
<span id="nav-6-2"></span>
### Linux
<span id="nav-6-2-1"></span>
#### Debian/Ubuntu
`sudo apt install libgtk-3-dev libwebkit2gtk-4.0-dev`
_Debian: 8, 9, 10_
_Ubuntu: 16.04, 18.04, 19.04_
_Also succesfully tested on: Zorin 15, Parrot 4.7, Linuxmint 19, Elementary 5, Kali, Neon_, Pop!\_OS
<span id="nav-6-2-2"></span>
#### Arch Linux / ArchLabs / Ctlos Linux
`sudo pacman -S webkit2gtk gtk3`
_Also succesfully test on: Manjaro & ArcoLinux_
<span id="nav-6-2-3"></span>
#### Centos
`sudo yum install webkitgtk3-devel gtk3-devel`
_CentOS 6, 7_
<span id="nav-6-2-4"></span>
#### Fedora
`sudo yum install webkit2gtk3-devel gtk3-devel`
_Fedora 29, 30_
<span id="nav-6-2-5"></span>
#### VoidLinux & VoidLinux-musl
`xbps-install gtk+3-devel webkit2gtk-devel`
<span id="nav-6-2-6"></span>
#### Gentoo
`sudo emerge gtk+:3 webkit-gtk`
<span id="nav-6-3"></span>
### Windows
Windows requires gcc and related tooling. The recommended download is
from [http://tdm-gcc.tdragon.net/download](http://tdm-gcc.tdragon.net/download). Once this is installed, you are good to
go.
<span id="nav-7"></span>
## Usage
**Ensure Go modules are enabled: GO111MODULE=on and go/bin is in your PATH variable.**
Installation is as simple as running the following command:
```
go get -u github.com/wailsapp/wails/cmd/wails
```
<span id="nav-7-1"></span>
### Next Steps
It is recommended at this stage to read the comprehensive documentation at [https://wails.app](https://wails.app).
<span id="nav-8"></span>
[![JetBrains logo.](https://resources.jetbrains.com/storage/products/company/brand/logos/jetbrains.svg)](https://jb.gg/OpenSource)
## FAQ
- Is this an alternative to Electron?
Depends on your requirements. It's designed to make it easy for Go programmers to make lightweight desktop
applications or add a frontend to their existing applications. Whilst Wails does not currently offer hooks into native
elements such as menus, this may change in the future.
applications or add a frontend to their existing applications. Wails does offer native elements such as menus
and dialogs, so it could be considered a lightweight electron alternative.
- Who is this project aimed at?
@ -318,69 +121,26 @@ It is recommended at this stage to read the comprehensive documentation at [http
Ruby". So initially it was a play on words (Webview on Rails). It just so happened to also be a homophone of the
English name for the [Country](https://en.wikipedia.org/wiki/Wales) I am from. So it stuck.
<span id="nav-9"></span>
## Stargazers over time
<a href="https://star-history.com/#wailsapp/wails&Date">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=wailsapp/wails&type=Date&theme=dark" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=wailsapp/wails&type=Date" />
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=wailsapp/wails&type=Date" />
</picture>
</a>
## Contributors
<a href="https://github.com/qaisjp"><img src="https://github.com/qaisjp.png?size=40" width="40"/></a>
<a href="https://github.com/alee792"><img src="https://github.com/alee792.png?size=40" width="40"/></a>
<a href="https://github.com/lanzafame"><img src="https://github.com/lanzafame.png?size=40" width="40"/></a>
<a href="https://github.com/mattn"><img src="https://github.com/mattn.png?size=40" width="40"/></a>
<a href="https://github.com/0xflotus"><img src="https://github.com/0xflotus.png?size=40" width="40"/></a>
<a href="https://github.com/mdhender"><img src="https://github.com/mdhender.png?size=40" width="40"/></a>
<a href="https://github.com/fishfishfish2104"><img src="https://github.com/fishfishfish2104.png?size=40" width="40"/></a>
<a href="https://github.com/intelwalk"><img src="https://github.com/intelwalk.png?size=40" width="40"/></a>
<a href="https://github.com/ocelotsloth"><img src="https://github.com/ocelotsloth.png?size=40" width="40"/></a>
<a href="https://github.com/bh90210"><img src="https://github.com/bh90210.png?size=40" width="40"/></a>
<a href="https://github.com/iceleo-com"><img src="https://github.com/iceleo-com.png?size=40" width="40"/></a>
<a href="https://github.com/fallendusk"><img src="https://github.com/fallendusk.png?size=40" width="40"/></a>
<a href="https://github.com/Chronophylos"><img src="https://github.com/Chronophylos.png?size=40" width="40"/></a>
<a href="https://github.com/Vaelatern"><img src="https://github.com/Vaelatern.png?size=40" width="40"/></a>
<a href="https://github.com/mewmew"><img src="https://github.com/mewmew.png?size=40" width="40"/></a>
<a href="https://github.com/kraney"><img src="https://github.com/kraney.png?size=40" width="40"/></a>
<a href="https://github.com/JackMordaunt"><img src="https://github.com/JackMordaunt.png?size=40" width="40"/></a>
<a href="https://github.com/MichaelHipp"><img src="https://github.com/MichaelHipp.png?size=40" width="40"/></a>
<a href="https://github.com/tmclane"><img src="https://github.com/tmclane.png?size=40" width="40"/></a>
<a href="https://github.com/Rested"><img src="https://github.com/Rested.png?size=40" width="40"/></a>
<a href="https://github.com/Jarek-SRT"><img src="https://github.com/Jarek-SRT.png?size=40" width="40"/></a>
<a href="https://github.com/konez2k"><img src="https://github.com/konez2k.png?size=40" width="40"/></a>
<a href="https://github.com/sayuthisobri"><img src="https://github.com/sayuthisobri.png?size=40" width="40"/></a>
<a href="https://github.com/dedo1911"><img src="https://github.com/dedo1911.png?size=40" width="40"/></a>
<a href="https://github.com/fdidron"><img src="https://github.com/fdidron.png?size=40" width="40"/></a>
<a href="https://github.com/Splode"><img src="https://github.com/Splode.png?size=40" width="40"/></a>
<a href="https://github.com/Lyimmi"><img src="https://github.com/Lyimmi.png?size=40" width="40"/></a>
<a href="https://github.com/Unix4ever"><img src="https://github.com/Unix4ever.png?size=40" width="40"/></a>
<a href="https://github.com/timkippdev"><img src="https://github.com/timkippdev.png?size=40" width="40"/></a>
<a href="https://github.com/kyoto44"><img src="https://github.com/kyoto44.png?size=40" width="40"/></a>
<a href="https://github.com/artooro"><img src="https://github.com/artooro.png?size=40" width="40"/></a>
<a href="https://github.com/ilgityildirim"><img src="https://github.com/ilgityildirim.png?size=40" width="40"/></a>
<a href="https://github.com/gelleson"><img src="https://github.com/gelleson.png?size=40" width="40"/></a>
<a href="https://github.com/kmuchmore"><img src="https://github.com/kmuchmore.png?size=40" width="40"/></a>
<a href="https://github.com/aayush420"><img src="https://github.com/aayush420.png?size=40" width="40"/></a>
<a href="https://github.com/Rezrazi"><img src="https://github.com/Rezrazi.png?size=40" width="40"/></a>
<a href="https://github.com/misitebao"><img src="https://github.com/misitebao.png?size=40" width="40"/></a>
<a href="https://github.com/DrunkenPoney"><img src="https://github.com/DrunkenPoney.png?size=40" width="40"/></a>
<a href="https://github.com/SophieAu"><img src="https://github.com/SophieAu.png?size=40" width="40"/></a>
<a href="https://github.com/alexmat"><img src="https://github.com/alexmat.png?size=40" width="40"/></a>
<a href="https://github.com/RH12503"><img src="https://github.com/RH12503.png?size=40" width="40"/></a>
<a href="https://github.com/hi019"><img src="https://github.com/hi019.png?size=40" width="40"/></a>
<a href="https://github.com/Igogrek"><img src="https://github.com/Igogrek.png?size=40" width="40"/></a>
<a href="https://github.com/aschey"><img src="https://github.com/aschey.png?size=40" width="40"/></a>
<a href="https://github.com/akhudek"><img src="https://github.com/akhudek.png?size=40" width="40"/></a>
<a href="https://github.com/s12chung"><img src="https://github.com/s12chung.png?size=40" width="40"/></a>
The contributors list is getting too big for the readme! All the amazing people who have contributed to this
project have their own page [here](https://wails.io/credits#contributors).
<span id="nav-10"></span>
## License
## Special Mentions
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fwailsapp%2Fwails.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fwailsapp%2Fwails?ref=badge_large)
Without the following people, this project would never have existed:
- [Dustin Krysak](https://wiki.ubuntu.com/bashfulrobot) - His support and feedback has been immense. More patience than
you can throw a stick at (Not long now Dustin!).
- [Serge Zaitsev](https://github.com/zserge) - Creator of [Webview](https://github.com/zserge/webview) which Wails uses
for the windowing.
- [Byron](https://github.com/bh90210) - At times, Byron has single handedly kept this project alive. Without his
incredible input, we never would have got to v1.
## Inspiration
This project was mainly coded to the following albums:
@ -397,19 +157,3 @@ This project was mainly coded to the following albums:
- [Bloc Party - Silent Alarm](https://open.spotify.com/album/6SsIdN05HQg2GwYLfXuzLB)
- [Maxthor - Another World](https://open.spotify.com/album/3tklE2Fgw1hCIUstIwPBJF)
- [Alun Tan Lan - Y Distawrwydd](https://open.spotify.com/album/0c32OywcLpdJCWWMC6vB8v)
<span id="nav-11"></span>
## Special Thanks
<p align="center" style="text-align: center">
<a href="https://pace.dev"><img src="/assets/images/pace.jpeg"/></a><br/>
A <i>huge</i> thanks to <a href="https://pace.dev">Pace</a> for sponsoring the project and helping the efforts to get Wails ported to Apple Silicon!<br/><br/>
If you are looking for a Project Management tool that's powerful but quick and easy to use, check them out!<br/><br/>
</p>
<p align="center" style="text-align: center">
A special thank you to JetBrains for donating licenses to us!<br/><br/>
Please click the logo to let them know your appreciation!<br/><br/>
<a href="https://www.jetbrains.com?from=Wails"><img src="/assets/images/jetbrains-grayscale.png" width="30%"></a>
</p>

151
README.pt-br.md Normal file
View file

@ -0,0 +1,151 @@
<p align="center" style="text-align: center">
<img src="./assets/images/logo-universal.png" width="55%"><br/>
</p>
<p align="center">
Crie aplicativos de desktop usando Go e tecnologias Web.
<br/>
<br/>
<a href="https://github.com/wailsapp/wails/blob/master/LICENSE">
<img alt="GitHub" src="https://img.shields.io/github/license/wailsapp/wails"/>
</a>
<a href="https://goreportcard.com/report/github.com/wailsapp/wails">
<img src="https://goreportcard.com/badge/github.com/wailsapp/wails" />
</a>
<a href="https://pkg.go.dev/github.com/wailsapp/wails">
<img src="https://pkg.go.dev/badge/github.com/wailsapp/wails.svg" alt="Go Reference"/>
</a>
<a href="https://github.com/wailsapp/wails/issues">
<img src="https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat" alt="CodeFactor" />
</a>
<a href="https://app.fossa.com/projects/git%2Bgithub.com%2Fwailsapp%2Fwails?ref=badge_shield" alt="FOSSA Status">
<img src="https://app.fossa.com/api/projects/git%2Bgithub.com%2Fwailsapp%2Fwails.svg?type=shield" />
</a>
<a href="https://github.com/avelino/awesome-go" rel="nofollow">
<img src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg" alt="Awesome" />
</a>
<a href="https://discord.gg/BrRSWTaxVK">
<img alt="Discord" src="https://img.shields.io/discord/1042734330029547630?logo=discord"/>
</a>
<br/>
<a href="https://github.com/wailsapp/wails/actions/workflows/build-and-test.yml" rel="nofollow">
<img src="https://img.shields.io/github/actions/workflow/status/wailsapp/wails/build-and-test.yml?branch=master&logo=Github" alt="Build" />
</a>
<a href="https://github.com/wailsapp/wails/tags" rel="nofollow">
<img alt="GitHub tag (latest SemVer pre-release)" src="https://img.shields.io/github/v/tag/wailsapp/wails?include_prereleases&label=version"/>
</a>
</p>
<div align="center">
<strong>
<samp>
[English](README.md) · [简体中文](README.zh-Hans.md) · [日本語](README.ja.md) ·
[한국어](README.ko.md) · [Español](README.es.md) · [Português](README.pt-br.md) · [Francais](README.fr.md) · [Uzbek](README.uz.md) · [Deutsch](README.de.md) ·
[Türkçe](README.tr.md)
</samp>
</strong>
</div>
## Índice
- [Índice](#índice)
- [Introdução](#introdução)
- [Recursos e funcionalidades](#recursos-e-funcionalidades)
- [Plano de trabalho](#plano-de-trabalho)
- [Iniciando](#iniciando)
- [Patrocinadores](#patrocinadores)
- [Perguntas frequentes](#perguntas-frequentes)
- [Estrelas ao longo do tempo](#estrelas-ao-longo-do-tempo)
- [Colaboradores](#colaboradores)
- [Licença](#licença)
- [Inspiração](#inspiração)
## Introdução
O método tradicional de fornecer interfaces da Web para programas Go é por meio de um servidor da Web integrado. Wails oferece uma
abordagem: fornece a capacidade de agrupar o código Go e um front-end da Web em um único binário. As ferramentas são fornecidas para
que torne isso mais fácil para você lidando com a criação, compilação e agrupamento de projetos. Tudo o que você precisa fazer é ser criativo!
## Recursos e funcionalidades
- Use Go padrão para o back-end
- Use qualquer tecnologia de front-end com a qual você já esteja familiarizado para criar sua interface do usuário
- Crie rapidamente um front-end avançado para seus programas Go usando modelos pré-construídos
- Chame facilmente métodos Go com JavaScript
- Definições TypeScript geradas automaticamente para suas estruturas e métodos Go
- Diálogos e menus nativos
- Suporte nativo ao modo escuro/claro
- Suporta translucidez moderna e efeitos de "janela fosca"
- Sistema de eventos unificado entre Go e JavaScript
- Poderosa ferramenta cli para gerar e construir rapidamente seus projetos
- Multiplataforma
- Usa mecanismos de renderização nativos - _sem navegador incorporado_!
### Plano de trabalho
O plano de trabalho do projeto pode ser encontrado [aqui](https://github.com/wailsapp/wails/discussions/1484). Por favor consulte
isso antes de abrir um pedido de melhoria.
## Iniciando
As instruções de instalação estão no [site oficial](https://wails.io/docs/gettingstarted/installation).
## Patrocinadores
Este projeto é apoiado por estas simpáticas pessoas/empresas:
<img src="website/static/img/sponsors.svg" style="width:100%;max-width:800px;"/>
<p align="center">
<img src="https://wails.io/img/sponsor/jetbrains-grayscale.webp" style="width: 100px"/>
</p>
## Perguntas frequentes
- Esta é uma alternativa ao Electron?
Depende de seus requisitos. Ele foi projetado para tornar mais fácil para os programadores Go criar aplicações desktop
e adicionar um front-end aos seus aplicativos existentes. O Wails oferece elementos nativos, como menus
e diálogos, por isso pode ser considerada uma alternativa leve, se comparado ao Electron.
- A quem se destina este projeto?
Programadores Go que desejam agrupar um front-end HTML/JS/CSS com seus aplicativos, sem recorrer à criação de um
servidor e abrir um navegador para visualizá-lo.
- Qual é o significado do nome?
Quando vi o WebView, pensei "O que eu realmente quero é ferramentas para construir um aplicativo WebView, algo semelhante ao que Rails é para Ruby". Portanto, inicialmente era um jogo de palavras (WebView on Rails). Por acaso, também era um homófono do
Nome em inglês para o [país](https://en.wikipedia.org/wiki/Wales) de onde eu sou. Então ficou com esse nome.
## Estrelas ao longo do tempo
[![Star History Chart](https://api.star-history.com/svg?repos=wailsapp/wails&type=Date)](https://star-history.com/#wailsapp/wails&Date)
## Colaboradores
A lista de colaboradores está ficando grande demais para o arquivo readme! Todas as pessoas incríveis que contribuíram para o
projeto tem sua própria página [aqui](https://wails.io/credits#contributors).
## Licença
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fwailsapp%2Fwails.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fwailsapp%2Fwails?ref=badge_large)
## Inspiração
Este projeto foi construído ouvindo esses álbuns:
- [Manic Street Preachers - Resistance Is Futile](https://open.spotify.com/album/1R2rsEUqXjIvAbzM0yHrxA)
- [Manic Street Preachers - This Is My Truth, Tell Me Yours](https://open.spotify.com/album/4VzCL9kjhgGQeKCiojK1YN)
- [The Midnight - Endless Summer](https://open.spotify.com/album/4Krg8zvprquh7TVn9OxZn8)
- [Gary Newman - Savage (Songs from a Broken World)](https://open.spotify.com/album/3kMfsD07Q32HRWKRrpcexr)
- [Steve Vai - Passion & Warfare](https://open.spotify.com/album/0oL0OhrE2rYVns4IGj8h2m)
- [Ben Howard - Every Kingdom](https://open.spotify.com/album/1nJsbWm3Yy2DW1KIc1OKle)
- [Ben Howard - Noonday Dream](https://open.spotify.com/album/6astw05cTiXEc2OvyByaPs)
- [Adwaith - Melyn](https://open.spotify.com/album/2vBE40Rp60tl7rNqIZjaXM)
- [Gwidaith Hen Fran - Cedors Hen Wrach](https://open.spotify.com/album/3v2hrfNGINPLuDP0YDTOjm)
- [Metallica - Metallica](https://open.spotify.com/album/2Kh43m04B1UkVcpcRa1Zug)
- [Bloc Party - Silent Alarm](https://open.spotify.com/album/6SsIdN05HQg2GwYLfXuzLB)
- [Maxthor - Another World](https://open.spotify.com/album/3tklE2Fgw1hCIUstIwPBJF)
- [Alun Tan Lan - Y Distawrwydd](https://open.spotify.com/album/0c32OywcLpdJCWWMC6vB8v)

153
README.ru.md Normal file
View file

@ -0,0 +1,153 @@
<p align="center" style="text-align: center">
<img src="./assets/images/logo-universal.png" width="55%"><br/>
</p>
<p align="center">
Собирайте Desktop приложения используя Go и Web технологии
<br/>
<br/>
<a href="https://github.com/wailsapp/wails/blob/master/LICENSE">
<img alt="GitHub" src="https://img.shields.io/github/license/wailsapp/wails"/>
</a>
<a href="https://goreportcard.com/report/github.com/wailsapp/wails">
<img src="https://goreportcard.com/badge/github.com/wailsapp/wails" />
</a>
<a href="https://pkg.go.dev/github.com/wailsapp/wails">
<img src="https://pkg.go.dev/badge/github.com/wailsapp/wails.svg" alt="Go Reference"/>
</a>
<a href="https://github.com/wailsapp/wails/issues">
<img src="https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat" alt="CodeFactor" />
</a>
<a href="https://app.fossa.com/projects/git%2Bgithub.com%2Fwailsapp%2Fwails?ref=badge_shield" alt="FOSSA Status">
<img src="https://app.fossa.com/api/projects/git%2Bgithub.com%2Fwailsapp%2Fwails.svg?type=shield" />
</a>
<a href="https://github.com/avelino/awesome-go" rel="nofollow">
<img src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg" alt="Awesome" />
</a>
<a href="https://discord.gg/BrRSWTaxVK">
<img alt="Discord" src="https://img.shields.io/discord/1042734330029547630?logo=discord"/>
</a>
<br/>
<a href="https://github.com/wailsapp/wails/actions/workflows/build-and-test.yml" rel="nofollow">
<img src="https://img.shields.io/github/actions/workflow/status/wailsapp/wails/build-and-test.yml?branch=master&logo=Github" alt="Build" />
</a>
<a href="https://github.com/wailsapp/wails/tags" rel="nofollow">
<img alt="GitHub tag (latest SemVer pre-release)" src="https://img.shields.io/github/v/tag/wailsapp/wails?include_prereleases&label=version"/>
</a>
</p>
<div align="center">
<strong>
<samp>
[English](README.md) · [简体中文](README.zh-Hans.md) · [日本語](README.ja.md) ·
[한국어](README.ko.md) · [Español](README.es.md) · [Русский](README.ru.md) · [Francais](README.fr.md) · [Uzbek](README.uz.md) · [Deutsch](README.de.md) ·
[Türkçe](README.tr.md)
</samp>
</strong>
</div>
## Содержание
- [Содержание](#содержание)
- [Вступление](#вступление)
- [Особенности](#особенности)
- [Roadmap](#roadmap)
- [Быстрый старт](#быстрый-старт)
- [Спонсоры](#спонсоры)
- [FAQ](#faq)
- [График звёздочек](#график-звёздочек-репозитория-относительно-времени)
- [Контребьюторы](#контребьюторы)
- [Лицензия](#лицензия)
- [Вдохновение](#вдохновение)
## Вступление
Обычно, веб-интерфейсы для программ Go - это встроенный веб-сервер и веб-браузер.
У Walls другой подход: он оборачивает как код Go, так и веб-интерфейс в один бинарник (EXE файл).
Облегчает вам создание вашего приложения, управляя созданием, компиляцией и объединением проектов.
Все ограничивается лишь вашей фантазией!
## Особенности
- Использование Go для backend
- Поддержка любой frontend технологии, с которой вы уже знакомы для создания вашего UI
- Быстрое создание frontend для ваших программ, используя готовые шаблоны
- Очень лёгкий вызов функций Go из JavaScript
- Автогенерация TypeScript типов для Go структур и функций
- Нативные диалоги и меню
- Нативная поддержка тёмной и светлой темы
- Поддержка современных эффектов прозрачности и "матового окна"
- Единая система эвентов для Go и JavaScript
- Мощный CLI для быстрого создания ваших проектов
- Мультиплатформенность
- Использование нативного движка рендеринга - нет встроенному браузеру!
### Roadmap
Roadmap проекта вы можете найти [здесь](https://github.com/wailsapp/wails/discussions/1484).
Пожалуйста, проконсультируйтесь перед предложением улучшения.
## Быстрый старт
Инструкции по установке находятся на [официальном сайте](https://wails.io/docs/gettingstarted/installation).
## Спонсоры
Проект поддерживается этими добрыми людьми / компаниями:
<img src="website/static/img/sponsors.svg" style="width:100%;max-width:800px;"/>
<p align="center">
<img src="https://wails.io/img/sponsor/jetbrains-grayscale.webp" style="width: 100px"/>
</p>
## FAQ
- Это альтернатива Electron?
Зависит от ваших требований. Wails разработан для легкого создания Desktop приложений или
расширения интерфейсной части существующих приложений для программистов на Go. Wails действительно
предлагает встроенные элементы, такие как меню и диалоги, так что его можно считать облегченной альтернативой Electron.
- Для кого предназначен этот проект?
Для Golang программистов, которые хотят создавать приложения, используя HTML, JS и CSS,
без создания веб-сервера и открытия браузера для их просмотра.
- Что это за название?
Когда я увидел WebView, я подумал: "Что мне действительно нужно, так это инструменты для создания приложения WebView,
немного похожие на Rails для Ruby". Изначально это была игра слов (Webview on Rails). Просто так получилось, что это
также омофон английского названия для [Страны](https://en.wikipedia.org/wiki/Wales) от куда я родом. Так что это прижилось.
## График звёздочек репозитория по времени
[![График звёзд](https://api.star-history.com/svg?repos=wailsapp/wails&type=Date)](https://star-history.com/#wailsapp/wails&Date)
## Контрибьюторы
Список участников слишком велик для README! У всех замечательных людей, которые внесли свой вклад в этот
проект, есть своя [страничка](https://wails.io/credits#contributors).
## Лицензия
[![Статус FOSSA](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fwailsapp%2Fwails.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fwailsapp%2Fwails?ref=badge_large)
## Вдохновение
Этот проект был создан, в основном, под эти альбомы:
- [Manic Street Preachers - Resistance Is Futile](https://open.spotify.com/album/1R2rsEUqXjIvAbzM0yHrxA)
- [Manic Street Preachers - This Is My Truth, Tell Me Yours](https://open.spotify.com/album/4VzCL9kjhgGQeKCiojK1YN)
- [The Midnight - Endless Summer](https://open.spotify.com/album/4Krg8zvprquh7TVn9OxZn8)
- [Gary Newman - Savage (Songs from a Broken World)](https://open.spotify.com/album/3kMfsD07Q32HRWKRrpcexr)
- [Steve Vai - Passion & Warfare](https://open.spotify.com/album/0oL0OhrE2rYVns4IGj8h2m)
- [Ben Howard - Every Kingdom](https://open.spotify.com/album/1nJsbWm3Yy2DW1KIc1OKle)
- [Ben Howard - Noonday Dream](https://open.spotify.com/album/6astw05cTiXEc2OvyByaPs)
- [Adwaith - Melyn](https://open.spotify.com/album/2vBE40Rp60tl7rNqIZjaXM)
- [Gwidaith Hen Fran - Cedors Hen Wrach](https://open.spotify.com/album/3v2hrfNGINPLuDP0YDTOjm)
- [Metallica - Metallica](https://open.spotify.com/album/2Kh43m04B1UkVcpcRa1Zug)
- [Bloc Party - Silent Alarm](https://open.spotify.com/album/6SsIdN05HQg2GwYLfXuzLB)
- [Maxthor - Another World](https://open.spotify.com/album/3tklE2Fgw1hCIUstIwPBJF)
- [Alun Tan Lan - Y Distawrwydd](https://open.spotify.com/album/0c32OywcLpdJCWWMC6vB8v)

156
README.tr.md Normal file
View file

@ -0,0 +1,156 @@
<p align="center" style="text-align: center">
<img src="./assets/images/logo-universal.png" width="55%"><br/>
</p>
<p align="center">
Go ve Web Teknolojilerini kullanarak masaüstü uygulamaları oluşturun.
<br/>
<br/>
<a href="https://github.com/wailsapp/wails/blob/master/LICENSE">
<img alt="GitHub" src="https://img.shields.io/github/license/wailsapp/wails"/>
</a>
<a href="https://goreportcard.com/report/github.com/wailsapp/wails">
<img src="https://goreportcard.com/badge/github.com/wailsapp/wails" />
</a>
<a href="https://pkg.go.dev/github.com/wailsapp/wails">
<img src="https://pkg.go.dev/badge/github.com/wailsapp/wails.svg" alt="Go Reference"/>
</a>
<a href="https://github.com/wailsapp/wails/issues">
<img src="https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat" alt="CodeFactor" />
</a>
<a href="https://app.fossa.com/projects/git%2Bgithub.com%2Fwailsapp%2Fwails?ref=badge_shield" alt="FOSSA Status">
<img src="https://app.fossa.com/api/projects/git%2Bgithub.com%2Fwailsapp%2Fwails.svg?type=shield" />
</a>
<a href="https://github.com/avelino/awesome-go" rel="nofollow">
<img src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg" alt="Awesome" />
</a>
<a href="https://discord.gg/BrRSWTaxVK">
<img alt="Discord" src="https://img.shields.io/discord/1042734330029547630?logo=discord"/>
</a>
<br/>
<a href="https://github.com/wailsapp/wails/actions/workflows/build-and-test.yml" rel="nofollow">
<img src="https://img.shields.io/github/actions/workflow/status/wailsapp/wails/build-and-test.yml?branch=master&logo=Github" alt="Build" />
</a>
<a href="https://github.com/wailsapp/wails/tags" rel="nofollow">
<img alt="GitHub tag (latest SemVer pre-release)" src="https://img.shields.io/github/v/tag/wailsapp/wails?include_prereleases&label=version"/>
</a>
</p>
<div align="center">
<strong>
<samp>
[English](README.md) · [简体中文](README.zh-Hans.md) · [日本語](README.ja.md) ·
[한국어](README.ko.md) · [Español](README.es.md) · [Português](README.pt-br.md) ·
[Русский](README.ru.md) · [Francais](README.fr.md) · [Uzbek](README.uz.md) ·
[Türkçe](README.tr.md)
</samp>
</strong>
</div>
## İçerik
- [İçerik](#içerik)
- [Giriş](#giriş)
- [Özellikler](#özellikler)
- [Yol Haritası](#yol-haritası)
- [Başlarken](#başlarken)
- [Sponsorlar](#sponsorlar)
- [Sıkça sorulan sorular](#sıkça-sorulan-sorular)
- [Zaman içinda yıldızlayanlar](#zaman-içinde-yıldızlayanlar)
- [Katkıda bulunanlar](#katkıda-bulunanlar)
- [Lisans](#lisans)
- [İlham](#ilham)
## Giriş
Go programlarına web arayüzleri sağlamak için geleneksel yöntem, yerleşik bir web sunucusu kullanmaktır. Wails, farklı bir yaklaşım sunar: Hem Go kodunu hem de bir web ön yüzünü tek bir ikili dosyada paketleme yeteneği sağlar. Proje oluşturma, derleme ve paketleme işlemlerini kolaylaştıran araçlar sunar. Tek yapmanız gereken yaratıcı olmaktır!
## Özellikler
- Backend için standart Go kullanın
- Kullanıcı arayüzünüzü oluşturmak için zaten aşina olduğunuz herhangi bir frontend teknolojisini kullanın
- Hazır şablonlar kullanarak Go programlarınız için hızlıca zengin ön yüzler oluşturun
- Javascript'ten Go metodlarını kolayca çağırın
- Go yapı ve metodlarınız için otomatik oluşturulan Typescript tanımları
- Yerel Diyaloglar ve Menüler
- Yerel Karanlık / Aydınlık mod desteği
- Modern saydamlık ve "buzlu cam" efektlerini destekler
- Go ve Javascript arasında birleşik olay sistemi
- Projelerinizi hızlıca oluşturmak ve derlemek için güçlü bir komut satırı aracı
- Çoklu platform desteği
- Yerel render motorlarını kullanır - _gömülü tarayıcı yok_!
### Yol Haritesı
Proje yol haritasına [buradan](https://github.com/wailsapp/wails/discussions/1484) ulaşabilirsiniz. Lütfen bir iyileştirme talebi oluşturmadan önce danışın.
## Başlarken
Kurulum talimatları [resmi web sitesinde](https://wails.io/docs/gettingstarted/installation) bulunmaktadır.
## Sponsorlar
Bu proje, aşağıdaki nazik insanlar / şirketler tarafından desteklenmektedir:
<img src="website/static/img/sponsors.svg" style="width:100%;max-width:800px;"/>
<p align="center">
<img src="https://wails.io/img/sponsor/jetbrains-grayscale.webp" style="width: 100px"/>
</p>
## Sıkça Sorulan Sorular
- Bu Electron'a alternatif mi?
Gereksinimlerinize bağlıdır. Go programcılarının hafif masaüstü uygulamaları yapmasını veya mevcut uygulamalarına bir ön yüz eklemelerini kolaylaştırmak için tasarlanmıştır. Wails, menüler ve diyaloglar gibi yerel öğeler sunduğundan, hafif bir Electron alternatifi olarak kabul edilebilir.
- Bu proje kimlere yöneliktir?
HTML/JS/CSS ön yüzünü uygulamalarıyla birlikte paketlemek isteyen, ancak bir sunucu oluşturup bir tarayıcı açmaya başvurmadan bunu yapmak isteyen Go programcıları için.
- İsmin anlamı nedir?
WebView'i gördüğümde, "Aslında istediğim şey, WebView uygulaması oluşturmak için araçlar, biraz Rails'in Ruby için olduğu gibi" diye düşündüm. Bu nedenle başlangıçta kelime oyunu (Rails üzerinde Webview) olarak ortaya çıktı. Ayrıca, benim geldiğim [ülkenin](https://en.wikipedia.org/wiki/Wales) İngilizce adıyla homofon olması tesadüf oldu. Bu yüzden bu isim kaldı.
## Zaman içinda yıldızlayanlar
<a href="https://star-history.com/#wailsapp/wails&Date">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=wailsapp/wails&type=Date&theme=dark" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=wailsapp/wails&type=Date" />
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=wailsapp/wails&type=Date" />
</picture>
</a>
## Katkıda Bulunanlar
Katkıda bulunanların listesi, README için çok büyük hale geldi! Bu projeye katkıda bulunan tüm harika insanların kendi sayfaları [burada](https://wails.io/credits#contributors) bulunmaktadır.
## Lisans
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fwailsapp%2Fwails.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fwailsapp%2Fwails?ref=badge_large)
## İlham
Bu proje esas olarak aşağıdaki albümler dinlenilerek kodlandı:
- [Manic Street Preachers - Resistance Is Futile](https://open.spotify.com/album/1R2rsEUqXjIvAbzM0yHrxA)
- [Manic Street Preachers - This Is My Truth, Tell Me Yours](https://open.spotify.com/album/4VzCL9kjhgGQeKCiojK1YN)
- [The Midnight - Endless Summer](https://open.spotify.com/album/4Krg8zvprquh7TVn9OxZn8)
- [Gary Newman - Savage (Songs from a Broken World)](https://open.spotify.com/album/3kMfsD07Q32HRWKRrpcexr)
- [Steve Vai - Passion & Warfare](https://open.spotify.com/album/0oL0OhrE2rYVns4IGj8h2m)
- [Ben Howard - Every Kingdom](https://open.spotify.com/album/1nJsbWm3Yy2DW1KIc1OKle)
- [Ben Howard - Noonday Dream](https://open.spotify.com/album/6astw05cTiXEc2OvyByaPs)
- [Adwaith - Melyn](https://open.spotify.com/album/2vBE40Rp60tl7rNqIZjaXM)
- [Gwidaith Hen Fran - Cedors Hen Wrach](https://open.spotify.com/album/3v2hrfNGINPLuDP0YDTOjm)
- [Metallica - Metallica](https://open.spotify.com/album/2Kh43m04B1UkVcpcRa1Zug)
- [Bloc Party - Silent Alarm](https://open.spotify.com/album/6SsIdN05HQg2GwYLfXuzLB)
- [Maxthor - Another World](https://open.spotify.com/album/3tklE2Fgw1hCIUstIwPBJF)
- [Alun Tan Lan - Y Distawrwydd](https://open.spotify.com/album/0c32OywcLpdJCWWMC6vB8v)

159
README.uz.md Normal file
View file

@ -0,0 +1,159 @@
<p align="center" style="text-align: center">
<img src="./assets/images/logo-universal.png" width="55%"><br/>
</p>
<p align="center">
Go va Web texnologiyalaridan foydalangan holda ish stoli ilovalarini yarating
<br/>
<br/>
<a href="https://github.com/wailsapp/wails/blob/master/LICENSE">
<img alt="GitHub" src="https://img.shields.io/github/license/wailsapp/wails"/>
</a>
<a href="https://goreportcard.com/report/github.com/wailsapp/wails">
<img src="https://goreportcard.com/badge/github.com/wailsapp/wails" />
</a>
<a href="https://pkg.go.dev/github.com/wailsapp/wails">
<img src="https://pkg.go.dev/badge/github.com/wailsapp/wails.svg" alt="Go Reference"/>
</a>
<a href="https://github.com/wailsapp/wails/issues">
<img src="https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat" alt="CodeFactor" />
</a>
<a href="https://app.fossa.com/projects/git%2Bgithub.com%2Fwailsapp%2Fwails?ref=badge_shield" alt="FOSSA Status">
<img src="https://app.fossa.com/api/projects/git%2Bgithub.com%2Fwailsapp%2Fwails.svg?type=shield" />
</a>
<a href="https://github.com/avelino/awesome-go" rel="nofollow">
<img src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg" alt="Awesome" />
</a>
<a href="https://discord.gg/BrRSWTaxVK">
<img alt="Discord" src="https://img.shields.io/discord/1042734330029547630?logo=discord"/>
</a>
<br/>
<a href="https://github.com/wailsapp/wails/actions/workflows/build-and-test.yml" rel="nofollow">
<img src="https://img.shields.io/github/actions/workflow/status/wailsapp/wails/build-and-test.yml?branch=master&logo=Github" alt="Build" />
</a>
<a href="https://github.com/wailsapp/wails/tags" rel="nofollow">
<img alt="GitHub tag (latest SemVer pre-release)" src="https://img.shields.io/github/v/tag/wailsapp/wails?include_prereleases&label=version"/>
</a>
</p>
<div align="center">
<strong>
<samp>
[English](README.md) · [简体中文](README.zh-Hans.md) · [日本語](README.ja.md) ·
[한국어](README.ko.md) · [Español](README.es.md) · [Português](README.pt-br.md) ·
[Русский](README.ru.md) · [Francais](README.fr.md) · [Uzbek](README.uz) · [Deutsch](README.de.md) ·
[Türkçe](README.tr.md)
</samp>
</strong>
</div>
## Tarkib
- [Tarkib](#tarkib)
- [Kirish](#kirish)
- [Xususiyatlari](#xususiyatlari)
- [Yo'l xaritasi](#yol-xaritasi)
- [Ishni boshlash](#ishni-boshlash)
- [Homiylar](#homiylar)
- [FAQ](#faq)
- [Vaqt o'tishi bilan yulduzlar](#vaqt-otishi-bilan-yulduzlar)
- [Ishtirokchilar](#homiylar)
- [Litsenziya](#litsenziya)
- [Ilhomlanish](#ilhomlanish)
## Kirish
Odatda, Go dasturlari uchun veb-interfeyslar o'rnatilgan veb-server va veb-brauzerdir.
Walls boshqacha yondashuvni qo'llaydi: u Go kodini ham, veb-interfeysni ham bitta ikkilik (e.g: EXE)fayliga o'raydi.
Loyihalarni yaratish, kompilyatsiya qilish va birlashtirishni boshqarish orqali ilovangizni yaratishni osonlashtiradi.
Hamma narsa faqat sizning tasavvuringiz bilan cheklangan!
## Xususiyatlari
- Backend uchun standart Go dan foydalaning
- UI yaratish uchun siz allaqachon tanish bo'lgan har qanday frontend texnologiyasidan foydalaning
- Oldindan tayyorlangan shablonlardan foydalanib, Go dasturlaringiz uchun tezda boy frontendlarni yarating
- Javascriptdan Go methodlarini osongina chaqiring
- Go struktura va methodlari uchun avtomatik yaratilgan Typescript ta'riflari
- Mahalliy Dialoglar va Menyular
- Mahalliy Dark / Light rejimini qo'llab-quvvatlash
- Zamonaviy shaffoflik va "muzli oyna" effektlarini qo'llab-quvvatlaydi
- Go va Javascript o'rtasidagi yagona hodisa tizimi
- Loyihalaringizni tezda yaratish va qurish uchun kuchli cli vositasi
- Ko'p platformali
- Mahalliy renderlash mexanizmlaridan foydalanadi - _o'rnatilgan brauzer yo'q_!
### Yo'l xaritasi
Loyihaning yoʻl xaritasini [bu yerdan](https://github.com/wailsapp/wails/discussions/1484) topish mumkin. Iltimos, maslahatlashing
Buni yaxshilash so'rovini ochishdan oldin.
## Ishni boshlash
O'rnatish bo'yicha ko'rsatmalar [Rasmiy veb saytda](https://wails.io/docs/gettingstarted/installation) mavjud.
## Homiylar
Ushbu loyiha quyidagi mehribon odamlar / kompaniyalar tomonidan qo'llab-quvvatlanadi:
<img src="website/static/img/sponsors.svg" style="width:100%;max-width:800px;"/>
<p align="center">
<img src="https://wails.io/img/sponsor/jetbrains-grayscale.webp" style="width: 100px"/>
</p>
## FAQ
- Bu Elektronga muqobilmi?
Sizning talablaringizga bog'liq. Bu Go dasturchilariga yengil ish stoli yaratishni osonlashtirish uchun yaratilgan
ilovalar yoki ularning mavjud ilovalariga frontend qo'shing. Wails menyular kabi mahalliy elementlarni taklif qiladi
va dialoglar, shuning uchun uni yengil elektron muqobili deb hisoblash mumkin.
- Ushbu loyiha kimlar uchun?
Server yaratmasdan va uni ko'rish uchun brauzerni ochmasdan, o'z ilovalari bilan HTML/JS/CSS orqali frontendini birlashtirmoqchi bo'lgan dasturchilar uchun.
- Bu qanday nom?
Men WebViewni ko'rganimda, men shunday deb o'yladim: "Menga WebView ilovasini yaratish uchun vositalar kerak.
biroz Rails for Rubyga o'xshaydi." Demak, dastlab bu so'zlar ustida o'yin edi (Railsda Webview). Shunday bo'ldi.
u men kelgan [Mamlakat](https://en.wikipedia.org/wiki/Wales)ning inglizcha nomining omofonidir.
## Vaqt o'tishi bilan yulduzlar
<a href="https://star-history.com/#wailsapp/wails&Date">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=wailsapp/wails&type=Date&theme=dark" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=wailsapp/wails&type=Date" />
<img alt="Yulduzlar tarixi jadvali" src="https://api.star-history.com/svg?repos=wailsapp/wails&type=Date" />
</picture>
</a>
## Ishtirokchilar
Ishtirokchilar roʻyxati oʻqish uchun juda kattalashib bormoqda! Bunga hissa qo'shgan barcha ajoyib odamlarning
loyihada o'z sahifasi bor [bu yerga](https://wails.io/credits#contributors).
## Litsenziya
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fwailsapp%2Fwails.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fwailsapp%2Fwails?ref=badge_large)
## Ilhomlanish
Ushbu loyiha asosan quyidagi albomlar uchun kodlangan:
- [Manic Street Preachers - Resistance Is Futile](https://open.spotify.com/album/1R2rsEUqXjIvAbzM0yHrxA)
- [Manic Street Preachers - This Is My Truth, Tell Me Yours](https://open.spotify.com/album/4VzCL9kjhgGQeKCiojK1YN)
- [The Midnight - Endless Summer](https://open.spotify.com/album/4Krg8zvprquh7TVn9OxZn8)
- [Gary Newman - Savage (Songs from a Broken World)](https://open.spotify.com/album/3kMfsD07Q32HRWKRrpcexr)
- [Steve Vai - Passion & Warfare](https://open.spotify.com/album/0oL0OhrE2rYVns4IGj8h2m)
- [Ben Howard - Every Kingdom](https://open.spotify.com/album/1nJsbWm3Yy2DW1KIc1OKle)
- [Ben Howard - Noonday Dream](https://open.spotify.com/album/6astw05cTiXEc2OvyByaPs)
- [Adwaith - Melyn](https://open.spotify.com/album/2vBE40Rp60tl7rNqIZjaXM)
- [Gwidaith Hen Fran - Cedors Hen Wrach](https://open.spotify.com/album/3v2hrfNGINPLuDP0YDTOjm)
- [Metallica - Metallica](https://open.spotify.com/album/2Kh43m04B1UkVcpcRa1Zug)
- [Bloc Party - Silent Alarm](https://open.spotify.com/album/6SsIdN05HQg2GwYLfXuzLB)
- [Maxthor - Another World](https://open.spotify.com/album/3tklE2Fgw1hCIUstIwPBJF)
- [Alun Tan Lan - Y Distawrwydd](https://open.spotify.com/album/0c32OywcLpdJCWWMC6vB8v)

View file

@ -1,303 +1,102 @@
<h1 align="center">Wails</h1>
<p align="center" style="text-align: center">
<img src="logo.png" width="55%"><br/>
<img src="./assets/images/logo-universal.png" width="55%"><br/>
</p>
<p align="center">
使用 Go 和 Web 技术构建桌面应用程序。<br/><br/>
使用 Go 和 Web 技术构建桌面应用程序。
<br/>
<br/>
<a href="https://github.com/wailsapp/wails/blob/master/LICENSE">
<img src="https://img.shields.io/badge/License-MIT-blue.svg">
<img alt="GitHub" src="https://img.shields.io/github/license/wailsapp/wails"/>
</a>
<a href="https://goreportcard.com/report/github.com/wailsapp/wails">
<img src="https://goreportcard.com/badge/github.com/wailsapp/wails"/>
<img src="https://goreportcard.com/badge/github.com/wailsapp/wails" />
</a>
<a href="http://godoc.org/github.com/wailsapp/wails">
<img src="https://img.shields.io/badge/godoc-reference-blue.svg"/>
</a>
<a href="https://www.codefactor.io/repository/github/wailsapp/wails">
<img src="https://www.codefactor.io/repository/github/wailsapp/wails/badge" alt="CodeFactor" />
<a href="https://pkg.go.dev/github.com/wailsapp/wails">
<img src="https://pkg.go.dev/badge/github.com/wailsapp/wails.svg" alt="Go Reference"/>
</a>
<a href="https://github.com/wailsapp/wails/issues">
<img src="https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat" alt="CodeFactor" />
</a>
<a href="https://app.fossa.io/projects/git%2Bgithub.com%2Fwailsapp%2Fwails?ref=badge_shield" alt="FOSSA Status">
<img src="https://app.fossa.io/api/projects/git%2Bgithub.com%2Fwailsapp%2Fwails.svg?type=shield"/>
</a>
<a href="https://houndci.com">
<img src="https://img.shields.io/badge/Reviewed_by-Hound-8E64B0.svg"/>
<a href="https://app.fossa.com/projects/git%2Bgithub.com%2Fwailsapp%2Fwails?ref=badge_shield" alt="FOSSA Status">
<img src="https://app.fossa.com/api/projects/git%2Bgithub.com%2Fwailsapp%2Fwails.svg?type=shield" />
</a>
<a href="https://github.com/avelino/awesome-go" rel="nofollow">
<img src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg" alt="Awesome"/>
<img src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg" alt="Awesome" />
</a>
<a href="https://github.com/wailsapp/wails/workflows/release/badge.svg?branch=master" rel="nofollow">
<img src="https://github.com/wailsapp/wails/workflows/release/badge.svg?branch=master" alt="Release Pipelines"/>
<a href="https://discord.gg/BrRSWTaxVK">
<img alt="Discord" src="https://img.shields.io/discord/1042734330029547630?logo=discord"/>
</a>
<br/>
<a href="https://github.com/wailsapp/wails/actions/workflows/build-and-test.yml" rel="nofollow">
<img src="https://img.shields.io/github/actions/workflow/status/wailsapp/wails/build-and-test.yml?branch=master&logo=Github" alt="Build" />
</a>
<a href="https://github.com/wailsapp/wails/tags" rel="nofollow">
<img alt="GitHub tag (latest SemVer pre-release)" src="https://img.shields.io/github/v/tag/wailsapp/wails?include_prereleases&label=version"/>
</a>
</p>
<span id="nav-1"></span>
<div align="center">
<strong>
<samp>
## 国际化
[English](README.md) · [简体中文](README.zh-Hans.md) · [日本語](README.ja.md) ·
[한국어](README.ko.md) · [Español](README.es.md) · [Português](README.pt-br.md) ·
[Русский](README.ru.md) · [Francais](README.fr.md) · [Uzbek](README.uz.md) · [Deutsch](README.de.md) ·
[Türkçe](README.tr.md)
[English](README.md) | [简体中文](README.zh-Hans.md)
<span id="nav-2"></span>
</samp>
</strong>
</div>
## 内容目录
<details>
<summary>点我 打开/关闭 目录列表</summary>
- [1. 国际化](#nav-1)
- [2. 内容目录](#nav-2)
- [3. 项目介绍](#nav-3)
- [3.1 官方网站](#nav-3-1)
- [4. 功能](#nav-4)
- [5. 赞助商](#nav-5)
- [6. 安装](#nav-6)
- [6.1 MacOS](#nav-6-1)
- [6.2 Linux](#nav-6-2)
- [6.2.1 Debian/Ubuntu](#nav-6-2-1)
- [6.2.2 Arch Linux / ArchLabs / Ctlos Linux](#nav-6-2-2)
- [6.2.3 Centos](#nav-6-2-3)
- [6.2.4 Fedora](#nav-6-2-4)
- [6.2.5 VoidLinux & VoidLinux-musl](#nav-6-2-5)
- [6.2.6 Gentoo](#nav-6-2-6)
- [6.3 Windows](#nav-6-3)
- [7. 使用方法](#nav-7)
- [7.1 下一步](#nav-7-1)
- [8. 常见问题](#nav-8)
- [9. 贡献者](#nav-9)
- [10. 特别提及](#nav-10)
- [12. 特别感谢](#nav-11)
</details>
<span id="nav-3"></span>
- [内容目录](#内容目录)
- [项目介绍](#项目介绍)
- [功能](#功能)
- [路线图](#路线图)
- [快速入门](#快速入门)
- [赞助商](#赞助商)
- [常见问题](#常见问题)
- [星星增长趋势](#星星增长趋势)
- [贡献者](#贡献者)
- [许可证](#许可证)
- [灵感](#灵感)
## 项目介绍
为 Go 程序提供 Web 界面的传统方法是通过内置 Web 服务器。Wails 提供了一种不同的方法:它提供了将 Go 代码和 Web
前端一起打包成单个二进制文件的能力。通过提供的工具,可以很轻松的完成项目的创建、编译和打包。你所要做的就是发挥想象力!
<span id="nav-3-1"></span>
### 官方网站
官方文档可以在 [https://wails.app](https://wails.app) 中找到。
如果您对适用于 Windows 的 v2 测试版感兴趣,可以点击[此处](https://wails.io)查看。
镜像网站:
- [中国大陆镜像站点 - https://wails.top](https://wails.top)
<span id="nav-4"></span>
前端一起打包成单个二进制文件的能力。通过提供的工具,可以很轻松的完成项目的创建、编译和打包。你所要做的就是发挥创造力!
## 功能
- 后端使用标准 Go
- 使用任意前端技术构建 UI 界面
- 快速为您的 Go 应用生成 Vue、Vuetify、React 前端代码
- 通过简单的绑定命令将 Go 方法暴露到前端
- 使用原生渲染引擎 - 无嵌入式浏览器
- 共享事件系统
- 原生文件系统对话框
- 强大的命令行工具
- 跨多个平台
- 使用您已经熟悉的任何前端技术来构建您的 UI
- 使用内置模板为您的 Go 程序快速创建丰富的前端
- 从 Javascript 轻松调用 Go 方法
- 为您的 Go 结构体和方法自动生成 Typescript 声明
- 原生对话框和菜单
- 支持现代半透明和“磨砂窗”效果
- Go 和 Javascript 之间统一的事件系统
- 强大的命令行工具,可快速生成和构建您的项目
- 跨平台
- 使用原生渲染引擎 - _没有嵌入浏览器_
<span id="nav-5"></span>
### 路线图
项目路线图可在 [此处](https://github.com/wailsapp/wails/discussions/1484) 找到。在提出增强请求之前请查阅此内容。
## 快速入门
使用说明在 [官网](https://wails.io/zh-Hans/docs/gettingstarted/installation/)。
## 赞助商
这个项目由以下这些人或者公司支持:
<a href="https://github.com/sponsors/leaanthony" style="width:100px;">
<img src="/img/silver%20sponsor.png" width="100"/>
</a>
<a href="https://github.com/letheanVPN" style="width:100px;">
<img src="https://github.com/letheanVPN.png?size=100" width="100"/>
</a>
<br/>
<br/>
<a href="https://github.com/sponsors/leaanthony" style="width:100px;">
<img src="img/bronze%20sponsor.png" width="100"/>
</a>
<a href="https://github.com/snider" style="width:100px;">
<img src="https://github.com/snider.png?size=100" width="100"/>
</a>
<a href="https://github.com/codydbentley" style="width:100px">
<img src="https://github.com/codydbentley.png?size=100" width="100"/>
</a>
<a href="https://github.com/CrackDavid" style="width:100px">
<img src="https://github.com/CrackDavid.png?size=100" width="100"/>
</a>
<a href="https://www.easywebadv.it/" style="width:100px">
<img src="website/static/img/easyweb.png" width="100"/>
</a>
<br/>
<br/>
<a href="https://github.com/matryer" style="width:100px">
<img src="https://github.com/matryer.png" width="100"/>
</a>
<a href="https://www.jetbrains.com?from=Wails" style="width:100px">
<img src="/assets/images/jetbrains-grayscale.png" width="100"/>
</a>
<a href="https://github.com/tc-hib" style="width:55px">
<img src="https://github.com/tc-hib.png?size=55" width="55"/>
</a>
<a href="https://github.com/picatz" style="width:50px">
<img src="https://github.com/picatz.png?size=50" width="50"/>
</a>
<a href="https://github.com/tylertravisty" style="width:50px">
<img src="https://github.com/tylertravisty.png?size=50" width="50"/>
</a>
<a href="https://github.com/akhudek" style="width:50px">
<img src="https://github.com/akhudek.png?size=50" width="50"/>
</a>
<a href="https://github.com/trea" style="width:50px">
<img src="https://github.com/trea.png?size=50" width="50"/>
</a>
<a href="https://github.com/LanguageAgnostic" style="width:55px">
<img src="https://github.com/LanguageAgnostic.png?size=55" width="55"/>
</a>
<a href="https://github.com/fcjr" style="width:55px">
<img src="https://github.com/fcjr.png?size=55" width="55"/>
</a>
<a href="https://github.com/nickarellano" style="width:60px">
<img src="https://github.com/nickarellano.png?size=60" width="60"/>
</a>
<a href="https://github.com/bglw" style="width:65px">
<img src="https://github.com/bglw.png?size=65" width="65"/>
</a>
<a href="https://github.com/jugglingjsons" style="width:50px">
<img src="https://github.com/jugglingjsons.png?size=50" width="50"/>
</a>
<a href="https://github.com/marcus-crane" style="width:65px">
<img src="https://github.com/marcus-crane.png?size=65" width="65"/>
</a>
<a href="https://github.com/bbergshaven" style="width:45px">
<img src="https://github.com/bbergshaven.png?size=45" width="45"/>
</a>
<a href="https://github.com/Gilgames000" style="width:45px">
<img src="https://github.com/Gilgames000.png?size=45" width="45"/>
</a>
<a href="https://github.com/ilgityildirim" style="width:50px">
<img src="https://github.com/ilgityildirim.png?size=50" width="50"/>
</a>
<a href="https://github.com/questrail" style="width:50px">
<img src="https://github.com/questrail.png?size=50" width="50"/>
</a>
<a href="https://github.com/DonTomato" style="width:45px">
<img src="https://github.com/DonTomato.png?size=45" width="45"/>
</a>
<a href="https://github.com/taigrr" style="width:55px">
<img src="https://github.com/taigrr.png?size=55" width="55"/>
</a>
<a href="https://github.com/charlie-dee" style="width:55px">
<img src="https://github.com/charlie-dee.png?size=55" width="55"/>
</a>
<a href="https://github.com/EdenNetworkItalia" style="width:65px">
<img src="https://github.com/EdenNetworkItalia.png?size=65" width="65"/>
</a>
<a href="https://github.com/michaelolson1996" style="width:55px">
<img src="https://github.com/michaelolson1996.png?size=55" width="55"/>
</a>
<a href="https://github.com/GargantuaX" style="width:45px">
<img src="https://github.com/GargantuaX.png?size=45" width="45"/>
</a>
<span id="nav-6"></span>
## 安装
Wails 使用 cgo 与原生渲染引擎结合,因此需要依赖一些平台的库以及 Go 的安装。基本要求是:
- Go 1.16
- npm
<span id="nav-6-1"></span>
### MacOS
请确保已安装 xcode 命令行工具。这可以通过运行下面的命令来完成:
`xcode-select --install`
<span id="nav-6-2"></span>
### Linux
<span id="nav-6-2-1"></span>
#### Debian/Ubuntu
`sudo apt install libgtk-3-dev libwebkit2gtk-4.0-dev`
_Debian: 8, 9, 10_
_Ubuntu: 16.04, 18.04, 19.04_
_也成功测试了: Zorin 15, Parrot 4.7, Linuxmint 19, Elementary 5, Kali, Neon_, Pop!\_OS
<span id="nav-6-2-2"></span>
#### Arch Linux / ArchLabs / Ctlos Linux
`sudo pacman -S webkit2gtk gtk3`
_也成功测试了: Manjaro & ArcoLinux_
<span id="nav-6-2-3"></span>
#### Centos
`sudo yum install webkitgtk3-devel gtk3-devel`
_CentOS 6, 7_
<span id="nav-6-2-4"></span>
#### Fedora
`sudo yum install webkit2gtk3-devel gtk3-devel`
_Fedora 29, 30_
<span id="nav-6-2-5"></span>
#### VoidLinux & VoidLinux-musl
`xbps-install gtk+3-devel webkit2gtk-devel`
<span id="nav-6-2-6"></span>
#### Gentoo
`sudo emerge gtk+:3 webkit-gtk`
<span id="nav-6-3"></span>
### Windows
Windows 需要 GCC 和相关工具。 建议从 [http://tdm-gcc.tdragon.net/download](http://tdm-gcc.tdragon.net/download) 下载, 安装完成,您就可以开始了。
<span id="nav-7"></span>
## 使用方法
**确保 Go modules 是开启的GO111MODULE=on 并且 go/bin 在您的 PATH 变量中。**
安装很简单,运行以下命令:
```
go get -u github.com/wailsapp/wails/cmd/wails
```
<span id="nav-7-1"></span>
### 下一步
建议在此时阅读 [https://wails.app](https://wails.app) 上面的文档.
<span id="nav-8"></span>
<img src="website/static/img/sponsors.svg" style="width:100%;max-width:800px;"/>
## 常见问题
@ -314,68 +113,21 @@ go get -u github.com/wailsapp/wails/cmd/wails
当我看到 WebView 时,我想"我真正想要的是围绕构建 WebView 应用程序工作,有点像 Rails 对于 Ruby"。因此最初它是一个文字游戏Webview on
Rails。碰巧也是我来自的 [国家](https://en.wikipedia.org/wiki/Wales) 的英文名字的同音。所以就是它了。
<span id="nav-9"></span>
## 星星增长趋势
[![星星增长趋势](https://api.star-history.com/svg?repos=wailsapp/wails&type=Date)](https://star-history.com/#wailsapp/wails&Date)
## 贡献者
<a href="https://github.com/qaisjp"><img src="https://github.com/qaisjp.png?size=40" width="40"/></a>
<a href="https://github.com/alee792"><img src="https://github.com/alee792.png?size=40" width="40"/></a>
<a href="https://github.com/lanzafame"><img src="https://github.com/lanzafame.png?size=40" width="40"/></a>
<a href="https://github.com/mattn"><img src="https://github.com/mattn.png?size=40" width="40"/></a>
<a href="https://github.com/0xflotus"><img src="https://github.com/0xflotus.png?size=40" width="40"/></a>
<a href="https://github.com/mdhender"><img src="https://github.com/mdhender.png?size=40" width="40"/></a>
<a href="https://github.com/fishfishfish2104"><img src="https://github.com/fishfishfish2104.png?size=40" width="40"/></a>
<a href="https://github.com/intelwalk"><img src="https://github.com/intelwalk.png?size=40" width="40"/></a>
<a href="https://github.com/ocelotsloth"><img src="https://github.com/ocelotsloth.png?size=40" width="40"/></a>
<a href="https://github.com/bh90210"><img src="https://github.com/bh90210.png?size=40" width="40"/></a>
<a href="https://github.com/iceleo-com"><img src="https://github.com/iceleo-com.png?size=40" width="40"/></a>
<a href="https://github.com/fallendusk"><img src="https://github.com/fallendusk.png?size=40" width="40"/></a>
<a href="https://github.com/Chronophylos"><img src="https://github.com/Chronophylos.png?size=40" width="40"/></a>
<a href="https://github.com/Vaelatern"><img src="https://github.com/Vaelatern.png?size=40" width="40"/></a>
<a href="https://github.com/mewmew"><img src="https://github.com/mewmew.png?size=40" width="40"/></a>
<a href="https://github.com/kraney"><img src="https://github.com/kraney.png?size=40" width="40"/></a>
<a href="https://github.com/JackMordaunt"><img src="https://github.com/JackMordaunt.png?size=40" width="40"/></a>
<a href="https://github.com/MichaelHipp"><img src="https://github.com/MichaelHipp.png?size=40" width="40"/></a>
<a href="https://github.com/tmclane"><img src="https://github.com/tmclane.png?size=40" width="40"/></a>
<a href="https://github.com/Rested"><img src="https://github.com/Rested.png?size=40" width="40"/></a>
<a href="https://github.com/Jarek-SRT"><img src="https://github.com/Jarek-SRT.png?size=40" width="40"/></a>
<a href="https://github.com/konez2k"><img src="https://github.com/konez2k.png?size=40" width="40"/></a>
<a href="https://github.com/sayuthisobri"><img src="https://github.com/sayuthisobri.png?size=40" width="40"/></a>
<a href="https://github.com/dedo1911"><img src="https://github.com/dedo1911.png?size=40" width="40"/></a>
<a href="https://github.com/fdidron"><img src="https://github.com/fdidron.png?size=40" width="40"/></a>
<a href="https://github.com/Splode"><img src="https://github.com/Splode.png?size=40" width="40"/></a>
<a href="https://github.com/Lyimmi"><img src="https://github.com/Lyimmi.png?size=40" width="40"/></a>
<a href="https://github.com/Unix4ever"><img src="https://github.com/Unix4ever.png?size=40" width="40"/></a>
<a href="https://github.com/timkippdev"><img src="https://github.com/timkippdev.png?size=40" width="40"/></a>
<a href="https://github.com/kyoto44"><img src="https://github.com/kyoto44.png?size=40" width="40"/></a>
<a href="https://github.com/artooro"><img src="https://github.com/artooro.png?size=40" width="40"/></a>
<a href="https://github.com/ilgityildirim"><img src="https://github.com/ilgityildirim.png?size=40" width="40"/></a>
<a href="https://github.com/gelleson"><img src="https://github.com/gelleson.png?size=40" width="40"/></a>
<a href="https://github.com/kmuchmore"><img src="https://github.com/kmuchmore.png?size=40" width="40"/></a>
<a href="https://github.com/aayush420"><img src="https://github.com/aayush420.png?size=40" width="40"/></a>
<a href="https://github.com/Rezrazi"><img src="https://github.com/Rezrazi.png?size=40" width="40"/></a>
<a href="https://github.com/misitebao"><img src="https://github.com/misitebao.png?size=40" width="40"/></a>
<a href="https://github.com/DrunkenPoney"><img src="https://github.com/DrunkenPoney.png?size=40" width="40"/></a>
<a href="https://github.com/SophieAu"><img src="https://github.com/SophieAu.png?size=40" width="40"/></a>
<a href="https://github.com/alexmat"><img src="https://github.com/alexmat.png?size=40" width="40"/></a>
<a href="https://github.com/RH12503"><img src="https://github.com/RH12503.png?size=40" width="40"/></a>
<a href="https://github.com/hi019"><img src="https://github.com/hi019.png?size=40" width="40"/></a>
<a href="https://github.com/Igogrek"><img src="https://github.com/Igogrek.png?size=40" width="40"/></a>
<a href="https://github.com/aschey"><img src="https://github.com/aschey.png?size=40" width="40"/></a>
<a href="https://github.com/akhudek"><img src="https://github.com/akhudek.png?size=40" width="40"/></a>
<a href="https://github.com/s12chung"><img src="https://github.com/s12chung.png?size=40" width="40"/></a>
贡献者列表对于 README 文件来说太大了!所有为这个项目做出贡献的了不起的人在[这里](https://wails.io/credits#contributors)都有自己的页面。
<span id="nav-10"></span>
## 许可证
## 特别提及
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fwailsapp%2Fwails.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fwailsapp%2Fwails?ref=badge_large)
如果没有以下人员,此项目或许永远不会存在:
## 灵感
- [Dustin Krysak](https://wiki.ubuntu.com/bashfulrobot) - 他的支持和反馈是巨大的。
- [Serge Zaitsev](https://github.com/zserge) - Wails 窗口所使用的 [Webview](https://github.com/zserge/webview) 的作者。
- [Byron](https://github.com/bh90210) - 有时Byron 一个人保持这个项目活跃着。没有他令人难以置信的投入,我们永远不会得到 v1 。
编写项目代码时伴随着以下专辑:
项目灵感主要来自以下专辑:
- [Manic Street Preachers - Resistance Is Futile](https://open.spotify.com/album/1R2rsEUqXjIvAbzM0yHrxA)
- [Manic Street Preachers - This Is My Truth, Tell Me Yours](https://open.spotify.com/album/4VzCL9kjhgGQeKCiojK1YN)
@ -390,19 +142,3 @@ go get -u github.com/wailsapp/wails/cmd/wails
- [Bloc Party - Silent Alarm](https://open.spotify.com/album/6SsIdN05HQg2GwYLfXuzLB)
- [Maxthor - Another World](https://open.spotify.com/album/3tklE2Fgw1hCIUstIwPBJF)
- [Alun Tan Lan - Y Distawrwydd](https://open.spotify.com/album/0c32OywcLpdJCWWMC6vB8v)
<span id="nav-11"></span>
## 特别感谢
<p align="center" style="text-align: center">
<a href="https://pace.dev"><img src="/assets/images/pace.jpeg"/></a><br/>
<i>非常</i> 感谢<a href="https://pace.dev">Pace</a>对项目的赞助,并帮助将 Wails 移植到 Apple Silicon !<br/><br/>
如果您正在寻找一个强大并且快速和易于使用的项目管理工具,可以看看他们!<br/><br/>
</p>
<p align="center" style="text-align: center">
特别感谢 JetBrains 向我们捐赠许可!<br/><br/>
请点击 logo 让他们知道你的感激之情!<br/><br/>
<a href="https://www.jetbrains.com?from=Wails"><img src="/assets/images/jetbrains-grayscale.png" width="30%"></a>
</p>

38
SECURITY.md Normal file
View file

@ -0,0 +1,38 @@
# Security Policy
## Supported Versions
| Version | Supported |
| ------- | ------------------ |
| 2.x.x | :white_check_mark: |
| 3.0.x-alpha | :x: |
## Reporting a Vulnerability
If you believe you have found a security vulnerability in our project, we encourage you to let us know right away.
We will investigate all legitimate reports and do our best to quickly fix the problem.
Before reporting though, please review our security policy below.
### How to Report
To report a security vulnerability, please use GitHub's [private vulnerability reporting](https://docs.github.com/en/code-security/security-advisories/guidance-on-reporting-and-writing-information-about-vulnerabilities/privately-reporting-a-security-vulnerability) feature. If possible, please include as much information as possible.
This may include steps to reproduce, impact of the vulnerability, and anything else you believe would help us understand the problem.
**Please do not include any sensitive or personal information in your report**.
### What to Expect
When you report a vulnerability, here's what you can expect:
- **Acknowledgement**: We will acknowledge your email within 48 hours, and you'll receive a more detailed response to your email within 72 hours indicating the next steps in handling your report.
- **Updates**: After the initial reply to your report, our team will keep you informed of the progress being made towards a fix and full announcement. These updates will be sent at least once a week.
- **Confidentiality**: We will maintain strict confidentiality of your report until the security issue is resolved.
- **Issue Resolution**: If the issue is confirmed, we will release a patch as soon as possible depending on complexity of the fix.
- **Recognition**: We recognize and appreciate every individual who helps us identify and fix vulnerabilities in our project. While we do not currently have a bounty program, we would be happy to publicly acknowledge your responsible disclosure.
We strive to make Wails safe for everyone, and we greatly appreciate the assistance of security researchers and users in helping us identify and fix vulnerabilities. Thank you for your contribution to the security of this project.

47
Taskfile.yaml Normal file
View file

@ -0,0 +1,47 @@
# https://taskfile.dev
version: "3"
includes:
website:
taskfile: website
dir: website
v2:
taskfile: v2
dir: v2
optional: true
v3:
taskfile: v3
dir: v3
optional: true
tasks:
contributors:check:
cmds:
- npx -y all-contributors-cli check
contributors:update:
cmds:
- go run v3/tasks/contribs/main.go
contributors:build:
cmds:
- npx -y all-contributors-cli generate
format:md:
cmds:
- npx prettier --write "**/*.md"
format:
cmds:
- task: format:md
format-all-md:
cmds:
- task: format:md
- task: website:format:md
- task: v2:format:md
# - task: v2:website:format
- task: v3:format:md
# - task: v3:website:format:md

174
app.go
View file

@ -1,174 +0,0 @@
package wails
import (
"os"
"syscall"
"github.com/syossan27/tebata"
"github.com/wailsapp/wails/cmd"
"github.com/wailsapp/wails/lib/binding"
"github.com/wailsapp/wails/lib/event"
"github.com/wailsapp/wails/lib/interfaces"
"github.com/wailsapp/wails/lib/ipc"
"github.com/wailsapp/wails/lib/logger"
"github.com/wailsapp/wails/lib/renderer"
wailsruntime "github.com/wailsapp/wails/runtime"
)
// -------------------------------- Compile time Flags ------------------------------
// BuildMode indicates what mode we are in
var BuildMode = cmd.BuildModeProd
// Runtime is the Go Runtime struct
type Runtime = wailsruntime.Runtime
// Store is a state store used for syncing with
// the front end
type Store = wailsruntime.Store
// CustomLogger is a specialised logger
type CustomLogger = logger.CustomLogger
// ----------------------------------------------------------------------------------
// App defines the main application struct
type App struct {
config *AppConfig // The Application configuration object
cli *cmd.Cli // In debug mode, we have a cli
renderer interfaces.Renderer // The renderer is what we will render the app to
logLevel string // The log level of the app
ipc interfaces.IPCManager // Handles the IPC calls
log *logger.CustomLogger // Logger
bindingManager interfaces.BindingManager // Handles binding of Go code to renderer
eventManager interfaces.EventManager // Handles all the events
runtime interfaces.Runtime // The runtime object for registered structs
}
// CreateApp creates the application window with the given configuration
// If none given, the defaults are used
func CreateApp(optionalConfig ...*AppConfig) *App {
var userConfig *AppConfig
if len(optionalConfig) > 0 {
userConfig = optionalConfig[0]
}
result := &App{
logLevel: "debug",
renderer: renderer.NewWebView(),
ipc: ipc.NewManager(),
bindingManager: binding.NewManager(),
eventManager: event.NewManager(),
log: logger.NewCustomLogger("App"),
}
appconfig, err := newConfig(userConfig)
if err != nil {
result.log.Fatalf("Cannot use custom HTML: %s", err.Error())
}
result.config = appconfig
// Set up the CLI if not in release mode
if BuildMode != cmd.BuildModeProd {
result.cli = result.setupCli()
} else {
// Disable Inspector in release mode
result.config.DisableInspector = true
}
// Platform specific init
platformInit()
return result
}
// Run the app
func (a *App) Run() error {
if BuildMode != cmd.BuildModeProd {
return a.cli.Run()
}
a.logLevel = "error"
err := a.start()
if err != nil {
a.log.Error(err.Error())
}
return err
}
func (a *App) start() error {
// Set the log level
logger.SetLogLevel(a.logLevel)
// Log starup
a.log.Info("Starting")
// Check if we are to run in bridge mode
if BuildMode == cmd.BuildModeBridge {
a.renderer = renderer.NewBridge()
}
// Initialise the renderer
err := a.renderer.Initialise(a.config, a.ipc, a.eventManager)
if err != nil {
return err
}
// Start signal handler
t := tebata.New(os.Interrupt, os.Kill, syscall.SIGTERM, syscall.SIGINT, syscall.SIGKILL)
t.Reserve(func() {
a.log.Debug("SIGNAL CAUGHT! Starting Shutdown")
a.renderer.Close()
})
// Start event manager and give it our renderer
a.eventManager.Start(a.renderer)
// Start the IPC Manager and give it the event manager and binding manager
a.ipc.Start(a.eventManager, a.bindingManager)
// Create the runtime
a.runtime = wailsruntime.NewRuntime(a.eventManager, a.renderer)
// Start binding manager and give it our renderer
err = a.bindingManager.Start(a.renderer, a.runtime)
if err != nil {
return err
}
// Defer the shutdown
defer a.shutdown()
// Run the renderer
err = a.renderer.Run()
if err != nil {
return err
}
return nil
}
// shutdown the app
func (a *App) shutdown() {
// Make sure this is only called once
a.log.Debug("Shutting down")
// Shutdown Binding Manager
a.bindingManager.Shutdown()
// Shutdown IPC Manager
a.ipc.Shutdown()
// Shutdown Event Manager
a.eventManager.Shutdown()
a.log.Debug("Cleanly Shutdown")
}
// Bind allows the user to bind the given object
// with the application
func (a *App) Bind(object interface{}) {
a.bindingManager.Bind(object)
}

View file

@ -1,8 +0,0 @@
//go:build linux || darwin || !windows
// +build linux darwin !windows
package wails
func platformInit() {
}

View file

@ -1,28 +0,0 @@
//go:build windows || !linux || !darwin
// +build windows !linux !darwin
package wails
import (
"fmt"
"log"
"syscall"
)
func platformInit() {
err := SetProcessDPIAware()
if err != nil {
log.Fatalf(err.Error())
}
}
// SetProcessDPIAware via user32.dll
// https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-setprocessdpiaware
// Also, thanks Jack Mordaunt! https://github.com/wailsapp/wails/issues/293
func SetProcessDPIAware() error {
status, r, err := syscall.NewLazyDLL("user32.dll").NewProc("SetProcessDPIAware").Call()
if status == 0 {
return fmt.Errorf("exit status %d: %v %v", status, r, err)
}
return nil
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 103 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Before After
Before After

27
cli.go
View file

@ -1,27 +0,0 @@
package wails
import (
"github.com/wailsapp/wails/cmd"
)
// setupCli creates a new cli handler for the application
func (app *App) setupCli() *cmd.Cli {
// Create a new cli
result := cmd.NewCli(app.config.Title, "Debug build")
result.Version(cmd.Version)
// Setup cli to handle loglevel
result.
StringFlag("loglevel", "Sets the log level [debug|info|error|panic|fatal]. Default debug", &app.logLevel).
Action(app.start)
// Banner
result.PreRun(func(cli *cmd.Cli) error {
log := cmd.NewLogger()
log.YellowUnderline(app.config.Title + " - Debug Build")
return nil
})
return result
}

View file

@ -1,10 +0,0 @@
package cmd
const (
// BuildModeProd indicates we are building for prod mode
BuildModeProd = "prod"
// BuildModeDebug indicates we are building for debug mode
BuildModeDebug = "debug"
// BuildModeBridge indicates we are building for bridge mode
BuildModeBridge = "bridge"
)

View file

@ -1,285 +0,0 @@
package cmd
import (
"flag"
"fmt"
"os"
"strings"
)
// NewCli - Creates a new Cli application object
func NewCli(name, description string) *Cli {
result := &Cli{}
result.rootCommand = NewCommand(name, description, result, "")
result.log = NewLogger()
return result
}
// Cli - The main application object
type Cli struct {
rootCommand *Command
defaultCommand *Command
preRunCommand func(*Cli) error
log *Logger
}
// Version - Set the Application version string
func (c *Cli) Version(version string) {
c.rootCommand.AppVersion = version
}
// PrintHelp - Prints the application's help
func (c *Cli) PrintHelp() {
c.rootCommand.PrintHelp()
}
// Run - Runs the application with the given arguments
func (c *Cli) Run(args ...string) error {
if c.preRunCommand != nil {
err := c.preRunCommand(c)
if err != nil {
return err
}
}
if len(args) == 0 {
args = os.Args[1:]
}
return c.rootCommand.Run(args)
}
// DefaultCommand - Sets the given command as the command to run when
// no other commands given
func (c *Cli) DefaultCommand(defaultCommand *Command) *Cli {
c.defaultCommand = defaultCommand
return c
}
// Command - Adds a command to the application
func (c *Cli) Command(name, description string) *Command {
return c.rootCommand.Command(name, description)
}
// PreRun - Calls the given function before running the specific command
func (c *Cli) PreRun(callback func(*Cli) error) {
c.preRunCommand = callback
}
// BoolFlag - Adds a boolean flag to the root command
func (c *Cli) BoolFlag(name, description string, variable *bool) *Command {
c.rootCommand.BoolFlag(name, description, variable)
return c.rootCommand
}
// StringFlag - Adds a string flag to the root command
func (c *Cli) StringFlag(name, description string, variable *string) *Command {
c.rootCommand.StringFlag(name, description, variable)
return c.rootCommand
}
// Action represents a function that gets calls when the command is called by
// the user
type Action func() error
// Command represents a command that may be run by the user
type Command struct {
Name string
CommandPath string
Shortdescription string
Longdescription string
AppVersion string
SubCommands []*Command
SubCommandsMap map[string]*Command
longestSubcommand int
ActionCallback Action
App *Cli
Flags *flag.FlagSet
flagCount int
log *Logger
helpFlag bool
hidden bool
}
// NewCommand creates a new Command
func NewCommand(name string, description string, app *Cli, parentCommandPath string) *Command {
result := &Command{
Name: name,
Shortdescription: description,
SubCommandsMap: make(map[string]*Command),
App: app,
log: NewLogger(),
hidden: false,
}
// Set up command path
if parentCommandPath != "" {
result.CommandPath += parentCommandPath + " "
}
result.CommandPath += name
// Set up flag set
result.Flags = flag.NewFlagSet(result.CommandPath, flag.ContinueOnError)
result.BoolFlag("help", "Get help on the '"+result.CommandPath+"' command.", &result.helpFlag)
// result.Flags.Usage = result.PrintHelp
return result
}
// parseFlags parses the given flags
func (c *Command) parseFlags(args []string) error {
// Parse flags
tmp := os.Stderr
os.Stderr = nil
err := c.Flags.Parse(args)
os.Stderr = tmp
if err != nil {
fmt.Printf("Error: %s\n\n", err.Error())
c.PrintHelp()
}
return err
}
// Run - Runs the Command with the given arguments
func (c *Command) Run(args []string) error {
// If we have arguments, process them
if len(args) > 0 {
// Check for subcommand
subcommand := c.SubCommandsMap[args[0]]
if subcommand != nil {
return subcommand.Run(args[1:])
}
// Parse flags
err := c.parseFlags(args)
if err != nil {
fmt.Printf("Error: %s\n\n", err.Error())
c.PrintHelp()
return err
}
// Help takes precedence
if c.helpFlag {
c.PrintHelp()
return nil
}
}
// Do we have an action?
if c.ActionCallback != nil {
return c.ActionCallback()
}
// If we haven't specified a subcommand
// check for an app level default command
if c.App.defaultCommand != nil {
// Prevent recursion!
if c.App.defaultCommand != c {
// only run default command if no args passed
if len(args) == 0 {
return c.App.defaultCommand.Run(args)
}
}
}
// Nothing left we can do
c.PrintHelp()
return nil
}
// Action - Define an action from this command
func (c *Command) Action(callback Action) *Command {
c.ActionCallback = callback
return c
}
// PrintHelp - Output the help text for this command
func (c *Command) PrintHelp() {
c.log.PrintBanner()
commandTitle := c.CommandPath
if c.Shortdescription != "" {
commandTitle += " - " + c.Shortdescription
}
// Ignore root command
if c.CommandPath != c.Name {
c.log.Yellow(commandTitle)
}
if c.Longdescription != "" {
fmt.Println()
fmt.Println(c.Longdescription + "\n")
}
if len(c.SubCommands) > 0 {
c.log.White("Available commands:")
fmt.Println("")
for _, subcommand := range c.SubCommands {
if subcommand.isHidden() {
continue
}
spacer := strings.Repeat(" ", 3+c.longestSubcommand-len(subcommand.Name))
isDefault := ""
if subcommand.isDefaultCommand() {
isDefault = "[default]"
}
fmt.Printf(" %s%s%s %s\n", subcommand.Name, spacer, subcommand.Shortdescription, isDefault)
}
fmt.Println("")
}
if c.flagCount > 0 {
c.log.White("Flags:")
fmt.Println()
c.Flags.SetOutput(os.Stdout)
c.Flags.PrintDefaults()
c.Flags.SetOutput(os.Stderr)
}
fmt.Println()
}
// isDefaultCommand returns true if called on the default command
func (c *Command) isDefaultCommand() bool {
return c.App.defaultCommand == c
}
// isHidden returns true if the command is a hidden command
func (c *Command) isHidden() bool {
return c.hidden
}
// Hidden hides the command from the Help system
func (c *Command) Hidden() {
c.hidden = true
}
// Command - Defines a subcommand
func (c *Command) Command(name, description string) *Command {
result := NewCommand(name, description, c.App, c.CommandPath)
result.log = c.log
c.SubCommands = append(c.SubCommands, result)
c.SubCommandsMap[name] = result
if len(name) > c.longestSubcommand {
c.longestSubcommand = len(name)
}
return result
}
// BoolFlag - Adds a boolean flag to the command
func (c *Command) BoolFlag(name, description string, variable *bool) *Command {
c.Flags.BoolVar(variable, name, *variable, description)
c.flagCount++
return c
}
// StringFlag - Adds a string flag to the command
func (c *Command) StringFlag(name, description string, variable *string) *Command {
c.Flags.StringVar(variable, name, *variable, description)
c.flagCount++
return c
}
// LongDescription - Sets the long description for the command
func (c *Command) LongDescription(Longdescription string) *Command {
c.Longdescription = Longdescription
return c
}

240
cmd/fs.go
View file

@ -1,240 +0,0 @@
package cmd
import (
"bytes"
"crypto/md5"
"encoding/json"
"fmt"
"io"
"log"
"os"
"path"
"path/filepath"
"runtime"
"strings"
"github.com/leaanthony/slicer"
)
// FSHelper - Wrapper struct for File System utility commands
type FSHelper struct {
}
// NewFSHelper - Returns a new FSHelper
func NewFSHelper() *FSHelper {
result := &FSHelper{}
return result
}
// DirExists - Returns true if the given path resolves to a directory on the filesystem
func (fs *FSHelper) DirExists(path string) bool {
fi, err := os.Lstat(path)
if err != nil {
return false
}
return fi.Mode().IsDir()
}
// FileExists returns a boolean value indicating whether
// the given file exists
func (fs *FSHelper) FileExists(path string) bool {
fi, err := os.Lstat(path)
if err != nil {
return false
}
return fi.Mode().IsRegular()
}
// FindFile returns the first occurrence of match inside path.
func (fs *FSHelper) FindFile(path, match string) (string, error) {
files, err := os.ReadDir(path)
if err != nil {
return "", err
}
for _, f := range files {
if !f.IsDir() && strings.Contains(f.Name(), match) {
return f.Name(), nil
}
}
return "", fmt.Errorf("file not found")
}
// CreateFile creates a file at the given filename location with the contents
// set to the given data. It will create intermediary directories if needed.
func (fs *FSHelper) CreateFile(filename string, data []byte) error {
// Ensure directory exists
fs.MkDirs(filepath.Dir(filename))
return os.WriteFile(filename, data, 0644)
}
// MkDirs creates the given nested directories.
// Returns error on failure
func (fs *FSHelper) MkDirs(fullPath string, mode ...os.FileMode) error {
var perms os.FileMode
perms = 0700
if len(mode) == 1 {
perms = mode[0]
}
return os.MkdirAll(fullPath, perms)
}
// CopyFile from source to target
func (fs *FSHelper) CopyFile(source, target string) error {
s, err := os.Open(source)
if err != nil {
return err
}
defer s.Close()
d, err := os.Create(target)
if err != nil {
return err
}
if _, err := io.Copy(d, s); err != nil {
d.Close()
return err
}
return d.Close()
}
// Cwd returns the current working directory
// Aborts on Failure
func (fs *FSHelper) Cwd() string {
cwd, err := os.Getwd()
if err != nil {
log.Fatal("Unable to get working directory!")
}
return cwd
}
// RemoveFile removes the given filename
func (fs *FSHelper) RemoveFile(filename string) error {
return os.Remove(filename)
}
// RemoveFiles removes the given filenames
func (fs *FSHelper) RemoveFiles(files []string, continueOnError bool) error {
for _, filename := range files {
err := os.Remove(filename)
if err != nil && !continueOnError {
return err
}
}
return nil
}
// Dir holds information about a directory
type Dir struct {
localPath string
fullPath string
}
// Directory creates a new Dir struct with the given directory path
func (fs *FSHelper) Directory(dir string) (*Dir, error) {
fullPath, err := filepath.Abs(dir)
return &Dir{fullPath: fullPath}, err
}
// LocalDir creates a new Dir struct based on a path relative to the caller
func (fs *FSHelper) LocalDir(dir string) (*Dir, error) {
_, filename, _, _ := runtime.Caller(1)
fullPath, err := filepath.Abs(filepath.Join(path.Dir(filename), dir))
return &Dir{
localPath: dir,
fullPath: fullPath,
}, err
}
// GetSubdirs will return a list of FQPs to subdirectories in the given directory
func (d *Dir) GetSubdirs() (map[string]string, error) {
// Read in the directory information
fileInfo, err := os.ReadDir(d.fullPath)
if err != nil {
return nil, err
}
// Allocate space for the list
subdirs := make(map[string]string)
// Pull out the directories and store in the map as
// map["directoryName"] = "path/to/directoryName"
for _, file := range fileInfo {
if file.IsDir() {
subdirs[file.Name()] = filepath.Join(d.fullPath, file.Name())
}
}
return subdirs, nil
}
// GetAllFilenames returns all filename in and below this directory
func (d *Dir) GetAllFilenames() (*slicer.StringSlicer, error) {
result := slicer.String()
err := filepath.Walk(d.fullPath, func(dir string, info os.FileInfo, err error) error {
if dir == d.fullPath {
return nil
}
if err != nil {
return err
}
// Don't copy template metadata
result.Add(dir)
return nil
})
return result, err
}
// MkDir creates the given directory.
// Returns error on failure
func (fs *FSHelper) MkDir(dir string) error {
return os.Mkdir(dir, 0700)
}
// SaveAsJSON saves the JSON representation of the given data to the given filename
func (fs *FSHelper) SaveAsJSON(data interface{}, filename string) error {
var buf bytes.Buffer
e := json.NewEncoder(&buf)
e.SetEscapeHTML(false)
e.SetIndent("", " ")
e.Encode(data)
err := os.WriteFile(filename, buf.Bytes(), 0755)
if err != nil {
return err
}
return nil
}
// LoadAsString will attempt to load the given file and return
// its contents as a string
func (fs *FSHelper) LoadAsString(filename string) (string, error) {
bytes, err := fs.LoadAsBytes(filename)
return string(bytes), err
}
// LoadAsBytes returns the contents of the file as a byte slice
func (fs *FSHelper) LoadAsBytes(filename string) ([]byte, error) {
return os.ReadFile(filename)
}
// FileMD5 returns the md5sum of the given file
func (fs *FSHelper) FileMD5(filename string) (string, error) {
f, err := os.Open(filename)
if err != nil {
return "", err
}
defer f.Close()
h := md5.New()
if _, err := io.Copy(h, f); err != nil {
return "", err
}
return fmt.Sprintf("%x", h.Sum(nil)), nil
}

View file

@ -1,108 +0,0 @@
package cmd
import (
"encoding/json"
"fmt"
"io"
"net/http"
"sort"
)
// GitHubHelper is a utility class for interacting with GitHub
type GitHubHelper struct {
}
// NewGitHubHelper returns a new GitHub Helper
func NewGitHubHelper() *GitHubHelper {
return &GitHubHelper{}
}
// GetVersionTags gets the list of tags on the Wails repo
// It returns a list of sorted tags in descending order
func (g *GitHubHelper) GetVersionTags() ([]*SemanticVersion, error) {
result := []*SemanticVersion{}
var err error
resp, err := http.Get("https://api.github.com/repos/wailsapp/wails/releases")
if err != nil {
return result, err
}
body, err := io.ReadAll(resp.Body)
if err != nil {
return result, err
}
data := []map[string]interface{}{}
err = json.Unmarshal(body, &data)
if err != nil {
return result, err
}
// Convert tag data to Version structs
for _, tag := range data {
version := tag["name"].(string)
semver, err := NewSemanticVersion(version)
if err != nil {
return result, err
}
result = append(result, semver)
}
// Reverse Sort
sort.Sort(sort.Reverse(SemverCollection(result)))
return result, err
}
// GetLatestStableRelease gets the latest stable release on GitHub
func (g *GitHubHelper) GetLatestStableRelease() (result *SemanticVersion, err error) {
tags, err := g.GetVersionTags()
if err != nil {
return nil, err
}
for _, tag := range tags {
if tag.IsRelease() {
return tag, nil
}
}
return nil, fmt.Errorf("no release tag found")
}
// GetLatestPreRelease gets the latest prerelease on GitHub
func (g *GitHubHelper) GetLatestPreRelease() (result *SemanticVersion, err error) {
tags, err := g.GetVersionTags()
if err != nil {
return nil, err
}
for _, tag := range tags {
if tag.IsPreRelease() {
return tag, nil
}
}
return nil, fmt.Errorf("no prerelease tag found")
}
// IsValidTag returns true if the given string is a valid tag
func (g *GitHubHelper) IsValidTag(tagVersion string) (bool, error) {
if tagVersion[0] == 'v' {
tagVersion = tagVersion[1:]
}
tags, err := g.GetVersionTags()
if err != nil {
return false, err
}
for _, tag := range tags {
if tag.String() == tagVersion {
return true, nil
}
}
return false, nil
}

View file

@ -1,78 +0,0 @@
package cmd
import (
"fmt"
"path/filepath"
"regexp"
"github.com/Masterminds/semver"
)
func GetWailsVersion() (*semver.Version, error) {
var FS = NewFSHelper()
var result *semver.Version
// Load file
var err error
goModFile, err := filepath.Abs(filepath.Join(".", "go.mod"))
if err != nil {
return nil, fmt.Errorf("Unable to load go.mod at %s", goModFile)
}
goMod, err := FS.LoadAsString(goModFile)
if err != nil {
return nil, fmt.Errorf("Unable to load go.mod")
}
// Find wails version
versionRegexp := regexp.MustCompile(`.*github.com/wailsapp/wails.*(v\d+.\d+.\d+(?:-pre\d+)?)`)
versions := versionRegexp.FindStringSubmatch(goMod)
if len(versions) != 2 {
return nil, fmt.Errorf("Unable to determine Wails version")
}
version := versions[1]
result, err = semver.NewVersion(version)
if err != nil {
return nil, fmt.Errorf("Unable to parse Wails version: %s", version)
}
return result, nil
}
func GetCurrentVersion() (*semver.Version, error) {
result, err := semver.NewVersion(Version)
if err != nil {
return nil, fmt.Errorf("Unable to parse Wails version: %s", Version)
}
return result, nil
}
func GoModOutOfSync() (bool, error) {
gomodversion, err := GetWailsVersion()
if err != nil {
return true, err
}
currentVersion, err := GetCurrentVersion()
if err != nil {
return true, err
}
result := !currentVersion.Equal(gomodversion)
return result, nil
}
func UpdateGoModVersion() error {
currentVersion, err := GetCurrentVersion()
if err != nil {
return err
}
currentVersionString := currentVersion.String()
requireLine := "-require=github.com/wailsapp/wails@v" + currentVersionString
// Issue: go mod edit -require=github.com/wailsapp/wails@1.0.2-pre5
helper := NewProgramHelper()
command := []string{"go", "mod", "edit", requireLine}
return helper.RunCommandArray(command)
}

View file

@ -1,542 +0,0 @@
package cmd
import (
"fmt"
"os"
"os/exec"
"os/user"
"path/filepath"
"runtime"
"strconv"
"strings"
"time"
"github.com/leaanthony/slicer"
"github.com/leaanthony/spinner"
wailsruntime "github.com/wailsapp/wails/runtime"
)
const xgoVersion = "1.16.3"
var fs = NewFSHelper()
// ValidateFrontendConfig checks if the frontend config is valid
func ValidateFrontendConfig(projectOptions *ProjectOptions) error {
if projectOptions.FrontEnd.Dir == "" {
return fmt.Errorf("Frontend directory not set in project.json")
}
if projectOptions.FrontEnd.Build == "" {
return fmt.Errorf("Frontend build command not set in project.json")
}
if projectOptions.FrontEnd.Install == "" {
return fmt.Errorf("Frontend install command not set in project.json")
}
if projectOptions.FrontEnd.Bridge == "" {
return fmt.Errorf("Frontend bridge config not set in project.json")
}
return nil
}
// InstallGoDependencies will run go get in the current directory
func InstallGoDependencies(verbose bool) error {
var depSpinner *spinner.Spinner
if !verbose {
depSpinner = spinner.New("Ensuring Dependencies are up to date...")
depSpinner.SetSpinSpeed(50)
depSpinner.Start()
}
err := NewProgramHelper(verbose).RunCommand("go mod tidy")
if err != nil {
if !verbose {
depSpinner.Error()
}
return err
}
if !verbose {
depSpinner.Success()
}
return nil
}
func InitializeCrossCompilation(verbose bool) error {
// Check Docker
if err := CheckIfInstalled("docker"); err != nil {
return err
}
var packSpinner *spinner.Spinner
msg := fmt.Sprintf("Pulling wailsapp/xgo:%s docker image... (may take a while)", xgoVersion)
if !verbose {
packSpinner = spinner.New(msg)
packSpinner.SetSpinSpeed(50)
packSpinner.Start()
} else {
println(msg)
}
err := NewProgramHelper(verbose).RunCommandArray([]string{"docker",
"pull", fmt.Sprintf("wailsapp/xgo:%s", xgoVersion)})
if err != nil {
if packSpinner != nil {
packSpinner.Error()
}
return err
}
if packSpinner != nil {
packSpinner.Success()
}
return nil
}
// BuildDocker builds the project using the cross compiling wailsapp/xgo:<xgoVersion> container
func BuildDocker(binaryName string, buildMode string, projectOptions *ProjectOptions) error {
var packSpinner *spinner.Spinner
if buildMode == BuildModeBridge {
return fmt.Errorf("you cant serve the application in cross-compilation")
}
// Check build directory
buildDirectory := filepath.Join(fs.Cwd(), "build")
if !fs.DirExists(buildDirectory) {
err := fs.MkDir(buildDirectory)
if err != nil {
return err
}
}
buildCommand := slicer.String()
userid := 1000
currentUser, _ := user.Current()
if i, err := strconv.Atoi(currentUser.Uid); err == nil {
userid = i
}
for _, arg := range []string{
"docker",
"run",
"--rm",
"-v", fmt.Sprintf("%s:/build", filepath.Join(fs.Cwd(), "build")),
"-v", fmt.Sprintf("%s:/source", fs.Cwd()),
"-e", fmt.Sprintf("LOCAL_USER_ID=%v", userid),
"-e", fmt.Sprintf("FLAG_TAGS=%s", projectOptions.Tags),
"-e", fmt.Sprintf("FLAG_LDFLAGS=%s", ldFlags(projectOptions, buildMode)),
"-e", "FLAG_V=false",
"-e", "FLAG_X=false",
"-e", "FLAG_RACE=false",
"-e", "FLAG_BUILDMODE=default",
"-e", "FLAG_TRIMPATH=false",
"-e", fmt.Sprintf("TARGETS=%s/%s", projectOptions.Platform, projectOptions.Architecture),
"-e", "GOPROXY=",
"-e", "GO111MODULE=on",
} {
buildCommand.Add(arg)
}
if projectOptions.GoPath != "" {
buildCommand.Add("-v")
buildCommand.Add(fmt.Sprintf("%s:/go", projectOptions.GoPath))
}
buildCommand.Add(fmt.Sprintf("wailsapp/xgo:%s", xgoVersion))
buildCommand.Add(".")
compileMessage := fmt.Sprintf(
"Packing + Compiling project for %s/%s using docker image wailsapp/xgo:%s",
projectOptions.Platform, projectOptions.Architecture, xgoVersion)
if buildMode == BuildModeDebug {
compileMessage += " (Debug Mode)"
}
if !projectOptions.Verbose {
packSpinner = spinner.New(compileMessage + "...")
packSpinner.SetSpinSpeed(50)
packSpinner.Start()
} else {
println(compileMessage)
}
err := NewProgramHelper(projectOptions.Verbose).RunCommandArray(buildCommand.AsSlice())
if err != nil {
if packSpinner != nil {
packSpinner.Error()
}
return err
}
if packSpinner != nil {
packSpinner.Success()
}
return nil
}
// BuildNative builds on the target platform itself.
func BuildNative(binaryName string, forceRebuild bool, buildMode string, projectOptions *ProjectOptions) error {
if err := CheckWindres(); err != nil {
return err
}
compileMessage := "Packing + Compiling project"
if buildMode == BuildModeDebug {
compileMessage += " (Debug Mode)"
}
var packSpinner *spinner.Spinner
if !projectOptions.Verbose {
packSpinner = spinner.New(compileMessage + "...")
packSpinner.SetSpinSpeed(50)
packSpinner.Start()
} else {
println(compileMessage)
}
buildCommand := slicer.String()
buildCommand.Add("go")
buildCommand.Add("build")
if binaryName != "" {
// Alter binary name based on OS
switch projectOptions.Platform {
case "windows":
if !strings.HasSuffix(binaryName, ".exe") {
binaryName += ".exe"
}
default:
if strings.HasSuffix(binaryName, ".exe") {
binaryName = strings.TrimSuffix(binaryName, ".exe")
}
}
buildCommand.Add("-o", filepath.Join("build", binaryName))
}
// If we are forcing a rebuild
if forceRebuild {
buildCommand.Add("-a")
}
buildCommand.AddSlice([]string{"-ldflags", ldFlags(projectOptions, buildMode)})
if projectOptions.Tags != "" {
buildCommand.AddSlice([]string{"--tags", projectOptions.Tags})
}
if projectOptions.Verbose {
fmt.Printf("Command: %v\n", buildCommand.AsSlice())
}
err := NewProgramHelper(projectOptions.Verbose).RunCommandArray(buildCommand.AsSlice())
if err != nil {
if packSpinner != nil {
packSpinner.Error()
}
return err
}
if packSpinner != nil {
packSpinner.Success()
}
return nil
}
// BuildApplication will attempt to build the project based on the given inputs
func BuildApplication(binaryName string, forceRebuild bool, buildMode string, packageApp bool, projectOptions *ProjectOptions) error {
var err error
if projectOptions.CrossCompile {
if err := InitializeCrossCompilation(projectOptions.Verbose); err != nil {
return err
}
}
helper := NewPackageHelper(projectOptions.Platform)
// Generate windows resources
if projectOptions.Platform == "windows" {
if err := helper.PackageWindows(projectOptions, false); err != nil {
return err
}
}
if projectOptions.CrossCompile {
err = BuildDocker(binaryName, buildMode, projectOptions)
} else {
err = BuildNative(binaryName, forceRebuild, buildMode, projectOptions)
}
if err != nil {
return err
}
if packageApp {
err = PackageApplication(projectOptions)
if err != nil {
return err
}
}
return nil
}
// PackageApplication will attempt to package the application in a platform dependent way
func PackageApplication(projectOptions *ProjectOptions) error {
var packageSpinner *spinner.Spinner
if projectOptions.Verbose {
packageSpinner = spinner.New("Packaging application...")
packageSpinner.SetSpinSpeed(50)
packageSpinner.Start()
}
err := NewPackageHelper(projectOptions.Platform).Package(projectOptions)
if err != nil {
if packageSpinner != nil {
packageSpinner.Error()
}
return err
}
if packageSpinner != nil {
packageSpinner.Success()
}
return nil
}
// BuildFrontend runs the given build command
func BuildFrontend(projectOptions *ProjectOptions) error {
var buildFESpinner *spinner.Spinner
if !projectOptions.Verbose {
buildFESpinner = spinner.New("Building frontend...")
buildFESpinner.SetSpinSpeed(50)
buildFESpinner.Start()
} else {
println("Building frontend...")
}
err := NewProgramHelper(projectOptions.Verbose).RunCommand(projectOptions.FrontEnd.Build)
if err != nil {
if buildFESpinner != nil {
buildFESpinner.Error()
}
return err
}
if buildFESpinner != nil {
buildFESpinner.Success()
}
return nil
}
// CheckWindres checks if Windres is installed and if not, aborts
func CheckWindres() (err error) {
if runtime.GOOS != "windows" { // FIXME: Handle windows cross-compile for windows!
return nil
}
programHelper := NewProgramHelper()
if !programHelper.IsInstalled("windres") {
return fmt.Errorf("windres not installed. It comes by default with mingw. Ensure you have installed mingw correctly")
}
return nil
}
// CheckIfInstalled returns if application is installed
func CheckIfInstalled(application string) (err error) {
programHelper := NewProgramHelper()
if !programHelper.IsInstalled(application) {
return fmt.Errorf("%s not installed. Ensure you have installed %s correctly", application, application)
}
return nil
}
// InstallFrontendDeps attempts to install the frontend dependencies based on the given options
func InstallFrontendDeps(projectDir string, projectOptions *ProjectOptions, forceRebuild bool, caller string) error {
// Install frontend deps
err := os.Chdir(projectOptions.FrontEnd.Dir)
if err != nil {
return err
}
// Check if frontend deps have been updated
var feSpinner *spinner.Spinner
if !projectOptions.Verbose {
feSpinner = spinner.New("Ensuring frontend dependencies are up to date (This may take a while)")
feSpinner.SetSpinSpeed(50)
feSpinner.Start()
} else {
println("Ensuring frontend dependencies are up to date (This may take a while)")
}
requiresNPMInstall := true
// Read in package.json MD5
fs := NewFSHelper()
packageJSONMD5, err := fs.FileMD5("package.json")
if err != nil {
return err
}
const md5sumFile = "package.json.md5"
// If node_modules does not exist, force a rebuild.
nodeModulesPath, err := filepath.Abs(filepath.Join(".", "node_modules"))
if err != nil {
return err
}
if !fs.DirExists(nodeModulesPath) {
forceRebuild = true
}
// If we aren't forcing the install and the md5sum file exists
if !forceRebuild && fs.FileExists(md5sumFile) {
// Yes - read contents
savedMD5sum, err := fs.LoadAsString(md5sumFile)
// File exists
if err == nil {
// Compare md5
if savedMD5sum == packageJSONMD5 {
// Same - no need for reinstall
requiresNPMInstall = false
if feSpinner != nil {
feSpinner.Success("Skipped frontend dependencies (-f to force rebuild)")
} else {
println("Skipped frontend dependencies (-f to force rebuild)")
}
}
}
}
// Md5 sum package.json
// Different? Build
if requiresNPMInstall || forceRebuild {
// Install dependencies
err = NewProgramHelper(projectOptions.Verbose).RunCommand(projectOptions.FrontEnd.Install)
if err != nil {
if feSpinner != nil {
feSpinner.Error()
}
return err
}
if feSpinner != nil {
feSpinner.Success()
}
// Update md5sum file
err := os.WriteFile(md5sumFile, []byte(packageJSONMD5), 0644)
if err != nil {
return err
}
}
// Install the runtime
if caller == "build" {
err = InstallProdRuntime(projectDir, projectOptions)
} else {
err = InstallBridge(projectDir, projectOptions)
}
if err != nil {
return err
}
// Build frontend
err = BuildFrontend(projectOptions)
if err != nil {
return err
}
return nil
}
// InstallBridge installs the relevant bridge javascript library
func InstallBridge(projectDir string, projectOptions *ProjectOptions) error {
bridgeFileTarget := filepath.Join(projectDir, projectOptions.FrontEnd.Dir, "node_modules", "@wailsapp", "runtime", "init.js")
err := fs.CreateFile(bridgeFileTarget, wailsruntime.BridgeJS)
return err
}
// InstallProdRuntime installs the production runtime
func InstallProdRuntime(projectDir string, projectOptions *ProjectOptions) error {
bridgeFileTarget := filepath.Join(projectDir, projectOptions.FrontEnd.Dir, "node_modules", "@wailsapp", "runtime", "init.js")
err := fs.CreateFile(bridgeFileTarget, wailsruntime.InitJS)
return err
}
// ServeProject attempts to serve up the current project so that it may be connected to
// via the Wails bridge
func ServeProject(projectOptions *ProjectOptions, logger *Logger) error {
go func() {
time.Sleep(2 * time.Second)
if projectOptions.Platform == "windows" {
logger.Yellow("*** Please note: Windows builds use mshtml which is only compatible with IE11. We strongly recommend only using IE11 when running 'wails serve'! For more information, please read https://wails.app/guides/windows/ ***")
}
logger.Green(">>>>> To connect, you will need to run '" + projectOptions.FrontEnd.Serve + "' in the '" + projectOptions.FrontEnd.Dir + "' directory <<<<<")
}()
location, err := filepath.Abs(filepath.Join("build", projectOptions.BinaryName))
if err != nil {
return err
}
logger.Yellow("Serving Application: " + location)
var args []string
if len(os.Args) > 2 {
foundArgSep := false
for index, arg := range os.Args[2:] {
if arg == "--" {
foundArgSep = true
continue
}
if foundArgSep {
args = os.Args[index:]
break
}
}
logger.Yellow("Passing arguments: %+v", args)
}
cmd := exec.Command(location, args...)
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
err = cmd.Run()
if err != nil {
return err
}
return nil
}
func ldFlags(po *ProjectOptions, buildMode string) string {
// Setup ld flags
ldflags := "-w -s "
if buildMode == BuildModeDebug {
ldflags = ""
}
// Add windows flags
if po.Platform == "windows" && buildMode == BuildModeProd {
ldflags += "-H windowsgui "
}
if po.UseFirebug {
ldflags += "-X github.com/wailsapp/wails/lib/renderer.UseFirebug=true "
}
ldflags += "-X github.com/wailsapp/wails.BuildMode=" + buildMode
// Add additional ldflags passed in via the `ldflags` cli flag
if len(po.LdFlags) > 0 {
ldflags += " " + po.LdFlags
}
// If we wish to generate typescript
if po.typescriptDefsFilename != "" {
cwd, err := os.Getwd()
if err == nil {
filename := filepath.Join(cwd, po.FrontEnd.Dir, po.typescriptDefsFilename)
ldflags += " -X github.com/wailsapp/wails/lib/binding.typescriptDefinitionFilename=" + filename
}
}
return ldflags
}
func getGitConfigValue(key string) (string, error) {
output, err := exec.Command("git", "config", "--get", "--null", key).Output()
// When using --null git appends a null character (\u0000) to the command output
return strings.TrimRight(string(output), "\u0000"), err
}

View file

@ -1,343 +0,0 @@
package cmd
import (
"fmt"
"net/url"
"os"
"runtime"
"strings"
"github.com/pkg/browser"
)
// LinuxDistribution is of type int
type LinuxDistribution int
const (
// Unknown is the catch-all distro
Unknown LinuxDistribution = iota
// Debian distribution
Debian
// Ubuntu distribution
Ubuntu
// Arch linux distribution
Arch
// CentOS linux distribution
CentOS
// Fedora linux distribution
Fedora
// Gentoo distribution
Gentoo
// Zorin distribution
Zorin
// Parrot distribution
Parrot
// Linuxmint distribution
Linuxmint
// VoidLinux distribution
VoidLinux
// Elementary distribution
Elementary
// Kali distribution
Kali
// Neon distribution
Neon
// ArcoLinux distribution
ArcoLinux
// Manjaro distribution
Manjaro
// ManjaroARM distribution
ManjaroARM
// Deepin distribution
Deepin
// Raspbian distribution
Raspbian
// Tumbleweed (OpenSUSE) distribution
Tumbleweed
// Leap (OpenSUSE) distribution
Leap
// ArchLabs distribution
ArchLabs
// PopOS distribution
PopOS
// Solus distribution
Solus
// Ctlos Linux distribution
Ctlos
// EndeavourOS linux distribution
EndeavourOS
// Crux linux distribution
Crux
// RHEL distribution
RHEL
// NixOS distribution
NixOS
// Artix linux distribution
ArtixLinux
//Uos distribution
Uos
)
// DistroInfo contains all the information relating to a linux distribution
type DistroInfo struct {
Distribution LinuxDistribution
Name string
ID string
Description string
Release string
}
// GetLinuxDistroInfo returns information about the running linux distribution
func GetLinuxDistroInfo() *DistroInfo {
result := &DistroInfo{
Distribution: Unknown,
ID: "unknown",
Name: "Unknown",
}
_, err := os.Stat("/etc/os-release")
if !os.IsNotExist(err) {
osRelease, _ := os.ReadFile("/etc/os-release")
result = parseOsRelease(string(osRelease))
}
return result
}
// parseOsRelease parses the given os-release data and returns
// a DistroInfo struct with the details
func parseOsRelease(osRelease string) *DistroInfo {
result := &DistroInfo{Distribution: Unknown}
// Default value
osID := "unknown"
osNAME := "Unknown"
version := ""
// Split into lines
lines := strings.Split(osRelease, "\n")
// Iterate lines
for _, line := range lines {
// Split each line by the equals char
splitLine := strings.SplitN(line, "=", 2)
// Check we have
if len(splitLine) != 2 {
continue
}
switch splitLine[0] {
case "ID":
osID = strings.ToLower(strings.Trim(splitLine[1], "\""))
case "NAME":
osNAME = strings.Trim(splitLine[1], "\"")
case "VERSION_ID":
version = strings.Trim(splitLine[1], "\"")
}
}
// Check distro name against list of distros
switch osID {
case "fedora":
result.Distribution = Fedora
case "centos":
result.Distribution = CentOS
case "rhel":
result.Distribution = RHEL
case "arch":
result.Distribution = Arch
case "archlabs":
result.Distribution = ArchLabs
case "ctlos":
result.Distribution = Ctlos
case "debian":
result.Distribution = Debian
case "ubuntu":
result.Distribution = Ubuntu
case "gentoo":
result.Distribution = Gentoo
case "zorin":
result.Distribution = Zorin
case "parrot":
result.Distribution = Parrot
case "linuxmint":
result.Distribution = Linuxmint
case "void":
result.Distribution = VoidLinux
case "elementary":
result.Distribution = Elementary
case "kali":
result.Distribution = Kali
case "neon":
result.Distribution = Neon
case "arcolinux":
result.Distribution = ArcoLinux
case "manjaro":
result.Distribution = Manjaro
case "manjaro-arm":
result.Distribution = ManjaroARM
case "deepin":
result.Distribution = Deepin
case "raspbian":
result.Distribution = Raspbian
case "opensuse-tumbleweed":
result.Distribution = Tumbleweed
case "opensuse-leap":
result.Distribution = Leap
case "pop":
result.Distribution = PopOS
case "solus":
result.Distribution = Solus
case "endeavouros":
result.Distribution = EndeavourOS
case "crux":
result.Distribution = Crux
case "nixos":
result.Distribution = NixOS
case "artix":
result.Distribution = ArtixLinux
case "uos":
result.Distribution = Uos
default:
result.Distribution = Unknown
}
result.Name = osNAME
result.ID = osID
result.Release = version
return result
}
// CheckPkgInstalled is all functions that use local programs to see if a package is installed
type CheckPkgInstalled func(string) (bool, error)
// EqueryInstalled uses equery to see if a package is installed
func EqueryInstalled(packageName string) (bool, error) {
program := NewProgramHelper()
equery := program.FindProgram("equery")
if equery == nil {
return false, fmt.Errorf("cannont check dependencies: equery not found")
}
_, _, exitCode, _ := equery.Run("l", packageName)
return exitCode == 0, nil
}
// DpkgInstalled uses dpkg to see if a package is installed
func DpkgInstalled(packageName string) (bool, error) {
program := NewProgramHelper()
dpkg := program.FindProgram("dpkg")
if dpkg == nil {
return false, fmt.Errorf("cannot check dependencies: dpkg not found")
}
_, _, exitCode, _ := dpkg.Run("-L", packageName)
return exitCode == 0, nil
}
// EOpkgInstalled uses dpkg to see if a package is installed
func EOpkgInstalled(packageName string) (bool, error) {
program := NewProgramHelper()
eopkg := program.FindProgram("eopkg")
if eopkg == nil {
return false, fmt.Errorf("cannot check dependencies: eopkg not found")
}
stdout, _, _, _ := eopkg.Run("info", packageName)
return strings.HasPrefix(stdout, "Installed"), nil
}
// PacmanInstalled uses pacman to see if a package is installed.
func PacmanInstalled(packageName string) (bool, error) {
program := NewProgramHelper()
pacman := program.FindProgram("pacman")
if pacman == nil {
return false, fmt.Errorf("cannot check dependencies: pacman not found")
}
_, _, exitCode, _ := pacman.Run("-Qs", packageName)
return exitCode == 0, nil
}
// XbpsInstalled uses pacman to see if a package is installed.
func XbpsInstalled(packageName string) (bool, error) {
program := NewProgramHelper()
xbpsQuery := program.FindProgram("xbps-query")
if xbpsQuery == nil {
return false, fmt.Errorf("cannot check dependencies: xbps-query not found")
}
_, _, exitCode, _ := xbpsQuery.Run("-S", packageName)
return exitCode == 0, nil
}
// RpmInstalled uses rpm to see if a package is installed
func RpmInstalled(packageName string) (bool, error) {
program := NewProgramHelper()
rpm := program.FindProgram("rpm")
if rpm == nil {
return false, fmt.Errorf("cannot check dependencies: rpm not found")
}
_, _, exitCode, _ := rpm.Run("--query", packageName)
return exitCode == 0, nil
}
// PrtGetInstalled uses prt-get to see if a package is installed
func PrtGetInstalled(packageName string) (bool, error) {
program := NewProgramHelper()
prtget := program.FindProgram("prt-get")
if prtget == nil {
return false, fmt.Errorf("cannot check dependencies: prt-get not found")
}
_, _, exitCode, _ := prtget.Run("isinst", packageName)
return exitCode == 0, nil
}
// NixEnvInstalled uses nix-env to see if a package is installed
func NixEnvInstalled(packageName string) (bool, error) {
program := NewProgramHelper()
nixEnv := program.FindProgram("nix-env")
if nixEnv == nil {
return false, fmt.Errorf("cannot check dependencies: nix-env not found")
}
packageName = strings.ReplaceAll(packageName, "+", `\+`)
_, _, exitCode, _ := nixEnv.Run("-q", packageName)
return exitCode == 0, nil
}
// RequestSupportForDistribution promts the user to submit a request to support their
// currently unsupported distribution
func RequestSupportForDistribution(distroInfo *DistroInfo) error {
var logger = NewLogger()
defaultError := fmt.Errorf("unable to check libraries on distribution '%s'", distroInfo.Name)
logger.Yellow("Distribution '%s' is not currently supported, but we would love to!", distroInfo.Name)
q := fmt.Sprintf("Would you like to submit a request to support distribution '%s'?", distroInfo.Name)
result := Prompt(q, "yes")
if strings.ToLower(result) != "yes" {
return defaultError
}
title := fmt.Sprintf("Support Distribution '%s'", distroInfo.Name)
var str strings.Builder
gomodule, exists := os.LookupEnv("GO111MODULE")
if !exists {
gomodule = "(Not Set)"
}
str.WriteString("\n| Name | Value |\n| ----- | ----- |\n")
str.WriteString(fmt.Sprintf("| Wails Version | %s |\n", Version))
str.WriteString(fmt.Sprintf("| Go Version | %s |\n", runtime.Version()))
str.WriteString(fmt.Sprintf("| Platform | %s |\n", runtime.GOOS))
str.WriteString(fmt.Sprintf("| Arch | %s |\n", runtime.GOARCH))
str.WriteString(fmt.Sprintf("| GO111MODULE | %s |\n", gomodule))
str.WriteString(fmt.Sprintf("| Distribution ID | %s |\n", distroInfo.ID))
str.WriteString(fmt.Sprintf("| Distribution Name | %s |\n", distroInfo.Name))
str.WriteString(fmt.Sprintf("| Distribution Version | %s |\n", distroInfo.Release))
body := fmt.Sprintf("**Description**\nDistribution '%s' is currently unsupported.\n\n**Further Information**\n\n%s\n\n*Please add any extra information here, EG: libraries that are needed to make the distribution work, or commands to install them*", distroInfo.ID, str.String())
fullURL := "https://github.com/wailsapp/wails/issues/new?"
params := "title=" + title + "&body=" + body
fmt.Println("Opening browser to file request.")
browser.OpenURL(fullURL + url.PathEscape(params))
result = Prompt("We have a guide for adding support for your distribution. Would you like to view it?", "yes")
if strings.ToLower(result) == "yes" {
browser.OpenURL("https://wails.app/guides/distro/")
}
return nil
}

View file

@ -1,46 +0,0 @@
package cmd
import "testing"
func TestUbuntuDetection(t *testing.T) {
osrelease := `
NAME="Ubuntu"
VERSION="18.04.2 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.2 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic
`
result := parseOsRelease(osrelease)
if result.Distribution != Ubuntu {
t.Errorf("expected 'Ubuntu' ID but got '%d'", result.Distribution)
}
}
func TestTumbleweedDetection(t *testing.T) {
osrelease := `
NAME="openSUSE Tumbleweed"
# VERSION="20200414"
ID="opensuse-tumbleweed"
ID_LIKE="opensuse suse"
VERSION_ID="20200414"
PRETTY_NAME="openSUSE Tumbleweed"
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:opensuse:tumbleweed:20200414"
BUG_REPORT_URL="https://bugs.opensuse.org"
HOME_URL="https://www.opensuse.org/"
LOGO="distributor-logo"
`
result := parseOsRelease(osrelease)
if result.Distribution != Tumbleweed {
t.Errorf("expected 'Tumbleweed' ID but got '%d'", result.Distribution)
}
}

View file

@ -1,93 +0,0 @@
package cmd
import (
_ "embed"
"log"
"gopkg.in/yaml.v3"
)
//go:embed linuxdb.yaml
var LinuxDBYaml []byte
// LinuxDB is the database for linux distribution data.
type LinuxDB struct {
Distributions map[string]*Distribution `yaml:"distributions"`
}
// Distribution holds the os-release ID and a map of releases.
type Distribution struct {
ID string `yaml:"id"`
Releases map[string]*Release `yaml:"releases"`
}
// GetRelease attempts to return the specific Release information
// for the given release name. If there is no specific match, the
// default release data is returned.
func (d *Distribution) GetRelease(version string) *Release {
result := d.Releases[version]
if result == nil {
result = d.Releases["default"]
}
return result
}
// Release holds the name and version of the release as given by
// os-release. Programs is a slice of dependant programs required
// to be present on the local installation for Wails to function.
// Libraries is a slice of libraries that must be present for Wails
// applications to compile.
type Release struct {
Name string `yaml:"name"`
Version string `yaml:"version"`
GccVersionCommand string `yaml:"gccversioncommand"`
Programs []*Prerequisite `yaml:"programs"`
Libraries []*Prerequisite `yaml:"libraries"`
}
// Prerequisite is a simple struct containing a program/library name
// plus the distribution specific help text indicating how to install
// it.
type Prerequisite struct {
Name string `yaml:"name"`
Help string `yaml:"help,omitempty"`
}
// Load will load the given filename from disk and attempt to
// import the data into the LinuxDB.
func (l *LinuxDB) Load(filename string) error {
if fs.FileExists(filename) {
data, err := fs.LoadAsBytes(filename)
if err != nil {
return err
}
return l.ImportData(data)
}
return nil
}
// ImportData will unmarshal the given YAML formatted data
// into the LinuxDB
func (l *LinuxDB) ImportData(data []byte) error {
return yaml.Unmarshal(data, l)
}
// GetDistro returns the Distribution information for the
// given distribution name. If the distribution is not supported,
// nil is returned.
func (l *LinuxDB) GetDistro(distro string) *Distribution {
return l.Distributions[distro]
}
// NewLinuxDB creates a new LinuxDB instance from the bundled
// linuxdb.yaml file.
func NewLinuxDB() *LinuxDB {
result := LinuxDB{
Distributions: make(map[string]*Distribution),
}
err := result.ImportData(LinuxDBYaml)
if err != nil {
log.Fatal(err)
}
return &result
}

View file

@ -1,384 +0,0 @@
---
distributions:
debian:
id: debian
releases:
default:
name: Debian
version: default
gccversioncommand: &gccdumpversion -dumpversion
programs: &debiandefaultprograms
- name: gcc
help: Please install with `sudo apt-get install build-essential` and try again
- name: pkg-config
help: Please install with `sudo apt-get install pkg-config` and try again
- name: npm
help: Please install with `curl -sL https://deb.nodesource.com/setup_12.x | sudo bash - && sudo apt-get install -y nodejs` and try again
libraries: &debiandefaultlibraries
- name: libgtk-3-dev
help: Please install with `sudo apt-get install libgtk-3-dev` and try again
- name: libwebkit2gtk-4.0-dev
help: Please install with `sudo apt-get install libwebkit2gtk-4.0-dev` and try again
ubuntu:
id: ubuntu
releases:
default:
version: default
name: Ubuntu
gccversioncommand: &gccdumpfullversion -dumpfullversion
programs: *debiandefaultprograms
libraries: *debiandefaultlibraries
pop:
id: pop
releases:
default:
version: default
name: Pop!_OS
gccversioncommand: &gccdumpfullversion -dumpfullversion
programs: *debiandefaultprograms
libraries: *debiandefaultlibraries
kali:
id: kali
releases:
default:
version: default
name: Kali GNU/Linux
gccversioncommand: *gccdumpfullversion
programs: *debiandefaultprograms
libraries: *debiandefaultlibraries
parrot:
id: parrot
releases:
default:
version: default
name: Parrot GNU/Linux
gccversioncommand: *gccdumpversion
programs: *debiandefaultprograms
libraries: *debiandefaultlibraries
zorin:
id: zorin
releases:
default:
version: default
name: Zorin
gccversioncommand: *gccdumpversion
programs: *debiandefaultprograms
libraries: *debiandefaultlibraries
linuxmint:
id: linuxmint
releases:
default:
version: default
name: Linux Mint
gccversioncommand: *gccdumpversion
programs: *debiandefaultprograms
libraries: *debiandefaultlibraries
elementary:
id: elementary
releases:
default:
version: default
name: elementary OS
gccversioncommand: *gccdumpfullversion
programs: *debiandefaultprograms
libraries: *debiandefaultlibraries
neon:
id: neon
releases:
default:
version: default
name: KDE neon
gccversioncommand: *gccdumpfullversion
programs: *debiandefaultprograms
libraries: *debiandefaultlibraries
deepin:
id: deepin
releases:
default:
version: default
name: Deepin
gccversioncommand: *gccdumpfullversion
programs: *debiandefaultprograms
libraries: *debiandefaultlibraries
uos:
id: uos
releases:
default:
version: default
name: Uos
gccversioncommand: *gccdumpfullversion
programs: *debiandefaultprograms
libraries: *debiandefaultlibraries
void:
id: void
releases:
default:
version: default
name: VoidLinux
gccversioncommand: *gccdumpversion
programs:
- name: gcc
help: Please install with `xbps-install base-devel` and try again
- name: pkg-config
help: Please install with `xbps-install pkg-config` and try again
- name: npm
help: Please install with `xbps-install nodejs` and try again
libraries:
- name: gtk+3-devel
help: Please install with `xbps-install gtk+3-devel` and try again
- name: webkit2gtk-devel
help: Please install with `xbps-install webkit2gtk-devel` and try again
centos:
id: centos
releases:
default:
version: default
name: CentOS Linux
gccversioncommand: *gccdumpversion
programs:
- name: gcc
help: Please install with `sudo yum install gcc-c++ make` and try again
- name: pkg-config
help: Please install with `sudo yum install pkgconf-pkg-config` and try again
- name: npm
help: Please install with `sudo yum install epel-release && sudo yum install nodejs` and try again
libraries:
- name: gtk3-devel
help: Please install with `sudo yum install gtk3-devel` and try again
- name: webkitgtk3-devel
help: Please install with `sudo yum install webkitgtk3-devel` and try again
rhel:
id: rhel
releases:
default:
version: default
name: Red Hat Enterprise Linux
gccversioncommand: *gccdumpversion
programs:
- name: gcc
help: Please install with `sudo yum install gcc-c++ make` and try again
- name: pkg-config
help: Please install with `sudo yum install pkgconf-pkg-config` and try again
- name: npm
help: Please install with `sudo yum install epel-release && sudo yum install nodejs` and try again
libraries:
- name: gtk3-devel
help: Please install with `sudo yum install gtk3-devel` and try again
- name: webkitgtk3-devel
help: Please install with `sudo yum install webkitgtk3-devel` and try again
fedora:
id: fedora
releases:
default:
version: default
name: Fedora
gccversioncommand: *gccdumpfullversion
programs:
- name: gcc
help: Please install with `sudo yum install gcc-c++ make` and try again
- name: pkg-config
help: Please install with `sudo yum install pkgconf-pkg-config` and try again
- name: npm
help: Please install `sudo yum install nodejs` and try again
libraries:
- name: gtk3-devel
help: Please install with `sudo yum install gtk3-devel` and try again
- name: webkit2gtk3-devel
help: Please install with `sudo yum install webkit2gtk3-devel` and try again
arch:
id: arch
releases:
default:
version: default
name: Arch Linux
gccversioncommand: *gccdumpversion
programs: &archdefaultprograms
- name: gcc
help: Please install with `sudo pacman -S gcc` and try again
- name: pkgconf
help: Please install with `sudo pacman -S pkgconf` and try again
- name: npm
help: Please install with `sudo pacman -S npm` and try again
libraries: &archdefaultlibraries
- name: gtk3
help: Please install with `sudo pacman -S gtk3` and try again
- name: webkit2gtk
help: Please install with `sudo pacman -S webkit2gtk` and try again
arcolinux:
id: arcolinux
releases:
default:
version: default
name: ArcoLinux
gccversioncommand: *gccdumpversion
programs: *archdefaultprograms
libraries: *archdefaultlibraries
archlabs:
id: archlabs
releases:
default:
version: default
name: ArchLabs
gccversioncommand: *gccdumpversion
programs: *archdefaultprograms
libraries: *archdefaultlibraries
artix:
id: artix
releases:
default:
version: default
name: Artix Linux
gccversioncommand: *gccdumpversion
programs: *archdefaultprograms
libraries: *archdefaultlibraries
ctlos:
id: ctlos
releases:
default:
version: default
name: Ctlos Linux
gccversioncommand: *gccdumpversion
programs: *archdefaultprograms
libraries: *archdefaultlibraries
endeavouros:
id: endeavouros
releases:
default:
version: default
name: EndeavourOS
gccversioncommand: *gccdumpversion
programs: *archdefaultprograms
libraries: *archdefaultlibraries
manjaro:
id: manjaro
releases:
default:
version: default
name: Manjaro Linux
gccversioncommand: *gccdumpversion
programs: *archdefaultprograms
libraries: *archdefaultlibraries
manjaro-arm:
id: manjaro-arm
releases:
default:
version: default
name: Manjaro-ARM
gccversioncommand: *gccdumpversion
programs: *archdefaultprograms
libraries: *archdefaultlibraries
gentoo:
id: gentoo
releases:
default:
version: default
name: Gentoo
gccversioncommand: *gccdumpversion
programs:
- name: gcc
help: Please install using your system's package manager
- name: pkg-config
help: Please install using your system's package manager
- name: npm
help: Please install using your system's package manager
libraries:
- name: gtk+:3
help: Please install with `sudo emerge gtk+:3` and try again
- name: webkit-gtk
help: Please install with `sudo emerge webkit-gtk` and try again
raspbian:
id: raspbian
releases:
default:
version: default
name: Raspbian
gccversioncommand: *gccdumpfullversion
programs: *debiandefaultprograms
libraries: *debiandefaultlibraries
solus:
id: solus
releases:
default:
version: default
name: Solus
gccversioncommand: *gccdumpfullversion
programs: &solusdefaultprograms
- name: gcc
help: Please install with `sudo eopkg it -c system.devel` and try again
- name: pkg-config
help: Please install with `sudo eopkg it -c system.devel` and try again
- name: npm
help: Please install with `sudo eopkg it nodejs` and try again
libraries: &solusdefaultlibraries
- name: libgtk-3-devel
help: Please install with `sudo eopkg it libgtk-3-devel` and try again
- name: libwebkit-gtk-devel
help: Please install with `sudo eopkg it libwebkit-gtk-devel` and try again
opensuse-tumbleweed:
id: opensuse-tumbleweed
releases:
default:
version: default
name: openSUSE Tumbleweed
gccversioncommand: *gccdumpfullversion
programs: &opensusedefaultprograms
- name: gcc
help: Please install with `sudo zypper in gcc-c++` and try again
- name: pkg-config
help: Please install with `sudo zypper in pkgconf-pkg-config` and try again
- name: npm
help: Please install `sudo zypper in nodejs` and try again
libraries: &opensusedefaultlibraries
- name: gtk3-devel
help: Please install with `sudo zypper in gtk3-devel` and try again
- name: webkit2gtk3-devel
help: Please install with `sudo zypper in webkit2gtk3-devel` and try again
opensuse-leap:
id: opensuse-leap
releases:
default:
version: default
name: openSUSE Leap
gccversioncommand: *gccdumpfullversion
programs: *opensusedefaultprograms
libraries: *opensusedefaultlibraries
crux:
id: crux
releases:
default:
version: default
name: Crux Linux
gccversioncommand: *gccdumpversion
programs:
- name: gcc
help: Please install with `sudo prt-get depinst gcc-c++ make` and try again
- name: pkg-config
help: Please install with `sudo prt-get depinst pkg-config` and try again
- name: npm
help: Please install with `sudo prt-get depinst nodejs` and try again
libraries:
- name: gtk3
help: Please install with `sudo prt-get depinst gtk3` and try again
- name: webkitgtk
help: Please install with `sudo prt-get depinst webkitgtk` and try again
nixos:
id: nixos
releases:
default:
version: default
name: NixOS
gccversioncommand: *gccdumpversion
programs:
- name: gcc
help: Please install with `nix-env -iA nixos.gcc`
- name: pkg-config
help: Please install with `nix-env -iA nixos.pkg-config`
- name: npm
help: Please install with `nix-env -iA nixos.nodejs`
libraries:
- name: gtk+3
help: Please install with `nix-env -iA nixos.gtk3`
- name: webkitgtk
help: Please install with `nix-env -iA nixos.nodePackages.webkitgtk`

View file

@ -1,81 +0,0 @@
package cmd
import "testing"
func TestNewLinuxDB(t *testing.T) {
_ = NewLinuxDB()
}
func TestKnownDistro(t *testing.T) {
var linuxDB = NewLinuxDB()
result := linuxDB.GetDistro("ubuntu")
if result == nil {
t.Error("Cannot get distro 'ubuntu'")
}
}
func TestUnknownDistro(t *testing.T) {
var linuxDB = NewLinuxDB()
result := linuxDB.GetDistro("unknown")
if result != nil {
t.Error("Should get nil for distribution 'unknown'")
}
}
func TestDefaultRelease(t *testing.T) {
var linuxDB = NewLinuxDB()
result := linuxDB.GetDistro("ubuntu")
if result == nil {
t.Error("Cannot get distro 'ubuntu'")
}
release := result.GetRelease("default")
if release == nil {
t.Error("Cannot get release 'default' for distro 'ubuntu'")
}
}
func TestUnknownRelease(t *testing.T) {
var linuxDB = NewLinuxDB()
result := linuxDB.GetDistro("ubuntu")
if result == nil {
t.Error("Cannot get distro 'ubuntu'")
}
release := result.GetRelease("16.04")
if release == nil {
t.Error("Failed to get release 'default' for unknown release version '16.04'")
}
if release.Version != "default" {
t.Errorf("Got version '%s' instead of 'default' for unknown release version '16.04'", result.ID)
}
}
func TestGetPrerequisites(t *testing.T) {
var linuxDB = NewLinuxDB()
result := linuxDB.GetDistro("debian")
if result == nil {
t.Error("Cannot get distro 'debian'")
}
release := result.GetRelease("default")
if release == nil {
t.Error("Failed to get release 'default' for unknown release version '16.04'")
}
if release.Version != "default" {
t.Errorf("Got version '%s' instead of 'default' for unknown release version '16.04'", result.ID)
}
if release.Name != "Debian" {
t.Errorf("Got Release Name '%s' instead of 'debian' for unknown release version '16.04'", release.Name)
}
if len(release.Programs) != 3 {
t.Errorf("Expected %d programs for unknown release version '16.04'", len(release.Programs))
}
if len(release.Libraries) != 2 {
t.Errorf("Expected %d libraries for unknown release version '16.04'", len(release.Libraries))
}
}

View file

@ -1,130 +0,0 @@
package cmd
import (
"fmt"
"strings"
"github.com/fatih/color"
)
// Logger struct
type Logger struct {
errorOnly bool
}
// NewLogger creates a new logger!
func NewLogger() *Logger {
return &Logger{errorOnly: false}
}
// SetErrorOnly ensures that only errors are logged out
func (l *Logger) SetErrorOnly(errorOnly bool) {
l.errorOnly = errorOnly
}
// Yellow - Outputs yellow text
func (l *Logger) Yellow(format string, a ...interface{}) {
if l.errorOnly {
return
}
color.New(color.FgHiYellow).PrintfFunc()(format+"\n", a...)
}
// Yellowf - Outputs yellow text without the newline
func (l *Logger) Yellowf(format string, a ...interface{}) {
if l.errorOnly {
return
}
color.New(color.FgHiYellow).PrintfFunc()(format, a...)
}
// Green - Outputs Green text
func (l *Logger) Green(format string, a ...interface{}) {
if l.errorOnly {
return
}
color.New(color.FgHiGreen).PrintfFunc()(format+"\n", a...)
}
// White - Outputs White text
func (l *Logger) White(format string, a ...interface{}) {
if l.errorOnly {
return
}
color.New(color.FgHiWhite).PrintfFunc()(format+"\n", a...)
}
// WhiteUnderline - Outputs White text with underline
func (l *Logger) WhiteUnderline(format string, a ...interface{}) {
if l.errorOnly {
return
}
l.White(format, a...)
l.White(l.underline(format))
}
// YellowUnderline - Outputs Yellow text with underline
func (l *Logger) YellowUnderline(format string, a ...interface{}) {
if l.errorOnly {
return
}
l.Yellow(format, a...)
l.Yellow(l.underline(format))
}
// underline returns a string of a line, the length of the message given to it
func (l *Logger) underline(message string) string {
if l.errorOnly {
return ""
}
return strings.Repeat("-", len(message))
}
// Red - Outputs Red text
func (l *Logger) Red(format string, a ...interface{}) {
if l.errorOnly {
return
}
color.New(color.FgHiRed).PrintfFunc()(format+"\n", a...)
}
// Error - Outputs an Error message
func (l *Logger) Error(format string, a ...interface{}) {
color.New(color.FgHiRed).PrintfFunc()("Error: "+format+"\n", a...)
}
// PrintSmallBanner prints a condensed banner
func (l *Logger) PrintSmallBanner(message ...string) {
yellow := color.New(color.FgYellow).SprintFunc()
red := color.New(color.FgRed).SprintFunc()
msg := ""
if len(message) > 0 {
msg = " - " + message[0]
}
fmt.Printf("%s %s%s\n", yellow("Wails"), red(Version), msg)
}
// PrintBanner prints the Wails banner before running commands
func (l *Logger) PrintBanner() error {
banner1 := ` _ __ _ __
| | / /___ _(_) /____
| | /| / / __ ` + "`" + `/ / / ___/
| |/ |/ / /_/ / / (__ ) `
banner2 := `|__/|__/\__,_/_/_/____/ `
l.Yellowf(banner1)
l.Red(Version)
l.Yellowf(banner2)
l.Green("https://wails.app")
l.White("The lightweight framework for web-like apps")
fmt.Println()
return nil
}

View file

@ -1,427 +0,0 @@
package cmd
import (
"bufio"
"bytes"
"encoding/binary"
"fmt"
"image"
"image/png"
"os"
"path"
"path/filepath"
"runtime"
"strings"
"text/template"
"time"
"github.com/jackmordaunt/icns"
"golang.org/x/image/draw"
)
// PackageHelper helps with the 'wails package' command
type PackageHelper struct {
platform string
fs *FSHelper
log *Logger
system *SystemHelper
}
// NewPackageHelper creates a new PackageHelper!
func NewPackageHelper(platform string) *PackageHelper {
return &PackageHelper{
platform: platform,
fs: NewFSHelper(),
log: NewLogger(),
system: NewSystemHelper(),
}
}
type plistData struct {
Title string
Exe string
PackageID string
Version string
Author string
Date string
}
func newPlistData(title, exe, packageID, version, author string) *plistData {
now := time.Now().Format(time.RFC822)
return &plistData{
Title: title,
Exe: exe,
Version: version,
PackageID: packageID,
Author: author,
Date: now,
}
}
type windowsIcoHeader struct {
_ uint16
imageType uint16
imageCount uint16
}
type windowsIcoDescriptor struct {
width uint8
height uint8
colours uint8
_ uint8
planes uint16
bpp uint16
size uint32
offset uint32
}
type windowsIcoContainer struct {
Header windowsIcoDescriptor
Data []byte
}
func generateWindowsIcon(pngFilename string, iconfile string) error {
sizes := []int{256, 128, 64, 48, 32, 16}
pngfile, err := os.Open(pngFilename)
if err != nil {
return err
}
defer pngfile.Close()
pngdata, err := png.Decode(pngfile)
if err != nil {
return err
}
icons := []windowsIcoContainer{}
for _, size := range sizes {
rect := image.Rect(0, 0, int(size), int(size))
rawdata := image.NewRGBA(rect)
scale := draw.CatmullRom
scale.Scale(rawdata, rect, pngdata, pngdata.Bounds(), draw.Over, nil)
icondata := new(bytes.Buffer)
writer := bufio.NewWriter(icondata)
err = png.Encode(writer, rawdata)
if err != nil {
return err
}
writer.Flush()
imgSize := size
if imgSize >= 256 {
imgSize = 0
}
data := icondata.Bytes()
icn := windowsIcoContainer{
Header: windowsIcoDescriptor{
width: uint8(imgSize),
height: uint8(imgSize),
planes: 1,
bpp: 32,
size: uint32(len(data)),
},
Data: data,
}
icons = append(icons, icn)
}
outfile, err := os.Create(iconfile)
if err != nil {
return err
}
defer outfile.Close()
ico := windowsIcoHeader{
imageType: 1,
imageCount: uint16(len(sizes)),
}
err = binary.Write(outfile, binary.LittleEndian, ico)
if err != nil {
return err
}
offset := uint32(6 + 16*len(sizes))
for _, icon := range icons {
icon.Header.offset = offset
err = binary.Write(outfile, binary.LittleEndian, icon.Header)
if err != nil {
return err
}
offset += icon.Header.size
}
for _, icon := range icons {
_, err = outfile.Write(icon.Data)
if err != nil {
return err
}
}
return nil
}
func defaultString(val string, defaultVal string) string {
if val != "" {
return val
}
return defaultVal
}
func (b *PackageHelper) getPackageFileBaseDir() string {
// Calculate template base dir
_, filename, _, _ := runtime.Caller(1)
return filepath.Join(path.Dir(filename), "packages", b.platform)
}
// Package the application into a platform specific package
func (b *PackageHelper) Package(po *ProjectOptions) error {
switch b.platform {
case "darwin":
return b.packageOSX(po)
case "windows":
return b.PackageWindows(po, true)
case "linux":
return b.packageLinux(po)
default:
return fmt.Errorf("platform '%s' not supported for bundling yet", b.platform)
}
}
func (b *PackageHelper) packageLinux(po *ProjectOptions) error {
return nil
}
// Package the application for OSX
func (b *PackageHelper) packageOSX(po *ProjectOptions) error {
build := path.Join(b.fs.Cwd(), "build")
system := NewSystemHelper()
config, err := system.LoadConfig()
if err != nil {
return err
}
name := defaultString(po.Name, "WailsTest")
exe := defaultString(po.BinaryName, name)
version := defaultString(po.Version, "0.1.0")
author := defaultString(config.Name, "Anonymous")
packageID := strings.Join([]string{"wails", name, version}, ".")
plistData := newPlistData(name, exe, packageID, version, author)
appname := po.Name + ".app"
plistFilename := path.Join(build, appname, "Contents", "Info.plist")
customPlist := path.Join(b.fs.Cwd(), "info.plist")
// Check binary exists
source := path.Join(build, exe)
if po.CrossCompile == true {
file, err := b.fs.FindFile(build, "darwin")
if err != nil {
return err
}
source = path.Join(build, file)
}
if !b.fs.FileExists(source) {
// We need to build!
return fmt.Errorf("Target '%s' not available. Has it been compiled yet?", source)
}
// Remove the existing package
os.RemoveAll(appname)
// Create directories
exeDir := path.Join(build, appname, "/Contents/MacOS")
b.fs.MkDirs(exeDir, 0755)
resourceDir := path.Join(build, appname, "/Contents/Resources")
b.fs.MkDirs(resourceDir, 0755)
// Do we have a custom plist in the project directory?
if !fs.FileExists(customPlist) {
// No - create a new plist from our defaults
tmpl := template.New("infoPlist")
plistFile := filepath.Join(b.getPackageFileBaseDir(), "info.plist")
infoPlist, err := os.ReadFile(plistFile)
if err != nil {
return err
}
tmpl.Parse(string(infoPlist))
// Write the template to a buffer
var tpl bytes.Buffer
err = tmpl.Execute(&tpl, plistData)
if err != nil {
return err
}
// Save to the package
err = os.WriteFile(plistFilename, tpl.Bytes(), 0644)
if err != nil {
return err
}
// Also write to project directory for customisation
err = os.WriteFile(customPlist, tpl.Bytes(), 0644)
if err != nil {
return err
}
} else {
// Yes - we have a plist. Copy it to the package verbatim
err = fs.CopyFile(customPlist, plistFilename)
if err != nil {
return err
}
}
// Copy executable
target := path.Join(exeDir, exe)
err = b.fs.CopyFile(source, target)
if err != nil {
return err
}
err = os.Chmod(target, 0755)
if err != nil {
return err
}
err = b.packageIconOSX(resourceDir)
return err
}
// CleanWindows removes any windows related files found in the directory
func (b *PackageHelper) CleanWindows(po *ProjectOptions) {
pdir := b.fs.Cwd()
basename := strings.TrimSuffix(po.BinaryName, ".exe")
exts := []string{".ico", ".exe.manifest", ".rc", "-res.syso"}
rsrcs := []string{}
for _, ext := range exts {
rsrcs = append(rsrcs, filepath.Join(pdir, basename+ext))
}
b.fs.RemoveFiles(rsrcs, true)
}
// PackageWindows packages the application for windows platforms
func (b *PackageHelper) PackageWindows(po *ProjectOptions, cleanUp bool) error {
outputDir := b.fs.Cwd()
basename := strings.TrimSuffix(po.BinaryName, ".exe")
// Copy default icon if needed
icon, err := b.copyIcon()
if err != nil {
return err
}
// Generate icon from PNG if it doesn't exist
if !fs.FileExists(basename + ".ico") {
err = generateWindowsIcon(icon, basename+".ico")
if err != nil {
return err
}
}
// Copy manifest
tgtManifestFile := filepath.Join(outputDir, basename+".exe.manifest")
if !b.fs.FileExists(tgtManifestFile) {
srcManifestfile := filepath.Join(b.getPackageFileBaseDir(), "wails.exe.manifest")
err := b.fs.CopyFile(srcManifestfile, tgtManifestFile)
if err != nil {
return err
}
}
// Copy rc file
tgtRCFile := filepath.Join(outputDir, basename+".rc")
if !b.fs.FileExists(tgtRCFile) {
srcRCfile := filepath.Join(b.getPackageFileBaseDir(), "wails.rc")
rcfilebytes, err := os.ReadFile(srcRCfile)
if err != nil {
return err
}
rcfiledata := strings.Replace(string(rcfilebytes), "$NAME$", basename, -1)
err = os.WriteFile(tgtRCFile, []byte(rcfiledata), 0755)
if err != nil {
return err
}
}
// Build syso
sysofile := filepath.Join(outputDir, basename+"-res.syso")
// cross-compile
if b.platform != runtime.GOOS {
args := []string{
"docker", "run", "--rm",
"-v", outputDir + ":/build",
"--entrypoint", "/bin/sh",
"wailsapp/xgo:1.16.3",
"-c", "/usr/bin/x86_64-w64-mingw32-windres -o /build/" + basename + "-res.syso /build/" + basename + ".rc",
}
if err := NewProgramHelper().RunCommandArray(args); err != nil {
return err
}
} else {
batfile, err := fs.LocalDir(".")
if err != nil {
return err
}
windresBatFile := filepath.Join(batfile.fullPath, "windres.bat")
windresCommand := []string{windresBatFile, sysofile, tgtRCFile}
err = NewProgramHelper().RunCommandArray(windresCommand)
if err != nil {
return err
}
}
return nil
}
func (b *PackageHelper) copyIcon() (string, error) {
// TODO: Read this from project.json
const appIconFilename = "appicon.png"
srcIcon := path.Join(b.fs.Cwd(), appIconFilename)
// Check if appicon.png exists
if !b.fs.FileExists(srcIcon) {
// Install default icon
iconfile := filepath.Join(b.getPackageFileBaseDir(), "icon.png")
iconData, err := os.ReadFile(iconfile)
if err != nil {
return "", err
}
err = os.WriteFile(srcIcon, iconData, 0644)
if err != nil {
return "", err
}
}
return srcIcon, nil
}
func (b *PackageHelper) packageIconOSX(resourceDir string) error {
srcIcon, err := b.copyIcon()
if err != nil {
return err
}
tgtBundle := path.Join(resourceDir, "iconfile.icns")
imageFile, err := os.Open(srcIcon)
if err != nil {
return err
}
defer imageFile.Close()
srcImg, _, err := image.Decode(imageFile)
if err != nil {
return err
}
dest, err := os.Create(tgtBundle)
if err != nil {
return err
}
defer dest.Close()
return icns.Encode(dest, srcImg)
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

View file

@ -1,12 +0,0 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"><dict>
<key>CFBundlePackageType</key><string>APPL</string>
<key>CFBundleName</key><string>{{.Title}}</string>
<key>CFBundleExecutable</key><string>{{.Exe}}</string>
<key>CFBundleIdentifier</key><string>{{.PackageID}}</string>
<key>CFBundleVersion</key><string>{{.Version}}</string>
<key>CFBundleGetInfoString</key><string>Built by {{.Author}} at {{.Date}} using Wails (https://wails.app)</string>
<key>CFBundleShortVersionString</key><string>{{.Version}}</string>
<key>CFBundleIconFile</key><string>iconfile</string>
<key>NSHighResolutionCapable</key><string>true</string>
</dict></plist>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

View file

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
<assemblyIdentity type="win32" name="MyApplication" version="1.0.0.0" processorArchitecture="amd64"/>
<asmv3:application>
<asmv3:windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true/pm</dpiAware> <!-- fallback for Windows 7 and 8 -->
<dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">permonitorv2,permonitor</dpiAwareness> <!-- falls back to per-monitor if per-monitor v2 is not supported -->
<gdiScaling xmlns="http://schemas.microsoft.com/SMI/2017/WindowsSettings">true</gdiScaling> <!-- enables GDI DPI scaling -->
</asmv3:windowsSettings>
</asmv3:application>
</assembly>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 315 KiB

View file

@ -1,2 +0,0 @@
100 ICON "$NAME$.ico"
110 24 "$NAME$.exe.manifest"

View file

@ -1,100 +0,0 @@
package cmd
import (
"fmt"
"runtime"
)
func newPrerequisite(name, help string) *Prerequisite {
return &Prerequisite{Name: name, Help: help}
}
// Prerequisites is a list of things required to use Wails
type Prerequisites []*Prerequisite
// Add given prereq object to list
func (p *Prerequisites) Add(prereq *Prerequisite) {
*p = append(*p, prereq)
}
// GetRequiredPrograms returns a list of programs required for the platform
func GetRequiredPrograms() (*Prerequisites, error) {
switch runtime.GOOS {
case "darwin":
return getRequiredProgramsOSX(), nil
case "linux":
return getRequiredProgramsLinux(), nil
case "windows":
return getRequiredProgramsWindows(), nil
default:
return nil, fmt.Errorf("platform '%s' not supported at this time", runtime.GOOS)
}
}
func getRequiredProgramsOSX() *Prerequisites {
result := &Prerequisites{}
result.Add(newPrerequisite("clang", "Please install with `xcode-select --install` and try again"))
result.Add(newPrerequisite("npm", "Please install from https://nodejs.org/en/download/ and try again"))
return result
}
func getRequiredProgramsLinux() *Prerequisites {
result := &Prerequisites{}
distroInfo := GetLinuxDistroInfo()
if distroInfo.Distribution != Unknown {
var linuxDB = NewLinuxDB()
distro := linuxDB.GetDistro(distroInfo.ID)
release := distro.GetRelease(distroInfo.Release)
for _, program := range release.Programs {
result.Add(program)
}
}
return result
}
// TODO: Test this on Windows
func getRequiredProgramsWindows() *Prerequisites {
result := &Prerequisites{}
result.Add(newPrerequisite("gcc", "Please install gcc from here and try again: http://tdm-gcc.tdragon.net/download. You will need to add the bin directory to your path, EG: C:\\TDM-GCC-64\\bin\\"))
result.Add(newPrerequisite("npm", "Please install node/npm from here and try again: https://nodejs.org/en/download/"))
return result
}
// GetRequiredLibraries returns a list of libraries (packages) required for the platform
func GetRequiredLibraries() (*Prerequisites, error) {
switch runtime.GOOS {
case "darwin":
return getRequiredLibrariesOSX()
case "linux":
return getRequiredLibrariesLinux()
case "windows":
return getRequiredLibrariesWindows()
default:
return nil, fmt.Errorf("platform '%s' not supported at this time", runtime.GOOS)
}
}
func getRequiredLibrariesOSX() (*Prerequisites, error) {
result := &Prerequisites{}
return result, nil
}
func getRequiredLibrariesLinux() (*Prerequisites, error) {
result := &Prerequisites{}
// The Linux Distribution DB
distroInfo := GetLinuxDistroInfo()
if distroInfo.Distribution != Unknown {
var linuxDB = NewLinuxDB()
distro := linuxDB.GetDistro(distroInfo.ID)
release := distro.GetRelease(distroInfo.Release)
for _, library := range release.Libraries {
result.Add(library)
}
}
return result, nil
}
func getRequiredLibrariesWindows() (*Prerequisites, error) {
result := &Prerequisites{}
return result, nil
}

View file

@ -1,162 +0,0 @@
package cmd
import (
"bytes"
"fmt"
"os"
"os/exec"
"path/filepath"
"strings"
"syscall"
)
// ProgramHelper - Utility functions around installed applications
type ProgramHelper struct {
shell *ShellHelper
verbose bool
}
// NewProgramHelper - Creates a new ProgramHelper
func NewProgramHelper(verbose ...bool) *ProgramHelper {
result := &ProgramHelper{
shell: NewShellHelper(),
}
if len(verbose) > 0 {
result.verbose = verbose[0]
if result.verbose {
result.shell.SetVerbose()
}
}
return result
}
// IsInstalled tries to determine if the given binary name is installed
func (p *ProgramHelper) IsInstalled(programName string) bool {
_, err := exec.LookPath(programName)
return err == nil
}
// Program - A struct to define an installed application/binary
type Program struct {
Name string `json:"name"`
Path string `json:"path"`
verbose bool
}
// FindProgram attempts to find the given program on the system.FindProgram
// Returns a struct with the name and path to the program
func (p *ProgramHelper) FindProgram(programName string) *Program {
path, err := exec.LookPath(programName)
if err != nil {
return nil
}
path, err = filepath.Abs(path)
if err != nil {
return nil
}
return &Program{
Name: programName,
Path: path,
verbose: p.verbose,
}
}
// GetFullPathToBinary returns the full path the the current binary
func (p *Program) GetFullPathToBinary() (string, error) {
return filepath.Abs(p.Path)
}
// Run will execute the program with the given parameters
// Returns stdout + stderr as strings and an error if one occurred
func (p *Program) Run(vars ...string) (stdout, stderr string, exitCode int, err error) {
command, err := p.GetFullPathToBinary()
if err != nil {
return "", "", 1, err
}
cmd := exec.Command(command, vars...)
if !p.verbose {
var stdo, stde bytes.Buffer
cmd.Stdout = &stdo
cmd.Stderr = &stde
err = cmd.Run()
stdout = string(stdo.Bytes())
stderr = string(stde.Bytes())
} else {
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
err = cmd.Run()
}
// https://stackoverflow.com/questions/10385551/get-exit-code-go
if err != nil {
// try to get the exit code
if exitError, ok := err.(*exec.ExitError); ok {
ws := exitError.Sys().(syscall.WaitStatus)
exitCode = ws.ExitStatus()
} else {
exitCode = 1
if stderr == "" {
stderr = err.Error()
}
}
} else {
// success, exitCode should be 0 if go is ok
ws := cmd.ProcessState.Sys().(syscall.WaitStatus)
exitCode = ws.ExitStatus()
}
return
}
// InstallGoPackage installs the given Go package
func (p *ProgramHelper) InstallGoPackage(packageName string) error {
args := strings.Split("get "+packageName, " ")
_, stderr, err := p.shell.Run("go", args...)
if err != nil {
fmt.Println(stderr)
}
return err
}
// InstallNPMPackage installs the given npm package
func (p *ProgramHelper) InstallNPMPackage(packageName string, save bool) error {
args := strings.Split("install "+packageName, " ")
if save {
args = append(args, "--save")
}
_, stderr, err := p.shell.Run("npm", args...)
if err != nil {
fmt.Println(stderr)
}
return err
}
// RunCommand runs the given command
func (p *ProgramHelper) RunCommand(command string) error {
args := strings.Split(command, " ")
return p.RunCommandArray(args)
}
// RunCommandArray runs the command specified in the array
func (p *ProgramHelper) RunCommandArray(args []string, dir ...string) error {
programCommand := args[0]
// TODO: Run FindProgram here and get the full path to the exe
program, err := exec.LookPath(programCommand)
if err != nil {
fmt.Printf("ERROR: Looks like '%s' isn't installed. Please install and try again.", programCommand)
return err
}
args = args[1:]
var stderr string
var stdout string
if len(dir) > 0 {
stdout, stderr, err = p.shell.RunInDirectory(dir[0], program, args...)
} else {
stdout, stderr, err = p.shell.Run(program, args...)
}
if err != nil {
fmt.Println(stderr)
fmt.Println(stdout)
}
return err
}

View file

@ -1,406 +0,0 @@
package cmd
import (
"encoding/json"
"fmt"
"os"
"path/filepath"
"runtime"
"sort"
"strings"
"github.com/leaanthony/slicer"
)
// PackageManager indicates different package managers
type PackageManager int
const (
// UNKNOWN package manager
UNKNOWN PackageManager = iota
// NPM package manager
NPM
// YARN package manager
YARN
)
type author struct {
Name string `json:"name"`
Email string `json:"email"`
}
type frontend struct {
Dir string `json:"dir"`
Install string `json:"install"`
Build string `json:"build"`
Bridge string `json:"bridge"`
Serve string `json:"serve"`
}
type framework struct {
Name string `json:"name"`
BuildTag string `json:"buildtag"`
Options map[string]string `json:"options,omitempty"`
}
// ProjectHelper is a helper struct for managing projects
type ProjectHelper struct {
log *Logger
system *SystemHelper
templates *TemplateHelper
}
// NewProjectHelper creates a new Project helper struct
func NewProjectHelper() *ProjectHelper {
return &ProjectHelper{
log: NewLogger(),
system: NewSystemHelper(),
templates: NewTemplateHelper(),
}
}
// GenerateProject generates a new project using the options given
func (ph *ProjectHelper) GenerateProject(projectOptions *ProjectOptions) error {
// Calculate project path
projectPath, err := filepath.Abs(projectOptions.OutputDirectory)
if err != nil {
return err
}
_ = projectPath
if fs.DirExists(projectPath) {
return fmt.Errorf("directory '%s' already exists", projectPath)
}
// Create project directory
err = fs.MkDir(projectPath)
if err != nil {
return err
}
// Create and save project config
err = projectOptions.WriteProjectConfig()
if err != nil {
return err
}
err = ph.templates.InstallTemplate(projectPath, projectOptions)
if err != nil {
return err
}
// // If we are on windows, dump a windows_resource.json
// if runtime.GOOS == "windows" {
// ph.GenerateWindowsResourceConfig(projectOptions)
// }
return nil
}
// // GenerateWindowsResourceConfig generates the default windows resource file
// func (ph *ProjectHelper) GenerateWindowsResourceConfig(po *ProjectOptions) {
// fmt.Println(buffer.String())
// // vi.Build()
// // vi.Walk()
// // err := vi.WriteSyso(outPath, runtime.GOARCH)
// }
// LoadProjectConfig loads the project config from the given directory
func (ph *ProjectHelper) LoadProjectConfig(dir string) (*ProjectOptions, error) {
po := ph.NewProjectOptions()
err := po.LoadConfig(dir)
return po, err
}
// NewProjectOptions creates a new default set of project options
func (ph *ProjectHelper) NewProjectOptions() *ProjectOptions {
result := ProjectOptions{
Name: "",
Description: "Enter your project description",
Version: "0.1.0",
BinaryName: "",
system: ph.system,
log: ph.log,
templates: ph.templates,
Author: &author{},
}
// Populate system config
config, err := ph.system.LoadConfig()
if err == nil {
result.Author.Name = config.Name
result.Author.Email = config.Email
}
return &result
}
// ProjectOptions holds all the options available for a project
type ProjectOptions struct {
Name string `json:"name"`
Description string `json:"description"`
Author *author `json:"author,omitempty"`
Version string `json:"version"`
OutputDirectory string `json:"-"`
UseDefaults bool `json:"-"`
Template string `json:"-"`
BinaryName string `json:"binaryname"`
FrontEnd *frontend `json:"frontend,omitempty"`
Tags string `json:"tags"`
NPMProjectName string `json:"-"`
system *SystemHelper
log *Logger
templates *TemplateHelper
selectedTemplate *TemplateDetails
WailsVersion string
typescriptDefsFilename string
Verbose bool `json:"-"`
CrossCompile bool
Platform string
Architecture string
LdFlags string
GoPath string
UseFirebug bool
// Supported platforms
Platforms []string `json:"platforms,omitempty"`
}
// PlatformSupported returns true if the template is supported
// on the current platform
func (po *ProjectOptions) PlatformSupported() bool {
// Default is all platforms supported
if len(po.Platforms) == 0 {
return true
}
// Check that the platform is in the list
platformsSupported := slicer.String(po.Platforms)
return platformsSupported.Contains(runtime.GOOS)
}
// Defaults sets the default project template
func (po *ProjectOptions) Defaults() {
po.Template = "vuebasic"
po.WailsVersion = Version
}
// SetTypescriptDefsFilename indicates that we want to generate typescript bindings to the given file
func (po *ProjectOptions) SetTypescriptDefsFilename(filename string) {
po.typescriptDefsFilename = filename
}
// GetNPMBinaryName returns the type of package manager used by the project
func (po *ProjectOptions) GetNPMBinaryName() (PackageManager, error) {
if po.FrontEnd == nil {
return UNKNOWN, fmt.Errorf("No frontend specified in project options")
}
if strings.Index(po.FrontEnd.Install, "npm") > -1 {
return NPM, nil
}
if strings.Index(po.FrontEnd.Install, "yarn") > -1 {
return YARN, nil
}
return UNKNOWN, nil
}
// PromptForInputs asks the user to input project details
func (po *ProjectOptions) PromptForInputs() error {
processProjectName(po)
processBinaryName(po)
err := processOutputDirectory(po)
if err != nil {
return err
}
// Process Templates
templateList := slicer.Interface()
options := slicer.String()
templateDetails, err := po.templates.GetTemplateDetails()
if err != nil {
return err
}
if po.Template != "" {
// Check template is valid if given
if templateDetails[po.Template] == nil {
keys := make([]string, 0, len(templateDetails))
for k := range templateDetails {
keys = append(keys, k)
}
return fmt.Errorf("invalid template name '%s'. Valid options: %s", po.Template, strings.Join(keys, ", "))
}
po.selectedTemplate = templateDetails[po.Template]
} else {
keys := make([]string, 0)
for k := range templateDetails {
keys = append(keys, k)
}
sort.Strings(keys)
for _, k := range keys {
templateDetail := templateDetails[k]
templateList.Add(templateDetail)
if !templateDetail.Metadata.PlatformSupported() {
templateDetail.Metadata.Name = "* " + templateDetail.Metadata.Name
}
options.Add(fmt.Sprintf("%s - %s", templateDetail.Metadata.Name, templateDetail.Metadata.ShortDescription))
}
templateIndex := 0
if len(options.AsSlice()) > 1 {
templateIndex = PromptSelection("Please select a template (* means unsupported on current platform)", options.AsSlice(), 0)
}
if len(templateList.AsSlice()) == 0 {
return fmt.Errorf("aborting: no templates found")
}
// After selection do this....
po.selectedTemplate = templateList.AsSlice()[templateIndex].(*TemplateDetails)
}
po.selectedTemplate.Metadata.Name = strings.TrimPrefix(po.selectedTemplate.Metadata.Name, "* ")
if !po.selectedTemplate.Metadata.PlatformSupported() {
println("WARNING: This template is unsupported on this platform!")
}
fmt.Println("Template: " + po.selectedTemplate.Metadata.Name)
// Setup NPM Project name
po.NPMProjectName = strings.ToLower(strings.Replace(po.Name, " ", "_", -1))
// Fix template name
po.Template = strings.Split(po.selectedTemplate.Path, string(os.PathSeparator))[0]
// // Populate template details
templateMetadata := po.selectedTemplate.Metadata
err = processTemplateMetadata(templateMetadata, po)
if err != nil {
return err
}
return nil
}
// WriteProjectConfig writes the project configuration into
// the project directory
func (po *ProjectOptions) WriteProjectConfig() error {
targetDir, err := filepath.Abs(po.OutputDirectory)
if err != nil {
return err
}
targetFile := filepath.Join(targetDir, "project.json")
filedata, err := json.MarshalIndent(po, "", " ")
if err != nil {
return err
}
return os.WriteFile(targetFile, filedata, 0600)
}
// LoadConfig loads the project configuration file from the
// given directory
func (po *ProjectOptions) LoadConfig(projectDir string) error {
targetFile := filepath.Join(projectDir, "project.json")
rawBytes, err := os.ReadFile(targetFile)
if err != nil {
return err
}
return json.Unmarshal(rawBytes, po)
}
func computeBinaryName(projectName string) string {
if projectName == "" {
return ""
}
var binaryNameComputed = strings.ToLower(projectName)
binaryNameComputed = strings.Replace(binaryNameComputed, " ", "-", -1)
binaryNameComputed = strings.Replace(binaryNameComputed, string(filepath.Separator), "-", -1)
binaryNameComputed = strings.Replace(binaryNameComputed, ":", "-", -1)
return binaryNameComputed
}
func processOutputDirectory(po *ProjectOptions) error {
// po.OutputDirectory
if po.OutputDirectory == "" {
po.OutputDirectory = PromptRequired("Project directory name", computeBinaryName(po.Name))
}
projectPath, err := filepath.Abs(po.OutputDirectory)
if err != nil {
return err
}
if NewFSHelper().DirExists(projectPath) {
return fmt.Errorf("directory '%s' already exists", projectPath)
}
fmt.Println("Project Directory: " + po.OutputDirectory)
return nil
}
func processProjectName(po *ProjectOptions) {
if po.Name == "" {
po.Name = Prompt("The name of the project", "My Project")
}
fmt.Println("Project Name: " + po.Name)
}
func processBinaryName(po *ProjectOptions) {
if po.BinaryName == "" {
var binaryNameComputed = computeBinaryName(po.Name)
po.BinaryName = Prompt("The output binary name", binaryNameComputed)
}
fmt.Println("Output binary Name: " + po.BinaryName)
}
func processTemplateMetadata(templateMetadata *TemplateMetadata, po *ProjectOptions) error {
if templateMetadata.FrontendDir != "" {
po.FrontEnd = &frontend{}
po.FrontEnd.Dir = templateMetadata.FrontendDir
}
if templateMetadata.Install != "" {
if po.FrontEnd == nil {
return fmt.Errorf("install set in template metadata but not frontenddir")
}
po.FrontEnd.Install = templateMetadata.Install
}
if templateMetadata.Build != "" {
if po.FrontEnd == nil {
return fmt.Errorf("build set in template metadata but not frontenddir")
}
po.FrontEnd.Build = templateMetadata.Build
}
if templateMetadata.Bridge != "" {
if po.FrontEnd == nil {
return fmt.Errorf("bridge set in template metadata but not frontenddir")
}
po.FrontEnd.Bridge = templateMetadata.Bridge
}
if templateMetadata.Serve != "" {
if po.FrontEnd == nil {
return fmt.Errorf("serve set in template metadata but not frontenddir")
}
po.FrontEnd.Serve = templateMetadata.Serve
}
// Save platforms
po.Platforms = templateMetadata.Platforms
return nil
}

View file

@ -1,80 +0,0 @@
package cmd
import (
"bufio"
"fmt"
"os"
"strconv"
"strings"
)
// Prompt asks the user for a value
func Prompt(question string, defaultValue ...string) string {
var answer string
if len(defaultValue) > 0 {
answer = defaultValue[0]
question = fmt.Sprintf("%s (%s)", question, answer)
}
fmt.Printf(question + ": ")
reader := bufio.NewReader(os.Stdin)
input, _ := reader.ReadString('\n')
input = strings.TrimSpace(input)
if input != "" {
answer = input
}
return answer
}
// PromptRequired calls Prompt repeatedly until a value is given
func PromptRequired(question string, defaultValue ...string) string {
for {
result := Prompt(question, defaultValue...)
if result != "" {
return result
}
}
}
// PromptSelection asks the user to choose an option
func PromptSelection(question string, options []string, optionalDefaultValue ...int) int {
defaultValue := -1
message := "Please choose an option"
fmt.Println(question + ":")
if len(optionalDefaultValue) > 0 {
defaultValue = optionalDefaultValue[0] + 1
message = fmt.Sprintf("%s [%d]", message, defaultValue)
}
for index, option := range options {
fmt.Printf(" %d: %s\n", index+1, option)
}
selectedValue := -1
for {
choice := Prompt(message)
if choice == "" && defaultValue > -1 {
selectedValue = defaultValue - 1
break
}
// index
number, err := strconv.Atoi(choice)
if err == nil {
if number > 0 && number <= len(options) {
selectedValue = number - 1
break
} else {
continue
}
}
}
return selectedValue
}

View file

@ -1,106 +0,0 @@
package cmd
import (
"fmt"
"github.com/Masterminds/semver"
)
// SemanticVersion is a struct containing a semantic version
type SemanticVersion struct {
Version *semver.Version
}
// NewSemanticVersion creates a new SemanticVersion object with the given version string
func NewSemanticVersion(version string) (*SemanticVersion, error) {
semverVersion, err := semver.NewVersion(version)
if err != nil {
return nil, err
}
return &SemanticVersion{
Version: semverVersion,
}, nil
}
// IsRelease returns true if it's a release version
func (s *SemanticVersion) IsRelease() bool {
// Limit to v1
if s.Version.Major() != 1 {
return false
}
return len(s.Version.Prerelease()) == 0 && len(s.Version.Metadata()) == 0
}
// IsPreRelease returns true if it's a prerelease version
func (s *SemanticVersion) IsPreRelease() bool {
// Limit to v1
if s.Version.Major() != 1 {
return false
}
return len(s.Version.Prerelease()) > 0
}
func (s *SemanticVersion) String() string {
return s.Version.String()
}
// IsGreaterThan returns true if this version is greater than the given version
func (s *SemanticVersion) IsGreaterThan(version *SemanticVersion) (bool, error) {
// Set up new constraint
constraint, err := semver.NewConstraint("> " + version.Version.String())
if err != nil {
return false, err
}
// Check if the desired one is greater than the requested on
success, msgs := constraint.Validate(s.Version)
if !success {
return false, msgs[0]
}
return true, nil
}
// IsGreaterThanOrEqual returns true if this version is greater than or equal the given version
func (s *SemanticVersion) IsGreaterThanOrEqual(version *SemanticVersion) (bool, error) {
// Set up new constraint
constraint, err := semver.NewConstraint(">= " + version.Version.String())
if err != nil {
return false, err
}
// Check if the desired one is greater than the requested on
success, msgs := constraint.Validate(s.Version)
if !success {
return false, msgs[0]
}
return true, nil
}
// MainVersion returns the main version of any version+prerelease+metadata
// EG: MainVersion("1.2.3-pre") => "1.2.3"
func (s *SemanticVersion) MainVersion() *SemanticVersion {
mainVersion := fmt.Sprintf("%d.%d.%d", s.Version.Major(), s.Version.Minor(), s.Version.Patch())
result, _ := NewSemanticVersion(mainVersion)
return result
}
// SemverCollection is a collection of SemanticVersion objects
type SemverCollection []*SemanticVersion
// Len returns the length of a collection. The number of Version instances
// on the slice.
func (c SemverCollection) Len() int {
return len(c)
}
// Less is needed for the sort interface to compare two Version objects on the
// slice. If checks if one is less than the other.
func (c SemverCollection) Less(i, j int) bool {
return c[i].Version.LessThan(c[j].Version)
}
// Swap is needed for the sort interface to replace the Version objects
// at two different positions in the slice.
func (c SemverCollection) Swap(i, j int) {
c[i], c[j] = c[j], c[i]
}

View file

@ -1,65 +0,0 @@
package cmd
import (
"testing"
)
func TestSemanticVersion_IsPreRelease(t *testing.T) {
tests := []struct {
name string
version string
want bool
}{
{"v1.6.7-pre0", "v1.6.7-pre0", true},
{"v2.6.7+pre0", "v2.6.7+pre0", false},
{"v2.6.7", "v2.6.7", false},
{"v2.0.0+alpha.1", "v2.0.0+alpha.1", false},
{"v2.0.0-alpha.1", "v2.0.0-alpha.1", false},
{"v1.6.7", "v1.6.7", false},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
semanticversion, err := NewSemanticVersion(tt.version)
if err != nil {
t.Errorf("Invalid semantic version: %s", semanticversion)
return
}
s := &SemanticVersion{
Version: semanticversion.Version,
}
if got := s.IsPreRelease(); got != tt.want {
t.Errorf("IsPreRelease() = %v, want %v", got, tt.want)
}
})
}
}
func TestSemanticVersion_IsRelease(t *testing.T) {
tests := []struct {
name string
version string
want bool
}{
{"v1.6.7", "v1.6.7", true},
{"v2.6.7-pre0", "v2.6.7-pre0", false},
{"v2.6.7", "v2.6.7", false},
{"v2.6.7+release", "v2.6.7+release", false},
{"v2.0.0-alpha.1", "v2.0.0-alpha.1", false},
{"v1.6.7-pre0", "v1.6.7-pre0", false},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
semanticversion, err := NewSemanticVersion(tt.version)
if err != nil {
t.Errorf("Invalid semantic version: %s", semanticversion)
return
}
s := &SemanticVersion{
Version: semanticversion.Version,
}
if got := s.IsRelease(); got != tt.want {
t.Errorf("IsRelease() = %v, want %v", got, tt.want)
}
})
}
}

View file

@ -1,61 +0,0 @@
package cmd
import (
"bytes"
"os"
"os/exec"
)
// ShellHelper helps with Shell commands
type ShellHelper struct {
verbose bool
}
// NewShellHelper creates a new ShellHelper!
func NewShellHelper() *ShellHelper {
return &ShellHelper{}
}
// SetVerbose sets the verbose flag
func (sh *ShellHelper) SetVerbose() {
sh.verbose = true
}
// Run the given command
func (sh *ShellHelper) Run(command string, vars ...string) (stdout, stderr string, err error) {
cmd := exec.Command(command, vars...)
cmd.Env = append(os.Environ(), "GO111MODULE=on")
if !sh.verbose {
var stdo, stde bytes.Buffer
cmd.Stdout = &stdo
cmd.Stderr = &stde
err = cmd.Run()
stdout = string(stdo.Bytes())
stderr = string(stde.Bytes())
} else {
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
err = cmd.Run()
}
return
}
// RunInDirectory runs the given command in the given directory
func (sh *ShellHelper) RunInDirectory(dir string, command string, vars ...string) (stdout, stderr string, err error) {
cmd := exec.Command(command, vars...)
cmd.Dir = dir
cmd.Env = append(os.Environ(), "GO111MODULE=on")
if !sh.verbose {
var stdo, stde bytes.Buffer
cmd.Stdout = &stdo
cmd.Stderr = &stde
err = cmd.Run()
stdout = string(stdo.Bytes())
stderr = string(stde.Bytes())
} else {
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
err = cmd.Run()
}
return
}

View file

@ -1,317 +0,0 @@
package cmd
import (
"encoding/json"
"fmt"
"log"
"os"
"path/filepath"
"runtime"
"strconv"
"time"
)
// SystemHelper - Defines everything related to the system
type SystemHelper struct {
log *Logger
fs *FSHelper
configFilename string
homeDir string
wailsSystemDir string
wailsSystemConfig string
}
// NewSystemHelper - Creates a new System Helper
func NewSystemHelper() *SystemHelper {
result := &SystemHelper{
fs: NewFSHelper(),
log: NewLogger(),
configFilename: "wails.json",
}
result.setSystemDirs()
return result
}
// Internal
// setSystemDirs calculates the system directories it is interested in
func (s *SystemHelper) setSystemDirs() {
var err error
s.homeDir, err = os.UserHomeDir()
if err != nil {
log.Fatal("Cannot find home directory! Please file a bug report!")
}
// TODO: A better config system
s.wailsSystemDir = filepath.Join(s.homeDir, ".wails")
s.wailsSystemConfig = filepath.Join(s.wailsSystemDir, s.configFilename)
}
// ConfigFileExists - Returns true if it does!
func (s *SystemHelper) ConfigFileExists() bool {
return s.fs.FileExists(s.wailsSystemConfig)
}
// SystemDirExists - Returns true if it does!
func (s *SystemHelper) systemDirExists() bool {
return s.fs.DirExists(s.wailsSystemDir)
}
// LoadConfig attempts to load the Wails system config
func (s *SystemHelper) LoadConfig() (*SystemConfig, error) {
return NewSystemConfig(s.wailsSystemConfig)
}
// ConfigFileIsValid checks if the config file is valid
func (s *SystemHelper) ConfigFileIsValid() bool {
_, err := NewSystemConfig(s.wailsSystemConfig)
return err == nil
}
// GetAuthor returns a formatted string of the user's name and email
func (s *SystemHelper) GetAuthor() (string, error) {
var config *SystemConfig
config, err := s.LoadConfig()
if err != nil {
return "", err
}
return fmt.Sprintf("%s <%s>", config.Name, config.Email), nil
}
// BackupConfig attempts to backup the system config file
func (s *SystemHelper) BackupConfig() (string, error) {
now := strconv.FormatInt(time.Now().UTC().UnixNano(), 10)
backupFilename := s.wailsSystemConfig + "." + now
err := s.fs.CopyFile(s.wailsSystemConfig, backupFilename)
if err != nil {
return "", err
}
return backupFilename, nil
}
func (s *SystemHelper) setup() error {
systemConfig := make(map[string]string)
// Try to load current values - ignore errors
config, _ := s.LoadConfig()
if config.Name != "" {
systemConfig["name"] = PromptRequired("What is your name", config.Name)
} else if n, err := getGitConfigValue("user.name"); err == nil && n != "" {
systemConfig["name"] = PromptRequired("What is your name", n)
} else {
systemConfig["name"] = PromptRequired("What is your name")
}
if config.Email != "" {
systemConfig["email"] = PromptRequired("What is your email address", config.Email)
} else if e, err := getGitConfigValue("user.email"); err == nil && e != "" {
systemConfig["email"] = PromptRequired("What is your email address", e)
} else {
systemConfig["email"] = PromptRequired("What is your email address")
}
// Create the directory
err := s.fs.MkDirs(s.wailsSystemDir)
if err != nil {
return err
}
// Save
configData, err := json.Marshal(&systemConfig)
if err != nil {
return err
}
err = os.WriteFile(s.wailsSystemConfig, configData, 0755)
if err != nil {
return err
}
fmt.Println()
s.log.White("Wails config saved to: " + s.wailsSystemConfig)
s.log.White("Feel free to customise these settings.")
fmt.Println()
return nil
}
const introText = `
Wails is a lightweight framework for creating web-like desktop apps in Go.
I'll need to ask you a few questions so I can fill in your project templates and then I will try and see if you have the correct dependencies installed. If you don't have the right tools installed, I'll try and suggest how to install them.
`
// CheckInitialised checks if the system has been set up
// and if not, runs setup
func (s *SystemHelper) CheckInitialised() error {
if !s.systemDirExists() {
s.log.Yellow("System not initialised. Running setup.")
return s.setup()
}
return nil
}
// Initialise attempts to set up the Wails system.
// An error is returns if there is a problem
func (s *SystemHelper) Initialise() error {
// System dir doesn't exist
if !s.systemDirExists() {
s.log.Green("Welcome to Wails!")
s.log.Green(introText)
return s.setup()
}
// Config doesn't exist
if !s.ConfigFileExists() {
s.log.Green("Looks like the system config is missing.")
s.log.Green("To get you back on track, I'll need to ask you a few things...")
return s.setup()
}
// Config exists but isn't valid.
if !s.ConfigFileIsValid() {
s.log.Green("Looks like the system config got corrupted.")
backupFile, err := s.BackupConfig()
if err != nil {
s.log.Green("I tried to backup your config file but got this error: %s", err.Error())
} else {
s.log.Green("Just in case you needed it, I backed up your config file here: %s", backupFile)
}
s.log.Green("To get you back on track, I'll need to ask you a few things...")
return s.setup()
}
return s.setup()
}
// SystemConfig - Defines system wide configuration data
type SystemConfig struct {
Name string `json:"name"`
Email string `json:"email"`
}
// NewSystemConfig - Creates a new SystemConfig helper object
func NewSystemConfig(filename string) (*SystemConfig, error) {
result := &SystemConfig{}
err := result.load(filename)
return result, err
}
// Save - Saves the system config to the given filename
func (sc *SystemConfig) Save(filename string) error {
// Convert config to JSON string
theJSON, err := json.MarshalIndent(sc, "", " ")
if err != nil {
return err
}
// Write it out to the config file
return os.WriteFile(filename, theJSON, 0644)
}
func (sc *SystemConfig) load(filename string) error {
configData, err := os.ReadFile(filename)
if err != nil {
return err
}
// Load and unmarshall!
err = json.Unmarshal(configData, &sc)
if err != nil {
return err
}
return nil
}
// CheckDependenciesSilent checks for dependencies but
// only outputs if there's an error
func CheckDependenciesSilent(logger *Logger) (bool, error) {
logger.SetErrorOnly(true)
result, err := CheckDependencies(logger)
logger.SetErrorOnly(false)
return result, err
}
// CheckDependencies will look for Wails dependencies on the system
// Errors are reported in error and the bool return value is whether
// the dependencies are all installed.
func CheckDependencies(logger *Logger) (bool, error) {
switch runtime.GOOS {
case "darwin":
logger.Yellow("Detected Platform: OSX")
case "windows":
logger.Yellow("Detected Platform: Windows")
case "linux":
logger.Yellow("Detected Platform: Linux")
default:
return false, fmt.Errorf("Platform %s is currently not supported", runtime.GOOS)
}
logger.Yellow("Checking for prerequisites...")
// Check we have a cgo capable environment
requiredPrograms, err := GetRequiredPrograms()
if err != nil {
return false, nil
}
errors := false
programHelper := NewProgramHelper()
for _, program := range *requiredPrograms {
bin := programHelper.FindProgram(program.Name)
if bin == nil {
errors = true
logger.Error("Program '%s' not found. %s", program.Name, program.Help)
} else {
logger.Green("Program '%s' found: %s", program.Name, bin.Path)
}
}
// Linux has library deps
if runtime.GOOS == "linux" {
// Check library prerequisites
requiredLibraries, err := GetRequiredLibraries()
if err != nil {
return false, err
}
var libraryChecker CheckPkgInstalled
distroInfo := GetLinuxDistroInfo()
switch distroInfo.Distribution {
case Ubuntu, Debian, Zorin, Parrot, Linuxmint, Elementary, Kali, Neon, Deepin, Raspbian, PopOS, Uos:
libraryChecker = DpkgInstalled
case Arch, ArcoLinux, ArchLabs, Ctlos, Manjaro, ManjaroARM, EndeavourOS, ArtixLinux:
libraryChecker = PacmanInstalled
case CentOS, Fedora, Tumbleweed, Leap, RHEL:
libraryChecker = RpmInstalled
case Gentoo:
libraryChecker = EqueryInstalled
case VoidLinux:
libraryChecker = XbpsInstalled
case Solus:
libraryChecker = EOpkgInstalled
case Crux:
libraryChecker = PrtGetInstalled
case NixOS:
libraryChecker = NixEnvInstalled
default:
return false, RequestSupportForDistribution(distroInfo)
}
for _, library := range *requiredLibraries {
installed, err := libraryChecker(library.Name)
if err != nil {
return false, err
}
if !installed {
errors = true
logger.Error("Library '%s' not found. %s", library.Name, library.Help)
} else {
logger.Green("Library '%s' installed.", library.Name)
}
}
}
logger.White("")
return !errors, err
}

View file

@ -1,270 +0,0 @@
package cmd
import (
"bytes"
"encoding/json"
"fmt"
"log"
"os"
"path/filepath"
"runtime"
"strings"
"text/template"
"github.com/kennygrant/sanitize"
"github.com/leaanthony/slicer"
)
// TemplateMetadata holds all the metadata for a Wails template
type TemplateMetadata struct {
Name string `json:"name"`
Version string `json:"version"`
ShortDescription string `json:"shortdescription"`
Description string `json:"description"`
Install string `json:"install"`
Build string `json:"build"`
Author string `json:"author"`
Created string `json:"created"`
FrontendDir string `json:"frontenddir"`
Serve string `json:"serve"`
Bridge string `json:"bridge"`
WailsDir string `json:"wailsdir"`
TemplateDependencies []*TemplateDependency `json:"dependencies,omitempty"`
// List of platforms that this template is supported on.
// No value means all platforms. A platform name is the same string
// as `runtime.GOOS` will return, eg: "darwin". NOTE: This is
// case sensitive.
Platforms []string `json:"platforms,omitempty"`
}
// PlatformSupported returns true if this template supports the
// currently running platform
func (m *TemplateMetadata) PlatformSupported() bool {
// Default is all platforms supported
if len(m.Platforms) == 0 {
return true
}
// Check that the platform is in the list
platformsSupported := slicer.String(m.Platforms)
return platformsSupported.Contains(runtime.GOOS)
}
// TemplateDependency defines a binary dependency for the template
// EG: ng for angular
type TemplateDependency struct {
Bin string `json:"bin"`
Help string `json:"help"`
}
// TemplateDetails holds information about a specific template
type TemplateDetails struct {
Name string
Path string
Metadata *TemplateMetadata
fs *FSHelper
}
// TemplateHelper is a utility object to help with processing templates
type TemplateHelper struct {
templateDir *Dir
fs *FSHelper
metadataFilename string
}
// NewTemplateHelper creates a new template helper
func NewTemplateHelper() *TemplateHelper {
templateDir, err := fs.LocalDir("./templates")
if err != nil {
log.Fatal("Unable to find the template directory. Please reinstall Wails.")
}
return &TemplateHelper{
templateDir: templateDir,
metadataFilename: "template.json",
}
}
// IsValidTemplate returns true if the given template name resides on disk
func (t *TemplateHelper) IsValidTemplate(templateName string) bool {
pathToTemplate := filepath.Join(t.templateDir.fullPath, templateName)
return t.fs.DirExists(pathToTemplate)
}
// SanitizeFilename sanitizes the given string to make a valid filename
func (t *TemplateHelper) SanitizeFilename(name string) string {
return sanitize.Name(name)
}
// CreateNewTemplate creates a new template based on the given directory name and string
func (t *TemplateHelper) CreateNewTemplate(dirname string, details *TemplateMetadata) (string, error) {
// Check if this template has already been created
if t.IsValidTemplate(dirname) {
return "", fmt.Errorf("cannot create template in directory '%s' - already exists", dirname)
}
targetDir := filepath.Join(t.templateDir.fullPath, dirname)
err := t.fs.MkDir(targetDir)
if err != nil {
return "", err
}
targetMetadata := filepath.Join(targetDir, t.metadataFilename)
err = t.fs.SaveAsJSON(details, targetMetadata)
return targetDir, err
}
// LoadMetadata loads the template's 'metadata.json' file
func (t *TemplateHelper) LoadMetadata(dir string) (*TemplateMetadata, error) {
templateFile := filepath.Join(dir, t.metadataFilename)
result := &TemplateMetadata{}
if !t.fs.FileExists(templateFile) {
return nil, nil
}
rawJSON, err := os.ReadFile(templateFile)
if err != nil {
return nil, err
}
err = json.Unmarshal(rawJSON, &result)
return result, err
}
// GetTemplateDetails returns a map of Template structs containing details
// of the found templates
func (t *TemplateHelper) GetTemplateDetails() (map[string]*TemplateDetails, error) {
// Get the subdirectory details
templateDirs, err := t.templateDir.GetSubdirs()
if err != nil {
return nil, err
}
result := make(map[string]*TemplateDetails)
for name, dir := range templateDirs {
result[name] = &TemplateDetails{
Path: dir,
}
metadata, err := t.LoadMetadata(dir)
if err != nil {
return nil, err
}
result[name].Metadata = metadata
if metadata.Name != "" {
result[name].Name = metadata.Name
} else {
// Ignore bad templates?
result[name] = nil
}
}
return result, nil
}
// GetTemplateFilenames returns all the filenames of the given template
func (t *TemplateHelper) GetTemplateFilenames(template *TemplateDetails) (*slicer.StringSlicer, error) {
// Get the subdirectory details
templateDir, err := t.fs.Directory(template.Path)
if err != nil {
return nil, err
}
return templateDir.GetAllFilenames()
}
// InstallTemplate installs the template given in the project options to the
// project path given
func (t *TemplateHelper) InstallTemplate(projectPath string, projectOptions *ProjectOptions) error {
// Check dependencies before installing
dependencies := projectOptions.selectedTemplate.Metadata.TemplateDependencies
if dependencies != nil {
programHelper := NewProgramHelper()
logger := NewLogger()
errors := []string{}
for _, dep := range dependencies {
program := programHelper.FindProgram(dep.Bin)
if program == nil {
errors = append(errors, dep.Help)
}
}
if len(errors) > 0 {
mainError := "template dependencies not installed"
if len(errors) == 1 {
mainError = errors[0]
} else {
for _, error := range errors {
logger.Red(error)
}
}
return fmt.Errorf(mainError)
}
}
// Get template files
templateFilenames, err := t.GetTemplateFilenames(projectOptions.selectedTemplate)
if err != nil {
return err
}
templatePath := projectOptions.selectedTemplate.Path
// Save the version
projectOptions.WailsVersion = Version
templateJSONFilename := filepath.Join(templatePath, t.metadataFilename)
templateFiles := templateFilenames.Filter(func(filename string) bool {
filename = filepath.FromSlash(filename)
return strings.HasPrefix(filename, templatePath) && filename != templateJSONFilename
})
templateFiles.Each(func(templateFile string) {
// Setup filenames
relativeFilename := strings.TrimPrefix(templateFile, templatePath)[1:]
targetFilename, err := filepath.Abs(filepath.Join(projectOptions.OutputDirectory, relativeFilename))
if err != nil {
return
}
filedata, err := t.fs.LoadAsBytes(templateFile)
if err != nil {
return
}
// If file is a template, process it
if strings.HasSuffix(templateFile, ".template") {
templateData := string(filedata)
tmpl := template.New(templateFile)
tmpl.Parse(templateData)
var tpl bytes.Buffer
err = tmpl.Execute(&tpl, projectOptions)
if err != nil {
return
}
// Remove template suffix
targetFilename = strings.TrimSuffix(targetFilename, ".template")
// Set the filedata to the template result
filedata = tpl.Bytes()
}
// Normal file, just copy it
err = fs.CreateFile(targetFilename, filedata)
if err != nil {
return
}
})
if err != nil {
return err
}
return nil
}

View file

@ -1,13 +0,0 @@
# Editor configuration, see https://editorconfig.org
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true
[*.md]
max_line_length = off
trim_trailing_whitespace = false

View file

@ -1,47 +0,0 @@
# See http://help.github.com/ignore-files/ for more about ignoring files.
# compiled output
/dist
/tmp
/out-tsc
# Only exists if Bazel was run
/bazel-out
# dependencies
/node_modules
# profiling files
chrome-profiler-events.json
speed-measure-plugin.json
# IDEs and editors
/.idea
.project
.classpath
.c9/
*.launch
.settings/
*.sublime-workspace
# IDE - VSCode
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
.history/*
# misc
/.sass-cache
/connect.lock
/coverage
/libpeerconnection.log
npm-debug.log
yarn-error.log
testem.log
/typings
# System Files
.DS_Store
Thumbs.db
.editorcinfig

Some files were not shown because too many files have changed in this diff Show more