[Nix#9622] Document the *cursed* advanced derivation attributes #84
Labels
No labels
Area/build-packaging
Area/cli
Area/evaluator
Area/fetching
Area/flakes
Area/language
Area/profiles
Area/protocol
Area/releng
Area/remote-builds
Area/repl
Area/store
bug
crash 💥
Cross Compilation
devx
docs
Downstream Dependents
E/easy
E/hard
E/help wanted
E/reproducible
E/requires rearchitecture
imported
Needs Langver
OS/Linux
OS/macOS
performance
regression
release-blocker
RFD
stability
Status
blocked
Status
invalid
Status
postponed
Status
wontfix
testing
testing/flakey
ux
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lix-project/lix#84
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Upstream-Issue: NixOS/nix#9622
Problem
Currently there's a pile of cursed advanced derivation attributes that aren't described on the "advanced derivation attributes" page here: https://nix.dev/manual/nix/2.19/language/advanced-attributes
That page seems to only describe the ones that weren't deemed cursed enough to start with two underscores.
Examples:
This shitpost lists some of those ones: https://hachyderm.io/@leftpaddotpy/111587644400392006
Proposal
Grep Nix for derivation attribute access and go collect them all, then write docs. Experimental ones too: just link to the experimental feature docs for it.
Checklist
(i tried, not immensely hard though)
Priorities
Add 👍 to issues you find important.
More magic attrs, not used in derivations themselves, but still magic in other areas of Lix:
recurseForDerivations
:auto attr = cursor.maybeGetAttr(state->sRecurseForDerivations);
Bindings::iterator j = i->value->attrs->find(state.sRecurseForDerivations);
_combineChannels
:attrs.alloc("_combineChannels").mkList(0);
bool combineChannels = v.attrs->find(state.symbols.create("_combineChannels")) != v.attrs->end();