Remix.run Logo
bsimpson 5 days ago

I started doing it this way (auto-rebase) when I started sharing one home-manager config across different devices.

This lets me do `nix flake update` on my home-manager config to have all my in-flight patches + the canonical nixpkgs from any device, and trust that they can all see the shared GitHub to sync. Hopefully will make updating less of a chore.

Only time it's bit me so far was when godot3 was broken in nixpkgs-weekly but worked in 25.11. Forced me to go write a PR for that and get it upstream to get my build working again, but that was more of a nixpkgs-weekly problem than a personal fork one.

One of the wrinkles of getting home-manager going on a bunch of different devices is that it liked to copy my local git checkout of nixpkgs to /nix/store a lot. That's why I'm preferring to have flake.lock point at my github.com branch, and then I can test uncommitted changes as-needed by passing --local to my home-manager switch incantation:

https://github.com/appsforartists/device-config/blob/c09d6bc...

dietr1ch 4 days ago | parent [-]

Are you building your systems on that auto-rebase? I've found that slight differences made my own fork not build for all my systems and gave up on having a personal canonical version (after I got things upstreamed). I let my machines update on their own schedule and keep track of the lockfiles through backups, in case I want to sync with a system that was built more recently (and hopefully will also build)

bsimpson 4 days ago | parent [-]

I have been. Hoping it cuts out some of the manual work and prevents me from accidentally writing a PR against an obsolete nixpkgs. The only changes I've made are ones I'd want to be upstreamed. So from the point of view of my individual devices, it's basically the same as just putting nixpkgs-weekly in my flake. I can nix flake update to pull changes into nix, and hard reset to update my local repo (which is now just an easier way to fast forward + rebase/cherry-pick).

We'll see how it goes. So far, it was broken upstream once when gcc was upgraded out of sync with godot3, and it looks like sublime-text might break next week do to an openssl change. But those are both artifacts of depending on weekly. If it stays this hairy, maybe I'll end up using the biannual release channels.