nix/doc/manual
Robert Hensing 7e5fa5c25c doc/glossary: Define package and package attribute set
A small step towards https://github.com/NixOS/nix/issues/6507

I believe this incomplete definition is one that can be agreed on.
It would be nice to define more, but considering that the issue
also proposes changes to the design, I believe we should hold off
on those.

As for the wording, we're dealing with some very general and vague
terms, that have to be treated with exactly the right amount of
vagueness to be effective.

I start out with a fairly abstract definition of package.
1. to establish a baseline so we know what we're talking about
2. so that we can go in and clarify that we have an extra, Nix-specific
   definition.

"Software" is notoriously ill-defined, so it makes a great qualifier
for package, which we don't really want to pin down either, because
that would just get us lost in discussion.
We can come back to this after we've done 6057 and a few years in a
desert cave.

Then comes the "package attribute set" definition.
I can already hear Valentin say "That's not even Nix's responsibility!"
and on some days I might even agree.
However, in our current reality, we have `nix-env`, `nix-build` and
`nix profile`, which query the `outputName` attribute - among others -
which just don't exist in the derivation.

For those who can't believe what they're reading:

    $ nix-build --expr 'with import ./. {}; bind // {outputName = "lib";}' --no-out-link
    this path will be fetched (1.16 MiB download, 3.72 MiB unpacked):
      /nix/store/rfk6klfx3z972gavxlw6iypnj6j806ma-bind-9.18.21-lib
    copying path '/nix/store/rfk6klfx3z972gavxlw6iypnj6j806ma-bind-9.18.21-lib' from 'https://cache.nixos.org'...
    /nix/store/rfk6klfx3z972gavxlw6iypnj6j806ma-bind-9.18.21-lib

and let me tell you that bind is not a library.

So anyway, that's also proof of why calling this a "derivation attrset" would be wrong, despite the type attribute.
2024-01-13 20:00:06 +01:00
..
rl-next Update release notes 2024-01-12 16:21:07 +01:00
src doc/glossary: Define package and package attribute set 2024-01-13 20:00:06 +01:00
theme doc/manual: don't need to copy highlight.js manually 2021-08-04 19:47:05 -07:00
_redirects add redirect to new store page 2023-12-01 01:54:48 +01:00
anchors.jq doc: Port anchors preprocessor to jq script 2022-05-26 18:17:21 +02:00
book.toml manual: Check links 2023-01-10 22:30:41 +01:00
custom.css disallow selecting shell prompt in code samples 2022-12-05 11:01:46 +01:00
generate-builtin-constants.nix use lookup paths in helper expressions consistently 2023-11-30 21:53:31 +01:00
generate-builtins.nix document fetchTree (#9258) 2023-12-10 05:16:32 +00:00
generate-manpage.nix fix links in stores overview 2023-12-02 00:56:41 +01:00
generate-settings.nix document fetchTree (#9258) 2023-12-10 05:16:32 +00:00
generate-store-info.nix document fetchTree (#9258) 2023-12-10 05:16:32 +00:00
generate-store-types.nix Document each store type on its own page 2023-12-01 01:27:52 +01:00
generate-xp-features-shortlist.nix use lookup paths in helper expressions consistently 2023-11-30 21:53:31 +01:00
generate-xp-features.nix Document each store type on its own page 2023-12-01 01:27:52 +01:00
local.mk Split --disable-tests, fix cross builds 2023-12-18 10:47:50 -05:00
quote-literals.xsl Generate release notes again 2014-03-12 14:24:29 +01:00
redirects.js fix an old lost direct (#9458) 2024-01-08 19:38:36 +01:00
utils.nix Document each store type on its own page 2023-12-01 01:27:52 +01:00