Repository navigation
build: an app builds its plugins, web and package with fizzy's build API - #834
MichaelBelousov wants to merge 1 commit into
Conversation
An app built on fizzy can now:
- build a plugin against an executable's own modules: `fizzy.framework(fizzy_dep, .native |
.web)` and the SDK's `plugin.staticModule(b, framework, .{})`. A plugin's own dependencies,
C ones included, are then built by its build for each target rather than copied by fizzy's,
so a plugin can bring its own tree-sitter grammar (graphl does). Unwired `"plugin"` modules
are still copied, now with `tape` and `replay` too.
- say which executables link each plugin, with a module per target:
`.{ .name, .targets = &.{ .{ .target = .web, .module = ... } } }`.
- get what it built from `fizzy.addApp`: the executables and the web build (`web`, `web_page`,
`web_files`); `fizzy.addWebSteps(b, fizzy_dep)` adds a `web` step.
- add to its package: `package-dirs` (files beside the executable) and `vpk-args` (appended to
`vpk pack`), as dependency options.
|
Thanks for this, Michael. We are taking it in as written; the Architect's notes are on work#181 and the rest become follow-ups, not requirements. CI ran and one thing is red, a one-line lint: (This comment is from fizzy's project manager bot.) |
|
Update: you don't need to push the lint line. We'll land this with that one-line fix on top of your commit (your authorship stays) and close this PR as landed. Nothing more is needed from you. Thanks again. |
…API (fizzyedit#843) Part of fizzyedit/work#335 ## Changes ```text AGENTS.md | 19 +- build.zig | 126 +- build/app.zig | 52 +- build/exe.zig | 50 +- build/package.zig | 15 +- build/plugins.zig | 20 +- build/sdk.zig | 41 +- build/web.zig | 87 +- sdk/plugin_sdk.zig | 60 +- 9 files changed, +470/-90 ``` PM: this lands MichaelBelousov's fizzyedit#834 commit fe294e6 unchanged (his authorship kept) plus one commit (6b7f323) that only adds the `anytype` reason comment at `sdk/plugin_sdk.zig`. The file list above is the PR's real diff; the earlier list was computed against an old base. ## Gates ### `scripts/check-fmt.sh` (exit 0) ```text ``` ### `scripts/zb build --summary all` (exit 0) ```text ... (earlier output omitted) | +- compile lib tree-sitter debug native (reused) | +- compile lib freetype debug native (reused) | +- compile lib tree-sitter debug native (reused) | +- options (reused) | +- options (reused) | +- translate-c dvui-c success 242ms | | +- compile exe translate-c debug native (+21 more reused dependencies) | +- options success | +- options success +- install text success | +- compile lib text debug native success 5s MaxRSS:317M | +- WriteFile plugin_root.zig success | +- WriteFile freetype (reused) | +- compile lib freetype debug native (reused) | +- WriteFile . (reused) | +- compile lib tree-sitter debug native (reused) | +- compile lib freetype debug native (reused) | +- compile lib tree-sitter debug native (reused) | +- options (reused) | +- translate-c dvui-c (+1 more reused dependencies) | +- options (reused) | +- options (reused) +- install markdown success | +- compile lib markdown debug native success 5s MaxRSS:369M | +- WriteFile plugin_root.zig cached | +- WriteFile freetype (reused) | +- compile lib freetype debug native (reused) | +- WriteFile . (reused) | +- compile lib tree-sitter debug native (reused) | +- compile lib freetype debug native (reused) | +- compile lib tree-sitter debug native (reused) | +- options (reused) | +- translate-c dvui-c (+1 more reused dependencies) | +- options (reused) | +- options (reused) | +- translate-c (reused) +- install image success +- compile lib image debug native success 4s MaxRSS:291M +- WriteFile plugin_root.zig cached +- WriteFile freetype (reused) +- compile lib freetype debug native (reused) +- WriteFile . (reused) +- compile lib tree-sitter debug native (reused) +- compile lib freetype debug native (reused) +- compile lib tree-sitter debug native (reused) +- options (reused) +- translate-c dvui-c (+1 more reused dependencies) +- options (reused) +- options (reused) ``` ### `scripts/zb build test --summary all` (exit 0) ```text ... (earlier output omitted) +- WriteFile freetype cached +- compile lib freetype debug native cached 15ms MaxRSS:39M +- WriteFile . cached +- compile lib tree-sitter debug native cached 14ms MaxRSS:37M +- compile lib freetype debug native (reused) +- compile lib tree-sitter debug native (reused) +- translate-c dvui-c cached | +- compile exe translate-c debug native cached 8ms MaxRSS:36M | +- options cached | +- options cached | +- options cached | +- run exe generate-def (aarch64.zig) cached | | +- compile exe generate-def debug native cached 7ms MaxRSS:39M | +- run exe generate-def (amdgcn.zig) cached | | +- compile exe generate-def debug native (reused) | +- run exe generate-def (arm.zig) cached | | +- compile exe generate-def debug native (reused) | +- run exe generate-def (bpf.zig) cached | | +- compile exe generate-def debug native (reused) | +- run exe generate-def (common.zig) cached | | +- compile exe generate-def debug native (reused) | +- run exe generate-def (hexagon.zig) cached | | +- compile exe generate-def debug native (reused) | +- run exe generate-def (loongarch.zig) cached | | +- compile exe generate-def debug native (reused) | +- run exe generate-def (mips.zig) cached | | +- compile exe generate-def debug native (reused) | +- run exe generate-def (neon.zig) cached | | +- compile exe generate-def debug native (reused) | +- run exe generate-def (nvptx.zig) cached | | +- compile exe generate-def debug native (reused) | +- run exe generate-def (powerpc.zig) cached | | +- compile exe generate-def debug native (reused) | +- run exe generate-def (riscv.zig) cached | | +- compile exe generate-def debug native (reused) | +- run exe generate-def (s390x.zig) cached | | +- compile exe generate-def debug native (reused) | +- run exe generate-def (ve.zig) cached | | +- compile exe generate-def debug native (reused) | +- run exe generate-def (wasm.zig) cached | | +- compile exe generate-def debug native (reused) | +- run exe generate-def (x86_64.zig) cached | | +- compile exe generate-def debug native (reused) | +- run exe generate-def (x86.zig) cached | | +- compile exe generate-def debug native (reused) | +- run exe generate-def (xcore.zig) cached | +- compile exe generate-def debug native (reused) +- options cached +- options cached ``` ### `scripts/zb build test-integration --summary all` (exit 0) ```text ... (earlier output omitted) | +- options (reused) | +- options (reused) +- run test fizzy-glass-tests 6 pass (6 total) 26ms MaxRSS:10M | +- compile test fizzy-glass-tests debug native success 2s MaxRSS:176M | +- WriteFile freetype (reused) | +- compile lib freetype debug native (reused) | +- WriteFile . (reused) | +- compile lib tree-sitter debug native (reused) | +- compile lib freetype debug native (reused) | +- compile lib tree-sitter debug native (reused) | +- translate-c dvui-c (+1 more reused dependencies) | +- options (reused) | +- options (reused) +- run test fizzy-plugin-loader-tests 2 pass (2 total) 10ms MaxRSS:11M | +- compile test fizzy-plugin-loader-tests debug native success 4s MaxRSS:253M | +- WriteFile freetype (reused) | +- compile lib freetype debug native (reused) | +- WriteFile . (reused) | +- compile lib tree-sitter debug native (reused) | +- compile lib freetype debug native (reused) | +- compile lib tree-sitter debug native (reused) | +- translate-c dvui-c (+1 more reused dependencies) | +- options (reused) | +- options (reused) +- run test fizzy-text-plugin-tests 101 pass (101 total) 262ms MaxRSS:16M | +- compile test fizzy-text-plugin-tests debug native success 5s MaxRSS:350M | +- options (reused) | +- WriteFile freetype (reused) | +- compile lib freetype debug native (reused) | +- WriteFile . (reused) | +- compile lib tree-sitter debug native (reused) | +- compile lib freetype debug native (reused) | +- compile lib tree-sitter debug native (reused) | +- translate-c dvui-c (+1 more reused dependencies) | +- options (reused) | +- options (reused) +- run test fizzy-workbench-plugin-tests 1 pass (1 total) 11ms MaxRSS:10M +- compile test fizzy-workbench-plugin-tests debug native success 2s MaxRSS:185M +- options (reused) +- options (reused) +- WriteFile freetype (reused) +- compile lib freetype debug native (reused) +- WriteFile . (reused) +- compile lib tree-sitter debug native (reused) +- compile lib freetype debug native (reused) +- compile lib tree-sitter debug native (reused) +- translate-c dvui-c (+1 more reused dependencies) +- options (reused) +- options (reused) ``` ### `scripts/zb build check-web --summary all` (exit 0) ```text ... (earlier output omitted) | | +- run exe generate-def (amdgcn.zig) cached | | | +- compile exe generate-def debug native (reused) | | +- run exe generate-def (arm.zig) cached | | | +- compile exe generate-def debug native (reused) | | +- run exe generate-def (bpf.zig) cached | | | +- compile exe generate-def debug native (reused) | | +- run exe generate-def (common.zig) cached | | | +- compile exe generate-def debug native (reused) | | +- run exe generate-def (hexagon.zig) cached | | | +- compile exe generate-def debug native (reused) | | +- run exe generate-def (loongarch.zig) cached | | | +- compile exe generate-def debug native (reused) | | +- run exe generate-def (mips.zig) cached | | | +- compile exe generate-def debug native (reused) | | +- run exe generate-def (neon.zig) cached | | | +- compile exe generate-def debug native (reused) | | +- run exe generate-def (nvptx.zig) cached | | | +- compile exe generate-def debug native (reused) | | +- run exe generate-def (powerpc.zig) cached | | | +- compile exe generate-def debug native (reused) | | +- run exe generate-def (riscv.zig) cached | | | +- compile exe generate-def debug native (reused) | | +- run exe generate-def (s390x.zig) cached | | | +- compile exe generate-def debug native (reused) | | +- run exe generate-def (ve.zig) cached | | | +- compile exe generate-def debug native (reused) | | +- run exe generate-def (wasm.zig) cached | | | +- compile exe generate-def debug native (reused) | | +- run exe generate-def (x86_64.zig) cached | | | +- compile exe generate-def debug native (reused) | | +- run exe generate-def (x86.zig) cached | | | +- compile exe generate-def debug native (reused) | | +- run exe generate-def (xcore.zig) cached | | +- compile exe generate-def debug native (reused) | +- options cached | +- options success | +- options cached | +- options cached | +- options cached | +- options cached | +- options cached | +- options cached | +- options cached | +- options cached | +- translate-c success 12ms MaxRSS:39M +- compile obj rehome-fixture-web debug wasm32-freestanding success 587ms MaxRSS:224M +- translate-c dvui-c (+1 more reused dependencies) +- options (reused) +- options (reused) ``` ### `scripts/zb build test-sdk-version --summary all` (exit 0) ```text ... (earlier output omitted) +- WriteFile . cached +- compile lib tree-sitter debug native cached 10ms MaxRSS:34M +- compile lib freetype debug native (reused) +- compile lib tree-sitter debug native (reused) +- options cached +- options cached +- translate-c dvui-c cached | +- compile exe translate-c debug native cached 5ms MaxRSS:40M | +- options cached | +- options cached | +- options cached | +- run exe generate-def (aarch64.zig) cached | | +- compile exe generate-def debug native cached 5ms MaxRSS:35M | +- run exe generate-def (amdgcn.zig) cached | | +- compile exe generate-def debug native (reused) | +- run exe generate-def (arm.zig) cached | | +- compile exe generate-def debug native (reused) | +- run exe generate-def (bpf.zig) cached | | +- compile exe generate-def debug native (reused) | +- run exe generate-def (common.zig) cached | | +- compile exe generate-def debug native (reused) | +- run exe generate-def (hexagon.zig) cached | | +- compile exe generate-def debug native (reused) | +- run exe generate-def (loongarch.zig) cached | | +- compile exe generate-def debug native (reused) | +- run exe generate-def (mips.zig) cached | | +- compile exe generate-def debug native (reused) | +- run exe generate-def (neon.zig) cached | | +- compile exe generate-def debug native (reused) | +- run exe generate-def (nvptx.zig) cached | | +- compile exe generate-def debug native (reused) | +- run exe generate-def (powerpc.zig) cached | | +- compile exe generate-def debug native (reused) | +- run exe generate-def (riscv.zig) cached | | +- compile exe generate-def debug native (reused) | +- run exe generate-def (s390x.zig) cached | | +- compile exe generate-def debug native (reused) | +- run exe generate-def (ve.zig) cached | | +- compile exe generate-def debug native (reused) | +- run exe generate-def (wasm.zig) cached | | +- compile exe generate-def debug native (reused) | +- run exe generate-def (x86_64.zig) cached | | +- compile exe generate-def debug native (reused) | +- run exe generate-def (x86.zig) cached | | +- compile exe generate-def debug native (reused) | +- run exe generate-def (xcore.zig) cached | +- compile exe generate-def debug native (reused) +- options cached +- options cached ``` --------- Co-authored-by: Michael Belousov <mike@graphl.tech> Co-authored-by: fizzy-linux[bot] <346940526+fizzy-linux[bot]@users.noreply.github.com> Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
An app built on fizzy can now:
fizzy.framework(fizzy_dep, .native | .web)and the SDK'splugin.staticModule(b, framework, .{}). A plugin's own dependencies, C ones included, are then built by its build for each target rather than copied by fizzy's, so a plugin can bring its own tree-sitter grammar (graphl does). Unwired"plugin"modules are still copied, now withtapeandreplaytoo..{ .name, .targets = &.{ .{ .target = .web, .module = ... } } }.fizzy.addApp: the executables and the web build (web,web_page,web_files);fizzy.addWebSteps(b, fizzy_dep)adds awebstep.package-dirs(files beside the executable) andvpk-args(appended tovpk pack), as dependency options.Part of #
What changes
SDK impact
sdk/src/version.zig,sdk_versionuntouched, PR labelledsdksdk_version, lists thesdkPRs since the lastsdk-v*tagVerified
Follow-ups