Prep crates for GPUI on crates.io (#39543)

Mikayla Maki created

Release Notes:

- N/A

Change summary

.config/hakari.toml                            |   2 
Cargo.lock                                     | 216 +++++++++----------
Cargo.toml                                     |  37 +-
crates/collections/Cargo.toml                  |   5 
crates/gpui/Cargo.toml                         |  18 +
crates/gpui/README.md                          |   4 
crates/gpui_macros/Cargo.toml                  |   5 
crates/http_client/Cargo.toml                  |   5 
crates/media/Cargo.toml                        |   5 
crates/refineable/Cargo.toml                   |   7 
crates/refineable/derive_refineable/Cargo.toml |   6 
crates/refineable/src/refineable.rs            |  41 ---
crates/semantic_version/Cargo.toml             |   5 
crates/sum_tree/Cargo.toml                     |   5 
crates/util/Cargo.toml                         |   6 
crates/util/src/paths.rs                       |   4 
crates/util/src/util.rs                        |   2 
crates/util_macros/Cargo.toml                  |   5 
crates/util_macros/src/util_macros.rs          |  10 
tooling/perf/Cargo.toml                        |   7 
tooling/perf/src/main.rs                       |   2 
21 files changed, 180 insertions(+), 217 deletions(-)

Detailed changes

.config/hakari.toml 🔗

@@ -24,7 +24,7 @@ workspace-members = [
 third-party = [
     { name = "reqwest", version = "0.11.27" },
     # build of remote_server should not include scap / its x11 dependency
-    { name = "scap", git = "https://github.com/zed-industries/scap", rev = "808aa5c45b41e8f44729d02e38fd00a2fe2722e7" },
+    { name = "zed-scap", git = "https://github.com/zed-industries/scap", rev = "4afea48c3b002197176fb19cd0f9b180dd36eaac", version = "0.0.8-zed" },
     # build of remote_server should not need to include on libalsa through rodio
     { name = "rodio", git = "https://github.com/RustAudio/rodio" },
 ]

Cargo.lock 🔗

@@ -11,7 +11,6 @@ dependencies = [
  "agent_settings",
  "anyhow",
  "buffer_diff",
- "collections",
  "editor",
  "env_logger 0.11.8",
  "file_icons",
@@ -36,10 +35,11 @@ dependencies = [
  "terminal",
  "ui",
  "url",
- "util",
  "uuid",
  "watch",
  "workspace-hack",
+ "zed-collections",
+ "zed-util",
 ]
 
 [[package]]
@@ -47,7 +47,6 @@ name = "acp_tools"
 version = "0.1.0"
 dependencies = [
  "agent-client-protocol",
- "collections",
  "gpui",
  "language",
  "markdown",
@@ -57,9 +56,10 @@ dependencies = [
  "settings",
  "theme",
  "ui",
- "util",
  "workspace",
  "workspace-hack",
+ "zed-collections",
+ "zed-util",
 ]
 
 [[package]]
@@ -69,7 +69,6 @@ dependencies = [
  "anyhow",
  "buffer_diff",
  "clock",
- "collections",
  "ctor",
  "futures 0.3.31",
  "gpui",
@@ -82,9 +81,10 @@ dependencies = [
  "serde_json",
  "settings",
  "text",
- "util",
  "watch",
  "workspace-hack",
+ "zed-collections",
+ "zed-util",
  "zlog",
 ]
 
@@ -104,9 +104,9 @@ dependencies = [
  "release_channel",
  "smallvec",
  "ui",
- "util",
  "workspace",
  "workspace-hack",
+ "zed-util",
 ]
 
 [[package]]
@@ -149,7 +149,6 @@ dependencies = [
  "chrono",
  "client",
  "cloud_llm_client",
- "collections",
  "component",
  "context_server",
  "convert_case 0.8.0",
@@ -158,7 +157,6 @@ dependencies = [
  "git",
  "gpui",
  "heed",
- "http_client",
  "icons",
  "indoc",
  "itertools 0.14.0",
@@ -185,10 +183,12 @@ dependencies = [
  "theme",
  "thiserror 2.0.12",
  "time",
- "util",
  "uuid",
  "workspace",
  "workspace-hack",
+ "zed-collections",
+ "zed-http-client",
+ "zed-util",
  "zed_env_vars",
  "zstd",
 ]
@@ -228,7 +228,6 @@ dependencies = [
  "client",
  "clock",
  "cloud_llm_client",
- "collections",
  "context_server",
  "ctor",
  "db",
@@ -241,7 +240,6 @@ dependencies = [
  "gpui_tokio",
  "handlebars 4.5.0",
  "html_to_markdown",
- "http_client",
  "indoc",
  "itertools 0.14.0",
  "language",
@@ -273,12 +271,14 @@ dependencies = [
  "tree-sitter-rust",
  "ui",
  "unindent",
- "util",
  "uuid",
  "watch",
  "web_search",
  "workspace-hack",
  "worktree",
+ "zed-collections",
+ "zed-http-client",
+ "zed-util",
  "zed_env_vars",
  "zlog",
  "zstd",
@@ -296,13 +296,11 @@ dependencies = [
  "anyhow",
  "async-trait",
  "client",
- "collections",
  "env_logger 0.11.8",
  "fs",
  "futures 0.3.31",
  "gpui",
  "gpui_tokio",
- "http_client",
  "indoc",
  "language",
  "language_model",
@@ -321,10 +319,12 @@ dependencies = [
  "terminal",
  "thiserror 2.0.12",
  "ui",
- "util",
  "uuid",
  "watch",
  "workspace-hack",
+ "zed-collections",
+ "zed-http-client",
+ "zed-util",
 ]
 
 [[package]]
@@ -333,7 +333,6 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "cloud_llm_client",
- "collections",
  "convert_case 0.8.0",
  "fs",
  "gpui",
@@ -345,8 +344,9 @@ dependencies = [
  "serde_json",
  "serde_json_lenient",
  "settings",
- "util",
  "workspace-hack",
+ "zed-collections",
+ "zed-util",
 ]
 
 [[package]]
@@ -373,7 +373,6 @@ dependencies = [
  "chrono",
  "client",
  "cloud_llm_client",
- "collections",
  "command_palette_hooks",
  "component",
  "context_server",
@@ -388,7 +387,6 @@ dependencies = [
  "fuzzy",
  "gpui",
  "html_to_markdown",
- "http_client",
  "indoc",
  "itertools 0.14.0",
  "jsonschema",
@@ -438,10 +436,12 @@ dependencies = [
  "unindent",
  "url",
  "urlencoding",
- "util",
  "watch",
  "workspace",
  "workspace-hack",
+ "zed-collections",
+ "zed-http-client",
+ "zed-util",
  "zed_actions",
 ]
 
@@ -659,7 +659,6 @@ dependencies = [
  "anyhow",
  "chrono",
  "futures 0.3.31",
- "http_client",
  "schemars 1.0.1",
  "serde",
  "serde_json",
@@ -667,6 +666,7 @@ dependencies = [
  "strum 0.27.1",
  "thiserror 2.0.12",
  "workspace-hack",
+ "zed-http-client",
 ]
 
 [[package]]
@@ -810,9 +810,9 @@ dependencies = [
  "proto",
  "smol",
  "tempfile",
- "util",
  "windows 0.61.1",
  "workspace-hack",
+ "zed-util",
  "zeroize",
 ]
 
@@ -838,7 +838,6 @@ dependencies = [
  "client",
  "clock",
  "cloud_llm_client",
- "collections",
  "context_server",
  "fs",
  "futures 0.3.31",
@@ -867,10 +866,11 @@ dependencies = [
  "text",
  "ui",
  "unindent",
- "util",
  "uuid",
  "workspace",
  "workspace-hack",
+ "zed-collections",
+ "zed-util",
  "zed_env_vars",
 ]
 
@@ -880,7 +880,6 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "async-trait",
- "collections",
  "derive_more",
  "extension",
  "futures 0.3.31",
@@ -892,9 +891,10 @@ dependencies = [
  "serde",
  "serde_json",
  "ui",
- "util",
  "workspace",
  "workspace-hack",
+ "zed-collections",
+ "zed-util",
 ]
 
 [[package]]
@@ -904,7 +904,6 @@ dependencies = [
  "anyhow",
  "assistant_slash_command",
  "chrono",
- "collections",
  "context_server",
  "editor",
  "feature_flags",
@@ -914,7 +913,6 @@ dependencies = [
  "globset",
  "gpui",
  "html_to_markdown",
- "http_client",
  "language",
  "pretty_assertions",
  "project",
@@ -926,10 +924,12 @@ dependencies = [
  "smol",
  "text",
  "ui",
- "util",
  "workspace",
  "workspace-hack",
  "worktree",
+ "zed-collections",
+ "zed-http-client",
+ "zed-util",
  "zlog",
 ]
 
@@ -941,7 +941,6 @@ dependencies = [
  "anyhow",
  "buffer_diff",
  "clock",
- "collections",
  "ctor",
  "derive_more",
  "gpui",
@@ -959,9 +958,10 @@ dependencies = [
  "serde_json",
  "settings",
  "text",
- "util",
  "workspace",
  "workspace-hack",
+ "zed-collections",
+ "zed-util",
  "zlog",
 ]
 
@@ -978,7 +978,6 @@ dependencies = [
  "client",
  "clock",
  "cloud_llm_client",
- "collections",
  "component",
  "derive_more",
  "diffy",
@@ -990,7 +989,6 @@ dependencies = [
  "gpui_tokio",
  "handlebars 4.5.0",
  "html_to_markdown",
- "http_client",
  "indoc",
  "itertools 0.14.0",
  "language",
@@ -1025,11 +1023,13 @@ dependencies = [
  "tree-sitter-rust",
  "ui",
  "unindent",
- "util",
  "watch",
  "web_search",
  "workspace",
  "workspace-hack",
+ "zed-collections",
+ "zed-http-client",
+ "zed-util",
  "zlog",
 ]
 
@@ -1404,7 +1404,6 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "async-tar",
- "collections",
  "crossbeam",
  "denoise",
  "gpui",
@@ -1416,8 +1415,9 @@ dependencies = [
  "settings",
  "smol",
  "thiserror 2.0.12",
- "util",
  "workspace-hack",
+ "zed-collections",
+ "zed-util",
 ]
 
 [[package]]
@@ -1440,7 +1440,6 @@ dependencies = [
  "client",
  "db",
  "gpui",
- "http_client",
  "log",
  "paths",
  "release_channel",
@@ -1452,6 +1451,7 @@ dependencies = [
  "which 6.0.3",
  "workspace",
  "workspace-hack",
+ "zed-http-client",
 ]
 
 [[package]]
@@ -1475,15 +1475,15 @@ dependencies = [
  "client",
  "editor",
  "gpui",
- "http_client",
  "markdown_preview",
  "release_channel",
  "serde",
  "serde_json",
  "smol",
- "util",
  "workspace",
  "workspace-hack",
+ "zed-http-client",
+ "zed-util",
 ]
 
 [[package]]
@@ -2010,8 +2010,8 @@ version = "0.1.0"
 dependencies = [
  "aws-smithy-runtime-api",
  "aws-smithy-types",
- "http_client",
  "workspace-hack",
+ "zed-http-client",
 ]
 
 [[package]]
@@ -2481,11 +2481,11 @@ dependencies = [
  "rand 0.9.1",
  "rope",
  "serde_json",
- "sum_tree",
  "text",
  "unindent",
- "util",
  "workspace-hack",
+ "zed-sum-tree",
+ "zed-util",
  "zlog",
 ]
 
@@ -2623,13 +2623,11 @@ dependencies = [
  "anyhow",
  "audio",
  "client",
- "collections",
  "feature_flags",
  "fs",
  "futures 0.3.31",
  "gpui",
  "gpui_tokio",
- "http_client",
  "language",
  "livekit_client",
  "log",
@@ -2638,8 +2636,10 @@ dependencies = [
  "serde",
  "settings",
  "telemetry",
- "util",
  "workspace-hack",
+ "zed-collections",
+ "zed-http-client",
+ "zed-util",
 ]
 
 [[package]]
@@ -2938,10 +2938,8 @@ dependencies = [
  "anyhow",
  "client",
  "clock",
- "collections",
  "futures 0.3.31",
  "gpui",
- "http_client",
  "language",
  "log",
  "postage",
@@ -2950,8 +2948,10 @@ dependencies = [
  "settings",
  "text",
  "time",
- "util",
  "workspace-hack",
+ "zed-collections",
+ "zed-http-client",
+ "zed-util",
 ]
 
 [[package]]
@@ -3087,7 +3087,6 @@ dependencies = [
  "anyhow",
  "askpass",
  "clap",
- "collections",
  "core-foundation 0.10.0",
  "core-services",
  "exec",
@@ -3099,9 +3098,10 @@ dependencies = [
  "release_channel",
  "serde",
  "tempfile",
- "util",
  "windows 0.61.1",
  "workspace-hack",
+ "zed-collections",
+ "zed-util",
 ]
 
 [[package]]
@@ -3115,7 +3115,6 @@ dependencies = [
  "clock",
  "cloud_api_client",
  "cloud_llm_client",
- "collections",
  "credentials_provider",
  "derive_more",
  "feature_flags",
@@ -3123,7 +3122,6 @@ dependencies = [
  "futures 0.3.31",
  "gpui",
  "gpui_tokio",
- "http_client",
  "http_client_tls",
  "httparse",
  "log",
@@ -3153,10 +3151,12 @@ dependencies = [
  "tokio-rustls 0.26.2",
  "tokio-socks",
  "url",
- "util",
  "windows 0.61.1",
  "workspace-hack",
  "worktree",
+ "zed-collections",
+ "zed-http-client",
+ "zed-util",
 ]
 
 [[package]]
@@ -3178,11 +3178,11 @@ dependencies = [
  "futures 0.3.31",
  "gpui",
  "gpui_tokio",
- "http_client",
  "parking_lot",
  "serde_json",
  "workspace-hack",
  "yawc",
+ "zed-http-client",
 ]
 
 [[package]]
@@ -3337,7 +3337,6 @@ dependencies = [
  "client",
  "clock",
  "collab_ui",
- "collections",
  "command_palette_hooks",
  "context_server",
  "ctor",
@@ -3358,7 +3357,6 @@ dependencies = [
  "gpui",
  "gpui_tokio",
  "hex",
- "http_client",
  "hyper 0.14.32",
  "indoc",
  "language",
@@ -3388,7 +3386,6 @@ dependencies = [
  "rpc",
  "scrypt",
  "sea-orm",
- "semantic_version",
  "semver",
  "serde",
  "serde_json",
@@ -3412,11 +3409,14 @@ dependencies = [
  "tracing",
  "tracing-subscriber",
  "unindent",
- "util",
  "uuid",
  "workspace",
  "workspace-hack",
  "worktree",
+ "zed-collections",
+ "zed-http-client",
+ "zed-semantic-version",
+ "zed-util",
  "zlog",
 ]
 
@@ -3429,13 +3429,11 @@ dependencies = [
  "channel",
  "chrono",
  "client",
- "collections",
  "db",
  "editor",
  "futures 0.3.31",
  "fuzzy",
  "gpui",
- "http_client",
  "log",
  "menu",
  "notifications",
@@ -3456,18 +3454,11 @@ dependencies = [
  "title_bar",
  "tree-sitter-md",
  "ui",
- "util",
  "workspace",
  "workspace-hack",
-]
-
-[[package]]
-name = "collections"
-version = "0.1.0"
-dependencies = [
- "indexmap 2.9.0",
- "rustc-hash 2.1.1",
- "workspace-hack",
+ "zed-collections",
+ "zed-http-client",
+ "zed-util",
 ]
 
 [[package]]
@@ -3508,7 +3499,6 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "client",
- "collections",
  "command_palette_hooks",
  "ctor",
  "db",
@@ -3530,9 +3520,10 @@ dependencies = [
  "theme",
  "time",
  "ui",
- "util",
  "workspace",
  "workspace-hack",
+ "zed-collections",
+ "zed-util",
  "zed_actions",
 ]
 
@@ -3540,17 +3531,16 @@ dependencies = [
 name = "command_palette_hooks"
 version = "0.1.0"
 dependencies = [
- "collections",
  "derive_more",
  "gpui",
  "workspace-hack",
+ "zed-collections",
 ]
 
 [[package]]
 name = "component"
 version = "0.1.0"
 dependencies = [
- "collections",
  "documented",
  "gpui",
  "inventory",
@@ -3558,6 +3548,7 @@ dependencies = [
  "strum 0.27.1",
  "theme",
  "workspace-hack",
+ "zed-collections",
 ]
 
 [[package]]
@@ -3620,7 +3611,6 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "async-trait",
- "collections",
  "futures 0.3.31",
  "gpui",
  "log",
@@ -3634,8 +3624,9 @@ dependencies = [
  "smol",
  "tempfile",
  "url",
- "util",
  "workspace-hack",
+ "zed-collections",
+ "zed-util",
 ]
 
 [[package]]
@@ -3671,7 +3662,6 @@ dependencies = [
  "chrono",
  "client",
  "clock",
- "collections",
  "command_palette_hooks",
  "ctor",
  "dirs 4.0.0",
@@ -3680,7 +3670,6 @@ dependencies = [
  "fs",
  "futures 0.3.31",
  "gpui",
- "http_client",
  "indoc",
  "itertools 0.14.0",
  "language",
@@ -3696,13 +3685,15 @@ dependencies = [
  "serde",
  "serde_json",
  "settings",
- "sum_tree",
  "task",
  "theme",
  "ui",
- "util",
  "workspace",
  "workspace-hack",
+ "zed-collections",
+ "zed-http-client",
+ "zed-sum-tree",
+ "zed-util",
  "zlog",
 ]
 
@@ -4416,12 +4407,10 @@ dependencies = [
  "async-tar",
  "async-trait",
  "client",
- "collections",
  "dap-types",
  "fs",
  "futures 0.3.31",
  "gpui",
- "http_client",
  "language",
  "libc",
  "log",
@@ -4439,8 +4428,10 @@ dependencies = [
  "telemetry",
  "tree-sitter",
  "tree-sitter-go",
- "util",
  "workspace-hack",
+ "zed-collections",
+ "zed-http-client",
+ "zed-util",
  "zlog",
 ]
 
@@ -4460,7 +4451,6 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "async-trait",
- "collections",
  "dap",
  "dotenvy",
  "fs",
@@ -4475,8 +4465,9 @@ dependencies = [
  "shlex",
  "smol",
  "task",
- "util",
  "workspace-hack",
+ "zed-collections",
+ "zed-util",
 ]
 
 [[package]]
@@ -4573,8 +4564,8 @@ dependencies = [
  "sqlez",
  "sqlez_macros",
  "tempfile",
- "util",
  "workspace-hack",
+ "zed-util",
  "zed_env_vars",
 ]
 
@@ -4600,8 +4591,8 @@ dependencies = [
  "gpui",
  "serde_json",
  "task",
- "util",
  "workspace-hack",
+ "zed-util",
 ]
 
 [[package]]
@@ -4617,9 +4608,9 @@ dependencies = [
  "serde_json",
  "settings",
  "smol",
- "util",
  "workspace",
  "workspace-hack",
+ "zed-util",
 ]
 
 [[package]]
@@ -4630,7 +4621,6 @@ dependencies = [
  "anyhow",
  "bitflags 2.9.0",
  "client",
- "collections",
  "command_palette_hooks",
  "dap",
  "dap_adapters",
@@ -4673,9 +4663,10 @@ dependencies = [
  "tree-sitter-json",
  "ui",
  "unindent",
- "util",
  "workspace",
  "workspace-hack",
+ "zed-collections",
+ "zed-util",
  "zed_actions",
  "zlog",
 ]
@@ -4695,11 +4686,11 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "futures 0.3.31",
- "http_client",
  "schemars 1.0.1",
  "serde",
  "serde_json",
  "workspace-hack",
+ "zed-http-client",
 ]
 
 [[package]]
@@ -4777,23 +4768,12 @@ dependencies = [
  "syn 2.0.101",
 ]
 
-[[package]]
-name = "derive_refineable"
-version = "0.1.0"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.101",
- "workspace-hack",
-]
-
 [[package]]
 name = "diagnostics"
 version = "0.1.0"
 dependencies = [
  "anyhow",
  "client",
- "collections",
  "component",
  "ctor",
  "editor",
@@ -4813,9 +4793,10 @@ dependencies = [
  "theme",
  "ui",
  "unindent",
- "util",
  "workspace",
  "workspace-hack",
+ "zed-collections",
+ "zed-util",
  "zlog",
 ]
 
@@ -4970,9 +4951,9 @@ dependencies = [
  "serde",
  "serde_json",
  "settings",
- "util",
  "workspace-hack",
  "zed",
+ "zed-util",
  "zlog",
 ]
 
@@ -5164,7 +5145,6 @@ dependencies = [
  "arrayvec",
  "clap",
  "cloud_llm_client",
- "collections",
  "futures 0.3.31",
  "gpui",
  "hashbrown 0.15.3",
@@ -5184,8 +5164,9 @@ dependencies = [
  "strum 0.27.1",
  "text",
  "tree-sitter",
- "util",
  "workspace-hack",
+ "zed-collections",
+ "zed-util",
  "zlog",
 ]
 
@@ -5199,7 +5180,6 @@ dependencies = [
  "buffer_diff",
  "client",
  "clock",
- "collections",
  "convert_case 0.8.0",
  "criterion",
  "ctor",
@@ -5213,7 +5193,6 @@ dependencies = [
  "fuzzy",
  "git",
  "gpui",
- "http_client",
  "indoc",
  "itertools 0.14.0",
  "language",
@@ -5239,7 +5218,6 @@ dependencies = [
  "smallvec",
  "smol",
  "snippet",
- "sum_tree",
  "task",
  "telemetry",
  "tempfile",
@@ -5258,11 +5236,14 @@ dependencies = [
  "unicode-segmentation",
  "unindent",
  "url",
- "util",
  "uuid",
  "vim_mode_setting",
  "workspace",
  "workspace-hack",
+ "zed-collections",
+ "zed-http-client",
+ "zed-sum-tree",
+ "zed-util",
  "zed_actions",
  "zlog",
 ]
@@ -5544,7 +5525,6 @@ dependencies = [
  "clap",
  "client",
  "cloud_llm_client",
- "collections",
  "debug_adapter_extension",
  "dirs 4.0.0",
  "dotenvy",
@@ -5579,10 +5559,11 @@ dependencies = [
  "terminal_view",
  "toml 0.8.20",
  "unindent",
- "util",
  "uuid",
  "watch",
  "workspace-hack",
+ "zed-collections",
+ "zed-util",
 ]
 
 [[package]]
@@ -5661,28 +5642,28 @@ dependencies = [
  "async-compression",
  "async-tar",
  "async-trait",
- "collections",
  "dap",
  "fs",
  "futures 0.3.31",
  "gpui",
  "heck 0.5.0",
- "http_client",
  "language",
  "log",
  "lsp",
  "parking_lot",
  "pretty_assertions",
- "semantic_version",
  "serde",
  "serde_json",
  "task",
  "toml 0.8.20",
  "url",
- "util",
  "wasm-encoder 0.221.3",
  "wasmparser 0.221.3",
  "workspace-hack",
+ "zed-collections",
+ "zed-http-client",
+ "zed-semantic-version",
+ "zed-util",
 ]
 
 [[package]]
@@ -5718,7 +5699,6 @@ dependencies = [
  "async-tar",
  "async-trait",
  "client",
- "collections",
  "criterion",
  "ctor",
  "dap",

Cargo.toml 🔗

@@ -273,7 +273,7 @@ cloud_llm_client = { path = "crates/cloud_llm_client" }
 cloud_zeta2_prompt = { path = "crates/cloud_zeta2_prompt" }
 collab = { path = "crates/collab" }
 collab_ui = { path = "crates/collab_ui" }
-collections = { path = "crates/collections" }
+collections = { path = "crates/collections", package = "zed-collections", version = "0.1.0" }
 command_palette = { path = "crates/command_palette" }
 command_palette_hooks = { path = "crates/command_palette_hooks" }
 component = { path = "crates/component" }
@@ -289,6 +289,7 @@ debug_adapter_extension = { path = "crates/debug_adapter_extension" }
 debugger_tools = { path = "crates/debugger_tools" }
 debugger_ui = { path = "crates/debugger_ui" }
 deepseek = { path = "crates/deepseek" }
+derive_refineable = { path = "crates/refineable/derive_refineable", package = "zed-derive-refineable", version = "0.1.0" }
 diagnostics = { path = "crates/diagnostics" }
 editor = { path = "crates/editor" }
 extension = { path = "crates/extension" }
@@ -307,10 +308,10 @@ git_ui = { path = "crates/git_ui" }
 go_to_line = { path = "crates/go_to_line" }
 google_ai = { path = "crates/google_ai" }
 gpui = { path = "crates/gpui", default-features = false }
-gpui_macros = { path = "crates/gpui_macros" }
+gpui_macros = { path = "crates/gpui_macros", package = "gpui-macros", version = "0.1.0" }
 gpui_tokio = { path = "crates/gpui_tokio" }
 html_to_markdown = { path = "crates/html_to_markdown" }
-http_client = { path = "crates/http_client" }
+http_client = { path = "crates/http_client", package = "zed-http-client", version = "0.1.0" }
 http_client_tls = { path = "crates/http_client_tls" }
 icons = { path = "crates/icons" }
 image_viewer = { path = "crates/image_viewer" }
@@ -339,7 +340,7 @@ lsp = { path = "crates/lsp" }
 markdown = { path = "crates/markdown" }
 markdown_preview = { path = "crates/markdown_preview" }
 svg_preview = { path = "crates/svg_preview" }
-media = { path = "crates/media" }
+media = { path = "crates/media", package = "zed-media", version = "0.1.0" }
 menu = { path = "crates/menu" }
 migrator = { path = "crates/migrator" }
 mistral = { path = "crates/mistral" }
@@ -356,7 +357,7 @@ outline = { path = "crates/outline" }
 outline_panel = { path = "crates/outline_panel" }
 panel = { path = "crates/panel" }
 paths = { path = "crates/paths" }
-perf = { path = "tooling/perf" }
+perf = { path = "tooling/perf", package = "zed-perf", version = "0.1.0" }
 picker = { path = "crates/picker" }
 plugin = { path = "crates/plugin" }
 plugin_macros = { path = "crates/plugin_macros" }
@@ -368,7 +369,7 @@ project_symbols = { path = "crates/project_symbols" }
 prompt_store = { path = "crates/prompt_store" }
 proto = { path = "crates/proto" }
 recent_projects = { path = "crates/recent_projects" }
-refineable = { path = "crates/refineable" }
+refineable = { path = "crates/refineable", package = "zed-refineable", version = "0.1.0" }
 release_channel = { path = "crates/release_channel" }
 scheduler = { path = "crates/scheduler" }
 remote = { path = "crates/remote" }
@@ -381,7 +382,7 @@ rope = { path = "crates/rope" }
 rpc = { path = "crates/rpc" }
 rules_library = { path = "crates/rules_library" }
 search = { path = "crates/search" }
-semantic_version = { path = "crates/semantic_version" }
+semantic_version = { path = "crates/semantic_version", package = "zed-semantic-version", version = "0.1.0" }
 session = { path = "crates/session" }
 settings = { path = "crates/settings" }
 settings_macros = { path = "crates/settings_macros" }
@@ -394,7 +395,7 @@ sqlez_macros = { path = "crates/sqlez_macros" }
 story = { path = "crates/story" }
 storybook = { path = "crates/storybook" }
 streaming_diff = { path = "crates/streaming_diff" }
-sum_tree = { path = "crates/sum_tree" }
+sum_tree = { path = "crates/sum_tree", package = "zed-sum-tree", version = "0.1.0" }
 supermaven = { path = "crates/supermaven" }
 supermaven_api = { path = "crates/supermaven_api" }
 system_specs = { path = "crates/system_specs" }
@@ -417,8 +418,8 @@ ui = { path = "crates/ui" }
 ui_input = { path = "crates/ui_input" }
 ui_macros = { path = "crates/ui_macros" }
 ui_prompt = { path = "crates/ui_prompt" }
-util = { path = "crates/util" }
-util_macros = { path = "crates/util_macros" }
+util = { path = "crates/util", package = "zed-util", version = "0.1.0" }
+util_macros = { path = "crates/util_macros", package = "zed-util-macros", version = "0.1.0" }
 vercel = { path = "crates/vercel" }
 vim = { path = "crates/vim" }
 vim_mode_setting = { path = "crates/vim_mode_setting" }
@@ -605,7 +606,8 @@ rand = "0.9"
 rayon = "1.8"
 ref-cast = "1.0.24"
 regex = "1.5"
-reqwest = { git = "https://github.com/zed-industries/reqwest.git", rev = "951c770a32f1998d6e999cef3e59e0013e6c4415", default-features = false, features = [
+# WARNING: If you change this, you must also publish a new version of zed-reqwest to crates.io
+reqwest = { git = "https://github.com/zed-industries/reqwest.git", rev = "c15662463bda39148ba154100dd44d3fba5873a4", default-features = false, features = [
     "charset",
     "http2",
     "macos-system-configuration",
@@ -613,7 +615,7 @@ reqwest = { git = "https://github.com/zed-industries/reqwest.git", rev = "951c77
     "rustls-tls-native-roots",
     "socks",
     "stream",
-] }
+], package = "zed-reqwest", version = "0.12.15-zed" }
 rsa = "0.9.6"
 runtimelib = {  git = "https://github.com/ConradIrwin/runtimed", rev = "7130c804216b6914355d15d0b91ea91f6babd734", default-features = false, features = [
     "async-dispatcher-runtime",
@@ -622,7 +624,8 @@ rust-embed = { version = "8.4", features = ["include-exclude"] }
 rustc-hash = "2.1.0"
 rustls = { version = "0.23.26" }
 rustls-platform-verifier = "0.5.0"
-scap = { git = "https://github.com/zed-industries/scap", rev = "808aa5c45b41e8f44729d02e38fd00a2fe2722e7", default-features = false }
+# WARNING: If you change this, you must also publish a new version of zed-scap to crates.io
+scap = { git = "https://github.com/zed-industries/scap", rev = "4afea48c3b002197176fb19cd0f9b180dd36eaac", default-features = false, package = "zed-scap", version = "0.0.8-zed" }
 schemars = { version = "1.0", features = ["indexmap2"] }
 semver = "1.0"
 serde = { version = "1.0.221", features = ["derive", "rc"] }
@@ -648,7 +651,7 @@ streaming-iterator = "0.1"
 strsim = "0.11"
 strum = { version = "0.27.0", features = ["derive"] }
 subtle = "2.5.0"
-syn = { version = "2.0.101", features = ["full", "extra-traits"] }
+syn = { version = "2.0.101", features = ["full", "extra-traits", "visit-mut"] }
 sys-locale = "0.3.1"
 sysinfo = "0.31.0"
 take-until = "0.2.0"
@@ -800,7 +803,7 @@ wasmtime = { opt-level = 3 }
 activity_indicator = { codegen-units = 1 }
 assets = { codegen-units = 1 }
 breadcrumbs = { codegen-units = 1 }
-collections = { codegen-units = 1 }
+zed-collections = { codegen-units = 1 }
 command_palette = { codegen-units = 1 }
 command_palette_hooks = { codegen-units = 1 }
 extension_cli = { codegen-units = 1 }
@@ -820,11 +823,11 @@ outline = { codegen-units = 1 }
 paths = { codegen-units = 1 }
 prettier = { codegen-units = 1 }
 project_symbols = { codegen-units = 1 }
-refineable = { codegen-units = 1 }
+zed-refineable = { codegen-units = 1 }
 release_channel = { codegen-units = 1 }
 reqwest_client = { codegen-units = 1 }
 rich_text = { codegen-units = 1 }
-semantic_version = { codegen-units = 1 }
+zed-semantic-version = { codegen-units = 1 }
 session = { codegen-units = 1 }
 snippet = { codegen-units = 1 }
 snippets_ui = { codegen-units = 1 }

crates/collections/Cargo.toml 🔗

@@ -1,9 +1,10 @@
 [package]
-name = "collections"
+name = "zed-collections"
 version = "0.1.0"
 edition.workspace = true
-publish.workspace = true
+publish = true
 license = "Apache-2.0"
+description = "Standard collection type re-exports used by Zed and GPUI"
 
 [lints]
 workspace = true

crates/gpui/Cargo.toml 🔗

@@ -5,8 +5,13 @@ edition.workspace = true
 authors = ["Nathan Sobo <nathan@zed.dev>"]
 description = "Zed's GPU-accelerated UI framework"
 repository = "https://github.com/zed-industries/zed"
-publish.workspace = true
+publish = true
 license = "Apache-2.0"
+homepage = "https://gpui.rs"
+readme = "README.md"
+keywords = ["desktop", "gui", "immediate"]
+categories = ["gui"]
+
 
 [lints]
 workspace = true
@@ -139,7 +144,8 @@ core-foundation-sys.workspace = true
 core-graphics = "0.24"
 core-video.workspace = true
 core-text = "21"
-font-kit = { git = "https://github.com/zed-industries/font-kit", rev = "5474cfad4b719a72ec8ed2cb7327b2b01fd10568", optional = true }
+# WARNING: If you change this, you must also publish a new version of zed-font-kit to crates.io
+font-kit = { git = "https://github.com/zed-industries/font-kit", rev = "110523127440aefb11ce0cf280ae7c5071337ec5", package = "zed-font-kit", version = "0.14.1-zed", optional = true }
 foreign-types = "0.5"
 log.workspace = true
 media.workspace = true
@@ -170,7 +176,8 @@ blade-macros = { workspace = true, optional = true }
 blade-util = { workspace = true, optional = true }
 bytemuck = { version = "1", optional = true }
 cosmic-text = { version = "0.14.0", optional = true }
-font-kit = { git = "https://github.com/zed-industries/font-kit", rev = "5474cfad4b719a72ec8ed2cb7327b2b01fd10568", features = [
+# WARNING: If you change this, you must also publish a new version of zed-font-kit to crates.io
+font-kit = { git = "https://github.com/zed-industries/font-kit", rev = "110523127440aefb11ce0cf280ae7c5071337ec5", package = "zed-font-kit", version = "0.14.1-zed", features = [
     "source-fontconfig-dlopen",
 ], optional = true }
 
@@ -210,10 +217,11 @@ xkbcommon = { version = "0.8.0", features = [
     "wayland",
     "x11",
 ], optional = true }
-xim = { git = "https://github.com/zed-industries/xim-rs", rev = "c0a70c1bd2ce197364216e5e818a2cb3adb99a8d" , features = [
+# WARNING: If you change this, you must also publish a new version of zed-xim to crates.io
+xim = { git = "https://github.com/zed-industries/xim-rs.git", rev = "16f35a2c881b815a2b6cdfd6687988e84f8447d8" , features = [
     "x11rb-xcb",
     "x11rb-client",
-], optional = true }
+], package = "zed-xim", version = "0.4.0-zed", optional = true }
 x11-clipboard = { version = "0.9.3", optional = true }
 
 [target.'cfg(target_os = "windows")'.dependencies]

crates/gpui/README.md 🔗

@@ -5,10 +5,10 @@ for Rust, designed to support a wide variety of applications.
 
 ## Getting Started
 
-GPUI is still in active development as we work on the Zed code editor and isn't yet on crates.io. You'll also need to use the latest version of stable Rust and be on macOS or Linux. Add the following to your `Cargo.toml`:
+GPUI is still in active development as we work on the Zed code editor, and is still pre-1.0. There will often be breaking changes between versions. You'll also need to use the latest version of stable Rust and be on macOS or Linux. Add the following to your `Cargo.toml`:
 
 ```toml
-gpui = { git = "https://github.com/zed-industries/zed" }
+gpui = { version = "*" }
 ```
 
 Everything in GPUI starts with an `Application`. You can create one with `Application::new()`, and kick off your application by passing a callback to `Application::run()`. Inside this callback, you can create a new window with `App::open_window()`, and register your first root view. See [gpui.rs](https://www.gpui.rs/) for a complete example.

crates/gpui_macros/Cargo.toml 🔗

@@ -1,9 +1,10 @@
 [package]
-name = "gpui_macros"
+name = "gpui-macros"
 version = "0.1.0"
 edition.workspace = true
-publish.workspace = true
+publish = true
 license = "Apache-2.0"
+description = "Macros used by gpui"
 
 [lints]
 workspace = true

crates/http_client/Cargo.toml 🔗

@@ -1,9 +1,10 @@
 [package]
-name = "http_client"
+name = "zed-http-client"
 version = "0.1.0"
 edition.workspace = true
-publish.workspace = true
+publish = true
 license = "Apache-2.0"
+description = "A HTTP client library for Zed and GPUI"
 
 [lints]
 workspace = true

crates/media/Cargo.toml 🔗

@@ -1,9 +1,10 @@
 [package]
-name = "media"
+name = "zed-media"
 version = "0.1.0"
 edition.workspace = true
-publish.workspace = true
+publish = true
 license = "Apache-2.0"
+description = "Bindings to macos media handling APIs for Zed"
 
 [lints]
 workspace = true

crates/refineable/Cargo.toml 🔗

@@ -1,9 +1,10 @@
 [package]
-name = "refineable"
+name = "zed-refineable"
 version = "0.1.0"
 edition.workspace = true
-publish.workspace = true
+publish = true
 license = "Apache-2.0"
+description = "A macro for creating 'refinement' types that can be used to partially initialize or mutate a complex struct"
 
 [lints]
 workspace = true
@@ -13,5 +14,5 @@ path = "src/refineable.rs"
 doctest = false
 
 [dependencies]
-derive_refineable = { path = "./derive_refineable" }
+derive_refineable.workspace = true
 workspace-hack.workspace = true

crates/refineable/derive_refineable/Cargo.toml 🔗

@@ -1,9 +1,11 @@
 [package]
-name = "derive_refineable"
+name = "zed-derive-refineable"
 version = "0.1.0"
 edition.workspace = true
-publish.workspace = true
+publish = true
 license = "Apache-2.0"
+description = "A derive macro for creating refinement types in Rust"
+
 
 [lints]
 workspace = true

crates/refineable/src/refineable.rs 🔗

@@ -17,47 +17,6 @@ pub use derive_refineable::Refineable;
 /// - **Optional fields** (`Option<T>`): Remain as `Option<T>`
 /// - **Regular fields**: Become `Option<T>`
 ///
-/// ## Example
-///
-/// ```
-/// use derive_refineable::Refineable as _;
-/// use refineable::Refineable;
-///
-/// #[derive(Refineable, Clone, Default)]
-/// struct Example {
-///     color: String,
-///     font_size: Option<u32>,
-///     #[refineable]
-///     margin: Margin,
-/// }
-///
-/// #[derive(Refineable, Clone, Default)]
-/// struct Margin {
-///     top: u32,
-///     left: u32,
-/// }
-///
-///
-/// fn example() {
-///     let mut base_style = Example::default();
-///     let refinement = ExampleRefinement {
-///         color: Some("red".to_string()),
-///         font_size: None,
-///         margin: MarginRefinement {
-///             top: Some(10),
-///             left: None,
-///         },
-///     };
-///
-///     base_style.refine(&refinement);
-/// }
-/// ```
-///
-/// This generates `ExampleRefinement` with:
-/// - `color: Option<String>`
-/// - `font_size: Option<u32>` (unchanged)
-/// - `margin: MarginRefinement`
-///
 /// ## Attributes
 ///
 /// The derive macro supports these attributes on the struct:

crates/semantic_version/Cargo.toml 🔗

@@ -1,9 +1,10 @@
 [package]
-name = "semantic_version"
+name = "zed-semantic-version"
 version = "0.1.0"
 edition.workspace = true
-publish.workspace = true
+publish = true
 license = "Apache-2.0"
+description = "A library for working with semantic versioning in gpui and Zed"
 
 [lints]
 workspace = true

crates/sum_tree/Cargo.toml 🔗

@@ -1,9 +1,10 @@
 [package]
-name = "sum_tree"
+name = "zed-sum-tree"
 version = "0.1.0"
 edition.workspace = true
-publish.workspace = true
+publish = true
 license = "Apache-2.0"
+description = "A sum tree data structure, a concurrency-friendly B-tree"
 
 [lints]
 workspace = true

crates/util/Cargo.toml 🔗

@@ -1,9 +1,11 @@
 [package]
-name = "util"
+name = "zed-util"
 version = "0.1.0"
 edition.workspace = true
-publish.workspace = true
+publish = true
 license = "Apache-2.0"
+description = "A collection of utility structs and functions used by Zed and GPUI"
+
 
 [lints]
 workspace = true

crates/util/src/paths.rs 🔗

@@ -427,7 +427,7 @@ impl PathWithPosition {
     /// # Examples
     ///
     /// ```
-    /// # use util::paths::PathWithPosition;
+    /// # use zed_util::paths::PathWithPosition;
     /// # use std::path::PathBuf;
     /// assert_eq!(PathWithPosition::parse_str("test_file"), PathWithPosition {
     ///     path: PathBuf::from("test_file"),
@@ -458,7 +458,7 @@ impl PathWithPosition {
     ///
     /// # Expected parsing results when encounter ill-formatted inputs.
     /// ```
-    /// # use util::paths::PathWithPosition;
+    /// # use zed_util::paths::PathWithPosition;
     /// # use std::path::PathBuf;
     /// assert_eq!(PathWithPosition::parse_str("test_file.rs:a"), PathWithPosition {
     ///     path: PathBuf::from("test_file.rs:a"),

crates/util/src/util.rs 🔗

@@ -940,7 +940,7 @@ impl PartialOrd for NumericPrefixWithSuffix<'_> {
 /// # Examples
 ///
 /// ```
-/// use util::capitalize;
+/// use zed_util::capitalize;
 ///
 /// assert_eq!(capitalize("hello"), "Hello");
 /// assert_eq!(capitalize("WORLD"), "WORLD");

crates/util_macros/Cargo.toml 🔗

@@ -1,9 +1,10 @@
 [package]
-name = "util_macros"
+name = "zed-util-macros"
 version = "0.1.0"
 edition.workspace = true
-publish.workspace = true
+publish = true
 license = "Apache-2.0"
+description = "Utility macros for Zed"
 
 [lints]
 workspace = true

crates/util_macros/src/util_macros.rs 🔗

@@ -12,7 +12,7 @@ use syn::{ItemFn, LitStr, parse_macro_input, parse_quote};
 ///
 /// # Example
 /// ```rust
-/// use util_macros::path;
+/// use zed_util_macros::path;
 ///
 /// let path = path!("/Users/user/file.txt");
 /// #[cfg(target_os = "windows")]
@@ -43,7 +43,7 @@ pub fn path(input: TokenStream) -> TokenStream {
 ///
 /// # Example
 /// ```rust
-/// use util_macros::uri;
+/// use zed_util_macros::uri;
 ///
 /// let uri = uri!("file:///path/to/file");
 /// #[cfg(target_os = "windows")]
@@ -69,7 +69,7 @@ pub fn uri(input: TokenStream) -> TokenStream {
 ///
 /// # Example
 /// ```rust
-/// use util_macros::line_endings;
+/// use zed_util_macros::line_endings;
 ///
 /// let text = line_endings!("Hello\nWorld");
 /// #[cfg(target_os = "windows")]
@@ -156,7 +156,7 @@ impl PerfArgs {
 ///
 /// # Examples
 /// ```rust
-/// use util_macros::perf;
+/// use zed_util_macros::perf;
 ///
 /// #[perf]
 /// fn generic_test() {
@@ -172,7 +172,7 @@ impl PerfArgs {
 /// This also works with `#[gpui::test]`s, though in most cases it shouldn't
 /// be used with automatic iterations.
 /// ```rust,ignore
-/// use util_macros::perf;
+/// use zed_util_macros::perf;
 ///
 /// #[perf(iterations = 1, critical)]
 /// #[gpui::test]

tooling/perf/Cargo.toml 🔗

@@ -1,9 +1,10 @@
 [package]
-name = "perf"
+name = "zed-perf"
 version = "0.1.0"
-description = "A tool for measuring Zed test performance, with too many Clippy lints"
-publish.workspace = true
+publish = true
 edition.workspace = true
+license = "Apache-2.0"
+description = "A tool for measuring Zed test performance, with too many Clippy lints"
 
 [lib]
 

tooling/perf/src/main.rs 🔗

@@ -46,7 +46,7 @@
 //! This should probably not be called manually unless you're working on the profiler
 //! itself; use the `cargo perf-test` alias (after building this crate) instead.
 
-use perf::{FailKind, Importance, Output, TestMdata, Timings, consts};
+use zed_perf::{FailKind, Importance, Output, TestMdata, Timings, consts};
 
 use std::{
     fs::OpenOptions,