2024-07-01 15:47:52 +00:00
|
|
|
# A shell to get tooling for Nixpkgs development
|
|
|
|
#
|
|
|
|
# Note: We intentionally don't use Flakes here,
|
|
|
|
# because every time you change any file and do another `nix develop`,
|
|
|
|
# it would create another copy of the entire ~500MB tree in the store.
|
|
|
|
# See https://github.com/NixOS/nix/pull/6530 for the future
|
2024-09-19 14:19:46 +00:00
|
|
|
#
|
|
|
|
# Note: We use a pinned Nixpkgs so that the tools are readily available even
|
|
|
|
# when making changes that would otherwise require a new build of those tools.
|
|
|
|
# If you'd like to test out changes to the tools themselves, you can pass
|
|
|
|
#
|
|
|
|
# nix-shell --arg nixpkgs ./.
|
|
|
|
#
|
2024-07-01 15:47:52 +00:00
|
|
|
let
|
|
|
|
pinnedNixpkgs = builtins.fromJSON (builtins.readFile ci/pinned-nixpkgs.json);
|
2024-09-19 14:19:46 +00:00
|
|
|
in
|
|
|
|
{
|
|
|
|
system ? builtins.currentSystem,
|
2024-07-01 15:47:52 +00:00
|
|
|
|
2024-09-19 14:19:46 +00:00
|
|
|
nixpkgs ? fetchTarball {
|
2024-07-01 15:47:52 +00:00
|
|
|
url = "https://github.com/NixOS/nixpkgs/archive/${pinnedNixpkgs.rev}.tar.gz";
|
|
|
|
sha256 = pinnedNixpkgs.sha256;
|
2024-09-19 14:19:46 +00:00
|
|
|
},
|
|
|
|
}:
|
|
|
|
let
|
2024-07-01 15:47:52 +00:00
|
|
|
pkgs = import nixpkgs {
|
|
|
|
inherit system;
|
2024-09-19 14:19:46 +00:00
|
|
|
config = { };
|
|
|
|
overlays = [ ];
|
2024-07-01 15:47:52 +00:00
|
|
|
};
|
|
|
|
in
|
|
|
|
pkgs.mkShellNoCC {
|
2024-09-19 14:19:46 +00:00
|
|
|
packages = with pkgs; [
|
2024-07-01 15:47:52 +00:00
|
|
|
# The default formatter for Nix code
|
2024-09-19 14:19:46 +00:00
|
|
|
# See https://github.com/NixOS/nixfmt
|
|
|
|
nixfmt-rfc-style
|
|
|
|
# Helper to review Nixpkgs PRs
|
|
|
|
# See CONTRIBUTING.md
|
|
|
|
nixpkgs-review
|
2024-07-01 15:47:52 +00:00
|
|
|
];
|
|
|
|
}
|