ZIm/script
Julia Ryan 01ec6e0f77
Add workspace-hack (#27277)
This adds a "workspace-hack" crate, see
[mozilla's](https://hg.mozilla.org/mozilla-central/file/3a265fdc9f33e5946f0ca0a04af73acd7e6d1a39/build/workspace-hack/Cargo.toml#l7)
for a concise explanation of why this is useful. For us in practice this
means that if I were to run all the tests (`cargo nextest r
--workspace`) and then `cargo r`, all the deps from the previous cargo
command will be reused. Before this PR it would rebuild many deps due to
resolving different sets of features for them. For me this frequently
caused long rebuilds when things "should" already be cached.

To avoid manually maintaining our workspace-hack crate, we will use
[cargo hakari](https://docs.rs/cargo-hakari) to update the build files
when there's a necessary change. I've added a step to CI that checks
whether the workspace-hack crate is up to date, and instructs you to
re-run `script/update-workspace-hack` when it fails.

Finally, to make sure that people can still depend on crates in our
workspace without pulling in all the workspace deps, we use a `[patch]`
section following [hakari's
instructions](https://docs.rs/cargo-hakari/0.9.36/cargo_hakari/patch_directive/index.html)

One possible followup task would be making guppy use our
`rust-toolchain.toml` instead of having to duplicate that list in its
config, I opened an issue for that upstream: guppy-rs/guppy#481.

TODO:
- [x] Fix the extension test failure
- [x] Ensure the dev dependencies aren't being unified by Hakari into
the main dependencies
- [x] Ensure that the remote-server binary continues to not depend on
LibSSL

Release Notes:

- N/A

---------

Co-authored-by: Mikayla <mikayla@zed.dev>
Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>
2025-04-02 13:26:34 -07:00
..
danger Update dependency danger to v12.3.4 (#24770) 2025-02-12 23:26:07 +00:00
flatpak Flatpak fixes (#14083) 2024-07-10 12:51:08 -06:00
issue_response Use pagination for GitHub issue response script (#27838) 2025-04-01 08:16:11 -04:00
lib Fix nix build (#26270) 2025-03-10 01:06:11 -07:00
licenses Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
terms legal: Terms of Use (2025-02-13) (#24803) 2025-02-13 09:41:43 -05:00
update_top_ranking_issues Resurrect top-ranking issues script (#25433) 2025-02-23 14:24:56 -05:00
analyze_highlights.py ci: Add shellcheck for scripts (#20631) 2024-11-18 16:41:22 -05:00
bootstrap Refactor scripts to use command -v instead of which (#20306) 2024-11-07 09:34:56 +02:00
bootstrap.ps1 windows: Make collab run on Windows (#23117) 2025-01-17 09:39:13 +02:00
build-docker Support More Linux (#18480) 2024-09-30 17:46:21 -04:00
bump-extension-cli Fix nix build (#26270) 2025-03-10 01:06:11 -07:00
bump-nightly Fix nix build (#26270) 2025-03-10 01:06:11 -07:00
bump-zed-minor-versions Fix nix build (#26270) 2025-03-10 01:06:11 -07:00
bump-zed-patch-version Fix nix build (#26270) 2025-03-10 01:06:11 -07:00
bundle-linux Revert "Revert "Upgrade to rustls v0.23.22" (#24197)" (#24210) 2025-02-05 14:24:21 -07:00
bundle-mac Switch fully to Rust Livekit (redux) (#27126) 2025-03-28 17:58:23 +00:00
check-licenses Change license of crates/livekit_api from AGPL to GPL (#25206) 2025-02-19 23:32:51 +00:00
check-todos ci: Remove zero-width whitespace in job name (#23238) 2025-01-16 14:50:40 +00:00
clear-target-dir-if-larger-than Fix nix build (#26270) 2025-03-10 01:06:11 -07:00
clippy Stop using xtask for clippy (#13223) 2024-06-18 13:49:44 -06:00
clippy.ps1 windows: Use a clippy script instead of xtask (#25807) 2025-02-28 14:01:10 +00:00
collab-flamegraph Fix nix build (#26270) 2025-03-10 01:06:11 -07:00
crate-dep-graph Fix nix build (#26270) 2025-03-10 01:06:11 -07:00
create-draft-release Use our own git clone in draft release notes (#20956) 2024-11-21 11:55:22 -07:00
create-migration remoting (#9680) 2024-03-22 08:44:56 -06:00
deploy-collab Fix nix build (#26270) 2025-03-10 01:06:11 -07:00
deploy-postgrest Fix nix build (#26270) 2025-03-10 01:06:11 -07:00
determine-release-channel Fix bad quote in script/determine-release-channel (#20613) 2024-11-13 12:41:50 -05:00
draft-release-notes Use our own git clone in draft release notes (#20956) 2024-11-21 11:55:22 -07:00
drop-test-dbs Fix nix build (#26270) 2025-03-10 01:06:11 -07:00
exit-ci-if-dev-drive-is-full.ps1 windows: Fix tests on Windows (#22616) 2025-02-05 14:30:09 +00:00
generate-licenses Bump cargo-bundle and cargo-about version in nix (#27803) 2025-03-31 13:33:00 -07:00
generate-licenses-csv ci: Hide harmless cargo about error from release output (#27433) 2025-03-25 16:24:05 +00:00
generate-terms-rtf Fix nix build (#26270) 2025-03-10 01:06:11 -07:00
get-crate-version Fix nix build (#26270) 2025-03-10 01:06:11 -07:00
get-preview-channel-changes Minor improvements to release tooling (#17502) 2024-09-06 13:34:33 -04:00
get-pull-requests-since Add a get-release-notes-since script (#18445) 2024-09-27 10:59:19 -04:00
get-release-notes-since Add a get-release-notes-since script (#18445) 2024-09-27 10:59:19 -04:00
get-released-version Fix nix build (#26270) 2025-03-10 01:06:11 -07:00
histogram Print error message and skip line 2024-01-23 16:52:08 +01:00
import-themes Fix nix build (#26270) 2025-03-10 01:06:11 -07:00
install-cmake Improve install-cmake script (#20836) 2024-11-18 16:39:57 -05:00
install-linux linux scripts: Respect $CARGO_TARGET_DIR (#13830) 2024-07-05 14:19:05 +03:00
install-mold Support More Linux (#18480) 2024-09-30 17:46:21 -04:00
install.sh linux: Fix file not opening from file explorer (#21137) 2024-11-29 23:01:29 +02:00
kube-shell Fix nix build (#26270) 2025-03-10 01:06:11 -07:00
language-extension-version Add text objects to extensions (#21488) 2024-12-03 13:56:25 -07:00
linux Revert "Revert "Upgrade to rustls v0.23.22" (#24197)" (#24210) 2025-02-05 14:24:21 -07:00
metal-debug Fix nix build (#26270) 2025-03-10 01:06:11 -07:00
mitm-proxy.sh Improve script/mitm-proxy.sh to support podman (#25834) 2025-02-28 22:37:03 +00:00
new-crate Fix nix build (#26270) 2025-03-10 01:06:11 -07:00
prompts Fix nix build (#26270) 2025-03-10 01:06:11 -07:00
randomized-test-ci Remove ZED_CLIENT_SECRET_TOKEN 2024-01-23 10:34:43 -07:00
randomized-test-minimize Format scripts with Prettier (#8393) 2024-02-25 11:03:33 -05:00
remote-server Add remote server cross compilation (#19136) 2024-10-12 23:23:56 -07:00
reset_db collab: Setup database for LLM service (#15882) 2024-08-06 17:18:08 -04:00
run-local-minio Fix nix build (#26270) 2025-03-10 01:06:11 -07:00
seed-db Fix nix build (#26270) 2025-03-10 01:06:11 -07:00
setup-dev-driver.ps1 windows: Use dev drive instead of ReFS (#25858) 2025-03-01 22:43:10 +08:00
shellcheck-scripts ci: Add shellcheck for scripts (#20631) 2024-11-18 16:41:22 -05:00
snap-build Add scripts and configuration for building snap package (#25064) 2025-02-19 10:28:23 -07:00
snap-try Add scripts and configuration for building snap package (#25064) 2025-02-19 10:28:23 -07:00
squawk Configure squawk rules (#16144) 2024-08-12 22:11:36 -04:00
storybook Fix nix build (#26270) 2025-03-10 01:06:11 -07:00
symbolicate Improve Linux panic reporting (#22202) 2024-12-22 08:20:17 +00:00
trigger-release Fix nix build (#26270) 2025-03-10 01:06:11 -07:00
uninstall.sh Add an uninstall script (#21213) 2024-11-28 10:31:12 +02:00
update-json-schemas Bump JSON schemas: package.json, tsconfig.json (#20910) 2024-11-20 13:35:00 -05:00
update-workspace-hack Add workspace-hack (#27277) 2025-04-02 13:26:34 -07:00
upload-extension-cli Add GitHub Action for publishing the extension CLI (#9542) 2024-03-19 14:19:32 -04:00
upload-nightly chore: Do not produce universal binaries for our releases (#21014) 2024-11-21 23:16:49 +01:00
what-is-deployed Fix nix build (#26270) 2025-03-10 01:06:11 -07:00
zed-local windows: Make collab run on Windows (#23117) 2025-01-17 09:39:13 +02:00