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.
- Triage (30 min)
- Discussion / other work
Fix #8838, pathExists: isDir when ends with `/ ` by roberth · Pull Request #8869 · NixOS/nix · GitHub
- 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
- let’s try building again with the tests, hopefully the AWS tests pass this time.
- assigned for review
- 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.
New CLI stablization work.
What about the gc-related queries?
- Maybe add
nix 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
trusted return an int? Change to bool-or-
TODO copy note from comment on issue
nix store info.
@edolstra: benefit of explicit
add-file is that it matches
@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
@roberth: match the code?
Too long and inconvenient
@roberth: short flags that are neatly categorized in the docs?
@edolstra: should match derivation attr
recursive should be the default?
Make it match the language? Then it should be
recursive-or-flat as a mode?~ ~It names the language behavior~ wrong! The language uses
recursive in its string coercions.
Should it match
@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? (
@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.
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.