Attendees: We experienced some confusion about the starting time. Meeting started with Tom, Robert, Eelco. Theophane and John joined at 12 UTC, the new time. In the notes, that’s approximately after the nix store ping
discussion.
Agenda
- Triage (30 min)
- Discussion / other work
Triage
Fix #8838, pathExists: isDir when ends with `/ ` by roberth · Pull Request #8869 · NixOS/nix · GitHub
- Merged
flake.nix: update nixpkgs: 22.11 → 23.05
- Need to fix master by either fixing+merging the NixOS 23.05 update or reverting the PR that broke aarch64-linux
- @edolstra will look into issue in auto uid experimental feature + the coverage issue
- “vanila” (without our overrides) AWS SDK is buildable on
release-23.05
with tests.- let’s try building again with the tests, hopefully the AWS tests pass this time.
Overhaul nix flake update
- assigned for review
Add --query-valid-derivers
- Merged
Support cross compiling to BSD and CI it
- Surprise by the small code patch.
- @edolstra: Do we guarantee support for these new (cross) builds? Should it block a release?
- @roberth: Let’s make it best-effort.
- @roberth: We could support without risk by building it in pull request CI.
Discussion
New CLI stablization work.
nix store gc
What about the gc-related queries?
- Maybe add
--dry-run
and--json
tonix store gc
? - or to
nix store delete
- How do we structure the “reverse” queries? Just gc roots? or more?
- Returning only some things can be confusing
- Returning everything may be slow
- @roberth: If we return to little, then the users has to backtrack with docs, and then still run the slow thing, worst of both worlds
nix store ping
What does --json
return?
Why does trusted
return an int? Change to bool-or-null
TODO copy note from comment on issue
Rename to nix store info
.
nix store add-file
add-path
?
@edolstra: benefit of explicit add-file
is that it matches fetchurl
@ericson2314: a single command with multiple modes, flags seems more sensible
@thufschmitt: what’s the use case?
@edolstra: generally prefetching
@roberth: also RFC 92 dynamic derivations?
@thufschmitt: seem similar
@ericsion2314: the varying hashing methods have always been a source of confusion to me. Making this explicit is helpful for learning
@edolstra: names?
@roberth: match the code?
Too long and inconvenient
@roberth: short flags that are neatly categorized in the docs?
@edolstra: should match derivation attr recursive
, flat
@roberth: recursive
should be the default?
Make it match the language? Then it should be recursive
or flat
@roberth: ~recursive-or-flat
as a mode?~ ~It names the language behavior~ wrong! The language uses recursive
in its string coercions.
Should it match outputHashAlgo
/ outputHashMethod
?
@thufschmitt: It would be great for the language and CLI to agree
@ericson2314: I think it is very good if the CLI is “subliminally” teaching people the most compressed/efficient mental model by never missing and opportunity to connect things that are the same. (The less users need to consult the docs the better.) So if recursive hashing is deeply related to NAR hashing, they should share a name. (I took a lot of time to “academically” understand Nix and refine my mental model, but most users won’t take the time to “relearn” that way. So we want to give them the right mental model from the beginning.)
@thufschmitt: Do we want key-value options or flags? (--method=foo
or --foo
)
@edolstra: Prefer brief options. Would like to avoid string-value for enums.
@roberth: This command is for scripts and power users, so brevity is not a priority.
@tomberek: What should be the CLI guideline?
@edolstra: enum key-value options can always be turned into single flags
@ericson2314: such flags are naturally booleans, whereas we’re dealing with an enum
@roberth: key-value matches the language, matches derivations
@edolstra: We have precendent for flattening enum-valued options to mutually exclusive flags, e.g. sandbox
@roberth: for tab completion we want a consistent prefix
@edolstra: Implementation effort may be higher for enum case
@roberth: Should be close: either you specify more flags, or you specify a string mapping
@ericson2314: Would be happy to implement infra for enum options if still needed.
@ericson3214: Support text
for manually adding derivations in aterm format (e.g. for RFC 92, or just for complete coverage)
@tomberek: Let’s also update / clarify the CLI guidelines.