Commit Graph

120 Commits

Author SHA1 Message Date
Keavon Chambers 7bb01c9651
Fix dropdown menus spawning offset in scrolled panels, a regression from upgrading to Svelte 5.54 (#4047)
* Fix dropdown menus spawning offset in scrolled panels, a regression from upgrading to Svelte 5.54

Regression introduced in #3933 by upgrading from Svelte 5.47.1 to 5.54.1

* Code review

* Fix unrelated typo

* Add assets build size to build link comment
2026-04-24 12:17:27 -07:00
Keavon Chambers 1444c333ab Fix CI not preserving the "View deployment" button for old build links in PRs 2026-04-23 16:16:23 -07:00
Keavon Chambers e2117d9a02 Fix CI not attaching a "View deployment" button in PRs for build links 2026-04-23 02:29:20 -07:00
Timon 0eb440db14
Desktop: Improve Nix build times with more caching (#4007) 2026-04-08 01:46:38 +02:00
Timon bf269d7693
Introduce development Nix binary cache (#3911)
* Desktop: Introduce development Nix binary cache

* Configure caches in CI

* Cache nix shell

* Fix
2026-04-04 11:12:57 +00:00
Keavon Chambers 5edb00bd9a
Fix virtual scrolling MenuList font family dropdowns shrinking when wider content is unmounted (#3987)
* Fix virtual scrolling MenuList dropdowns shrinking when wider content goes away

* Code review fixes

* Fix small CI workflow bug

* Stop scrolling in dropdowns from horizontally scrolling the control bar

* Use more robust way of getting commit hash in CI workflow
2026-04-02 19:24:41 -07:00
Keavon Chambers b7a1b3e665 Fix CI failing on PRs reaching master via the merge queue 2026-03-22 00:10:55 -07:00
Keavon Chambers eb562146ce
Consolidate CI web builds into the build workflow and restore deployments to GitHub environments (#3916)
* Restore the CI "View deployment" button in PRs after building

* Consolidate release.yml functionality into build.yml

* Move build from ci.yml to a delegated run in build.yml

* Rename CI to Check

* Code review fixes

* Review 2
2026-03-19 04:53:05 -07:00
Keavon Chambers 187b4c38b4
Port website dev docs generated content scripts from JS to Rust to avoid intermediate parsing (#3909)
* Remove the crate dependency graph website generation intermediate generation step

* Remove the message system tree website generation intermediate generation step

* Code cleanup

* Remove cache system

* Fix Windows comment URL error

* Fix incorrect artifact download URLs

* Add Flatpak to comment

* Make Flatpak use debug/release mode choice instead of always release mode
2026-03-17 15:02:15 -07:00
Keavon Chambers d9214c7292
Add the crate dependency graph visualization to the contributor guide (#3907)
* Add the crate dependency graph visualization to the contributor guide

* Code review fixes

* And more
2026-03-17 01:35:56 -07:00
Keavon Chambers df8001fca8 Consolidate separate platform CI build workflows and improve !build comment commands 2026-03-16 17:10:00 -07:00
Keavon Chambers efd142f030 Update, tidy up, and standardize GitHub Actions workflows 2026-03-16 02:49:42 -07:00
Keavon Chambers 52d2b38a82 Refactor the TypeScript data flow for full type safety and auto-generation of Rust types (#3865)
* Migrate Specta to Tsify to auto-generate messages.ts, working except colors and widgets

* Adopt the generated FillColor/Color/GradientStops

* Fix widget typing

* Separate WidgetGroup enum variants into wrapper structs

* Small rename

* Simplify widgets further

* Clean up message type references

* Switch type imports to the auto-generated file

* Remove lowercase serde rename

* Fix FillChoice deserialization

* Fix small regression from #3837

* Improve type safety

* Make WidgetSpan type-safe

* More cleanup and type safety

* More type safety

* More type safety

* Get the rest to type-check without errors; improve widget builder macro to have optional icons; improve Svelte 5 configs

* Cargo fmt

* Fix imports

* Update outdated readme info

* Fix lint command rename references

* Fix typos

* One more typos fix

* Remove unnecessary dep: prefix from the edited Cargo.toml files

* Remove excess parts from Cargo.toml

* Fix compiling on desktop

* Revert "Remove excess parts from Cargo.toml"

This reverts commit 6b711117b3a5d5d8a3ee20f36a43bc74930b7c82.

* Update dev docs with simpler, more accurate instructions
2026-03-09 16:35:04 -07:00
Timon 5d22292072
Replace `npm` build script with new `cargo run` tool (#3832)
* move nix flake to root

* cargo run tool

* use thiserror in third-party-licenses tool

* prefere panic over exit

* Add automatic dependency check to cargo run tool

* Skip dependecies that are not needed for the current task

* Fixup

* Fixup

* fix windows

* Fixup

* improve usage text

* Fix linux bundle

* add graphen-cli

* fix build profile

* fix

* release profile should not include debug infos

* Review

* remove profiling profile

was redundent with release

* rename to cargo-run tool

* improve consistency

* rename deps to requirements

* fix

* return success when showing usage
2026-03-07 13:26:19 +00:00
Keavon Chambers 8a1dfb9d8f
Refactor messages.ts by removing class-transformer and JS classes (#3858)
* Fix gamma correction with HTML-based editable Text tool text

* Migrate simple, undecorated classes to types

* Remove TupleToVec2 transformation

* Remove @Transform from tooltips

* Cleanup: replace value.toString() with String(value) everywhere

* Convert documentId from string to bigint

* Migrate the rest of the easy @Transform/@Type decorations

* Migrate FillChoice

* Migrate WidgetDiffUpdate

* Migrate WidgetInstance

* Migrate away from classes that extend WidgetProps

* Remove class-transformer and all classes in messages.ts

* Migrate UI layout passing

* Remove dead code

* Remove unnecessary export and readonly prefixes

* Remove HSVA type

* Break out Color, Gradient, and FillChoice functions into a utility-functions file

* Move widget helper functions from messages.ts into a new utility-functions file; restructure type imports

* Reduce internal type defs

* Rename JsMessage to FrontendMessage

* Code review fixes

* Fix other usages

* Tidying up
2026-03-05 01:43:21 -08:00
Timon da7437c023
Reimplement notice file generation for third-party licenses through Rust, now with CEF credits (#3808) 2026-02-26 11:12:28 +00:00
Dennis Kobert 65ca8610eb
Split CI job to run on dedicated runners for web and native build (#3812)
* Split ci job to run on dedicated runners for web and native build

* Trigger CI

* Update labels

* Update comment text

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2026-02-24 09:37:00 +00:00
Keavon Chambers 258748ec51
Swap the default placement order of Fill and Stroke nodes in layers (#3789) 2026-02-19 13:15:11 -08:00
Keavon Chambers 6824f55929 Add hover style to checkboxes when their corresponding labels are hovered 2026-02-18 17:37:34 -08:00
Dennis Kobert e1357c5c34
Improve CI times and make merge queue only trigger one CI run (#3755)
* Split ci job into multiple jobs running on github runners

* Add permission to build steps

* Try running rust build on selfhosted runner

* Disable nix setup for self hosted runner

* Revert build and only run lint + web build + rust fmt on gh runners

* Only build rust tests and ignore branding for frontend lint

* Provide stub ts types for running linter without building wasm bundle

* Manually install wasm-opt + use cargo-binstall

* Only build with shaders for master builds

* Revert splitting of lint job

* Attempt to build with shaders

* Explicitly install linux target

* Move frontend build back to self hosted runner

* Remove whitespace changes

* Remove explicit build step
2026-02-18 22:22:47 +00:00
blue linden 3b1a51b393
Comment the GH Actions run link on `!build` comments for easier troubleshooting (#3392)
* Comment on `!build` requests with the Actions run ID for easier troubleshooting

* Update the triggering comment instead of making another one for the build link

* Make sure the workflow doesn't fail if the triggering comment was deleted.

* Post comment on build/upload failure

* Don't post a build link comment separately if the OG is deleted

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2026-02-17 01:10:47 +00:00
Timon 9633de5929
Desktop: Push builds to Nix binary cache in CI (#3740)
Desktop: Add Nix Cache
2026-02-09 19:17:14 +00:00
Timon 0f10c242e2
Desktop: Enable manual trigger for Mac and Windows builds (#3736) 2026-02-08 23:39:23 +00:00
Timon acab171bc5
Desktop: Build and Sign Mac and Windows Bundles in CI (#3728)
* Desktop: Build and Sign Mac and Windows Bundles in CI

* Desktop: Remove unnecessary CEF files from Windows Bundle

* Desktop: Use a temp file for license generation on Windows to avoid PowerShell modifying stdout
2026-02-06 13:37:07 +00:00
Dennis Kobert 46989438c1
Add merge_group trigger to CI to enable merge queues (#3716)
* Add merge_group trigger to ci to enable merge queues

* Update .github/workflows/build-dev-and-ci.yml

Co-authored-by: Keavon Chambers <keavon@keavon.com>

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2026-02-04 06:07:16 +00:00
Keavon Chambers 781fa7ae95
Move contributor docs editor message structure tree generator from test to tools directory (#3663) 2026-01-20 23:53:15 -08:00
Keavon Chambers 7af60e02a3
Add the auto-generated node catalog to the website's user manual (#3662)
* Generate the MVP node catalog in the manual (with some placeholders)

* Implement nearly the rest of everything

* Move to the tools directory and make it generate nicer default values

* Add category descriptions

* Organize file structure and improve type naming

* Improve book table of contents code

* Add collapsing chapter navigation to the book template

* Add to build workflow

* Clean up site structure
2026-01-20 22:52:03 -08:00
Keavon Chambers fd0addf61c Update website to use Zola 0.22 with new code block syntax highlighting 2026-01-18 00:11:12 -08:00
Timon 654a05bb41
Desktop: Build Flatpak in CI (#3633) 2026-01-13 23:46:36 +00:00
Dennis Kobert e88db022af
Exclude node registry functions from desktop frontend builds (#3584)
* Exclude node registry functions from desktop frontend builds

This reduces compile times and file sizes

* Use early return

* Fix branch name in build-linux pipeline
2026-01-06 12:34:15 +00:00
Timon cf85ec736f
Desktop: Bundle for Linux with Nix (#3569)
bundle for linux with nix
2026-01-06 00:32:55 +00:00
Timon ee2e61f38f
Provide shaders via artifact repo (#3250)
* raster_nodes_shaders_entrypoint.wgsl upload
2026-01-02 17:17:56 +00:00
James Lindsay 20bbe6cdcc
Avoid running `cargo audit` on forks (#3473)
Don't run the cargo audit nonsense on forks
2025-12-22 11:27:10 +00:00
Keavon Chambers d441a02e72
Upgrade Rawkit library Rust dependencies (#3124)
* Upgrade Rawkit library Rust dependencies

* Continue on sccache failures

* Update again
2025-12-20 17:36:02 -08:00
Keavon Chambers fb0fab0622 Update links from graphite.rs to graphite.art 2025-12-06 18:10:27 -08:00
Timon 3f532e478c
Separate branded assets from monorepo (#3406)
* remove branded files

* use branding repo

* include favicons

* nixpkg fixup

* win fix ico path

* fix fmt

* skip licensenses for dev builds

* review fixup

* test

* test

* ci test

* ci test

* ci test

* fix ci
2025-11-25 02:42:27 +00:00
Timon ebb434692a
Desktop: Enable GPU nodes (#3364)
* desktop simple nix ci

* make workflow manual

* fixup

* fix nix shell

* nix fmt

* fix shell
2025-11-16 22:37:02 +00:00
Keavon Chambers 6b315c3b68
Modernize and fix website build tooling deps and utilize JS type checking (#3348)
* Modernize and fix website build tooling deps and utilize JS type checking

* Upgrade to the latest Node.js
2025-11-06 16:30:35 -08:00
Dennis Kobert 557df6917d
Reduce variability noise of the profiling comment CI action (#3303)
* Only consider changes significant if they exceed an absolute ir diff

* Node graph folder change to trigger ci

* Use extra step for detecting significant perf degradations

* Reenable expanding of sections with significant changes

* Remove temp file
2025-10-23 11:39:27 +02:00
Dennis Kobert 37bf2ade11
Improve profiling CI (#3296)
* Imporve profiling CI

* Disable optimizations for graphene core in dev builds
2025-10-21 13:01:41 +00:00
Dennis Kobert acd7ba38cc
Graphene: Fine-grained context caching (#2500)
* RFC: Fine Grained Context Caching

* Fix typos

* Fix label

* Add description of inject traits

* Explicitly support context modification

* Start implementation of context invalidation

* Add inject trait variants
* Route Extract / Inject traits to the proto nodes

* Implement context dependency analysis

* Implement context modification node insertion

* Fix erronous force graph run message

* Fix Extract* Inject* annotations in the nodes

* Require Hash implementation for VarArgs

* Fix nullification node insertion

* Cross of done items unresolved questions section

* Update Cargo.lock

* Fix context features propagation

* Update demo artwork

* Remove BondlessFootprint and FreezeRealTime nodes

* Fix migration

* Add migrations for adding context features to old networks

* Always update real time regardless of animation state

* Cargo fmt

* Fix tests

* Readd sed command to hopefully fix profile result parsing

* Add debug output to profiling pr

* Use new totals instead of summaries for for iai results

* Even more debugging

* Use correct debug metrics (hopefully)

* Add more MemoNode implementations

* Add context features annotation to shader node macro

* Cleanup

* Time -> RealTime

* Code review

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-09-05 11:44:26 +00:00
Dennis Kobert 7dc86b36ca
Fix profiling CI action by avoiding command line length limits (#3136)
Fix profiling ci by avoiding comand line length limits
2025-09-04 12:22:17 +02:00
Firestar99 a10103311e
Shaders: rust-gpu integration to compile shader nodes to WGSL (#3097)
* shaders: shader compilation setup

* nix: use rustc_codegen_spirv.so from nix

* shaders: codegen for per_pixel_adjust shader nodes

* shaders: disable nodes needing bool

* shaders: `#[repr(u32)]` some enums

* shaders: add lint ignores from rust-gpu

* shaders: fix node-macro tests

* gcore-shaders: toml cleanup

* shader-nodes feature: put rust-gpu to wgsl compile behind feature gate

* shaders: fix use TokenStream2

* shaders: allow providing shader externally

* Update iai runner in workflow

---------

Co-authored-by: Timon Schelling <me@timon.zip>
Co-authored-by: Dennis Kobert <dennis@kobert.dev>
2025-09-02 14:10:32 +00:00
Keavon Chambers b5ebe78f5e
Update all frontend npm dependencies except Svelte and Vite (#3120)
* Upgrade node dependencies except Svelte 5 and its peer deps

* Fix lint errors

* Fix previous Rust deps upgrade breakage

* Fix demo artwork

* Allow profiling CI workflow to fail
2025-09-01 17:22:30 -07:00
Firestar99 ce1cd1706b
Disable `proc-macros` crate from being tested due to cargo bug (#3103)
* cargo: remove unused `editor/ron` feature

* cargo: add wgpu-executor as a member, sort list

* cargo: test every crate by default

* cargo: disable testing of `graphite-proc-macros`
2025-08-29 12:25:35 +02:00
Firestar99 a199a5fd64
Make CI reject an out-of-date Cargo.lock manifest (#3101)
* ci: detect out of date Cargo.lock

* update Cargo.lock

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-08-27 17:51:33 -07:00
Keavon Chambers 3bcec37493
Remove the deprecated/archived Bezier-rs library from the repo (#3058)
Remove the Bezier-rs library from the repo
2025-08-16 17:29:00 -07:00
Dennis Kobert d2ddf94bd0
Include graph runtime benchmarks in CI perf regression runs (#2780)
* Include graph runtime benchmarks in ci regression run

* Update benchmarking workflow

* Add render slowdown

* Fix baseline cache

* Remove benchmark compilation validation run

* Include render node in runtime benchmarks

* Collapse sections without changes

* Readd rulers between the sections

* Add review suggestions

* Rulers rule

* Fix whitespace
2025-08-07 14:32:19 +02:00
Keavon Chambers 4391f88d03 Update references to the latest tech stack plans 2025-07-29 15:17:41 -07:00
Keavon Chambers d6d1bbb1e6 Add editor structure outline to the developer guide on the website 2025-07-12 23:09:29 -07:00