Compare commits

...

30 Commits

Author SHA1 Message Date
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
79 changed files with 1744 additions and 652 deletions
+4 -12
View File
@@ -6,15 +6,9 @@ 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/)
#####################################################
<!---
*** Please note: No new bug reports are being accepted for Wails v1 ***
--->
**Description**
A clear and concise description of what the bug is.
@@ -33,9 +27,7 @@ A clear and concise description of what you expected to happen.
If applicable, add screenshots to help explain your problem.
**System Details**
V2 users: Please add the output of `wails doctor`.
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/)
@@ -6,6 +6,9 @@ labels: enhancement
assignees: ''
---
<!---
*** Please note: No new feature requests are being accepted for Wails v1 ***
--->
**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 [...]
+10 -4
View File
@@ -1,5 +1,5 @@
<p align="center" style="text-align: center">
<img src="logo.png" width="55%"><br/>
<img src="logo-universal.png" width="55%"><br/>
</p>
<p align="center">
Build desktop applications using Go & Web Technologies.<br/><br/>
@@ -79,12 +79,18 @@ approach: it provides the ability to wrap both Go code and a web frontend into a
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>
<hr/>
<h3><strong>PLEASE NOTE: As we are approaching the v2 release, we are not accepting any new feature requests or bug reports for v1. If you have a critical issue, please open a ticket and state why it is critical.</strong></h3>
<hr/>
### Official Website
### Version 2
The official docs can be found at [https://wails.app](https://wails.app).
Wails v2 has been released in Beta for all 3 platforms. Check out the [new website](https://wails.io) if you are
interested in trying it out.
Click [here](https://wails.io) if you are interested in trying out v2 Beta for Windows.
### Legacy v1 Website
The legacy v1 docs can be found at [https://wails.app](https://wails.app).
<span id="nav-4"></span>
+6 -2
View File
@@ -1,5 +1,5 @@
<p align="center" style="text-align: center">
<img src="logo.png" width="55%"><br/>
<img src="logo-universal.png" width="55%"><br/>
</p>
<p align="center">
使用 Go 和 Web 技术构建桌面应用程序。<br/><br/>
@@ -81,9 +81,13 @@
### 官方网站
#### v1
官方文档可以在 [https://wails.app](https://wails.app) 中找到。
如果您对适用于 Windows 的 v2 测试版感兴趣,可以点击[此处](https://wails.io)查看。
#### v2
Wails v2 已针对所有 3 个平台发布了 Beta 版。如果您有兴趣尝试一下,请查看[新网站](https://wails.io)。
镜像网站:
Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 162 KiB

+33 -10
View File
@@ -93,6 +93,9 @@ func AddBuildSubcommand(app *clir.Cli, w io.Writer) {
debug := false
command.BoolFlag("debug", "Retains debug data in the compiled application", &debug)
nsis := false
command.BoolFlag("nsis", "Generate NSIS installer for Windows", &nsis)
command.Action(func() error {
quiet := verbosity == 0
@@ -117,20 +120,12 @@ func AddBuildSubcommand(app *clir.Cli, w io.Writer) {
}
// Tags
experimental := false
userTags := []string{}
for _, tag := range strings.Split(tags, " ") {
thisTag := strings.TrimSpace(tag)
if thisTag != "" {
userTags = append(userTags, thisTag)
}
if thisTag == "exp" {
experimental = true
}
}
if runtime.GOOS == "linux" && !experimental {
return fmt.Errorf("Linux version coming soon!")
}
// Webview2 installer strategy (download by default)
@@ -214,6 +209,9 @@ func AddBuildSubcommand(app *clir.Cli, w io.Writer) {
return err
}
projectOptions, err := project.Load(cwd)
if err != nil {
return err
}
// Check platform
validPlatformArch := slicer.String([]string{
@@ -229,7 +227,15 @@ func AddBuildSubcommand(app *clir.Cli, w io.Writer) {
"windows/arm64",
})
outputBinaries := map[string]string{}
// 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.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(","))
@@ -301,18 +307,35 @@ func AddBuildSubcommand(app *clir.Cli, w io.Writer) {
outputFilename, err := build.Build(buildOptions)
if err != nil {
logger.Println("Error: ", err.Error())
logger.Println("Error: %s", err.Error())
targetErr = err
return
}
// Subsequent iterations
buildOptions.IgnoreFrontend = true
buildOptions.CleanBuildDirectory = false
// Output stats
buildOptions.Logger.Println(fmt.Sprintf("Built '%s' in %s.\n", outputFilename, time.Since(start).Round(time.Millisecond).String()))
outputBinaries[platform] = outputFilename
})
if targetErr != nil {
return targetErr
}
if nsis {
amd64Binary := outputBinaries["windows/amd64"]
arm64Binary := outputBinaries["windows/arm64"]
if amd64Binary == "" && arm64Binary == "" {
return fmt.Errorf("cannot build nsis installer - no windows targets")
}
if err := build.GenerateNSISInstaller(buildOptions, amd64Binary, arm64Binary); err != nil {
return err
}
}
return nil
})
}
+6 -14
View File
@@ -103,20 +103,12 @@ func AddSubcommand(app *clir.Cli, w io.Writer) error {
logger := clilogger.New(w)
app.PrintBanner()
experimental := false
userTags := []string{}
for _, tag := range strings.Split(flags.tags, " ") {
thisTag := strings.TrimSpace(tag)
if thisTag != "" {
userTags = append(userTags, thisTag)
}
if thisTag == "exp" {
experimental = true
}
}
if runtime.GOOS == "linux" && !experimental {
return fmt.Errorf("Linux version coming soon!")
}
cwd, err := os.Getwd()
@@ -150,10 +142,10 @@ func AddSubcommand(app *clir.Cli, w io.Writer) error {
return err
}
// frontend:dev server command
if projectConfig.DevCommand != "" {
// frontend:dev:watcher command.
if command := projectConfig.DevWatcherCommand; command != "" {
var devCommandWaitGroup sync.WaitGroup
closer := runFrontendDevCommand(cwd, projectConfig.DevCommand, &devCommandWaitGroup)
closer := runFrontendDevWatcherCommand(cwd, command, &devCommandWaitGroup)
defer closer(&devCommandWaitGroup)
}
@@ -376,9 +368,9 @@ func loadAndMergeProjectConfig(cwd string, flags *devFlags) (*project.Project, e
return projectConfig, nil
}
// runFrontendDevCommand will run the `frontend:dev` command if it was given, ex- `npm run dev`
func runFrontendDevCommand(cwd string, devCommand string, wg *sync.WaitGroup) func(group *sync.WaitGroup) {
LogGreen("Running frontend dev command: '%s'", devCommand)
// runFrontendDevWatcherCommand will run the `frontend:dev:watcher` command if it was given, ex- `npm run dev`
func runFrontendDevWatcherCommand(cwd string, devCommand string, wg *sync.WaitGroup) func(group *sync.WaitGroup) {
LogGreen("Running frontend dev watcher command: '%s'", devCommand)
ctx, cancel := context.WithCancel(context.Background())
dir := filepath.Join(cwd, "frontend")
cmdSlice := strings.Split(devCommand, " ")
@@ -26,6 +26,13 @@ func (a App) domReady(ctx context.Context) {
// Add your action here
}
// beforeClose is called when the application is about to quit,
// either by clicking the window close button or calling runtime.Quit.
// Returning true will cause the application to continue, false will continue shutdown as normal.
func (a *App) beforeClose(ctx context.Context) (prevent bool) {
return false
}
// shutdown is called at application termination
func (a *App) shutdown(ctx context.Context) {
// Perform your teardown here
@@ -7,23 +7,27 @@ import (
"github.com/wailsapp/wails/v2"
"github.com/wailsapp/wails/v2/pkg/logger"
"github.com/wailsapp/wails/v2/pkg/options"
"github.com/wailsapp/wails/v2/pkg/options/mac"
"github.com/wailsapp/wails/v2/pkg/options/windows"
)
//go:embed frontend/dist
var assets embed.FS
//go:embed build/appicon.png
var icon []byte
func main() {
// Create an instance of the app structure
app := NewApp()
// Create application with options
err := wails.Run(&options.App{
Title: "{{.ProjectName}}",
Width: 1024,
Height: 768,
// MinWidth: 720,
// MinHeight: 570,
Title: "{{.ProjectName}}",
Width: 1024,
Height: 768,
MinWidth: 1024,
MinHeight: 768,
// MaxWidth: 1280,
// MaxHeight: 740,
DisableResize: false,
@@ -31,12 +35,16 @@ func main() {
Frameless: false,
StartHidden: false,
HideWindowOnClose: false,
RGBA: &options.RGBA{255, 255, 255, 255},
RGBA: &options.RGBA{R: 255, G: 255, B: 255, A: 255},
Assets: assets,
Menu: nil,
Logger: nil,
LogLevel: logger.DEBUG,
OnStartup: app.startup,
OnDomReady: app.domReady,
OnBeforeClose: app.beforeClose,
OnShutdown: app.shutdown,
WindowStartState: options.Normal,
Bind: []interface{}{
app,
},
@@ -45,6 +53,27 @@ func main() {
WebviewIsTransparent: false,
WindowIsTranslucent: false,
DisableWindowIcon: false,
// DisableFramelessWindowDecorations: false,
WebviewUserDataPath: "",
},
// Mac platform specific options
Mac: &mac.Options{
TitleBar: &mac.TitleBar{
TitlebarAppearsTransparent: true,
HideTitle: false,
HideTitleBar: false,
FullSizeContent: false,
UseToolbar: false,
HideToolbarSeparator: true,
},
Appearance: mac.NSAppearanceNameDarkAqua,
WebviewIsTransparent: true,
WindowIsTranslucent: true,
About: &mac.AboutInfo{
Title: "{{.ProjectName}}",
Message: "",
Icon: icon,
},
},
})
@@ -1,16 +0,0 @@
{
"name": "{{.ProjectName}}",
"author": "",
"private": true,
"scripts": {
"install": "go install github.com/wailsapp/wails/v2/cmd/wails@latest",
"build": "wails build --clean",
"build:macos": "npm run build -- --platform darwin/universal",
"build:macos-arm": "npm run build -- --platform darwin/arm64",
"build:macos-intel": "npm run build -- --platform darwin",
"build:windows": "npm run build -- --platform windows/amd64"
},
"workspaces": [
"frontend"
]
}
@@ -0,0 +1,9 @@
#! /bin/bash
echo -e "Start running the script..."
cd ../
echo -e "Start building the app for macos platform..."
wails build --clean --platform darwin/arm64
echo -e "End running the script!"
@@ -0,0 +1,9 @@
#! /bin/bash
echo -e "Start running the script..."
cd ../
echo -e "Start building the app for macos platform..."
wails build --clean --platform darwin
echo -e "End running the script!"
@@ -0,0 +1,9 @@
#! /bin/bash
echo -e "Start running the script..."
cd ../
echo -e "Start building the app for macos platform..."
wails build --clean --platform darwin/universal
echo -e "End running the script!"
@@ -0,0 +1,9 @@
#! /bin/bash
echo -e "Start running the script..."
cd ../
echo -e "Start building the app for windows platform..."
wails build --clean --platform windows/amd64
echo -e "End running the script!"
@@ -0,0 +1,9 @@
#! /bin/bash
echo -e "Start running the script..."
cd ../
echo -e "Start building the app..."
wails build --clean
echo -e "End running the script!"
@@ -0,0 +1,14 @@
#! /bin/bash
echo -e "Start running the script..."
cd ../
echo -e "Current Go version: \c"
go version
echo -e "Install the Wails command line tool..."
go install github.com/wailsapp/wails/v2/cmd/wails@latest
echo -e "Successful installation!"
echo -e "End running the script!"
@@ -2,8 +2,6 @@ package initialise
import (
"fmt"
"github.com/flytam/filenamify"
"github.com/leaanthony/slicer"
"io"
"os"
"os/exec"
@@ -11,6 +9,9 @@ import (
"strings"
"time"
"github.com/flytam/filenamify"
"github.com/leaanthony/slicer"
"github.com/wailsapp/wails/v2/pkg/buildassets"
"github.com/wailsapp/wails/v2/cmd/wails/internal/commands/initialise/templates"
@@ -149,7 +150,7 @@ func initProject(options *templates.Options, quiet bool) error {
}
// Install the default assets
err = buildassets.Install(options.TargetDir, options.ProjectName)
err = buildassets.Install(options.TargetDir)
if err != nil {
return err
}
@@ -12,6 +12,7 @@ import (
"strings"
"github.com/go-git/go-git/v5"
"github.com/go-git/go-git/v5/plumbing"
"github.com/pkg/errors"
"github.com/leaanthony/debme"
@@ -295,9 +296,17 @@ func gitclone(options *Options) (string, error) {
if err != nil {
return "", err
}
_, err = git.PlainClone(dirname, false, &git.CloneOptions{
URL: options.TemplateName,
})
// Parse remote template url and version number
templateInfo := strings.Split(options.TemplateName, "@")
cloneOption := &git.CloneOptions{
URL: templateInfo[0],
}
if len(templateInfo) > 1 {
cloneOption.ReferenceName = plumbing.NewTagReferenceName(templateInfo[1])
}
_, err = git.PlainClone(dirname, false, cloneOption)
return dirname, err

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