From 24530d9da4d4ccebe43415a87b9d39c98e1b1970 Mon Sep 17 00:00:00 2001 From: Lea Anthony Date: Thu, 24 Oct 2019 09:36:42 +1100 Subject: [PATCH 1/6] fix: force install when node_modules missing (#268) --- cmd/helpers.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/cmd/helpers.go b/cmd/helpers.go index b251333f..4d188e97 100644 --- a/cmd/helpers.go +++ b/cmd/helpers.go @@ -219,6 +219,15 @@ func InstallFrontendDeps(projectDir string, projectOptions *ProjectOptions, forc 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 From 315ef5f7ea352122c08434d84db05063aab3f4e7 Mon Sep 17 00:00:00 2001 From: Lea Anthony Date: Thu, 24 Oct 2019 16:04:32 +1100 Subject: [PATCH 2/6] fix: detect encoding on windows (#266) * fix: linting * chore: bump version --- cmd/version.go | 2 +- config.go | 7 +++++-- go.mod | 4 +++- go.sum | 3 +++ runtime/window.go | 51 ++++++++++++++++++++++++++++++++++++++++++++++- 5 files changed, 62 insertions(+), 5 deletions(-) diff --git a/cmd/version.go b/cmd/version.go index fed0473c..c9afe756 100644 --- a/cmd/version.go +++ b/cmd/version.go @@ -1,4 +1,4 @@ package cmd // Version - Wails version -const Version = "v0.18.4" +const Version = "v0.18.7-pre" diff --git a/config.go b/config.go index 4f87a6ad..57f27461 100644 --- a/config.go +++ b/config.go @@ -1,6 +1,9 @@ package wails -import "github.com/leaanthony/mewn" +import ( + "github.com/leaanthony/mewn" + "github.com/wailsapp/wails/runtime" +) // AppConfig is the configuration structure used when creating a Wails App object type AppConfig struct { @@ -65,7 +68,7 @@ func (a *AppConfig) merge(in *AppConfig) error { a.CSS = in.CSS } if in.Title != "" { - a.Title = in.Title + a.Title = runtime.ProcessEncoding(in.Title) } if in.Colour != "" { diff --git a/go.mod b/go.mod index d725cb72..fe1ff809 100644 --- a/go.mod +++ b/go.mod @@ -2,6 +2,7 @@ module github.com/wailsapp/wails require ( github.com/Masterminds/semver v1.4.2 + github.com/abadojack/whatlanggo v1.0.1 github.com/dchest/cssmin v0.0.0-20151210170030-fb8d9b44afdc // indirect github.com/dchest/htmlmin v0.0.0-20150526090704-e254725e81ac github.com/dchest/jsmin v0.0.0-20160823214000-faeced883947 // indirect @@ -26,6 +27,7 @@ require ( golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529 // indirect golang.org/x/net v0.0.0-20190509222800-a4d6f7feada5 // indirect golang.org/x/sys v0.0.0-20190509141414-a5b02f93d862 + golang.org/x/text v0.3.0 gopkg.in/AlecAivazis/survey.v1 v1.8.4 gopkg.in/yaml.v3 v3.0.0-20190709130402-674ba3eaed22 -) +) \ No newline at end of file diff --git a/go.sum b/go.sum index 96626b9a..96ea28f1 100644 --- a/go.sum +++ b/go.sum @@ -2,6 +2,8 @@ github.com/Masterminds/semver v1.4.2 h1:WBLTQ37jOCzSLtXNdoo8bNM8876KhNqOKvrlGITg github.com/Masterminds/semver v1.4.2/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= github.com/Netflix/go-expect v0.0.0-20180615182759-c93bf25de8e8 h1:xzYJEypr/85nBpB11F9br+3HUrpgb+fcm5iADzXXYEw= github.com/Netflix/go-expect v0.0.0-20180615182759-c93bf25de8e8/go.mod h1:oX5x61PbNXchhh0oikYAH+4Pcfw5LKv21+Jnpr6r6Pc= +github.com/abadojack/whatlanggo v1.0.1 h1:19N6YogDnf71CTHm3Mp2qhYfkRdyvbgwWdd2EPxJRG4= +github.com/abadojack/whatlanggo v1.0.1/go.mod h1:66WiQbSbJBIlOZMsvbKe5m6pzQovxCH9B/K8tQB2uoc= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -85,6 +87,7 @@ golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190509141414-a5b02f93d862 h1:rM0ROo5vb9AdYJi1110yjWGMej9ITfKddS89P3Fkhug= golang.org/x/sys v0.0.0-20190509141414-a5b02f93d862/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= gopkg.in/AlecAivazis/survey.v1 v1.8.4 h1:10xXXN3wgIhPheb5NI58zFgZv32Ana7P3Tl4shW+0Qc= gopkg.in/AlecAivazis/survey.v1 v1.8.4/go.mod h1:iBNOmqKz/NUbZx3bA+4hAGLRC7fSK7tgtVDT4tB22XA= diff --git a/runtime/window.go b/runtime/window.go index ebad1e25..960e02b7 100644 --- a/runtime/window.go +++ b/runtime/window.go @@ -1,6 +1,54 @@ package runtime -import "github.com/wailsapp/wails/lib/interfaces" +import ( + "bytes" + "runtime" + + "github.com/abadojack/whatlanggo" + "github.com/wailsapp/wails/lib/interfaces" + "golang.org/x/text/encoding" + "golang.org/x/text/encoding/japanese" + "golang.org/x/text/encoding/korean" + "golang.org/x/text/encoding/simplifiedchinese" + "golang.org/x/text/transform" +) + +func detectEncoding(text string) (encoding.Encoding, string) { + // korean + var enc encoding.Encoding + info := whatlanggo.Detect(text) + //fmt.Println("Language:", info.Lang.String(), " Script:", whatlanggo.Scripts[info.Script], " Confidence: ", info.Confidence) + switch info.Lang.String() { + case "Korean": + enc = korean.EUCKR + case "Mandarin": + enc = simplifiedchinese.GBK + case "Japanese": + enc = japanese.EUCJP + } + return enc, info.Lang.String() +} + +// ProcessEncoding attempts to convert CKJ strings to UTF-8 +func ProcessEncoding(text string) string { + if runtime.GOOS != "windows" { + return text + } + + encoding, _ := detectEncoding(text) + if encoding != nil { + var bufs bytes.Buffer + wr := transform.NewWriter(&bufs, encoding.NewEncoder()) + _, err := wr.Write([]byte(text)) + defer wr.Close() + if err != nil { + return "" + } + + return bufs.String() + } + return text +} // Window exposes an interface for manipulating the window type Window struct { @@ -31,6 +79,7 @@ func (r *Window) UnFullscreen() { // SetTitle sets the the window title func (r *Window) SetTitle(title string) { + title = ProcessEncoding(title) r.renderer.SetTitle(title) } From 6795f6c678cc5b9a9a78de33980eb4c245476e74 Mon Sep 17 00:00:00 2001 From: Lea Anthony Date: Thu, 24 Oct 2019 16:11:50 +1100 Subject: [PATCH 3/6] Migrate tool (#270) Experimental migration tool for projects < v1.0.0 --- cmd/program.go | 13 ++ cmd/project.go | 29 +++ cmd/wails/15_migrate.go | 408 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 450 insertions(+) create mode 100644 cmd/wails/15_migrate.go diff --git a/cmd/program.go b/cmd/program.go index 3b81b225..680dd17e 100644 --- a/cmd/program.go +++ b/cmd/program.go @@ -100,6 +100,19 @@ func (p *ProgramHelper) InstallGoPackage(packageName string) error { 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, " ") diff --git a/cmd/project.go b/cmd/project.go index a30c867c..91de152c 100644 --- a/cmd/project.go +++ b/cmd/project.go @@ -13,6 +13,18 @@ import ( "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"` @@ -153,6 +165,23 @@ func (po *ProjectOptions) Defaults() { po.WailsVersion = Version } +// 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 { diff --git a/cmd/wails/15_migrate.go b/cmd/wails/15_migrate.go new file mode 100644 index 00000000..39a6ddb4 --- /dev/null +++ b/cmd/wails/15_migrate.go @@ -0,0 +1,408 @@ +package main + +import ( + "bufio" + "fmt" + "io/ioutil" + "log" + "os" + "path/filepath" + "regexp" + "strings" + + "github.com/Masterminds/semver" + "github.com/leaanthony/spinner" + "github.com/wailsapp/wails/cmd" +) + +// Constants +var checkSpinner = spinner.NewSpinner() +var migrateProjectOptions = &cmd.ProjectOptions{} +var migrateFS = cmd.NewFSHelper() +var migrateGithub = cmd.NewGitHubHelper() +var programHelper = cmd.NewProgramHelper() +var lessThanV1 *semver.Constraints + +// The user's go.mod +var goMod string +var goModFile string + +// The user's main.js +var mainJSFile string +var mainJSContents string + +// Frontend directory +var frontEndDir string + +func init() { + + var dryrun bool + var err error + + lessThanV1, err = semver.NewConstraint("< v1.0.0") + if err != nil { + log.Fatal(err) + } + + // var forceRebuild = false + checkSpinner.SetSpinSpeed(50) + + commandDescription := `EXPERIMENTAL - This command attempts to migrate projects to the latest Wails version.` + updateCmd := app.Command("migrate", "Migrate projects to latest Wails release"). + LongDescription(commandDescription). + BoolFlag("dryrun", "Only display what would be done", &dryrun) + + updateCmd.Action(func() error { + + message := "Migrate Project" + logger.PrintSmallBanner(message) + logger.Red("WARNING: This is an experimental command. Ensure you have backups of your project!") + logger.Red("It currently only supports npm based projects.") + fmt.Println() + + // Check project directory + err := checkProjectDirectory() + if err != nil { + return err + } + + // Find Wails version from go.mod + wailsVersion, err := getWailsVersion() + if err != nil { + return err + } + + // Get latest stable version + var latestVersion *semver.Version + latestVersion, err = getLatestWailsVersion() + if err != nil { + return err + } + + var canMigrate bool + canMigrate, err = canMigrateVersion(wailsVersion, latestVersion) + if err != nil { + return err + } + + if !canMigrate { + return nil + } + + // Check for wailsbridge + wailsBridge, err := checkWailsBridge() + if err != nil { + return err + } + + // Is main.js using bridge.Init() + canUpdateMainJS, err := checkMainJS() + if err != nil { + return err + } + + // TODO: Check if we are using legacy js runtime + + // Operations + logger.Yellow("Operations to perform:") + + logger.Yellowf(" - Update to Wails v%s\n", latestVersion) + + if len(wailsBridge) > 0 { + logger.Yellow(" - Delete wailsbridge.js") + } + + if canUpdateMainJS { + logger.Yellow(" - Patch main.js") + } + + logger.Yellow(" - Ensure '@wailsapp/runtime` module is installed") + + if dryrun { + logger.White("Exiting: Dry Run") + return nil + } + + logger.Red("*WARNING* About to modify your project!") + logger.Red("Type 'YES' to continue: ") + scanner := bufio.NewScanner(os.Stdin) + scanner.Scan() + input := scanner.Text() + if input != "YES" { + logger.Red("ABORTED!") + return nil + } + + logger.Yellow("Let's do this!") + + err = updateWailsVersion(wailsVersion, latestVersion) + if err != nil { + return err + } + + if len(wailsBridge) > 0 { + err = deleteWailsBridge(wailsBridge) + if err != nil { + return err + } + } + + if canUpdateMainJS { + err = patchMainJS() + if err != nil { + return err + } + } + + // Install runtime + err = installWailsRuntime() + if err != nil { + return err + } + + fmt.Println() + logger.Yellow("Migration complete! Check project by running `wails build`.") + return nil + }) +} + +func checkProjectDirectory() error { + // Get versions + checkSpinner.Start("Check Project Directory") + + // Check we are in project directory + err := migrateProjectOptions.LoadConfig(migrateFS.Cwd()) + if err != nil { + checkSpinner.Error() + return fmt.Errorf("Unable to find 'project.json'. Please check you are in a Wails project directory") + } + + checkSpinner.Success() + return nil +} + +func getWailsVersion() (*semver.Version, error) { + checkSpinner.Start("Get Wails Version") + var result *semver.Version + + // Load file + var err error + goModFile, err = filepath.Abs(filepath.Join(".", "go.mod")) + if err != nil { + checkSpinner.Error() + return nil, fmt.Errorf("Unable to load go.mod at %s", goModFile) + } + goMod, err = migrateFS.LoadAsString(goModFile) + if err != nil { + checkSpinner.Error() + return nil, fmt.Errorf("Unable to load go.mod") + } + + // Find wails version + versionRegexp := regexp.MustCompile(`.*github.com/wailsapp/wails.*(v\d+.\d+.\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) + } + checkSpinner.Success("Found Wails Version: " + version) + return result, nil + +} + +func canMigrateVersion(wailsVersion *semver.Version, latestVersion *semver.Version) (bool, error) { + checkSpinner.Start("Checking ability to Migrate") + + // Check if we are at the latest version!!!! + if wailsVersion.Equal(latestVersion) || wailsVersion.GreaterThan(latestVersion) { + checkSpinner.Errorf("Checking ability to Migrate: No! (v%s >= v%s)", wailsVersion, latestVersion) + return false, nil + } + + // Check for < v1.0.0 + if lessThanV1.Check(wailsVersion) { + checkSpinner.Successf("Checking ability to Migrate: Yes! (v%s < v1.0.0)", wailsVersion) + return true, nil + } + checkSpinner.Error("Unable to migrate") + return false, fmt.Errorf("No migration rules for version %s", wailsVersion) +} + +func checkWailsBridge() (string, error) { + checkSpinner.Start("Checking if legacy Wails Bridge present") + + // Check frontend dir is available + if migrateProjectOptions.FrontEnd == nil || + len(migrateProjectOptions.FrontEnd.Dir) == 0 || + !migrateFS.DirExists(migrateProjectOptions.FrontEnd.Dir) { + checkSpinner.Error("Unable to determine frontend directory") + return "", fmt.Errorf("Unable to determine frontend directory") + } + + frontEndDir = migrateProjectOptions.FrontEnd.Dir + + wailsBridgePath, err := filepath.Abs(filepath.Join(".", frontEndDir, "src", "wailsbridge.js")) + if err != nil { + checkSpinner.Error(err.Error()) + return "", err + } + + // If it doesn't exist, return blank string + if !migrateFS.FileExists(wailsBridgePath) { + checkSpinner.Success("Checking if legacy Wails Bridge present: No") + return "", nil + } + + checkSpinner.Success("Checking if legacy Wails Bridge present: Yes") + return wailsBridgePath, nil + +} + +// This function determines if the main.js file using wailsbridge can be auto-updated +func checkMainJS() (bool, error) { + + checkSpinner.Start("Checking if main.js can be migrated") + var err error + + // Check main.js is there + if migrateProjectOptions.FrontEnd == nil || + len(migrateProjectOptions.FrontEnd.Dir) == 0 || + !migrateFS.DirExists(migrateProjectOptions.FrontEnd.Dir) { + checkSpinner.Error("Unable to determine frontend directory") + return false, fmt.Errorf("Unable to determine frontend directory") + } + + frontEndDir = migrateProjectOptions.FrontEnd.Dir + + mainJSFile, err = filepath.Abs(filepath.Join(".", frontEndDir, "src", "main.js")) + if err != nil { + checkSpinner.Error("Unable to find main.js") + return false, err + } + + mainJSContents, err = migrateFS.LoadAsString(mainJSFile) + if err != nil { + checkSpinner.Error("Unable to load main.js") + return false, err + } + + // Check we have a line like: import Bridge from "./wailsbridge"; + if strings.Index(mainJSContents, `import Bridge from "./wailsbridge";`) == -1 { + checkSpinner.Success("Checking if main.js can be migrated: No - Cannot find `import Bridge`") + return false, nil + } + + // Check we have a line like: Bridge.Start(() => { + if strings.Index(mainJSContents, `Bridge.Start(`) == -1 { + checkSpinner.Success("Checking if main.js can be migrated: No - Cannot find `Bridge.Start`") + return false, nil + } + checkSpinner.Success("Checking if main.js can be migrated: Yes") + return true, nil +} + +func getLatestWailsVersion() (*semver.Version, error) { + checkSpinner.Start("Checking GitHub for latest Wails version") + version, err := migrateGithub.GetLatestStableRelease() + if err != nil { + checkSpinner.Error("Checking GitHub for latest Wails version: Failed") + return nil, err + } + + checkSpinner.Successf("Checking GitHub for latest Wails version: v%s", version) + return version.Version, nil +} + +func updateWailsVersion(currentVersion, latestVersion *semver.Version) error { + // Patch go.mod + checkSpinner.Start("Patching go.mod") + + wailsModule := "github.com/wailsapp/wails" + old := fmt.Sprintf("%s v%s", wailsModule, currentVersion) + new := fmt.Sprintf("%s v%s", wailsModule, latestVersion) + + goMod = strings.Replace(goMod, old, new, -1) + err := ioutil.WriteFile(goModFile, []byte(goMod), 0600) + if err != nil { + checkSpinner.Error() + return err + } + + checkSpinner.Success() + return nil +} + +func deleteWailsBridge(bridgeFilename string) error { + // Patch go.mod + checkSpinner.Start("Delete legacy wailsbridge.js") + + err := migrateFS.RemoveFile(bridgeFilename) + if err != nil { + checkSpinner.Error() + return err + } + + checkSpinner.Success() + return nil +} + +func patchMainJS() error { + // Patch main.js + checkSpinner.Start("Patching main.js") + + // Patch import line + oldImportLine := `import Bridge from "./wailsbridge";` + newImportLine := `import * as Wails from "@wailsapp/runtime";` + mainJSContents = strings.Replace(mainJSContents, oldImportLine, newImportLine, -1) + + // Patch Start line + oldStartLine := `Bridge.Start` + newStartLine := `Wails.Init` + mainJSContents = strings.Replace(mainJSContents, oldStartLine, newStartLine, -1) + + err := ioutil.WriteFile(mainJSFile, []byte(mainJSContents), 0600) + if err != nil { + checkSpinner.Error() + return err + } + + checkSpinner.Success() + return nil +} + +func installWailsRuntime() error { + + checkSpinner.Start("Installing @wailsapp/runtime module") + + // Change to the frontend directory + err := os.Chdir(frontEndDir) + if err != nil { + checkSpinner.Error() + return nil + } + + // Determine package manager + packageManager, err := migrateProjectOptions.GetNPMBinaryName() + if err != nil { + checkSpinner.Error() + return nil + } + + switch packageManager { + case cmd.NPM: + // npm install --save @wailsapp/runtime + programHelper.InstallNPMPackage("@wailsapp/runtime", true) + default: + checkSpinner.Error() + return fmt.Errorf("Unknown package manager") + } + + checkSpinner.Success() + return nil +} From c51f0cad6fc14a3b5d3c3d6403e40ebf51f6c9aa Mon Sep 17 00:00:00 2001 From: Lea Anthony Date: Thu, 24 Oct 2019 16:13:42 +1100 Subject: [PATCH 4/6] chore: version bump --- cmd/version.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/version.go b/cmd/version.go index c9afe756..e9b54a57 100644 --- a/cmd/version.go +++ b/cmd/version.go @@ -1,4 +1,4 @@ package cmd // Version - Wails version -const Version = "v0.18.7-pre" +const Version = "v0.18.8-pre" From 50a0bc770195180d6657392a44fe3ab0088250a8 Mon Sep 17 00:00:00 2001 From: Lea Anthony Date: Fri, 25 Oct 2019 12:04:08 +1100 Subject: [PATCH 5/6] fix: add flag to fix windows builds (#272) --- lib/renderer/webview/webview.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/renderer/webview/webview.go b/lib/renderer/webview/webview.go index 07a42813..f2cde51a 100755 --- a/lib/renderer/webview/webview.go +++ b/lib/renderer/webview/webview.go @@ -14,7 +14,7 @@ package webview #cgo linux openbsd freebsd CFLAGS: -DWEBVIEW_GTK=1 -Wno-deprecated-declarations #cgo linux openbsd freebsd pkg-config: gtk+-3.0 webkit2gtk-4.0 -#cgo windows CFLAGS: -DWEBVIEW_WINAPI=1 +#cgo windows CFLAGS: -DWEBVIEW_WINAPI=1 -std=c99 #cgo windows LDFLAGS: -lole32 -lcomctl32 -loleaut32 -luuid -lgdi32 #cgo darwin CFLAGS: -DWEBVIEW_COCOA=1 -x objective-c From 0819207e335c0d9be33a8a43c42aaa6533e0eb55 Mon Sep 17 00:00:00 2001 From: Lea Anthony Date: Fri, 25 Oct 2019 12:05:51 +1100 Subject: [PATCH 6/6] Bump version to v0.18.9-pre --- cmd/version.go | 2 +- lib/renderer/webview/webview.go | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/cmd/version.go b/cmd/version.go index e9b54a57..a752017c 100644 --- a/cmd/version.go +++ b/cmd/version.go @@ -1,4 +1,4 @@ package cmd // Version - Wails version -const Version = "v0.18.8-pre" +const Version = "v0.18.9-pre" diff --git a/lib/renderer/webview/webview.go b/lib/renderer/webview/webview.go index f2cde51a..71851688 100755 --- a/lib/renderer/webview/webview.go +++ b/lib/renderer/webview/webview.go @@ -1,6 +1,5 @@ -// Package wails implements Go bindings to https://github.com/zserge/webview C library. +// Package webview implements Go bindings to https://github.com/zserge/webview C library. // It is a modified version of webview.go from that repository - // Bindings closely repeat the C APIs and include both, a simplified // single-function API to just open a full-screen webview window, and a more // advanced and featureful set of APIs, including Go-to-JavaScript bindings.