feat: merge nebula_gpui into the root workspace (crossfont 0.9.0 unblocks links)
- crossfont 0.8.1 -> 0.9.0: upstream bumped yeslogic-fontconfig-sys to ^6.0, aligning with gpui's zed-font-kit so a single 6.0.1 owns links=fontconfig. - wayland CSD switches to the ab_glyph flavor so sctk-adwaita 0.10 stops pulling crossfont ^0.8 (and yeslogic ^5) back into the graph. Linux-only decoration text; Windows/macOS unaffected. - Drop the workspace exclude and nebula_gpui's member-level lockfile; one lockfile now holds gpui 0.2.2 + crossfont 0.9.0. Both bins compile. - ARCHITECTURE.md: the "unresolvable conflict" section now records the fix.
This commit is contained in:
1 parent
3240727d8d
commit
b5ff2de9b7
6 files changed
+5064
-8134
No files matched your search
Generated
+5041
-197
File diff suppressed because it is too large.
Load diff
+1
-1
@@ -6,8 +6,8 @@ members = [
|
||||
"nebula_config_derive",
|
||||
"nebula-completions",
|
||||
"nebula_hook",
|
||||
"nebula_gpui",
|
||||
]
|
||||
exclude = ["nebula_gpui"]
|
||||
resolver = "2"
|
||||
|
||||
[workspace.package]
|
||||
|
||||
@@ -44,7 +44,7 @@ bitflags = "2.2.1"
|
||||
chrono = "0.4.45"
|
||||
clap = { version = "4.2.7", features = ["derive", "env"] }
|
||||
copypasta = { version = "0.10.1", default-features = false }
|
||||
crossfont = "0.8.1"
|
||||
crossfont = "0.9.0"
|
||||
glutin = { version = "0.32.2", default-features = false, features = ["egl", "wgl"] }
|
||||
html-escape = "0.2.14"
|
||||
home = "0.5.5"
|
||||
@@ -182,7 +182,10 @@ wayland = [
|
||||
"glutin/wayland",
|
||||
"winit/wayland",
|
||||
"winit/wayland-dlopen",
|
||||
"winit/wayland-csd-adwaita-crossfont",
|
||||
# ab_glyph 口味而非 crossfont 口味:摘掉 sctk-adwaita 对 crossfont ^0.8
|
||||
# 的依赖(0.11+ 才升 ^0.9),避免图谱里出现双版本 crossfont → 双版本
|
||||
# yeslogic-fontconfig-sys(links 冲突随之回归)。仅影响 Linux Wayland 窗饰文字。
|
||||
"winit/wayland-csd-adwaita",
|
||||
]
|
||||
nightly = []
|
||||
wgpu-foundation = ["dep:pollster", "dep:wgpu"]
|
||||
+13
-13
@@ -60,22 +60,22 @@ removal condition, and the maintenance owner is explicit.
|
||||
|
||||
## Workspace Boundary
|
||||
|
||||
`nebula_gpui` is excluded from the root Cargo workspace because of a proven,
|
||||
unresolvable native-link conflict (verified 2026-08-12 by attempting the
|
||||
merge and letting Cargo resolve):
|
||||
`nebula_gpui` is a member of the root Cargo workspace (merged 2026-08-12).
|
||||
The former blocker — two packages holding `links = "fontconfig"` — was
|
||||
resolved by aligning both sides on `yeslogic-fontconfig-sys ^6.0`:
|
||||
|
||||
- `gpui 0.2.2` → `zed-font-kit 0.14.1-zed` → `yeslogic-fontconfig-sys ^6.0`
|
||||
- `nebula` (main app) → `crossfont 0.8.1` → `yeslogic-fontconfig-sys ^5.0`
|
||||
- `nebula` → `crossfont 0.9.0` (upstream bumped to `^6.0` in 0.9.0)
|
||||
- The winit Wayland decoration feature switched from the crossfont flavor to
|
||||
`wayland-csd-adwaita` (ab_glyph), so `sctk-adwaita 0.10` no longer drags
|
||||
`crossfont ^0.8` (and with it `yeslogic ^5`) back into the graph. This is
|
||||
Linux-only decoration text; Windows/macOS builds are unaffected.
|
||||
|
||||
Both packages set `links = "fontconfig"`, Cargo allows exactly one version of
|
||||
a `links` key per dependency graph, and `^5`/`^6` have no intersection, so a
|
||||
merged workspace fails at resolve time on every platform (the lockfile is
|
||||
platform-independent). No patch can fix this without forking a font stack.
|
||||
|
||||
The merge becomes possible exactly when `crossfont` leaves the dependency
|
||||
graph — that is, when the legacy OpenGL renderer is retired. Until then the
|
||||
two workspaces stay separate, and pure Rust core crates such as
|
||||
`nebula_terminal` are shared across the boundary via `path` dependencies.
|
||||
One lockfile now holds `gpui 0.2.2`, `crossfont 0.9.0`, and a single
|
||||
`yeslogic-fontconfig-sys 6.0.1`, and both binaries compile from the merged
|
||||
workspace. `crossfont` still leaves the graph entirely when the legacy
|
||||
OpenGL renderer is retired; the decoration switch was the first consumer
|
||||
removed on that path.
|
||||
|
||||
## Terminal Vertical Slice
|
||||
|
||||
|
||||
Generated
-7918
File diff suppressed because it is too large.
Load diff
@@ -19,9 +19,10 @@ gpui-component-assets = "=0.5.1"
|
||||
# 边界直接 path 引用而不会重新引入 fontconfig links 冲突。
|
||||
nebula_terminal = { path = "../nebula_terminal" }
|
||||
futures = "0.3"
|
||||
|
||||
[workspace]
|
||||
resolver = "2"
|
||||
# 读取用户 nebula.toml 的字体/配色子集;版本与主仓保持一致。
|
||||
serde = { version = "1", features = ["derive"] }
|
||||
toml = "0.9"
|
||||
dirs = "6.0.0"
|
||||
|
||||
[lints.clippy]
|
||||
dbg_macro = "deny"
|
||||
|
||||
Reference in new issue
Block a user