Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[RFC 174] Improve Terminology #174
[RFC 174] Improve Terminology #174
Changes from 1 commit
47ac63c
a4c0651
dc20da3
92fa1ee
246497d
08a2764
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
But this is incorrect... That isn't the current definition.
*.drv
files are store derivations, which are distinct from derivations. Derivations are specifications for "running an executable on precisely defined input files to repeatably produce output files at uniquely determined file system paths."1 Notably, store derivations are a side-effect of derivations.Footnotes
https://nixos.org/manual/nix/stable/language/derivations ↩
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking at the glossary definition from Nix manual for derivation, it reads as if derivation is just a structure. This is some structure that describes a build task, and Nix package managers operates with it. Crucially, the structure can be in any format at all: it can be passed from a C++ program, using the code that Nix package manager uses; it can be a JSON; it can be an aTerm; it can also be some area in RAM that holds a representation of the C++ structure in memory.
This definition isn't useful. It is essentially saying, "there's a structure that is defined in C++ code, and everything that can be serialized into it is a derivation". This is not even an implementation detail, this is more like misplaced code comment.
Notably, the definition for store derivation that you linked is much more useful. It outright states a couple of useful properties: store derivation is a derivation, it exists in store and has a store path, and it is also a .drv file. Since store derivation is actually a derivation, and it's also the predominant format of interacting with derivations even if you interface with the Nix package manager code - I'd say it makes a lot of sense to stop trying to describe what's essentially an internal structure representation, and to only describe the .drv file.
Also, that's only going by the glossary. The less thorough parts of the documentation often use "derivation" to mean "store derivation". And less formal knowledge sources pretty much always say "derivation" to mean the .drv file.
It's important to note that all of the above is not what is actually written in the text of the RFC, so that's a mistake on my part that I'll fix.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A derivation indeed is just an abstract data type, the specific representation doesn't really matter. And yes, many places in the Nix manual are still sloppy on the terms.
I generally agree on the premise of this RFC, but strongly doubt it's productive to pursue: batching up terms for renaming will just delay progress on the uncontroversial ones, and clutter the discussion for the others.
Some of the terms you've listed have issues filed for finding better names (IFD). Some are arguably already solved but not used consistently yet (Nix language), some are merely not well-explained (derivation), some can be considered to be not problematic to begin with. All of that can be improved incrementally, and I'd very much appreciate your help with that.
Some terms probably aren't worth changing: Seriously trying to rename Nix is asking for trouble.
In any case I recommend to take on whatever you feel needs to be done as independent issues.