---
title: Nix UX meeting 2022-05-19
tags: meeting, nix_ux
date: 2022-05-19
breaks: false
---
:::info
Attendees: @layus @regnat …
Agenda:
- Round on the current blockers
- [Flakes and Git integration](/zdQuhXZ9S9qJYMqrepGkTA) (@layus)
:::
# Issue Review
### Debugger
- removed static ptr's
- debugger hook as function? WIP
## Copy local flakes
- flake lock interaction?
- will not be in 2.9.0
## Nix repl
- [tom]: forgot to push "experimental branch"
- needs final review https://github.com/NixOS/nix/pull/6233/commits/e1f308a1ec3c395cd4978b45400f7a45adcea0dc
- @regnat reviewed it, requesting more backwards-compat
- @tomberek addressed that (just pushed), will need another round of review
## Error location improvement
Still waiting on the debugger PR
# [Flakes and Git integration](/zdQuhXZ9S9qJYMqrepGkTA)
Problem: Nix takes into account the git repo it’s working in. Which can be nice, but also creates some friction and unintuitive behavior
- @eelco’s work on lazy trees makes this nicer because it’s possible to display a better error message saying that the file exists but isn’t known to Git, so it should be checked-in
- But not enough: Since Nix knows how to fix it, it could just fix it himself
- Occasionnally, ppl **want** to use untracked files in a flake
- Also means that adding a Git repo changes significantly the behavior of Nix
- The behaviour is weird wrt the mental model of Git:
The thing that Nix sees is the commit that would have been produced by `git commit --all`. Which isn’t intuitive at all
- This decision isn’t documented anywhere
- Motivations behind this design choice:
- Tying Nix to Git is done for hermeticity
- Copying everything to the store is (was) the easiest way to implement this hermetic model
- Alternatives
- Stick to the last commit
- Only consider the staged chunks
- Consider the whole non-ignored workspace
- ...
- That boils down to a matter of Git wokflow:
- Ppl who keep a clean worktree will prefer having everything (non-ignored) included
- Other ppl prefer having to explicitely add stuff
- Other use-case: people who can’t commit the flake.nix (or other Nix files) but still want to use the flakes in-tree
- Proposal by @layus : Keep mostly the same behavior, except that when the evaluator wants to eval a file that’s not tracked in Git it should just warn about it and evaluate it anyways
Regardless of what ends-up being done, the motivation should be recorded
# Topic for next time
Progress-bar (@garbas)