diff --git a/.github/workflows/linux-lua.yml b/.github/workflows/linux-lua.yml index ad515b2..2f499dd 100644 --- a/.github/workflows/linux-lua.yml +++ b/.github/workflows/linux-lua.yml @@ -6,12 +6,14 @@ on: - "**/*.rs" - "**/Cargo.toml" - "Cargo.lock" + - "rust-toolchain.toml" - ".github/workflows/linux-lua.yml" pull_request: paths: - "**/*.rs" - "**/Cargo.toml" - "Cargo.lock" + - "rust-toolchain.toml" - ".github/workflows/linux-lua.yml" permissions: @@ -34,7 +36,7 @@ jobs: libxcb-shape0-dev libxcb-xfixes0-dev - uses: dtolnay/rust-toolchain@stable with: - toolchain: "1.85.0" + toolchain: "1.97.1" - uses: Swatinem/rust-cache@v2 - name: Test Lua configuration on Wayland and X11 build run: cargo test -p nebula config:: diff --git a/INSTALL.md b/INSTALL.md index 2a431b0..dcf1121 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -40,7 +40,8 @@ Keep the extracted directory structure intact: ## Build from source -Requirements: Windows 10 1809+ / 11, [Rust](https://rustup.rs) 1.85+. +Requirements: Windows 10 1809+ / 11 and [rustup](https://rustup.rs). The +repository pins Rust 1.97.1 in `rust-toolchain.toml`. ```powershell git clone https://github.com/Kuddev/nebula diff --git a/nebula_gpui/ARCHITECTURE.md b/nebula_gpui/ARCHITECTURE.md index 1c21c7a..2bcd0b7 100644 --- a/nebula_gpui/ARCHITECTURE.md +++ b/nebula_gpui/ARCHITECTURE.md @@ -68,27 +68,44 @@ application boundary. ## Dependency Policy -The validated dependency set is pinned exactly: +The v1.16.1 migration baseline is pinned by both package version and immutable +Git revision: ```toml gpui = "=0.2.2" -gpui-component = "=0.5.1" +gpui_platform = "=0.1.0" +gpui-component = "=0.5.2" gpui-component-assets = "=0.5.1" ``` -Do not use wildcard versions, Git `main`, or third-party GPUI forks. GPUI and -gpui-component must resolve to one GPUI version; verify each dependency change -with: +- `gpui` and `gpui_platform` come from `zed-industries/zed` commit + `eb8e1c8b5502b7007465fbbc465f4a736fa39210` (the official `v1.16.1` tag). +- `gpui-component` and its assets come from `Kuddev/gpui-component` commit + `4ee9f274e990d6228e4f276f0a1e48f62f6a2048`. This baseline contains the + upstream snapshot plus the Zed revision pin; it intentionally excludes + Nebula product patches. +- The `nebula-v1.16.1-base` branch and tag in both Kuddev forks are audit and + recovery anchors. Cargo dependencies always use the full commit SHA, never + those movable names. + +Cargo source identity includes the repository URL. All Zed crates therefore +use the official URL, including transitive dependencies from gpui-component; +using the Kuddev Zed mirror for only part of the graph would create two +incompatible copies of GPUI even when both URLs point to the same commit. + +Do not use wildcard versions, Git `main`, or branch-only pins. Verify every +dependency revision change with: ```powershell -cargo check --locked --offline -cargo tree -i gpui +cargo check -p nebula --features gpui-shell --locked --offline +cargo tree -p nebula --features gpui-shell -i gpui --locked --offline ``` -GPUI upgrades happen in a dedicated change with component acceptance testing; -they are not bundled with feature work. Do not fork an upstream crate unless a -documented upstream issue blocks a release, the temporary patch has a defined -removal condition, and the maintenance owner is explicit. +GPUI upgrades happen in a dedicated branch with component acceptance testing; +they are not bundled with feature work. Each required Nebula component patch +must be restored in its own commit, advance the exact component revision, name +the blocked behavior, and define its upstream or removal condition. The fixed +baseline branch and tag must never move. ## Workspace Boundary diff --git a/rust-toolchain.toml b/rust-toolchain.toml new file mode 100644 index 0000000..010f002 --- /dev/null +++ b/rust-toolchain.toml @@ -0,0 +1,4 @@ +[toolchain] +channel = "1.97.1" +profile = "minimal" +components = ["rustfmt", "clippy"]