I created a PR some time last year to fix an issue that has been bugging me for a while, but I found the process confusing and intimidating.
I checked off some boxes, but the whole time I worried that seeing a not-fully-checked checklist on a PR might make people ignore it. It’s not clear to me if it’s “do this before submitting” or if it’s “for the record this is how tested it is”. I ran nixpkgs-review but I have absolutely no idea what it did / what it’s supposed to do / if I used it right. Nobody has commented on the PR, so perhaps I’ve done it so wrong that people thought it was a draft still?
It looks like someone was assigned as a reviewer at some point but I never got any human interaction on the topic at all. I never received any emails or notifications from GitHub about the PR because nobody ever said anything on it. The best I got is noticing my laptop wouldn’t update, realising it’s because nixpkgs was on my branch, then thinking “oh right” and coming back to GitHub to check the PR, only to find out had been marked stale.
I really worry that I’ve just put several solid hours of effort into debugging and fixing something that bothered me, done the whole “be the change you want to see in the world” thing, and still hit an unspoken wall of “it’s just xprofile, nobody cares”.
And now it has (trivial) merge conflicts, but last time I tried to fix them I had trouble getting the test suite running at all and gave up in frustration, thinking, why bother fixing merge conflicts if they’re just going to happen again in another month’s time?
the whole time I worried that seeing a not-fully-checked checklist on a PR might make people ignore it. It’s not clear to me if it’s “do this before submitting” or if it’s “for the record this is how tested it is”.
It’s “for the record” - the comment above it says “Please check what applies. Note that these are not hard requirements but merely serve as information for reviewers.“. Do you have ideas on how to make that clearer?
I think you used it right (though in this case it didn’t really do anything useful: apparently your change only impacted packages that aren’t tested/testable with nixpkgs-review)
Your PR fixes 2 reported GitHub issues. You could ping the people who filed those issues and ask them to test your change, or add comments to those issues so anyone watching them is aware of your PR.
Specific to this PR: skimming the PR I saw “this re-executes the whole script“ and was like “Huh, so it doesn’t really fix the issue?”. Of course on a closer look the exec means that the ‘first run’ in this case doesn’t actually ‘really’ run the script, but wraps it in systemd-cat. Maybe this comment could somehow be clearer?
That’s very understandable and sadly the above is no guarantee - but starting this conversation might be a good start!
I agree about pinging the people who filed those issues.
Also, I usually ping the maintainer of the thing I’m modifying. Even if there is no designated maintainer, I look at the file history to see who authored the last changes to the file(s).
I used your PR for this example. Notice how I just appended .patch to the PR’s URL.
GitHub provides other ways to get those patches. So you can even test changes before opening a PR.
Now you are free to keep updating Nixpkgs from your selected channel without having to sync your fork. You can use multiple patches, from multiple people, without much hassle.
And it’s not limited to Nixpkgs, it can be used with any of your Nix inputs.
I contribute to Nixpkgs and other Nix-related projects I use frequently. Nixtamal made my life MUCH easier.
As for my two cents, if you are already using a flake, the more newb-friendly approach might be nixpkgs-patcher. In this case patches are just flake inputs with flake = false;. Then again I think I’d use nixtamal if I weren’t so deep in flakes/flake-parts already…