Attendees: @regnat @tomberek @ericson2314 @fricklerhandwerk @edolstra @infinisil
Agenda
- Assessing concerns with moving forward with flakes stabilisation
- Reviews
Blockers for stabilizing fetchTree
Making the fetchTree stabilisation depend on rewriting fetchGit
with libgit
- @roberth raised the issue last time
- Fear that we’ll want to change the API a bit based on that, which should happen before the stabilisation
- We can decide to fix forward until the next release
- We shouldn’t make the stabilisation wait forever if that doesn’t happen quickly enough
- Concerns for breaking changes:
- git config
- ssh config
-
libgit
works fine fetching over https and the legacy git protocol, but.ssh/config
will be ignored -
@edolstra:
libssh2
is supported, but it does not seem to have the right features- there is a patch but not upstream yet
- we could start with adding NixOS tests to prepare the migration to
libgit
, and then see step by step whether it has all the features we need
-
- Advantages of using
libgit
- Accessing files in source trees efficiently
- Lazy tree uses it for caching
- Decision: it’s worth doing but it’s not a blocker for stabilising
fetchTree
Registry
Not part of the stabilisation.
URI syntax
Not intended to be part of the first stable fetchTree
.
The structured attribute version is easier to handle as it has fewer edge-cases.
Agreement on not stabilising the URI syntax for now.
Documentation
Needs a rewrite to reflect reality of stable features.
@fricklerhandwerk will take care of that.
“Fancy” fetchers (mercurial
, github
, gitlab
, sourcehut
)
- mercurial already exists through
fetchMercurial
, so we should stabilize -
fetchTarball
andfetchUrl
are already builtins -
gitHub
is widely used (and useful) for efficiently fetching Nixpkgs - Don’t stabilise
gitlab
andsourcehut
yet- Those are not as commonly used and it gives us time to fix remaining issues
Git smudging
Smudging allows running arbitrary stuff at fetch time. Do we want to have it run by default? Or at all?
Current behavior:
-
fetchGit
doesn’t run smudging -
github
fetches tarballs, and GitHub applies smudging to those
Examples:
$ nix build github:tomberek/export-magic -L
text> /nix/store/8fdx2h960yf292czd4ik2f6fza63wlqh-.version
text> HEAD -> main
text> (HEAD -> main)
text> f0fe26485056d92e78d84de3daf14a8875548783
text> Tue, 21 Feb 2023 19:51:28 -0500
text> 2023-02-21 19:51:28 -0500
text> 2023-02-21T19:51:28-05:00
text> HEAD -> main
text> (HEAD -> main)
text> f0fe26485056d92e78d84de3daf14a8875548783
text> Tue, 21 Feb 2023 19:51:28 -0500
text> 2023-02-21 19:51:28 -0500
text> 2023-02-21T19:51:28-05:00
But also:
$ nix build git+ssh://git@github.com/tomberek/export-magic -L
text> /nix/store/8fdx2h960yf292czd4ik2f6fza63wlqh-.version
text> HEAD -> main
text> (HEAD -> main)
text> f0fe26485056d92e78d84de3daf14a8875548783
text> Tue, 21 Feb 2023 19:51:28 -0500
text> 2023-02-21 19:51:28 -0500
text> 2023-02-21T19:51:28-05:00
text> HEAD -> main
text> (HEAD -> main)
text> f0fe26485056d92e78d84de3daf14a8875548783
text> Tue, 21 Feb 2023 19:51:28 -0500
text> 2023-02-21 19:51:28 -0500
text> 2023-02-21T19:51:28-05:00
@regnat and @tomberek will look into it.
- check fetching from GitHub and pure Git
@infinisil: %d
is definitely non-deterministic and has caused problems before: https://github.com/immerrr/lua-mode/pull/165
CLI Stabilisation
`nix store ping` -> `nix store info` by vicky1999 · Pull Request #9150 · NixOS/nix · GitHub
- final review by @fricklerhandwerk and @tomberek
- merged
https://github.com/NixOS/nix/pull/8131
- reviewed by @fricklerhandwerk and @tomberek
- looks good, some clarifications requested
https://github.com/NixOS/nix/pull/8595
Reviewed by @regnat and @ericson2314