Repository navigation
Conversation
|
That's the nixpkgs LLVM issue. LLVM < 22 cannot process intrincics LTO in build time. I think you can try as follows if you gonna use crane maybe? maybe this will avoid rebuild whole nixpkgs LLVM transitive dependecy while overriding LLVM dependent rust-toolchain packages |
|
Superb! Naersk can load |
|
omnigraph-cli and omnigraph-server
omnigraph-cli and omnigraph-serveromnigraph and omnigraph-server
|
By the way, do you have any idea with CI/CD actions? |
- Set RUSTFLAGS in preBuild. naersk put its path remapping in CARGO_BUILD_RUSTFLAGS, which Cargo merges with the workspace `[build] rustflags`, so the binaries carried the test suites' `--cfg tokio_unstable`. A set RUSTFLAGS replaces that list, as in every release build; the remapping now lives there, and arm64 macOS gets the archives' `-C code-model=large`. - Build omnigraph-cli, omnigraph-server and omnigraph-azure-admission with `--locked --features omnigraph-server/aws`, the archives' set. - Read the toolchain from rust-toolchain.toml through fenix, which naersk already uses; drop nixpkgs-mozilla and flake-utils. nixpkgs' own rustc is no longer on the build PATH. - Read the version from crates/omnigraph-cli/Cargo.toml and stamp OMNIGRAPH_SOURCE_VERSION from a clean tree's revision on the top-level build only, so a new commit does not rebuild the dependencies. - Build on x86_64-linux, aarch64-linux and aarch64-darwin, the archive targets other than Windows. - Add nix.yml (flake changes, weekly, not required), the install section, the CI guide row and a release note.
omnigraph and omnigraph-server|
Thanks for this, @c4lliope, and @mulatta for the LLVM diagnosis. I pushed eace543 on top of a merge of
On @mulatta's question about maintenance: naersk vendors from Verified locally with a full |
|
Since omnigraph build is heavy, i recommend you hestia for build caching. You don't need to host cache server. Just works with github actions and its cache maybe |
NixOS is used by deployment engineers for reproducible builds that can be pushed to any edge. Omnigraph belongs there, and the simplest approach is to build for the Nix package manager with a
flake.nixat the root of this codebase.Rather than open an issue, I'd like to share the code I have already, so that I can ask for help with a compilation error that I'm already experiencing.
This PR only adds, no removals - and the additions are all in
.nix.\I began with a build process using Crane,
because I was inspired by @mulatta's agent-devtools.nix.
This quickly became clunky, and depended on a Lance patch
that is probably unnecessary. I searched around more, and found some guides that recommended Naersk, a more modern, community-recommended build manager. Either way, I end up seeing the same error while compiling the
lance-linalgdependency:I'm new to Lance and to SIMD - seems like there's some processor magic at play here. I tried to add
RUST_FLAGSwith target features, as you can see - no luck on anything there.Are there other build-time options that you use to conform the lance dependency to your needs? Naersk seems to be picking up the other Rust configs easily, so maybe there's an environmental consideration I'm missing.