WIP: build(nix): Fix nix builds and add CI#24953
Closed
WeetHet wants to merge 1 commit intozed-industries:mainfrom
Closed
WIP: build(nix): Fix nix builds and add CI#24953WeetHet wants to merge 1 commit intozed-industries:mainfrom
WeetHet wants to merge 1 commit intozed-industries:mainfrom
Conversation
Contributor
Author
|
I have no idea why some embeds fail in the nix debug build and I have no capacity to debug this |
Merged
P1n3appl3
added a commit
that referenced
this pull request
Mar 10, 2025
This PR includes lots of small fixes to get our `build.nix` and `shell.nix` back to a working state. I've tested this by running `cargo run` (inside the devshell) and `nix run` on x86 nixos and arm64 darwin machines. I'd appreciate it if others could test building inside the devshell to double-check that it's not just working because I happen to have some system-level packages installed, as well as seeing if it works on other platforms (non-nixos linux, arm linux, x86 darwin). I couldn't get the full test suite (`cargo nextest run --workspace`) passing in the devshell on darwin, but they _are_ all passing on nixos. nixpkgs [disables some of our tests](https://github.com/NixOS/nixpkgs/blob/92d11f06d5cfa80901ef8eea11ee294520fae485/pkgs/by-name/ze/zed-editor/package.nix#L226-L234) that apparently fail or are flakey on hydra, but they don't know why. I'm going to punt on debugging those for now, especially given that they seem to be working for me. I'm also unsure of whether we actually want the nix checkPhase to run the full test suite (it's currently not passing `--workspace`) given that we have separate CI that should enforce that those pass on all PRs. Here's an overview of the changes made: - Fix our `generate-licenses` script - Relaxes the `cargo-about` version requirement slightly so it doesn't try to install an older binary when the nixpkgs one is newer than our requirement - Add a workaround for [this cargo-about issue](#19971) obviating the need for the patching done in the nixpkgs package - Set the new `--frozen` flag to avoid network access/mutating the lockfile - Use dynamic webrtc lib from nixpkgs, and fixes up the build script in webrtc-sys that hardcodes it to be statically linked. - Use `inputsFrom` in `shell.nix` and avoid duplicating everything from `build.nix` - Add a temporary workaround for an [upstream crane bug](ipetkov/crane#808). - Fix shebangs in our `script` dir to not hard-code `/bin/bash` There are still a bunch of issues that aren't resolved here, I'll make a tracking issue for those and try to land this first just to get back to an unbroken state. Eventually among other things I'd like to use a `libgit2` from `staticPkgs` and musl cross compilation to build the remote server under nix, and then add that as a separate flake output and include it in the shell's `inputsFrom` list. Thanks @niklaskorz, @GaetanLepage, @bbigras and all the other nixpkgs maintainers that have kept the `zed-editor` package working and up to date! I seriously considered just making our flake `overrideAttrs` the package in nixpkgs given how well maintained it is. Thanks @WeetHet for your volunteer maintinance of this flake. I referenced #24953 while working on these fixes, and I'd love to collaborate on adding some of those pieces like treefmt and a github action. If you're interested I'd really appreciate some help debugging why crane's `buildDepsOnly` isn't working for us. I'm assuming it'd make our `nix build` times go way down from the improved dep caching if we could get it working. Thanks @rrbutani for all the help on this PR 💙. Release Notes: - N/A --------- Co-authored-by: Rahul Butani <rrbutani@users.noreply.github.com> Co-authored-by: Rahul Butani <rr.butani@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release Notes:
Currently tests in nix builds fail for some reason, I'm investigating that