Compare commits

..

41 Commits

Author SHA1 Message Date
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
641 changed files with 44612 additions and 379 deletions
+8
View File
@@ -1,3 +1,11 @@
<!--
READ CAREFULLY: Before submitting your PR, please ensure you have created an issue for your PR.
It is essential that you do this so that we can discuss the proposed changes before you spend time on them.
If you do not create an issue, your PR may be rejected without review.
If a relevant issue already exists, please reference it in your PR by including `Fixes #<issue number>` in your PR description.
-->
# 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.
+2 -2
View File
@@ -14,7 +14,7 @@ jobs:
- uses: actions/checkout@v3
- name: Verify Changed files
uses: tj-actions/verify-changed-files@v11.1
uses: tj-actions/verify-changed-files@v17
id: verify-changed-files
with:
files: |
@@ -56,7 +56,7 @@ jobs:
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
go-version: [1.19]
go-version: ['1.20']
steps:
- name: Checkout code
@@ -15,7 +15,7 @@ jobs:
- name: Verify Changed files
id: changed-files
uses: tj-actions/changed-files@v35
uses: tj-actions/changed-files@v41
with:
files: |
website/**/*.mdx
+1 -1
View File
@@ -42,7 +42,7 @@
[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)
[Русский](README.ru.md) · [Francais](README.fr.md) · [Uzbek](README.uz.md)
</samp>
</strong>
+1 -1
View File
@@ -42,7 +42,7 @@
[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)
[Русский](README.ru.md) · [Francais](README.fr.md) · [Uzbek](README.uz.md)
</samp>
</strong>
+1 -1
View File
@@ -44,7 +44,7 @@
[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)
[Русский](README.ru.md) · [Francais](README.fr.md) · [Uzbek](README.uz.md)
</samp>
</strong>
+1 -1
View File
@@ -44,7 +44,7 @@
[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)
[Русский](README.ru.md) · [Francais](README.fr.md) · [Uzbek](README.uz.md)
</samp>
</strong>
+1 -1
View File
@@ -42,7 +42,7 @@
[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)
[Русский](README.ru.md) · [Francais](README.fr.md) · [Uzbek](README.uz.md)
</samp>
</strong>
+1 -1
View File
@@ -41,7 +41,7 @@
<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)
[한국어](README.ko.md) · [Español](README.es.md) · [Português](README.pt-br.md) · [Francais](README.fr.md) · [Uzbek](README.uz.md)
</samp>
</strong>
+1 -1
View File
@@ -41,7 +41,7 @@
<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)
[한국어](README.ko.md) · [Español](README.es.md) · [Русский](README.ru.md) · [Francais](README.fr.md) · [Uzbek](README.uz.md)
</samp>
</strong>
+158
View File
@@ -0,0 +1,158 @@
<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://dcbadge.vercel.app/api/server/BrRSWTaxVK?style=flat"/>
</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)
</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)
+1 -1
View File
@@ -44,7 +44,7 @@
[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)
[Русский](README.ru.md) · [Francais](README.fr.md) · [Uzbek](README.uz.md)
</samp>
</strong>
+30 -47
View File
@@ -108,7 +108,7 @@ func buildApplication(f *flags.Build) error {
{"Tags", "[" + strings.Join(f.GetTags(), ",") + "]"},
{"Race Detector", bool2Str(f.RaceDetector)},
}...)
if len(buildOptions.OutputFile) > 0 && f.GetTargets().Length() == 1 {
if len(buildOptions.OutputFile) > 0 && len(f.GetTargets()) == 1 {
tableData = append(tableData, []string{"Output File", f.OutputFilename})
}
pterm.DefaultSection.Println("Build Options")
@@ -145,16 +145,11 @@ func buildApplication(f *flags.Build) error {
// Allows cancelling the build after the first error. It would be nice if targets.Each would support funcs
// returning an error.
var targetErr error
targets := f.GetTargets()
targets.Each(func(platform string) {
if targetErr != nil {
return
}
if !validPlatformArch.Contains(platform) {
buildOptions.Logger.Println("platform '%s' is not supported - skipping. Supported platforms: %s", platform, validPlatformArch.Join(","))
return
for _, target := range targets {
if !validPlatformArch.Contains(target.Platform) {
buildOptions.Logger.Println("platform '%s' is not supported - skipping. Supported platforms: %s", target.Platform, validPlatformArch.Join(","))
continue
}
desiredFilename := projectOptions.OutputFilename
@@ -163,17 +158,13 @@ func buildApplication(f *flags.Build) error {
}
desiredFilename = strings.TrimSuffix(desiredFilename, ".exe")
// Calculate platform and arch
platformSplit := strings.Split(platform, "/")
buildOptions.Platform = platformSplit[0]
buildOptions.Arch = f.GetDefaultArch()
if len(platformSplit) > 1 {
buildOptions.Arch = platformSplit[1]
}
buildOptions.Platform = target.Platform
buildOptions.Arch = target.Arch
banner := "Building target: " + buildOptions.Platform + "/" + buildOptions.Arch
pterm.DefaultSection.Println(banner)
if f.Upx && platform == "darwin/universal" {
if f.Upx && target.String() == "darwin/universal" {
pterm.Warning.Println("Warning: compress flag unsupported for universal binaries. Ignoring.")
f.Upx = false
}
@@ -182,22 +173,19 @@ func buildApplication(f *flags.Build) error {
case "linux":
if runtime.GOOS != "linux" {
pterm.Warning.Println("Crosscompiling to Linux not currently supported.")
return
continue
}
case "darwin":
if runtime.GOOS != "darwin" {
pterm.Warning.Println("Crosscompiling to Mac not currently supported.")
return
continue
}
macTargets := targets.Filter(func(platform string) bool {
return strings.HasPrefix(platform, "darwin")
})
if macTargets.Length() == 2 {
if targets.MacTargetsCount() == 2 {
buildOptions.BundleName = fmt.Sprintf("%s-%s.app", desiredFilename, buildOptions.Arch)
}
}
if targets.Length() > 1 {
if len(targets) > 1 {
// target filename
switch buildOptions.Platform {
case "windows":
@@ -219,32 +207,27 @@ func buildApplication(f *flags.Build) error {
pterm.Warning.Println("obfuscated flag overrides skipbindings flag.")
buildOptions.SkipBindings = false
}
}
if !f.DryRun {
// Start Time
start := time.Now()
if !f.DryRun {
// Start Time
start := time.Now()
compiledBinary, err := build.Build(buildOptions)
if err != nil {
pterm.Error.Println(err.Error())
targetErr = err
return
}
buildOptions.IgnoreFrontend = true
buildOptions.CleanBinDirectory = false
// Output stats
buildOptions.Logger.Println(fmt.Sprintf("Built '%s' in %s.\n", compiledBinary, time.Since(start).Round(time.Millisecond).String()))
outputBinaries[buildOptions.Platform+"/"+buildOptions.Arch] = compiledBinary
} else {
pterm.Info.Println("Dry run: skipped build.")
compiledBinary, err := build.Build(buildOptions)
if err != nil {
pterm.Error.Println(err.Error())
return err
}
})
if targetErr != nil {
return targetErr
buildOptions.IgnoreFrontend = true
buildOptions.CleanBinDirectory = false
// Output stats
buildOptions.Logger.Println(fmt.Sprintf("Built '%s' in %s.\n", compiledBinary, time.Since(start).Round(time.Millisecond).String()))
outputBinaries[buildOptions.Platform+"/"+buildOptions.Arch] = compiledBinary
} else {
pterm.Info.Println("Dry run: skipped build.")
}
if f.DryRun {
+44 -3
View File
@@ -2,6 +2,7 @@ package main
import (
"fmt"
"github.com/wailsapp/wails/v2/internal/shell"
"runtime"
"runtime/debug"
"strconv"
@@ -93,7 +94,14 @@ func diagnoseEnvironment(f *flags.Doctor) error {
systemTabledata = append(systemTabledata, []string{prefix, cpu.Model})
}
} else {
systemTabledata = append(systemTabledata, []string{"CPU", "Unknown"})
cpuInfo := "Unknown"
if runtime.GOOS == "darwin" {
// Try to get CPU info from sysctl
if stdout, _, err := shell.RunCommand("", "sysctl", "-n", "machdep.cpu.brand_string"); err == nil {
cpuInfo = strings.TrimSpace(stdout)
}
}
systemTabledata = append(systemTabledata, []string{"CPU", cpuInfo})
}
// Probe GPU
@@ -112,14 +120,47 @@ func diagnoseEnvironment(f *flags.Doctor) error {
systemTabledata = append(systemTabledata, []string{prefix, details})
}
} else {
systemTabledata = append(systemTabledata, []string{"GPU", "Unknown"})
gpuInfo := "Unknown"
if runtime.GOOS == "darwin" {
// Try to get GPU info from system_profiler
if stdout, _, err := shell.RunCommand("", "system_profiler", "SPDisplaysDataType"); err == nil {
var (
startCapturing bool
gpuInfoDetails []string
)
for _, line := range strings.Split(stdout, "\n") {
if strings.Contains(line, "Chipset Model") {
startCapturing = true
}
if startCapturing {
gpuInfoDetails = append(gpuInfoDetails, strings.TrimSpace(line))
}
if strings.Contains(line, "Metal Support") {
break
}
}
if len(gpuInfoDetails) > 0 {
gpuInfo = strings.Join(gpuInfoDetails, " ")
}
}
}
systemTabledata = append(systemTabledata, []string{"GPU", gpuInfo})
}
memory, _ := ghw.Memory()
if memory != nil {
systemTabledata = append(systemTabledata, []string{"Memory", strconv.Itoa(int(memory.TotalPhysicalBytes/1024/1024/1024)) + "GB"})
} else {
systemTabledata = append(systemTabledata, []string{"Memory", "Unknown"})
memInfo := "Unknown"
if runtime.GOOS == "darwin" {
// Try to get Memory info from sysctl
if stdout, _, err := shell.RunCommand("", "sysctl", "-n", "hw.memsize"); err == nil {
if memSize, err := strconv.Atoi(strings.TrimSpace(stdout)); err == nil {
memInfo = strconv.Itoa(memSize/1024/1024/1024) + "GB"
}
}
}
systemTabledata = append(systemTabledata, []string{"Memory", memInfo})
}
err = pterm.DefaultTable.WithBoxed().WithData(systemTabledata).Render()
+4 -28
View File
@@ -2,13 +2,10 @@ package flags
import (
"fmt"
"os"
"os/exec"
"runtime"
"strings"
"github.com/leaanthony/slicer"
"github.com/wailsapp/wails/v2/internal/system"
"github.com/wailsapp/wails/v2/pkg/commands/build"
"github.com/wailsapp/wails/v2/pkg/commands/buildtags"
)
@@ -49,29 +46,15 @@ type Build struct {
compilerPath string
userTags []string
wv2rtstrategy string // WebView2 runtime strategy
defaultArch string // Default architecture
}
func (b *Build) Default() *Build {
defaultPlatform := os.Getenv("GOOS")
if defaultPlatform == "" {
defaultPlatform = runtime.GOOS
}
defaultArch := os.Getenv("GOARCH")
if defaultArch == "" {
if system.IsAppleSilicon {
defaultArch = "arm64"
} else {
defaultArch = runtime.GOARCH
}
}
target := defaultTarget()
result := &Build{
Platform: defaultPlatform + "/" + defaultArch,
Platform: target.Platform,
WebView2: "download",
GarbleArgs: "-literals -tiny -seed=random",
defaultArch: defaultArch,
}
result.BuildCommon = result.BuildCommon.Default()
return result
@@ -88,11 +71,8 @@ func (b *Build) GetWebView2Strategy() string {
return b.wv2rtstrategy
}
func (b *Build) GetTargets() *slicer.StringSlicer {
var targets slicer.StringSlicer
targets.AddSlice(strings.Split(b.Platform, ","))
targets.Deduplicate()
return &targets
func (b *Build) GetTargets() TargetsCollection {
return parseTargets(b.Platform)
}
func (b *Build) GetCompilerPath() string {
@@ -144,10 +124,6 @@ func (b *Build) GetBuildModeAsString() string {
return "production"
}
func (b *Build) GetDefaultArch() string {
return b.defaultArch
}
/*
_, _ = fmt.Fprintf(w, "Frontend Directory: \t%s\n", projectOptions.GetFrontendDir())
_, _ = fmt.Fprintf(w, "Obfuscated: \t%t\n", buildOptions.Obfuscated)
+98
View File
@@ -1,5 +1,103 @@
package flags
import (
"fmt"
"os"
"runtime"
"strings"
"github.com/leaanthony/slicer"
"github.com/pterm/pterm"
"github.com/wailsapp/wails/v2/internal/system"
)
type Common struct {
NoColour bool `description:"Disable colour in output"`
}
type Target struct {
Platform string
Arch string
}
func defaultTarget() Target {
defaultPlatform := os.Getenv("GOOS")
if defaultPlatform == "" {
defaultPlatform = runtime.GOOS
}
defaultArch := os.Getenv("GOARCH")
if defaultArch == "" {
if system.IsAppleSilicon {
defaultArch = "arm64"
} else {
defaultArch = runtime.GOARCH
}
}
return Target{
Platform: defaultPlatform,
Arch: defaultArch,
}
}
type TargetsCollection []Target
func (c TargetsCollection) MacTargetsCount() int {
count := 0
for _, t := range c {
if strings.HasPrefix(t.Platform, "darwin") {
count++
}
}
return count
}
func (t Target) String() string {
if t.Arch != "" {
return fmt.Sprintf("%s/%s", t.Platform, t.Arch)
}
return t.Platform
}
func parseTargets(platform string) TargetsCollection {
allowedPlatforms := map[string]bool{
"windows": true,
"linux": true,
"darwin": true,
}
if !allowedPlatforms[platform] {
pterm.Error.Println("platform argument must be one of 'windows', 'linux', or 'darwin'")
os.Exit(1)
}
var result []Target
var targets slicer.StringSlicer
targets.AddSlice(strings.Split(platform, ","))
targets.Deduplicate()
targets.Each(func(platform string) {
target := Target{
Platform: "",
Arch: "",
}
platformSplit := strings.Split(platform, "/")
target.Platform = platformSplit[0]
if len(platformSplit) > 1 {
target.Arch = platformSplit[1]
} else {
target.Arch = defaultTarget().Arch
}
result = append(result, target)
})
return result
}
+8 -3
View File
@@ -6,7 +6,6 @@ import (
"net/url"
"os"
"path/filepath"
"runtime"
"github.com/samber/lo"
"github.com/wailsapp/wails/v2/internal/project"
@@ -17,6 +16,7 @@ type Dev struct {
BuildCommon
AssetDir string `flag:"assetdir" description:"Serve assets from the given directory instead of using the provided asset FS"`
Platform string `flag:"platform" description:"Platform to target"`
Extensions string `flag:"e" description:"Extensions to trigger rebuilds (comma separated) eg go"`
ReloadDirs string `flag:"reloaddirs" description:"Additional directories to trigger reloads (comma separated)"`
Browser bool `flag:"browser" description:"Open the application in a browser"`
@@ -38,10 +38,13 @@ type Dev struct {
}
func (*Dev) Default() *Dev {
target := defaultTarget()
result := &Dev{
Extensions: "go",
Debounce: 100,
Platform: target.Platform,
}
result.BuildCommon = result.BuildCommon.Default()
return result
}
@@ -116,13 +119,15 @@ func (d *Dev) loadAndMergeProjectConfig() error {
// GenerateBuildOptions creates a build.Options using the flags
func (d *Dev) GenerateBuildOptions() *build.Options {
targets := parseTargets(d.Platform)
result := &build.Options{
OutputType: "dev",
Mode: build.Dev,
Devtools: true,
Arch: runtime.GOARCH,
Arch: targets[0].Arch,
Pack: true,
Platform: runtime.GOOS,
Platform: targets[0].Platform,
LDFlags: d.LdFlags,
Compiler: d.Compiler,
ForceBuild: d.ForceBuild,
+7
View File
@@ -2,6 +2,7 @@ package flags
type GenerateModule struct {
Common
Compiler string `description:"Use a different go compiler to build, eg go1.15beta1"`
Tags string `description:"Build tags to pass to Go compiler. Must be quoted. Space or comma (but not both) separated"`
Verbosity int `name:"v" description:"Verbosity level (0 = quiet, 1 = normal, 2 = verbose)"`
}
@@ -12,3 +13,9 @@ type GenerateTemplate struct {
Frontend string `description:"Frontend to use for the template"`
Quiet bool `description:"Suppress output"`
}
func (c *GenerateModule) Default() *GenerateModule {
return &GenerateModule{
Compiler: "go",
}
}
+1
View File
@@ -48,6 +48,7 @@ func generateModule(f *flags.GenerateModule) error {
}
_, err = bindings.GenerateBindings(bindings.Options{
Compiler: f.Compiler,
Tags: buildTags,
TsPrefix: projectConfig.Bindings.TsGeneration.Prefix,
TsSuffix: projectConfig.Bindings.TsGeneration.Suffix,
+17 -1
View File
@@ -61,7 +61,7 @@ func Application(f *flags.Dev, logger *clilogger.CLILogger) error {
}
// Run go mod tidy to ensure we're up-to-date
err = runCommand(cwd, false, "go", "mod", "tidy")
err = runCommand(cwd, false, f.Compiler, "mod", "tidy")
if err != nil {
return err
}
@@ -268,6 +268,16 @@ func runFrontendDevWatcherCommand(frontendDirectory string, devCommand string, d
}, viteServerURL, viteVersion, nil
}
func isWsl() bool {
version, err := os.ReadFile("/proc/version")
if err != nil {
return false
}
return strings.Contains(strings.ToLower(string(version)), "wsl")
}
// restartApp does the actual rebuilding of the application when files change
func restartApp(buildOptions *build.Options, debugBinaryProcess *process.Process, f *flags.Dev, exitCodeChannel chan int, legacyUseDevServerInsteadofCustomScheme bool) (*process.Process, string, error) {
appBinary, err := build.Build(buildOptions)
@@ -306,6 +316,12 @@ func restartApp(buildOptions *build.Options, debugBinaryProcess *process.Process
os.Setenv("devserver", f.DevServer)
os.Setenv("frontenddevserverurl", f.FrontendDevServerURL)
if buildOptions.IsWindowsTargetPlatform() && isWsl() {
// In the case of building a Windows executable under WSL, we need to specify this variable with a list of
// variables that will be passed through
os.Setenv("WSLENV", "loglevel/w:frontenddevserverurl/w:devserver/w:assetdir/w")
}
// Start up new binary with correct args
newProcess := process.NewProcess(appBinary, args...)
err = newProcess.Start(exitCodeChannel)

Some files were not shown because too many files have changed in this diff Show More