From 2cb5946c4d1f555f952b9ec600e30c9907698d97 Mon Sep 17 00:00:00 2001 From: Shunichiro Nomura Date: Thu, 15 Oct 2026 10:17:52 +0900 Subject: [PATCH 1/3] Update rustls --- Cargo.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 47306818b..9472fc85b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -859,7 +859,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -3531,7 +3531,7 @@ dependencies = [ "once_cell", "socket2", "tracing", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -3701,7 +3701,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -3716,9 +3716,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.45" +version = "0.23.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d41d731c7d2f962d1ccc364cec258de3c0e93b38c2fb3ba97ac74513048d634" +checksum = "48e13bd8c0e9365c43cfa5c9e8f9ad49d3c8444926c9aac819e0e4dc503c8fdf" dependencies = [ "aws-lc-rs", "once_cell", @@ -3768,7 +3768,7 @@ dependencies = [ "security-framework", "security-framework-sys", "webpki-root-certs", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -4180,10 +4180,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" dependencies = [ "fastrand", - "getrandom 0.4.3", + "getrandom 0.3.4", "once_cell", "rustix", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -4909,7 +4909,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] From 408a2b20f89eb74446146e60ef793d83f094327b Mon Sep 17 00:00:00 2001 From: Shunichiro Nomura Date: Thu, 15 Oct 2026 10:44:11 +0900 Subject: [PATCH 2/3] Update version to v0.0.1-alpha.36 --- Cargo.lock | 36 ++++++++++++++++++------------------ Cargo.toml | 30 +++++++++++++++--------------- fuzz/Cargo.lock | 20 ++++++++++---------- 3 files changed, 43 insertions(+), 43 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9472fc85b..d6deeb1f9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2009,7 +2009,7 @@ dependencies = [ [[package]] name = "graphcal" -version = "0.0.1-alpha.35" +version = "0.0.1-alpha.36" dependencies = [ "arrow-array", "arrow-ipc", @@ -2048,7 +2048,7 @@ dependencies = [ [[package]] name = "graphcal-ast-derive" -version = "0.0.1-alpha.35" +version = "0.0.1-alpha.36" dependencies = [ "proc-macro2", "quote", @@ -2057,7 +2057,7 @@ dependencies = [ [[package]] name = "graphcal-compiler" -version = "0.0.1-alpha.35" +version = "0.0.1-alpha.36" dependencies = [ "graphcal-ast-derive", "graphcal-ratio", @@ -2077,7 +2077,7 @@ dependencies = [ [[package]] name = "graphcal-eval" -version = "0.0.1-alpha.35" +version = "0.0.1-alpha.36" dependencies = [ "graphcal-compiler", "hifitime", @@ -2093,7 +2093,7 @@ dependencies = [ [[package]] name = "graphcal-fmt" -version = "0.0.1-alpha.35" +version = "0.0.1-alpha.36" dependencies = [ "graphcal-compiler", "graphcal-test-support", @@ -2107,7 +2107,7 @@ dependencies = [ [[package]] name = "graphcal-io" -version = "0.0.1-alpha.35" +version = "0.0.1-alpha.36" dependencies = [ "cap-std", "graphcal-compiler", @@ -2119,7 +2119,7 @@ dependencies = [ [[package]] name = "graphcal-lsp" -version = "0.0.1-alpha.35" +version = "0.0.1-alpha.36" dependencies = [ "futures-util", "graphcal-compiler", @@ -2143,7 +2143,7 @@ dependencies = [ [[package]] name = "graphcal-package" -version = "0.0.1-alpha.35" +version = "0.0.1-alpha.36" dependencies = [ "sha2", "thiserror", @@ -2153,7 +2153,7 @@ dependencies = [ [[package]] name = "graphcal-plugin" -version = "0.0.1-alpha.35" +version = "0.0.1-alpha.36" dependencies = [ "graphcal-compiler", "graphcal-eval", @@ -2167,7 +2167,7 @@ dependencies = [ [[package]] name = "graphcal-plugin-abi" -version = "0.0.1-alpha.35" +version = "0.0.1-alpha.36" dependencies = [ "serde", "serde_json", @@ -2176,7 +2176,7 @@ dependencies = [ [[package]] name = "graphcal-plugin-host" -version = "0.0.1-alpha.35" +version = "0.0.1-alpha.36" dependencies = [ "graphcal-compiler", "graphcal-eval", @@ -2193,7 +2193,7 @@ dependencies = [ [[package]] name = "graphcal-plugin-macros" -version = "0.0.1-alpha.35" +version = "0.0.1-alpha.36" dependencies = [ "graphcal-plugin-abi", "graphcal-ratio", @@ -2204,7 +2204,7 @@ dependencies = [ [[package]] name = "graphcal-project" -version = "0.0.1-alpha.35" +version = "0.0.1-alpha.36" dependencies = [ "base64 0.23.1", "graphcal-compiler", @@ -2227,7 +2227,7 @@ dependencies = [ [[package]] name = "graphcal-ratio" -version = "0.0.1-alpha.35" +version = "0.0.1-alpha.36" dependencies = [ "proptest", "thiserror", @@ -2235,7 +2235,7 @@ dependencies = [ [[package]] name = "graphcal-report" -version = "0.0.1-alpha.35" +version = "0.0.1-alpha.36" dependencies = [ "base64 0.23.1", "graphcal-compiler", @@ -2248,7 +2248,7 @@ dependencies = [ [[package]] name = "graphcal-tenax" -version = "0.0.1-alpha.35" +version = "0.0.1-alpha.36" dependencies = [ "arrow-array", "arrow-ipc", @@ -2261,7 +2261,7 @@ dependencies = [ [[package]] name = "graphcal-test-support" -version = "0.0.1-alpha.35" +version = "0.0.1-alpha.36" dependencies = [ "graphcal-compiler", "proptest", @@ -2269,7 +2269,7 @@ dependencies = [ [[package]] name = "graphcal-wasm" -version = "0.0.1-alpha.35" +version = "0.0.1-alpha.36" dependencies = [ "graphcal-compiler", "graphcal-eval", diff --git a/Cargo.toml b/Cargo.toml index a36f36528..7d12d7e6d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,7 +7,7 @@ members = ["crates/*"] default-members = ["crates/graphcal-cli"] [workspace.package] -version = "0.0.1-alpha.35" +version = "0.0.1-alpha.36" edition = "2024" rust-version = "1.99" description = "Type-safe, unit-aware, Git-friendly reactive programming language for engineering calculations" @@ -24,20 +24,20 @@ arrow-schema = "60.0.0" base64 = "0.23.1" clap = { version = "4.5.58", features = ["derive"] } gix = { version = "0.89.0", default-features = false, features = ["blocking-http-transport-reqwest-rust-tls", "parallel", "sha1", "worktree-mutation"] } -graphcal-ast-derive = { path = "crates/graphcal-ast-derive", version = "0.0.1-alpha.35" } -graphcal-compiler = { path = "crates/graphcal-compiler", version = "0.0.1-alpha.35" } -graphcal-eval = { path = "crates/graphcal-eval", version = "0.0.1-alpha.35" } -graphcal-fmt = { path = "crates/graphcal-fmt", version = "0.0.1-alpha.35" } -graphcal-io = { path = "crates/graphcal-io", version = "0.0.1-alpha.35" } -graphcal-lsp = { path = "crates/graphcal-lsp", version = "0.0.1-alpha.35" } -graphcal-package = { path = "crates/graphcal-package", version = "0.0.1-alpha.35" } -graphcal-plugin-abi = { path = "crates/graphcal-plugin-abi", version = "0.0.1-alpha.35" } -graphcal-plugin-host = { path = "crates/graphcal-plugin-host", version = "0.0.1-alpha.35" } -graphcal-plugin-macros = { path = "crates/graphcal-plugin-macros", version = "0.0.1-alpha.35" } -graphcal-project = { path = "crates/graphcal-project", version = "0.0.1-alpha.35" } -graphcal-ratio = { path = "crates/graphcal-ratio", version = "0.0.1-alpha.35" } -graphcal-report = { path = "crates/graphcal-report", version = "0.0.1-alpha.35" } -graphcal-tenax = { path = "crates/graphcal-tenax", version = "0.0.1-alpha.35" } +graphcal-ast-derive = { path = "crates/graphcal-ast-derive", version = "0.0.1-alpha.36" } +graphcal-compiler = { path = "crates/graphcal-compiler", version = "0.0.1-alpha.36" } +graphcal-eval = { path = "crates/graphcal-eval", version = "0.0.1-alpha.36" } +graphcal-fmt = { path = "crates/graphcal-fmt", version = "0.0.1-alpha.36" } +graphcal-io = { path = "crates/graphcal-io", version = "0.0.1-alpha.36" } +graphcal-lsp = { path = "crates/graphcal-lsp", version = "0.0.1-alpha.36" } +graphcal-package = { path = "crates/graphcal-package", version = "0.0.1-alpha.36" } +graphcal-plugin-abi = { path = "crates/graphcal-plugin-abi", version = "0.0.1-alpha.36" } +graphcal-plugin-host = { path = "crates/graphcal-plugin-host", version = "0.0.1-alpha.36" } +graphcal-plugin-macros = { path = "crates/graphcal-plugin-macros", version = "0.0.1-alpha.36" } +graphcal-project = { path = "crates/graphcal-project", version = "0.0.1-alpha.36" } +graphcal-ratio = { path = "crates/graphcal-ratio", version = "0.0.1-alpha.36" } +graphcal-report = { path = "crates/graphcal-report", version = "0.0.1-alpha.36" } +graphcal-tenax = { path = "crates/graphcal-tenax", version = "0.0.1-alpha.36" } graphcal-test-support = { path = "crates/graphcal-test-support" } hifitime = "4.2.4" indexmap = "2.13.0" diff --git a/fuzz/Cargo.lock b/fuzz/Cargo.lock index 6c30e266d..74b8b73c4 100644 --- a/fuzz/Cargo.lock +++ b/fuzz/Cargo.lock @@ -366,7 +366,7 @@ dependencies = [ [[package]] name = "graphcal-ast-derive" -version = "0.0.1-alpha.35" +version = "0.0.1-alpha.36" dependencies = [ "proc-macro2", "quote", @@ -375,7 +375,7 @@ dependencies = [ [[package]] name = "graphcal-compiler" -version = "0.0.1-alpha.35" +version = "0.0.1-alpha.36" dependencies = [ "graphcal-ast-derive", "graphcal-ratio", @@ -391,7 +391,7 @@ dependencies = [ [[package]] name = "graphcal-eval" -version = "0.0.1-alpha.35" +version = "0.0.1-alpha.36" dependencies = [ "graphcal-compiler", "hifitime", @@ -406,7 +406,7 @@ dependencies = [ [[package]] name = "graphcal-fmt" -version = "0.0.1-alpha.35" +version = "0.0.1-alpha.36" dependencies = [ "graphcal-compiler", "pretty", @@ -431,7 +431,7 @@ dependencies = [ [[package]] name = "graphcal-io" -version = "0.0.1-alpha.35" +version = "0.0.1-alpha.36" dependencies = [ "cap-std", "graphcal-compiler", @@ -443,7 +443,7 @@ dependencies = [ [[package]] name = "graphcal-package" -version = "0.0.1-alpha.35" +version = "0.0.1-alpha.36" dependencies = [ "sha2", "thiserror", @@ -453,7 +453,7 @@ dependencies = [ [[package]] name = "graphcal-plugin-abi" -version = "0.0.1-alpha.35" +version = "0.0.1-alpha.36" dependencies = [ "serde", "serde_json", @@ -462,7 +462,7 @@ dependencies = [ [[package]] name = "graphcal-project" -version = "0.0.1-alpha.35" +version = "0.0.1-alpha.36" dependencies = [ "base64", "graphcal-compiler", @@ -479,14 +479,14 @@ dependencies = [ [[package]] name = "graphcal-ratio" -version = "0.0.1-alpha.35" +version = "0.0.1-alpha.36" dependencies = [ "thiserror", ] [[package]] name = "graphcal-test-support" -version = "0.0.1-alpha.35" +version = "0.0.1-alpha.36" dependencies = [ "graphcal-compiler", "proptest", From f7d781af1a8c3e36cecb388957d556b068de70ec Mon Sep 17 00:00:00 2001 From: Shunichiro Nomura Date: Thu, 15 Oct 2026 11:00:05 +0900 Subject: [PATCH 3/3] Add v0.0.1-alpha.36 release notes to CHANGELOG --- CHANGELOG.md | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f620498fd..d1c3299cf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,71 @@ Release notes for Graphcal. Each release section becomes the body of its GitHub Add a `## v` section before running the release workflow. Earlier releases are listed on [GitHub Releases](https://github.com/graphcal-lang/graphcal/releases). +## v0.0.1-alpha.36 + +This release adds Graphcal View, an experimental per-file sheet that opens Graphcal files from GitHub at , and the `graphcal view` command that exports its data. +It also lets `cargo binstall` install the prebuilt binaries, raises the minimum supported Rust version for source builds to 1.99, makes diagnostic codes unique, and updates `rustls` to fix security advisories. + +No existing Graphcal source programs need to be modified. +Plugin errors and one module-resolution error have new diagnostic codes. See [Changed Diagnostic Codes](#changed-diagnostic-codes). + +### Graphcal View (Experimental) + +- [graphcal.org/view](https://graphcal.org/view/) shows a Graphcal file as a sheet. Columns follow the dependencies between declarations, and indexed values are laid out as tables. (_#2057_) + - Open a file on GitHub with an address of the form `https://graphcal.org/view/#owner/repo@ref/path/to/file.gcl`. The page has no server: the browser reads the repository through the GitHub REST API and evaluates the project with the WebAssembly engine. + - Edit a cell, the formula bar, or the code pane, and the project is re-evaluated. If an edit fails, it is rolled back and the reason is shown. Nothing is saved. **Copy changes** puts the edits on the clipboard as a unified diff that `git apply` accepts. + - The code pane is shown beside the sheet, with values at the end of each declaring line. A toggle switches between code only, both, and sheet only. + - An included or imported file can be pinned beside the sheet or opened through the breadcrumb. The explorer lists the repository's files and switches between branches, tags, and open pull requests. + - `@base...head` compares two revisions: the code pane shows a diff, and the sheet frames changed nodes and shows the old values. + - Public repositories need no token, but GitHub allows only 60 requests per hour without one. For private repositories or a higher limit, paste a fine-grained personal access token with read-only Contents access. The token is stored in the browser's local storage and sent only to `api.github.com`. +- The new `graphcal view [--root ]` command prints the file's view model as JSON. The language server provides the same model through the custom request `graphcal/viewModel` and, to clients that declare `experimental.graphcal.viewModelChanges`, the notification `graphcal/viewModelDidChange`. The view model format may change in later releases. (_#2057_, _#2059_) +- Other editors and the playground do not pay for the view: the language server and the browser engine build the view model only when it is requested. (_#2059_) + +### Installation + +- `cargo binstall graphcal@0.0.1-alpha.36` installs the prebuilt binary from the GitHub Release. It never falls back to third-party cargo-quickinstall binaries, and builds from source for targets without a prebuilt archive. (_#2027_) +- The installation guide is reorganized by task: the installer scripts come first, then `cargo binstall` and `cargo install`, then building from source. A new section shows how to install Graphcal in GitHub Actions with [`graphcal-lang/setup-graphcal@v1`](https://github.com/graphcal-lang/setup-graphcal). The README Quickstart uses the installer script. (_#2028_) +- Building Graphcal from source, depending on its Rust crates, and building plugins now require **Rust 1.99** or later (previously 1.95). Users of the prebuilt binaries are unaffected. (_#2033_) + +### Changed Diagnostic Codes + +Some diagnostic codes were assigned to two different errors. Each code now names exactly one error. If your scripts or CI match on these codes, update them. + +- Plugin errors use W codes instead of P codes, keeping their numbers; for example, P001 is now W001. P codes now belong only to parse errors. (_#2032_) +- A module lookup failure that no more specific diagnostic covers now reports M036 instead of M033. M033 remains the code for a file-root `import` of its own file. (_#2032_) +- A test now checks that no two errors in the workspace share a code. (_#2032_) + +### Security + +- Updated `rustls` to v0.23.46 to fix RUSTSEC-2026-0346, RUSTSEC-2026-0347, RUSTSEC-2026-0348, and RUSTSEC-2026-0349. Graphcal uses `rustls` when it fetches Git dependencies over HTTPS. (_#2095_) + +### Documentation + +- The plugin documentation cites the new W codes. The plugin authoring guide named the wrong code for an extern signature that binds a bare name; it now says W001 or P016. (_#2032_) +- The installation guides state the Rust 1.99 requirement. (_#2033_) + +### Dependency, Toolchain, and Workflow Maintenance + +- GitHub Release titles start with `v` again, such as `v0.0.1-alpha.36`. dist takes the title from the `CHANGELOG.md` heading, so the headings are now `## v`, and the release check rejects a heading without `v`. (_#2026_) +- The report engine build inside a source build ignores inherited dynamic-library search paths, so it cannot pick up another Rust installation's sysroot. The Miri and AddressSanitizer jobs use a nightly compatible with Rust 1.99. (_#2033_) +- Updated Rust crates: `proptest` to v1.12.0, `serde_json` to v1.0.152, `sha2` to v0.11.1, `syn` to v3.0.9, `tokio` to v1.53.3, and `wat` to v1.262.0. (_#2041_, _#2035_, _#2052_, _#2030_, _#2045_, _#2055_, _#2056_) +- Updated JavaScript tooling: pnpm to v12.11.2, Vite+ to v1.1.0, CodeMirror (`@codemirror/language` v6.13.1, `@codemirror/view` v6.43.14), `@playwright/test` to v1.64.0, and `@types/node` to v26.6.5. (_#2029_, _#2047_, _#2048_, _#2051_, _#2031_, _#2034_, _#2040_, _#2050_) +- Updated GitHub Actions: `taiki-e/install-action` to v2.87.26, `crate-ci/typos` to v1.51.1, `actions/download-artifact` to v8.0.2, and `actions/upload-artifact` to v7.0.2. (_#2036_, _#2043_, _#2049_, _#2053_, _#2054_, _#2087_, _#2089_) +- Refreshed lock files. (_#2046_) + +### Internal + +- `just lint`, `just test`, and `just docs-build` build and test the view's web app under `web/view/`, and the documentation site publishes it at `/view/`. The design notes are in `internals/view.md`. (_#2057_) +- Removed unused public accessors from `graphcal-eval`: `RuntimeEvaluation::result`, `Value::dimension`, and `HostArray::into_parts`. (_#2038_) +- Added a test for which values `@imported::name` and `@included::name` may read, with and without overlay bindings. (_#2042_) +- Added the v0.0.1-alpha.36 notes to `CHANGELOG.md` and bumped the workspace version to v0.0.1-alpha.36. (_#2096_) + +### New Contributors + +- @ogoogo made their first contribution in + +**Full Changelog**: + ## v0.0.1-alpha.35 This release is the first to ship prebuilt `graphcal` binaries, so you no longer need a Rust toolchain to install Graphcal.