NixOS / NixOS/nix.dev

Overview of package customisation

Open
#731 6 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

guide
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.