Skip to content
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

doc/glossary: Define package and package attribute set #9762

Merged
merged 2 commits into from
Jan 16, 2024

Commits on Jan 13, 2024

  1. doc/glossary: Define package and package attribute set

    A small step towards NixOS#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.
    roberth committed Jan 13, 2024
    Configuration menu
    Copy the full SHA
    7e5fa5c View commit details
    Browse the repository at this point in the history

Commits on Jan 16, 2024

  1. doc/glossary: Simplify software package definition

    Co-authored-by: Valentin Gagarin <[email protected]>
    roberth and fricklerhandwerk authored Jan 16, 2024
    Configuration menu
    Copy the full SHA
    baea5f4 View commit details
    Browse the repository at this point in the history