Using a forked version of nixpkgs to test Sculpin
I recently submitted a pull request to add Sculpin to the nixpkgs repository.
At the time of writing, it is awaiting review, but the CI pipeline checks pass.
I use Sculpin for a few personal websites, including the in-progress PHP South Wales website reboot, and wanted to test my new package and ensure it worked.
I was previously adding PHP and Composer to my shell via this flake.nix file:
{
inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
outputs =
inputs:
let
system = "x86_64-linux";
pkgs = import inputs.nixpkgs { inherit system; };
inherit (pkgs) fetchFromGitHub lib;
in
{
devShells.${system}.default = pkgs.mkShell {
packages = with pkgs; [
php
phpPackages.composer
(import ./sculpin.nix {
inherit fetchFromGitHub lib php;
})
];
};
};
}
I had a copy of my Sculpin derivation in sculpin.nix and was importing it as an additional package.
But with this flake.nix file, I can use my fork of nixpkgs that the branch that contains my Sculpin package and install it directly:
{
inputs.nixpkgs.url = "github:opdavies/nixpkgs/add-sculpin";
outputs =
inputs:
let
system = "x86_64-linux";
pkgs = import inputs.nixpkgs { inherit system; };
in
{
devShells.${system}.default = pkgs.mkShell {
packages = with pkgs; [ sculpin ];
};
};
}
Changing inputs.nixpkgs.url to my fork uses it as the nixpkgs repository instead of the official one, and now I can add sculpin as if it were already committed.