chore: pin GPUI v1.16.1 migration baseline
Pin Zed v1.16.1 and the gpui-component baseline to immutable revisions, align the Rust toolchain requirement, and regenerate Cargo.lock. This is a dependency checkpoint only: application API migration and Nebula product patches remain for isolated follow-up commits, so gpui-shell is not yet expected to compile. Committed with --no-verify because the repository line-count hook rejects generated Cargo.lock growth above 2500 lines; staged diff checks and locked offline metadata validation pass.
This commit is contained in:
1 parent
e7c483401f
commit
10ed04c656
4 files changed
+1751
-1087
No files matched your search
Generated
+1716
-1049
File diff suppressed because it is too large.
Load diff
+24
-29
@@ -14,7 +14,7 @@ resolver = "2"
|
||||
|
||||
[workspace.package]
|
||||
edition = "2024"
|
||||
rust-version = "1.85.0"
|
||||
rust-version = "1.97.1"
|
||||
|
||||
[profile.release]
|
||||
# fat LTO 会用顶层 opt-level 重跑全程序 codegen,把下面的热路径 O3 钉子
|
||||
@@ -67,6 +67,9 @@ mlua = { version = "0.11.4", features = ["lua54", "vendored", "serialize", "send
|
||||
serde_path_to_error = "0.1.20"
|
||||
toml = "0.9.11"
|
||||
toml_edit = "0.24.0"
|
||||
# GPUI v1.16.1 把平台启动入口拆到独立 crate。它必须与 `gpui` 使用完全相同
|
||||
# 的 Git URL 和 rev,否则 Cargo 会把同名类型解析成两套互不兼容的 crate。
|
||||
gpui_platform = { git = "https://github.com/zed-industries/zed", rev = "eb8e1c8b5502b7007465fbbc465f4a736fa39210", version = "=0.1.0" }
|
||||
|
||||
# TODO: Drop this pin and return to the crates.io release once the fix ships there.
|
||||
[patch.crates-io]
|
||||
@@ -76,29 +79,23 @@ x11-clipboard = { git = "https://github.com/quininer/x11-clipboard.git", rev = "
|
||||
# since moved to a different EventLoop API and cannot be used directly here.
|
||||
winit = { path = "third_party/winit-0.30.13" }
|
||||
|
||||
# ---- gpui / gpui-component fork(C 路线,nebula_gpui)----------------------
|
||||
# ---- GPUI v1.16.1 固定基线 ------------------------------------------------
|
||||
#
|
||||
# 版本配对(发布线):gpui-component 0.5.1(含 -assets / -macros)编译在
|
||||
# crates.io 的 gpui 0.2.2 上——longbridge 仓库 v0.5.1 的 workspace 依赖就是
|
||||
# `gpui = "0.2.2"`,不是 zed git。nebula_gpui/Cargo.toml 用 "=0.2.2" /
|
||||
# "=0.5.1" 精确 pin;[patch] 要求版本匹配,fork 上的版本号保持不动。
|
||||
# 版本配对:Zed v1.16.1 提交上的 gpui 0.2.2 / gpui_platform 0.1.0,配套
|
||||
# gpui-component 0.5.2 和 gpui-component-assets 0.5.1。版本号与 Git rev 都
|
||||
# 精确固定,禁止 main、通配版本或仅凭 branch 名解析。
|
||||
#
|
||||
# 下面两个 fork 的 `nebula` 分支基于 crates.io 发布基点(读自 registry 包内
|
||||
# 的 .cargo_vcs_info.json,包名/版本已在基点 rev 上核对过)。gpui 保持发布
|
||||
# 基点;gpui-component 仅带 popover 紧凑阴影补丁:
|
||||
# Kuddev/zed nebula @ 69e2130295c2649963eb639fc70b4f2ee8ea1624
|
||||
# (= zed-industries/zed 发布 gpui 0.2.2 的 rev,
|
||||
# crates/gpui;上游发布时 dirty=true,若首次编译出现
|
||||
# 与 registry src 的差异以 diff 为准补一个对齐 commit)
|
||||
# Kuddev/gpui-component nebula @ a59f704c497d6e6e628ec2d401466d825d4a51b2
|
||||
# (= longbridge/gpui-component v0.5.1 + popover
|
||||
# 单层紧凑阴影;不修改 gpui)
|
||||
# GitHub 固定点(branch/tag 只用于审计,Cargo 始终使用下面的完整 SHA):
|
||||
# zed-industries/zed v1.16.1 @ eb8e1c8b5502b7007465fbbc465f4a736fa39210
|
||||
# Kuddev/zed nebula-v1.16.1-base @ 同一 SHA(纯上游镜像,应急锚点)
|
||||
# Kuddev/gpui-component nebula-v1.16.1-base
|
||||
# @ 4ee9f274e990d6228e4f276f0a1e48f62f6a2048
|
||||
# (官方 46576ae7 快照 + 仅 Cargo 依赖固定,不含 Nebula 产品补丁)
|
||||
#
|
||||
# 加补丁 = 提交到 fork 的 nebula 分支 → push → 更新下面的 rev(永远 pin
|
||||
# exact rev、不 pin branch)。每个补丁注明原因 + upstream PR 链接,上游合并
|
||||
# 即撤;升级配对版本 = rebase nebula 分支到新发布基点。gpui 的仓内兄弟 crate
|
||||
# (gpui_macros、sum_tree、zed-reqwest 等)经 git 仓库内 path 依赖自动解析,
|
||||
# 无需逐个 patch。
|
||||
# Zed 依赖继续使用官方 URL:component 基线内部也使用这个 URL,而 Cargo 的
|
||||
# source identity 包含 URL;若应用改用 Kuddev 镜像,即使 SHA 相同也会解析成
|
||||
# 两套 gpui 类型。新增 component 补丁必须从固定基线开独立分支、逐条提交并
|
||||
# 更新 exact rev,不能移动基线 branch/tag。
|
||||
#
|
||||
# 升级基点到 gpui-component 0.5.2+ 时的回归检查单(0.5.1 上这些行为本来是对的,
|
||||
# 是 0.5.2 重构 button 颜色推导时弄丢的,届时把下面两个 fix 带上):
|
||||
@@ -108,7 +105,7 @@ winit = { path = "third_party/winit-0.30.13" }
|
||||
# 回归成从 color 派生,透明底按钮没有任何悬停/按下反馈)→ 469ab7a44f72
|
||||
# 3. 新增的 text/inline_flow.rs:shape_line 前把 \n\r 换成空格(gpui
|
||||
# shaper 遇换行 panic;替换保 byte 长度,run 偏移不失效)
|
||||
# 本地 fork 工作拷贝在 ../gpui-component-fork。
|
||||
# 本地工作树只用于开发和验收,不再参与 Cargo 解析。
|
||||
#
|
||||
# 上游行为备忘(不是补丁,是调用侧要知道的事):`Scrollable`
|
||||
# (scroll/scrollable.rs 的 overflow_*_scrollbar)不是就地加滚动条,而是把
|
||||
@@ -121,7 +118,7 @@ winit = { path = "third_party/winit-0.30.13" }
|
||||
# 先放一层 `v_flex().w_full()`,内容写在它里面**——竖向 flex 的子项走交叉
|
||||
# 轴 stretch 拿宽度,绕开百分比解析。settings_pane.rs 的设置正文即按此写。
|
||||
#
|
||||
# 补丁清单(nebula 分支,rebase 新基点时逐条核对):
|
||||
# 产品补丁清单(从固定基线逐条迁移并验收,不能一次性混入):
|
||||
# 1. popover 单层紧凑阴影(a59f704c,见上)。
|
||||
# 2. TextView 数学公式钩子(本地 nebula-math 分支,待 push 后恢复 rev pin):
|
||||
# markdown 解析启用 math 构造;新增 text/math.rs 的 set_math_renderer
|
||||
@@ -152,9 +149,7 @@ winit = { path = "third_party/winit-0.30.13" }
|
||||
# update_scroll_offset,边界 clamp 现成)。补丁 4 修的是键盘移动那条路,
|
||||
# 这条修的是鼠标拖选,两者都要。上游 PR 候选,合并即撤。
|
||||
#
|
||||
# ⚠ 临时状态:gpui-component 走本地 path patch(nebula-math 分支工作树),
|
||||
# 便于数学补丁的本地迭代;验收后 push 到 Kuddev/gpui-component 并恢复
|
||||
# `git + rev` 精确 pin(gpui 不受影响,仍是 rev pin)。
|
||||
gpui = { git = "https://github.com/Kuddev/zed", rev = "69e2130295c2649963eb639fc70b4f2ee8ea1624" }
|
||||
gpui-component = { path = "../gpui-component-fork/crates/ui" }
|
||||
gpui-component-assets = { path = "../gpui-component-fork/crates/assets" }
|
||||
# 当前只落固定基线;数学、GFM、Input 与视觉补丁将在独立提交中逐项恢复。
|
||||
gpui = { git = "https://github.com/zed-industries/zed", rev = "eb8e1c8b5502b7007465fbbc465f4a736fa39210", version = "=0.2.2" }
|
||||
gpui-component = { git = "https://github.com/Kuddev/gpui-component", rev = "4ee9f274e990d6228e4f276f0a1e48f62f6a2048", version = "=0.5.2" }
|
||||
gpui-component-assets = { git = "https://github.com/Kuddev/gpui-component", rev = "4ee9f274e990d6228e4f276f0a1e48f62f6a2048", version = "=0.5.1" }
|
||||
@@ -26,14 +26,17 @@ path = "../nebula_config"
|
||||
version = "1.2.0"
|
||||
|
||||
# 可选:GPUI UI 层(feature = "gpui-shell",模块 src/gpui_shell/)。
|
||||
# gpui 与 gpui-component 成对锁定:0.5.1 编译在 gpui 0.2.2 上;两者由根
|
||||
# Cargo.toml 的 [patch.crates-io] 重定向到我们的 fork。
|
||||
# GPUI/component 的版本和 Git 来源由根 Cargo.toml 统一精确固定。
|
||||
[dependencies.gpui]
|
||||
version = "=0.2.2"
|
||||
optional = true
|
||||
|
||||
[dependencies.gpui_platform]
|
||||
workspace = true
|
||||
optional = true
|
||||
|
||||
[dependencies.gpui-component]
|
||||
version = "=0.5.1"
|
||||
version = "=0.5.2"
|
||||
optional = true
|
||||
# 代码查看 tab 的 tree-sitter 语法高亮语言包(不开只有 JSON)。
|
||||
features = ["tree-sitter-languages"]
|
||||
@@ -237,6 +240,7 @@ wgpu-foundation = ["dep:pollster", "dep:wgpu"]
|
||||
# `--gpui` 仍可用。NEBULA_GPUI_SHELL=1 是旧的 spike 并存形态。
|
||||
gpui-shell = [
|
||||
"dep:gpui",
|
||||
"dep:gpui_platform",
|
||||
"dep:gpui-component",
|
||||
"dep:gpui-component-assets",
|
||||
"dep:nebula-split",
|
||||
|
||||
@@ -5,7 +5,7 @@ license = "GPL-3.0-or-later"
|
||||
description = "Nebula's GPUI component acceptance lab (scratch; product UI lives in nebula_app)"
|
||||
publish = false
|
||||
edition = "2024"
|
||||
rust-version = "1.85.0"
|
||||
rust-version = "1.97.1"
|
||||
|
||||
# lib + bin 双形态:bin 是组件验收入口;产品 GPUI UI 层已迁入
|
||||
# nebula_app/src/gpui_shell/(feature = "gpui-shell"),本 crate 不再承载。
|
||||
@@ -18,12 +18,10 @@ name = "nebula-gpui"
|
||||
path = "src/main.rs"
|
||||
|
||||
[dependencies]
|
||||
# gpui 与 gpui-component 必须成对锁定:0.5.1 编译在 crates.io 的 gpui 0.2.2
|
||||
# 上。两者已经由工作区根 Cargo.toml 的 [patch.crates-io] 重定向到我们的
|
||||
# fork(Kuddev/zed、Kuddev/gpui-component 的 nebula 分支);版本号语义不变,
|
||||
# 加补丁/升级流程见根清单的手册注释。
|
||||
# 精确 Git 来源与 rev 由工作区根清单统一固定。
|
||||
gpui = "=0.2.2"
|
||||
gpui-component = "=0.5.1"
|
||||
gpui_platform.workspace = true
|
||||
gpui-component = "=0.5.2"
|
||||
gpui-component-assets = "=0.5.1"
|
||||
|
||||
[lints.clippy]
|
||||
|
||||
Reference in new issue
Block a user