This article is good, really good. Somehow despite having used plenty of builders in the past I barely even knew half of the stuff documented here.
I’m particularly interested in learning more about the special paths that derivation outputs can provide – looking forward to seeing that section expanded.
I like flakes a lot, speaking as a type of user which I’ll call a “casual packager”.
This is to say that I like being a good citizen and sharing my packaging efforts… while also simultaneously feeling totally uninterested in becoming an owner-for-life. Flakes let me share a package without those pesky strings – when the user installs a package using one of my flakes, a personal lockfile gets generated at the latest git commit and that’s that. If the user doesn’t like the version they get, then the power is in their hands to choose a different git ref via their own generated lockfile.
Obviously this is something of a user footgun, especially for consumers of high-impact or security-critical applications, but most of those things are already important enough to get packaged. When it comes to niche, infrequently updated stuff, this approach works super well and helps to draw many reluctant packagers like myself out into the open.