Remove workspace-hack (#40216)

We've been considering removing workspace-hack for a couple reasons:
- Lukas ran into a situation where its build script seemed to be causing
spurious rebuilds. This seems more likely to be a cargo bug than an
issue with workspace-hack itself (given that it has an empty build
script), but we don't necessarily want to take the time to hunt that
down right now.
- Marshall mentioned hakari interacts poorly with automated crate
updates (in our case provided by rennovate) because you'd need to have
`cargo hakari generate && cargo hakari manage-deps` after their changes
and we prefer to not have actions that make commits.

Currently removing workspace-hack causes our workspace to grow from
~1700 to ~2000 crates being built (depending on platform), which is
mainly a problem when you're building the whole workspace or running
tests across the the normal and remote binaries (which is where
feature-unification nets us the most sharing). It doesn't impact
incremental times noticeably when you're just iterating on `-p zed`, and
we'll hopefully get these savings back in the future when
rust-lang/cargo#14774 (which re-implements the functionality of hakari)
is finished.

Release Notes:

- N/A
This commit is contained in:
Julia Ryan
2025-10-17 18:58:14 +00:00
committed by GitHub
parent 375a404132
commit ef5b8c6fed
227 changed files with 2035 additions and 3259 deletions
-1
View File
@@ -63,7 +63,6 @@ anyhow.workspace = true
gpui.workspace = true
ui.workspace = true
util.workspace = true
workspace-hack.workspace = true
# Uncomment other workspace dependencies as needed
# assistant.workspace = true
-20
View File
@@ -1,20 +0,0 @@
#!/usr/bin/env bash
set -euo pipefail
HAKARI_VERSION="0.9"
cd "$(dirname "$0")/.." || exit 1
if ! cargo hakari --version | grep "cargo-hakari $HAKARI_VERSION" >/dev/null; then
echo "Installing cargo-hakari@^$HAKARI_VERSION..."
cargo install "cargo-hakari@^$HAKARI_VERSION"
else
echo "cargo-hakari@^$HAKARI_VERSION is already installed."
fi
# update the workspace-hack crate
cargo hakari generate
# make sure workspace-hack is added as a dep for all crates in the workspace
cargo hakari manage-deps
-36
View File
@@ -1,36 +0,0 @@
$ErrorActionPreference = "Stop"
$HAKARI_VERSION = "0.9"
$scriptPath = Split-Path -Parent $MyInvocation.MyCommand.Path
Set-Location (Split-Path -Parent $scriptPath)
$hakariInstalled = $false
try {
$versionOutput = cargo hakari --version 2>&1
if ($versionOutput -match "cargo-hakari $HAKARI_VERSION") {
$hakariInstalled = $true
}
}
catch {
$hakariInstalled = $false
}
if (-not $hakariInstalled) {
Write-Host "Installing cargo-hakari@^$HAKARI_VERSION..."
cargo install "cargo-hakari@^$HAKARI_VERSION"
if ($LASTEXITCODE -ne 0) {
throw "Failed to install cargo-hakari@^$HAKARI_VERSION"
}
}
else {
Write-Host "cargo-hakari@^$HAKARI_VERSION is already installed."
}
# update the workspace-hack crate
cargo hakari generate
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
# make sure workspace-hack is added as a dep for all crates in the workspace
cargo hakari manage-deps
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }