@johnmorrisdotca/kazoku-ui 0.9.0 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/dist/testing/index.d.ts +5 -0
- package/dist/testing/index.js +5 -0
- package/package.json +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.9.1] - 2026-11-02
|
|
4
|
+
|
|
5
|
+
No 3D release without a freeze test (John, 2026-11-02, after a graphics-driver kernel panic during a test run). Test kit and release workflow; the parts themselves are unchanged.
|
|
6
|
+
|
|
7
|
+
- **`SOFTWARE_GL_ARGS`** in `@johnmorrisdotca/kazoku-ui/testing`: the Chromium launch arguments that draw WebGL in software (ANGLE on SwiftShader), for every package's Playwright config. This repository's own config uses them for both Chromium projects, and its WebKit projects skip `renderer.demo.mjs` off CI (WebKit has no software switch).
|
|
8
|
+
- **`freeze-command`** input of `reusable-release.yml`: a package with live 3D passes its freeze test (`pnpm test:freeze`), which runs in headless Chromium before anything is published.
|
|
9
|
+
- The rule is written in `docs/renderer.md` ("The rule: no 3D release without a freeze test") and in `docs/release-workflow.md`.
|
|
10
|
+
|
|
3
11
|
## [0.9.0] - 2026-11-02
|
|
4
12
|
|
|
5
13
|
The sixth and seventh parts: the shared 3D renderer, at `@johnmorrisdotca/kazoku-ui/renderer`, and the freeze checks for a 3D package's e2e, at `@johnmorrisdotca/kazoku-ui/testing`.
|
package/dist/testing/index.d.ts
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The launch arguments that make headless Chromium draw WebGL in software (ANGLE on SwiftShader), never on the machine's graphics card. Every package's Playwright
|
|
3
|
+
* config gives them to its Chromium projects: `use: { launchOptions: { args: [...SOFTWARE_GL_ARGS] } }`. A test run on a Mac's own GPU once panicked its graphics driver.
|
|
4
|
+
*/
|
|
5
|
+
export declare const SOFTWARE_GL_ARGS: readonly string[];
|
|
1
6
|
/** The GL object kinds counted. */
|
|
2
7
|
export declare const GPU_KINDS: readonly ["Buffer", "Texture", "VertexArray", "Program", "Framebuffer", "Renderbuffer"];
|
|
3
8
|
export type GpuKind = (typeof GPU_KINDS)[number];
|
package/dist/testing/index.js
CHANGED
|
@@ -10,6 +10,11 @@
|
|
|
10
10
|
// expect(after.contexts).toBe(1);
|
|
11
11
|
// expect(after.draws - before.draws).toBe(0); // at rest
|
|
12
12
|
// expect(gpuObjects(after)).toBe(gpuObjects(before)); // nothing leaked
|
|
13
|
+
/**
|
|
14
|
+
* The launch arguments that make headless Chromium draw WebGL in software (ANGLE on SwiftShader), never on the machine's graphics card. Every package's Playwright
|
|
15
|
+
* config gives them to its Chromium projects: `use: { launchOptions: { args: [...SOFTWARE_GL_ARGS] } }`. A test run on a Mac's own GPU once panicked its graphics driver.
|
|
16
|
+
*/
|
|
17
|
+
export const SOFTWARE_GL_ARGS = ["--use-gl=angle", "--use-angle=swiftshader", "--enable-unsafe-swiftshader", "--ignore-gpu-blocklist"];
|
|
13
18
|
/** The GL object kinds counted. */
|
|
14
19
|
export const GPU_KINDS = ["Buffer", "Texture", "VertexArray", "Program", "Framebuffer", "Renderbuffer"];
|
|
15
20
|
/** Install the counters in a page, before its own scripts run. A string, so `page.addInitScript(COUNT_SCRIPT)` takes it as it is. */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@johnmorrisdotca/kazoku-ui",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.1",
|
|
4
4
|
"description": "Kazoku UI 家族, the family's shared interface parts as their own versioned package: view controls for any 3D or zoomable view (angle, tilt, auto-turn, zoom about the pointer, pan, touch, address state) a light, dark and auto theme switch, a language picker, choices kept in the address and a save-as-image button, each a framework-free custom element and a plain controller. Zero dependencies; the shared 3D renderer takes three.js as an optional peer.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"view-controls",
|
|
@@ -162,6 +162,7 @@
|
|
|
162
162
|
"dev": "pnpm build && node scripts/dev.mjs",
|
|
163
163
|
"site": "pnpm build && node scripts/site.mjs",
|
|
164
164
|
"test:demo": "pnpm site && playwright test",
|
|
165
|
+
"test:freeze": "pnpm site && playwright test e2e/renderer.demo.mjs --project=chromium-desk",
|
|
165
166
|
"screenshots": "pnpm site && node scripts/screenshots.mjs"
|
|
166
167
|
},
|
|
167
168
|
"devDependencies": {
|