Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Overview of pinning techniques #907

Open
fricklerhandwerk opened this issue Feb 7, 2024 · 0 comments
Open

Overview of pinning techniques #907

fricklerhandwerk opened this issue Feb 7, 2024 · 0 comments
Labels
guide Topics for a new guides

Comments

@fricklerhandwerk
Copy link
Collaborator

fricklerhandwerk commented Feb 7, 2024

Observations
There are > 5 ways to handle dependencies in Nix expressions:

  • Lookup paths and their various syntaxes (<nixpkgs>, -I, NIX_PATH)
  • Channels
  • Paths to Git submodules
  • Built-in fetchers (fetchurl, fetchTarball, fetchGit, ...)
  • Nixpkgs fetchers (pkgs.fetchFromGitHub, ...)
  • Flakes
  • npins
  • niv
  • gridlock
  • Don't even get me started on modules

I likely forgot some...

Problem

  • These are too many
  • They have different trade-offs
  • None of them is clearly superior, but some are clearly inferior

Approaches
We can't fix it before we understand what's wrong.

Make an overview along the lines of Why are there five ways of getting software?. List features and trade-offs.

Willing to help?
Very likely there is no way around it.

Priorities

Add 👍 to issues you find important.

@fricklerhandwerk fricklerhandwerk added site Improvements to the site infrastructure or content presentation guide Topics for a new guides labels Feb 7, 2024
@fricklerhandwerk fricklerhandwerk removed the site Improvements to the site infrastructure or content presentation label Feb 7, 2024
@fricklerhandwerk fricklerhandwerk changed the title Pinning dependencies Overview of pinning techniques Feb 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
guide Topics for a new guides
Projects
Status: No status
Development

No branches or pull requests

1 participant