Interdependent package sets (with `callPackage`)
Proposal
callPackage is used everywhere in Nixpkgs, but it's quite magical. It's very easy to use, so there are few instructions needed (rather a few good examples highlighting patterns where it makes particular sense to use it), but it requires understanding the rationale and inner workings.
Proposal
Import https://summer.nixos.org/blog/callpackage-a-tool-for-the-lazy/ (source: https://github.com/NixOS/nixos-summer/blob/main/content/blog/callpackage-a-tool-for-the-lazy.md) to nix.dev, and expand it to provide the motivation for why it exists at the beginning, and possibly some more details on newScope and friends at the end.
Willing to help?
Can help with reviews.
Priorities
Add :+1: to issues you find important.
This issue has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/2023-07-31-documentation-team-meeting-notes-68/31127/1
Related: https://github.com/NixOS/nixpkgs/pull/270696
Given the linked callPackage article is probably easier to adapt into a tutorial, I renamed and relabeled the issue since I'll almost certainly address it myself this year.
For future reference: https://nix.dev/tutorials/callpackage is the produced work.