Skip to content

Commit ce3e42d

Browse files
authored
Prepare v0.4.4 release (#111)
- Bump the CLI, platform packages, and runtime version to 0.4.4. - Fold the v0.4.4 release notes for #105, #106, #107, and #110 into the marked changelog entry. - Credit co-authors in the v0.4.4 release notes and repair the v0.4.3 contributor list.
1 parent 49aa5e7 commit ce3e42d

15 files changed

Lines changed: 42 additions & 25 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,28 @@
22

33
All notable changes to the Native SDK (formerly zero-native) will be documented in this file.
44

5-
## 0.4.3
5+
## 0.4.4
66

77
<!-- release:start -->
88

9+
### New Features
10+
11+
- **Native-only host builds (Windows)**: the build graph now infers web use from app.zon — a `.frontend` block, the `"webview"` capability, a `.shell` webview view, or the Chromium engine — and an app that declares none of them compiles its Windows host without the embedded WebView layer: no WebView2 header, no `WebView2Loader.dll` installed, staged, or referenced by the executable. A new `.webview_layer = "auto"|"include"|"exclude"` manifest field (and `-Dweb-layer`) overrides the inference, an exclude that contradicts a web declaration is rejected at validate, configure, and package time, and a native-only build that reaches webview creation at runtime fails fast with a teaching `WebViewLayerNotBuilt` error. `native check` and the package report print the web-layer verdict, and a CI cross-audit asserts the presence/absence of the loader reference in real cross-compiled executables (#107).
12+
- **Native-only host builds (Linux)**: the WebKitGTK compile seam mirrors the Windows one — an app whose app.zon declares no web use compiles its GTK host with `NATIVE_SDK_ALLOW_WEBKITGTK_STUB`, so the executable neither links `webkitgtk-6.0` nor references any `webkit_`/`jsc_` symbol, building needs no WebKitGTK development package, and users need no `libwebkitgtk` at runtime. The web-layer auditor (`tools/audit_web_layer.zig`) grew a hand-rolled ELF reader (DT_NEEDED entries + dynamic symbols) that CI runs both ways: the native-only fixture must scan clean even with the dev package installed, and the Linux canvas smoke now builds on a runner without WebKitGTK at all. `native package` refuses to package a WebKitGTK-linking binary under a native-only decision, record→replay and automation-driven sessions are pinned on native-only apps, and the macOS GPU dashboard smoke asserts a native-only app spawns zero WebKit helper processes (#110).
13+
14+
### Improvements
15+
16+
- **Zig 0.16 guidance**: a new `zig` skill (`native skills get zig`) maps each pre-0.16 std idiom's compile error to the current one — `std.Io` file IO and writers, unmanaged `ArrayList`, `main(std.process.Init)`, spawning, clocks, `{t}`/`{f}` formatting, `build.zig` modules — with the same content for humans as the docs' Zig 0.16 Notes page; the native-ui skill carries the short table, and a failing `native build|test|dev` now points at the catalog when std members come up missing (#105).
17+
- **Lazy Linux WebView startup**: GTK windows now create only GTK chrome at window creation and materialize the main `WebKitWebView` on first web use, so canvas-only apps do not start WebKit processes on Linux; child-WebView bridge responses no longer require a main WebView to exist (#106).
18+
19+
### Contributors
20+
21+
- @ctate
22+
- @WhiteHades
23+
<!-- release:end -->
24+
25+
## 0.4.3
26+
927
### Improvements
1028

1129
- **Linear-light edge blending**: anti-aliased fringes on opaque rounded rectangles, path fills, and strokes now composite through a linear-light coverage path, removing the dark rims that sRGB blending produced on curved geometry while keeping opaque interiors, glyph coverage, and translucent overlays byte-identical (#89).
@@ -18,7 +36,8 @@ All notable changes to the Native SDK (formerly zero-native) will be documented
1836
### Contributors
1937

2038
- @ctate
21-
<!-- release:end -->
39+
- @fleeting-zone
40+
- @kvnwdev
2241

2342
## 0.4.2
2443

‎RELEASING.md‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,9 @@ To prepare a release:
99
3. Run `npm --prefix packages/native-sdk run version:sync` to update all version references
1010
4. Run `scripts/changelog-merge.sh` to fold any pending `changelog.d/` fragments into the `## Unreleased` section
1111
5. Write the changelog entry in `CHANGELOG.md`, wrapped in `<!-- release:start -->` and `<!-- release:end -->` markers
12-
6. Remove the `<!-- release:start -->` and `<!-- release:end -->` markers from the previous release entry; only the latest release should have markers
13-
7. Open a PR and merge to `main`
12+
6. Populate the entry's `### Contributors` from commit authors and `Co-authored-by` trailers in the release range, using GitHub handles when available; this marked block is also the GitHub release body
13+
7. Remove the `<!-- release:start -->` and `<!-- release:end -->` markers from the previous release entry; only the latest release should have markers
14+
8. Open a PR and merge to `main`
1415

1516
CI compares the version in `packages/native-sdk/package.json` to what's on npm. If it differs, it cross-builds the CLI for every platform, creates the GitHub release with the binaries, publishes the per-platform binary packages (`packages/native-sdk/npm/*`), and publishes `@native-sdk/cli` last — so the main package only lands once every binary package it pins is live. If npm already has the version but the GitHub release is missing assets, CI recreates the GitHub release from the marked changelog entry.
1617

‎changelog.d/native-only-host-linux.md‎

Lines changed: 0 additions & 1 deletion
This file was deleted.

‎changelog.d/native-only-host-windows.md‎

Lines changed: 0 additions & 1 deletion
This file was deleted.

‎changelog.d/zig-016-guidance.md‎

Lines changed: 0 additions & 1 deletion
This file was deleted.

‎packages/native-sdk/npm/darwin-arm64/package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@native-sdk/cli-darwin-arm64",
3-
"version": "0.4.3",
3+
"version": "0.4.4",
44
"description": "The native CLI binary for macOS on Apple silicon (arm64)",
55
"os": [
66
"darwin"

‎packages/native-sdk/npm/darwin-x64/package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@native-sdk/cli-darwin-x64",
3-
"version": "0.4.3",
3+
"version": "0.4.4",
44
"description": "The native CLI binary for macOS on Intel (x64)",
55
"os": [
66
"darwin"

‎packages/native-sdk/npm/linux-arm64-gnu/package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@native-sdk/cli-linux-arm64-gnu",
3-
"version": "0.4.3",
3+
"version": "0.4.4",
44
"description": "The native CLI binary for Linux arm64 (glibc)",
55
"os": [
66
"linux"

‎packages/native-sdk/npm/linux-arm64-musl/package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@native-sdk/cli-linux-arm64-musl",
3-
"version": "0.4.3",
3+
"version": "0.4.4",
44
"description": "The native CLI binary for Linux arm64 (musl)",
55
"os": [
66
"linux"

‎packages/native-sdk/npm/linux-x64-gnu/package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@native-sdk/cli-linux-x64-gnu",
3-
"version": "0.4.3",
3+
"version": "0.4.4",
44
"description": "The native CLI binary for Linux x64 (glibc)",
55
"os": [
66
"linux"

0 commit comments

Comments
 (0)