I am new to Nix and in an intensive learning process through migrating all of my dotfiles to a single home-manager configuration on macOS, linux workstation and Win/WSL. During this process I’ve had to fork nixpkgs multiple times to add new packages there. Here come questions. Despite I use home-manager, I believe my issues are related to Nix package manager and nixpkgs more than to home-manager.
If I only have one PR pending, I just use
home-manager -I nixpkgs=https://github.com/onsails/nixpkgs/archive/<pr-branch>.tar.gz switch. I have to use pr-branch’s remote .tar.gz to easily share my additions with all of my workstations. The problem is when I push into pr-branch with some new additions/fixes I can’t just execute the command above again because Nix apparently caches remote channels so every time I need to be sure Nix downloads fresh version I come up with random string after
home-manager -I nixpkgs=https://github.com/onsails/nixpkgs/archive/<pr-branch>.tar.gz?brr switch. And if changes keep going it eventually becomes hard to come up with truly unique query param. I haven’t find any option to optionally disable Nix cache, ideally through home-manager’s cli. Is there more convenient workflow with own nixpkgs forks when then need to be tested and actually used on different hosts?
It’s not uncommon situation when PR is pending for weeks. That’s ok and can be handled with a trick above. But very often there are two PRs not accepted to nixpkgs. Personally I create a branch in which I continuously merge my pending PRs. It becomes a burden when PRs keep being updated. I am considering to automate script for creating an immutable which is destroyed and created from scratch each time script is executed but before doing I decided to ask if there is an easier way to cope with this, maybe I’m overthinking the problem.