Skip to content

suggest: large suggestion to flake.nix#2136

Draft
Eldolfin wants to merge 4 commits into
lloeki/nixfrom
oscarld/nix-suggestion
Draft

suggest: large suggestion to flake.nix#2136
Eldolfin wants to merge 4 commits into
lloeki/nixfrom
oscarld/nix-suggestion

Conversation

@Eldolfin

@Eldolfin Eldolfin commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

A large suggestions for #2128

  • format with alejandra for better readability
  • add missing cargo-nextest, rust-src component (for lsp), alejandra
  • use specialized pkg.mkShell instead of mkDerivation
  • remove hardeningDisable, not sure it's needed

Mostly style changes and missing tools

- format with alejandra for better readability
- add missing cargo-nextest, rust-src component (for lsp), alejandra
- use specialized pkg.mkShell instead of mkDerivation
- remove hardeningDisable, not sure it's needed
@datadog-datadog-prod-us1-2

This comment has been minimized.

Comment thread flake.nix
Comment on lines +34 to +43
packages = [
rust-toolchain
pkgs.rust-cbindgen
pkgs.cargo-nextest
pkgs.cmake
pkgs.autoconf
pkgs.automake
pkgs.libtool
pkgs.alejandra
];

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Nit

Suggested change
packages = [
rust-toolchain
pkgs.rust-cbindgen
pkgs.cargo-nextest
pkgs.cmake
pkgs.autoconf
pkgs.automake
pkgs.libtool
pkgs.alejandra
];
packages = with pkgs; [
rust-toolchain
rust-cbindgen
cargo-nextest
cmake
autoconf
automake
libtool
alejandra
];

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I just changed it a bit to separate rust-toolchain in a separate list in case it ever becomes a package in nixpkgs so that it doesn't get overriden.

Comment thread flake.nix
overlays = [(import rust-overlay)];
};
mkShell = rust-toolchain:
pkgs.mkShell {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I totally missed we didn't use mkShell in the previous PR, but just mkDerivation. This is the way to go indeed 👍

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

yeah I use mkDerivation often to do things like use clang instead of gcc on Linux or select the llvm version.

Comment thread rust-toolchain.toml
[toolchain]
channel = "1.87.0"
components = ["rustfmt", "clippy"]
components = ["clippy", "rust-src"]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Why this change? Doesn't this impact non Nix-users in some way?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Because we never use the stable rustfmt anyway, also we need rust-src for rust-analyzer to allow go-to-definition to std functions.

I feel like the only impact it could've had is CI failing because it could not find rustfmt but as said above we don't use the stable rustfmt

@dd-octo-sts

dd-octo-sts Bot commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

Artifact Size Benchmark Report

aarch64-alpine-linux-musl
Artifact Baseline Commit Change
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.a 83.68 MB 83.68 MB 0% (0 B) 👌
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.so 7.70 MB 7.70 MB 0% (0 B) 👌
aarch64-unknown-linux-gnu
Artifact Baseline Commit Change
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.a 94.78 MB 94.78 MB 0% (0 B) 👌
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so 10.34 MB 10.34 MB 0% (0 B) 👌
libdatadog-x64-windows
Artifact Baseline Commit Change
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.dll 24.83 MB 24.91 MB +.30% (+76.50 KB) 🔍
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.lib 87.33 KB 87.33 KB 0% (0 B) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.pdb 180.88 MB 180.92 MB +.02% (+40.00 KB) 🔍
/libdatadog-x64-windows/debug/static/datadog_profiling_ffi.lib 925.05 MB 926.62 MB +.16% (+1.57 MB) 🔍
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.dll 8.09 MB 8.09 MB +.04% (+4.00 KB) 🔍
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.lib 87.33 KB 87.33 KB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.pdb 23.94 MB 23.97 MB +.13% (+32.00 KB) 🔍
/libdatadog-x64-windows/release/static/datadog_profiling_ffi.lib 47.78 MB 47.80 MB +.04% (+22.58 KB) 🔍
libdatadog-x86-windows
Artifact Baseline Commit Change
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.dll 21.52 MB 21.59 MB +.33% (+74.00 KB) 🔍
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.lib 88.71 KB 88.71 KB 0% (0 B) 👌
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.pdb 184.88 MB 184.91 MB +.01% (+24.00 KB) 🔍
/libdatadog-x86-windows/debug/static/datadog_profiling_ffi.lib 918.00 MB 919.55 MB +.16% (+1.55 MB) 🔍
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.dll 6.24 MB 6.25 MB +.06% (+4.00 KB) 🔍
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.lib 88.71 KB 88.71 KB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.pdb 25.66 MB 25.68 MB +.09% (+24.00 KB) 🔍
/libdatadog-x86-windows/release/static/datadog_profiling_ffi.lib 45.41 MB 45.43 MB +.04% (+22.17 KB) 🔍
x86_64-alpine-linux-musl
Artifact Baseline Commit Change
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.a 74.60 MB 74.60 MB 0% (0 B) 👌
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.so 8.58 MB 8.58 MB 0% (0 B) 👌
x86_64-unknown-linux-gnu
Artifact Baseline Commit Change
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.a 90.02 MB 90.02 MB 0% (0 B) 👌
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so 10.44 MB 10.44 MB 0% (0 B) 👌

Comment thread flake.nix Outdated
cmake
autoconf
automake
libtool

@lloeki lloeki Jun 22, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

TBH I don't see how that's better than the previous code.

This reads like DRY for DRY sake.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I agree, I also prefer the explicit pkgs., reverting this change

@yannham yannham Jun 22, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

with has it downsides but in this is one case that is simple and clear, and it's rather idiomatic in the Nix community. Though I don't really care and don't have a strong opinion either way 🤷

This reads like DRY for DRY sake.

Isn't this a good thing, as long as it's still readable, clear, and simple? For example we avoid std::collections::HashMap everywhere in a Rust file, because it's clutter, we do use std::collections::HashMap once and use HashMap elsewhere. I'm not sure how this is very different.

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