Overview of package customisation
Nobody has claimed this yet.
- Dominant language
- Nix
- Stars
- 4k
- Forks
- 339
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 7
Description
Project description
It's very common to want to tweak a particular feature of an existing package. For example, you may want a package compiled with different options. You may want this modified package used just for your build, or you may want this modified package used throughout the entire dependency tree. There's a variety of mechanisms available that are appropriate in different contexts.
- Overlays
overrideAttrs- Modifying derivation phase scripts
- Applying patches
- Any others?
This tutorial could take a package from Nixpkgs and try to modify one of its dependencies. The tutorial should show how to achieve the same modification (where possible or reasonable) using different mechanisms, clearly illustrating the tradeoffs or when one mechanism makes more sense over another.
Steps
- Submit a PR with a draft of the tutorial
- Only work on this for about an hour before submitting something.
- It's good to get early feedback so that you don't spend time on a tutorial that's going in a less than ideal direction.
Considerations
It will probably be difficult, if not impossible, to find one modification that can be made using all of the mechanisms listed above. In that situation I would prefer that multiple modifications be used as examples rather than try to use override mechanisms that don't make sense.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by outlining a tutorial around one or more package modifications from Nixpkgs, comparing overlays, overrideAttrs, derivation phase scripts, and patches where appropriate. Submit a draft PR after about an hour for feedback; done means the draft clearly explains the mechanisms, tradeoffs, and applicable contexts.
Written by the indexing model from the issue text.
Assessment
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100