Skip to content

Commit d4b7a5c

Browse files
authored
Merge branch 'master' into worktree-global-shortcuts
2 parents d20506a + 885963f commit d4b7a5c

30 files changed

Lines changed: 3434 additions & 64 deletions

.github/workflows/generate-sponsor-image.yml

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -10,31 +10,34 @@ jobs:
1010
name: Update Sponsors
1111
runs-on: ubuntu-latest
1212
if: github.repository == 'wailsapp/wails'
13+
permissions:
14+
contents: write
1315
steps:
14-
- uses: actions/checkout@v3
16+
- uses: actions/checkout@v4
17+
with:
18+
# Use the bypass-capable token so the auto-commit can push directly
19+
# to the protected master branch (same pattern as publish-npm.yml).
20+
token: ${{ secrets.WAILS_REPO_TOKEN || github.token }}
1521

1622
- name: Set Node
17-
uses: actions/setup-node@v2
23+
uses: actions/setup-node@v4
1824
with:
19-
node-version: 20.x
25+
node-version: "22"
2026

2127
- name: Update Sponsors
2228
run: cd scripts/sponsors && chmod 755 ./generate-sponsor-image.sh && ./generate-sponsor-image.sh
2329
env:
2430
SPONSORKIT_GITHUB_TOKEN: ${{ secrets.SPONSORS_TOKEN }}
2531
SPONSORKIT_GITHUB_LOGIN: wailsapp
2632

27-
- name: Create Pull Request
28-
uses: peter-evans/create-pull-request@v6
29-
with:
30-
commit-message: "chore: update sponsors.svg"
31-
add-paths: "website/static/img/sponsors.svg"
32-
title: "chore: update sponsors.svg"
33-
body: |
34-
Auto-generated by the sponsor image workflow
35-
36-
[skip ci] [skip actions]
37-
branch: update-sponsors
38-
base: master
39-
delete-branch: true
40-
draft: false
33+
- name: Commit updated sponsor image
34+
run: |
35+
git config user.name "github-actions[bot]"
36+
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
37+
if git diff --quiet -- website/static/img/sponsors.svg; then
38+
echo "No sponsor changes to commit."
39+
exit 0
40+
fi
41+
git add website/static/img/sponsors.svg
42+
git commit -m "chore: update sponsors.svg [skip ci]"
43+
git push

.github/workflows/publish-npm.yml

Lines changed: 36 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -78,10 +78,10 @@ jobs:
7878
version: 3.x
7979
repo-token: ${{ secrets.GITHUB_TOKEN }}
8080

81-
- name: Use Node.js 20
81+
- name: Use Node.js 22
8282
uses: actions/setup-node@v4
8383
with:
84-
node-version: "20"
84+
node-version: "22"
8585

8686
- name: Upgrade npm for Trusted Publishing
8787
# Trusted Publishing (OIDC) requires npm >= 11.5.1.
@@ -109,15 +109,43 @@ jobs:
109109
npm test
110110
npm run build
111111
112+
- name: Verify generated artifacts
113+
# Fail the publish if (re)generation did not produce the expected
114+
# outputs — both the npm package payload (dist/, gitignored, what gets
115+
# published) and the tracked bundled runtime that is committed back to
116+
# master below. A missing/empty file here means a silent build failure.
117+
working-directory: v3
118+
run: |
119+
set -euo pipefail
120+
required=(
121+
"internal/assetserver/bundledassets/runtime.js"
122+
"internal/assetserver/bundledassets/runtime.debug.js"
123+
"internal/runtime/desktop/@wailsio/runtime/dist/runtime.js"
124+
)
125+
for f in "${required[@]}"; do
126+
if [ ! -s "$f" ]; then
127+
echo "::error::expected generated artifact missing or empty: v3/$f"
128+
exit 1
129+
fi
130+
done
131+
echo "All expected runtime artifacts were generated."
132+
112133
- name: Bump version
113134
id: bump-version
114135
working-directory: v3/internal/runtime/desktop/@wailsio/runtime
115136
run: |
116137
echo "version=$(npm --no-git-tag-version --force version prerelease)" >> "$GITHUB_OUTPUT"
117138
118-
- name: Commit changes
139+
- name: Commit regenerated runtime + version bump
140+
# Commit ALL regenerated tracked files back to master, not just the
141+
# version bump: the bundled runtime (internal/assetserver/bundledassets),
142+
# generated events (v3/pkg/events/events.go) and TypeDoc output all come
143+
# from `task runtime:build` and must stay in sync with the published
144+
# package. dist/ is gitignored, so `git add -A` will not commit it.
119145
run: |
120-
git add .
146+
git add -A
147+
echo "Files committed back to master:"
148+
git status --short
121149
git commit -m "[skip ci] Publish @wailsio/runtime ${{ steps.bump-version.outputs.version }}"
122150
git push
123151
@@ -127,4 +155,7 @@ jobs:
127155
# Requires a Trusted Publisher to be configured for @wailsio/runtime on
128156
# npmjs.com (repo: wailsapp/wails, workflow: publish-npm.yml).
129157
working-directory: v3/internal/runtime/desktop/@wailsio/runtime
130-
run: npm publish --access public
158+
# --tag latest: v3 ships prerelease (alpha.N) as the default dist-tag,
159+
# matching the templates' "@wailsio/runtime": "latest" pin. npm >= 11
160+
# requires an explicit --tag to publish a prerelease as latest.
161+
run: npm publish --access public --tag latest

docs/astro.config.mjs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -295,7 +295,6 @@ export default defineConfig({
295295
{
296296
label: "Mobile",
297297
collapsed: true,
298-
badge: { text: "Experimental", variant: "caution" },
299298
items: [
300299
{ label: "Overview", link: "/guides/mobile" },
301300
{ label: "Your First Mobile App", link: "/guides/mobile/first-mobile-app" },
@@ -305,6 +304,17 @@ export default defineConfig({
305304
],
306305
},
307306

307+
// Experimental - opt-in experiments we're gathering feedback on
308+
{
309+
label: "Experimental",
310+
collapsed: true,
311+
items: [
312+
{ label: "Overview", link: "/experimental" },
313+
{ label: "Wake", link: "/experimental/wake" },
314+
{ label: "LLM Control (MCP)", link: "/guides/mcp-service" },
315+
],
316+
},
317+
308318
// Guides - Task-oriented patterns (Netflix: When to use it, when not to use it)
309319
{
310320
label: "Guides",
@@ -361,7 +371,7 @@ export default defineConfig({
361371
label: "Advanced Topics",
362372
collapsed: true,
363373
items: [
364-
{ label: "Server Build", link: "/guides/server-build", badge: { text: "Experimental", variant: "caution" } },
374+
{ label: "Server Build", link: "/guides/server-build" },
365375
{ label: "Custom Templates", link: "/guides/advanced/custom-templates" },
366376
{ label: "WML (Wails Markup)", link: "/guides/advanced/wml" },
367377
{ label: "Panic Handling", link: "/guides/advanced/panic-handling" },

docs/src/content/docs/changelog.mdx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
3131
*/
3232
## [Unreleased]
3333

34+
## v3.0.0-alpha2.107 - 2026-06-27
35+
36+
## Added
37+
- Add experimental Wake documentation with sidebar navigation in [PR](https://github.com/wailsapp/wails/pull/5613) by @leaanthony
38+
3439
## v3.0.0-alpha2.106 - 2026-06-24
3540

3641
## Changed
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
---
2+
title: Experimental Features
3+
description: A home for in-progress experiments in Wails v3 — what they are, why they exist, and how to give feedback.
4+
sidebar:
5+
label: Overview
6+
order: 0
7+
badge:
8+
text: Experimental
9+
variant: caution
10+
---
11+
12+
import { Aside, CardGrid, LinkCard } from '@astrojs/starlight/components';
13+
14+
<Aside type="caution" title="Here be experiments">
15+
Everything in this section is, by definition, an experiment. Features here are
16+
opt-in, off by default, and may change shape, get renamed, or be removed
17+
entirely between releases. Don't build anything load-bearing on them without
18+
being ready for churn.
19+
</Aside>
20+
21+
## What "Experimental" means
22+
23+
Wails ships experiments in the open. An experiment is an idea we think is
24+
promising enough to put in your hands early — but one we haven't fully
25+
committed to yet. We're publishing it *because* we want to learn from real use
26+
before deciding whether it becomes a permanent, supported part of Wails.
27+
28+
That means a few things are true of everything in this section:
29+
30+
- **It's opt-in.** Experiments never change the default behaviour of `wails3`.
31+
You turn them on deliberately (usually with an environment variable or a
32+
build flag), and with them off, nothing about your existing workflow
33+
changes.
34+
- **It might not survive.** Some experiments graduate into stable features.
35+
Others get reworked beyond recognition, or dropped. We'd rather try things
36+
in public and learn fast than ship only what we're already certain about.
37+
- **The API isn't frozen.** Names, flags, defaults and behaviour can shift
38+
between releases while an experiment is finding its shape. Release notes will
39+
call out the changes, but don't expect the stability guarantees that stable
40+
features carry.
41+
42+
## We want your feedback
43+
44+
This is the important part. Experiments live or die by what we hear back from
45+
people actually using them. If you try one of these, we genuinely want to know:
46+
47+
- Did it work for your project? Where did it fall down?
48+
- Was it faster / clearer / nicer — or not worth the switch?
49+
- What would have to be true for you to use it by default?
50+
51+
The most useful feedback is concrete: what you ran, what you expected, what
52+
actually happened. Each experiment has its own thread in the **Experiments**
53+
category on GitHub Discussions:
54+
55+
<CardGrid>
56+
<LinkCard
57+
title="Experiments Discussions"
58+
description="Find the thread for the experiment you're using and tell us how it worked out, what broke, or what's missing."
59+
href="https://github.com/wailsapp/wails/discussions/categories/experiments"
60+
/>
61+
</CardGrid>
62+
63+
## Current experiments
64+
65+
<CardGrid>
66+
<LinkCard
67+
title="Wake"
68+
description="An alternative, Wails-aware build runner for your existing Taskfiles. Faster incremental builds, structured output, parallel by default."
69+
href="/experimental/wake"
70+
/>
71+
<LinkCard
72+
title="LLM Control (MCP)"
73+
description="A built-in Model Context Protocol server that lets LLM agents inspect, test, and drive a running Wails app — no user code required, enabled with a build tag."
74+
href="/guides/mcp-service"
75+
/>
76+
</CardGrid>

0 commit comments

Comments
 (0)