@cwebber
2.1.1: My 5 year old issue about Snapper just got closed today. So 8 months is quite qaint.
2.2: Absolutely my biggest technical issue with Guix development workflow. I remember hoping to experience the famed debuggability of Lisp when I got started with it, but I never really got to a point where it was any more pleasant than all the "boring" languages I use. In many aspects it was worse. And Geiser is not very reliable.
"There is no programmatic way of telling if the user was just silly or if there really is a variable somewhere in some yet unused module."
There absolutely is, Roslyn can do it for C# with no issue. You "just" need to index all exports in all available modules.
2.2.3: YYyyup. I've brought this up a *lot*, I even built tooling to automate it. You can actually catch dependency cycles by analyzing the graph exports, but it should really be built-in.
Module level cycles are trickier.
2.3: Automated refactoring would be a really cool showcase of Lisp's power.
2.4: Changelog is a huge timewaste imho. Contributor time is already extremely scarce, I don't get why the project hasn't dropped this.
And again, it would be a great showcase of Lisp's powers to just generate this info automatically, or better yet, make it into a queryable database.
3.2: Yes, please, there should be a wiki. Well, there's the cookbook, but having to jump through the email and git hoops to contribute to that is Not Fun.
3.3: This is a tricky one, but I do think there should be some workarounds for accidentally trying to build things like Thunderbird of Firefox. Like, if a derivation already failed on the substitute server, just give up. It also shouldn't be hard to give an order of magnitude estimate for the resources a derivation would take. Collect some stats by package name on the build servers, guix consults them before upgrading your SBC or netbook.
Or maybe have the option to outright refuse to build anything that doesn't have the local build tag.
But OP could have used --do-not-upgrade, something I sadly became intimately familiar with during my time with Guix.
3.4: Nonguix should not be necessary, but Andy has already written about this better than I could.
4: I'm glad to see that a lot of these are being addressed.
I hope I'll have the time&motivation someday again to contribute to it again. The move to Codeberg is already very promising.