Skip to content

Conversation

@bryceberger
Copy link

@bryceberger bryceberger commented Feb 3, 2026

This allows building with nixpkgs versions that do not provide specifically rust_1_89.

Motivation

I pin nixpkgs in my config, then set determinate.inputs.nixpkgs.follows = "nixpkgs". The nixpkgs I have pinned does not provide rust_1_89.

Context

Added in #309, specifically d049bf3. I don't see any specific reasoning in the PR for pinning the compiler version.

Upstream nixpkgs just uses bare rustPlatform: https://github.com/NixOS/nixpkgs/blob/18451d41a40765408adb9f3f20e76c151fdfa307/pkgs/by-name/wa/wasmtime/package.nix

Summary by CodeRabbit

  • Chores
    • Updated the build configuration toolchain for improved compatibility and maintainability.

This allows building with nixpkgs versions that do not provide
specifically rust_1_89.
@coderabbitai
Copy link

coderabbitai bot commented Feb 3, 2026

📝 Walkthrough

Walkthrough

Updated the Nix package derivation in packaging/wasmtime.nix to directly reference rustPlatform.buildRustPackage instead of accessing it through the rust_1_89.packages.stable path, streamlining the module import chain.

Changes

Cohort / File(s) Summary
Nix Package Configuration
packaging/wasmtime.nix
Simplified rustPlatform reference by replacing nested rust_1_89.packages.stable.rustPlatform.buildRustPackage with direct rustPlatform.buildRustPackage call, reducing import path depth.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Poem

🐰 The rabbit hops with glee,
Simplifying paths wild and free,
No more nested calls to trace,
rustPlatform shines in its rightful place!
Less is more, we all agree! 🌟

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and specifically summarizes the main change: removing the pinned Rust compiler version (rust_1_89) from the wasmtime build configuration, which directly corresponds to the changeset that replaces rust_1_89.packages.stable.rustPlatform with rustPlatform.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@cole-h cole-h requested a review from edolstra February 3, 2026 02:23
Copy link
Member

@cole-h cole-h left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, but I review-requested Eelco to see if there was a specific reason.

@cole-h
Copy link
Member

cole-h commented Feb 3, 2026

Ah, that's why:

wasmtime> error: rustc 1.86.0 is not supported by the following packages:
wasmtime>   cranelift-assembler-x64@0.127.2 requires rustc 1.89.0
wasmtime>   cranelift-assembler-x64@0.127.2 requires rustc 1.89.0
wasmtime>   cranelift-assembler-x64@0.127.2 requires rustc 1.89.0
wasmtime>   cranelift-assembler-x64-meta@0.127.2 requires rustc 1.89.0
wasmtime>   cranelift-bforest@0.127.2 requires rustc 1.89.0
wasmtime>   cranelift-bitset@0.127.2 requires rustc 1.89.0
wasmtime>   cranelift-bitset@0.127.2 requires rustc 1.89.0
wasmtime>   cranelift-codegen@0.127.2 requires rustc 1.89.0
wasmtime>   cranelift-codegen@0.127.2 requires rustc 1.89.0
wasmtime>   cranelift-codegen@0.127.2 requires rustc 1.89.0
wasmtime>   cranelift-codegen-meta@0.127.2 requires rustc 1.89.0
wasmtime>   cranelift-codegen-shared@0.127.2 requires rustc 1.89.0
wasmtime>   cranelift-codegen-shared@0.127.2 requires rustc 1.89.0
wasmtime>   cranelift-control@0.127.2 requires rustc 1.89.0
wasmtime>   cranelift-entity@0.127.2 requires rustc 1.89.0
wasmtime>   cranelift-frontend@0.127.2 requires rustc 1.89.0
wasmtime>   cranelift-isle@0.127.2 requires rustc 1.89.0
wasmtime>   cranelift-isle@0.127.2 requires rustc 1.89.0
wasmtime>   cranelift-isle@0.127.2 requires rustc 1.89.0
wasmtime>   cranelift-native@0.127.2 requires rustc 1.89.0
wasmtime>   cranelift-srcgen@0.127.2 requires rustc 1.89.0
wasmtime>   pulley-interpreter@40.0.2 requires rustc 1.89.0
wasmtime>   pulley-interpreter@40.0.2 requires rustc 1.89.0
wasmtime>   pulley-macros@40.0.2 requires rustc 1.89.0
wasmtime>   wasmtime@40.0.2 requires rustc 1.89.0
wasmtime>   wasmtime@40.0.2 requires rustc 1.89.0
wasmtime>   wasmtime@40.0.2 requires rustc 1.89.0
wasmtime>   wasmtime-c-api@40.0.2 requires rustc 1.89.0
wasmtime>   wasmtime-c-api-impl@40.0.2 requires rustc 1.89.0
wasmtime>   wasmtime-c-api-impl@40.0.2 requires rustc 1.89.0
wasmtime>   wasmtime-c-api-impl@40.0.2 requires rustc 1.89.0
wasmtime>   wasmtime-environ@40.0.2 requires rustc 1.89.0
wasmtime>   wasmtime-internal-c-api-macros@40.0.2 requires rustc 1.89.0
wasmtime>   wasmtime-internal-component-macro@40.0.2 requires rustc 1.89.0
wasmtime>   wasmtime-internal-component-macro@40.0.2 requires rustc 1.89.0
wasmtime>   wasmtime-internal-component-macro@40.0.2 requires rustc 1.89.0
wasmtime>   wasmtime-internal-component-util@40.0.2 requires rustc 1.89.0
wasmtime>   wasmtime-internal-component-util@40.0.2 requires rustc 1.89.0
wasmtime>   wasmtime-internal-cranelift@40.0.2 requires rustc 1.89.0
wasmtime>   wasmtime-internal-fiber@40.0.2 requires rustc 1.89.0
wasmtime>   wasmtime-internal-fiber@40.0.2 requires rustc 1.89.0
wasmtime>   wasmtime-internal-fiber@40.0.2 requires rustc 1.89.0
wasmtime>   wasmtime-internal-jit-icache-coherence@40.0.2 requires rustc 1.89.0
wasmtime>   wasmtime-internal-math@40.0.2 requires rustc 1.89.0
wasmtime>   wasmtime-internal-slab@40.0.2 requires rustc 1.89.0
wasmtime>   wasmtime-internal-unwinder@40.0.2 requires rustc 1.89.0
wasmtime>   wasmtime-internal-unwinder@40.0.2 requires rustc 1.89.0
wasmtime>   wasmtime-internal-unwinder@40.0.2 requires rustc 1.89.0
wasmtime>   wasmtime-internal-versioned-export-macros@40.0.2 requires rustc 1.89.0
wasmtime>   wasmtime-internal-wit-bindgen@40.0.2 requires rustc 1.89.0
wasmtime>   wasmtime-wasi@40.0.2 requires rustc 1.89.0
wasmtime>   wasmtime-wasi-io@40.0.2 requires rustc 1.89.0
wasmtime>   wiggle@40.0.2 requires rustc 1.89.0
wasmtime>   wiggle-generate@40.0.2 requires rustc 1.89.0
wasmtime>   wiggle-macro@40.0.2 requires rustc 1.89.0
wasmtime>   wiggle-macro@40.0.2 requires rustc 1.89.0
wasmtime>   wiggle-macro@40.0.2 requires rustc 1.89.0

So it looks like we do need to specify 1.89... Maybe there's some niceness we can do so that it works for both of us. (I'll look in the morning.)

@bryceberger
Copy link
Author

bryceberger commented Feb 3, 2026

Ah, it was pinned to a newer version. I'll admit I just unpinned it and verified it started building... 😓

One possible solution is to update the nixpkgs pin from 25.05 to 25.11, but there may be other reasons not to do that.

If you do want to update the pin to 25.11, I made a branch with the changes I think are required at https://github.com/bryceberger/detnix/tree/nixpkgs-25.11 (permalink: https://github.com/bryceberger/detnix/commits/56fb7a232690c2bd30542587e6f2423c09782bed). Not sure if they're all the right changes, will leave that to someone with more knowledge. Just kept poking things until nix flake check worked on my machine.

@RossComputerGuy
Copy link
Member

I think this could definitely help fix some of the issues I saw in #323. I think the way we can get around bumping nixpkgs is by using crane. I think that would be more beneficial, especially for #323.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants