2022-10-28 Nix team meeting minutes #5

Attendees: @edolstra @roberth @tomberek @fricklerhandwerk

Notes: @fricklerhandwerk

Agenda

Notes

  • @fricklerhandwerk motivation: delineate our responsibility, enable maintainers to say “yes” or “no” to proposals and requests on the spot

    • @edolstra yes, have to pick something we want to take on as responsibility
  • @roberth proposal: “Nix is a foundation for all software”

    • @fricklerhandwerk: “Nix underpins all of software development”
      • @tomberek: needs a clear line, what does not do?
      • “Nix is a cornerstone of software development” (such as Git and Linux)
      • “Nix is the reproducibility layer in software development”
        • @edolstra: “Nix is the configuration management layer”
          • broad term, would have to explain it
          • @fricklerhandwerk: not a problem, the document is for us maintainers, only to enable us check if sub-items of vision match the definition
          • @roberth: no, it’s too specific, this is not how people will read this
          • @tomberek: but that’s the trick - we have applied config mgmt methodology where it has not usually been applied to
      • “Nix underpins the entire software supply chain”
        • @edolstra: people will associate different things with “software supply chain”. “configuration management” is a much more established term
          - academic definition: https://www.sebokwiki.org/wiki/Configuration_Management
          - but in the industry “configuration management” is interpreted much more narrowly, associated with things like Puppet and Chef
          • @tomberek: like clear technical language, but it will confuse people. look at Docker, they had to invent/adopt a term to even say what it is about
          • @fricklerhandwerk: if we are clear enough with terms, confusion will cease eventually. on the other hand, which term would we come up with on the spot that describes Nix appropriately?
          • @edolstra: originally it was a package manager, but that is too narrow. it could be a universal build tool, but even that is too specific.
      • @tomberek: “Nix is the universal build and configuration management tool”
    • @fricklerhandwerk: can we agree on the “configuration management” wording, apart from potentially confusing people
      • we can explain or link to that definition
      • @roberth: that’s asking the wrong question. who is the document for?
      • for the maintainers first, as above
    • (general agreement on the introduction section)
  • @edolstra: should define the target user base right now, otherwise the vision is to have a vision

    • @tomberek: software developers?
      • @fricklerhandwerk: too narrow, natural scientists use it, too. it’s not about just software, it’s more like knowledge management. need a positive definition which also clearly implies its complement.
    • @tomberek: anyone who wants to manage the complexity of modern software
      • @fricklerhandwerk: yes! @ners said: Nix exposes the complexity of software and also allows managing it. still need an expression that helps potential users determine if they are in the target audience.
      • @edolstra: anyone who wants to build stuff from other stuff in a reproducible, declarative way
        • @fricklerhandwerk: “build” is a highly specific term in software development, and what is that “stuff”?
        • we transform sequences of bits into other sequences of bits. may be computer programs or presentation slides
        • we transform files into other files. may be computer programs or presentation slides
    • @tomberek: for the goal of “saying no”, are there any examples from the past where we said “no”?
      • mutable changes to store
      • domain-specific functionality
      • non-reproducible derivations, downloading random stuff from the internet
  • @fricklerhandwerk: that was great. let’s go through this level of detail systematically in the next weeks. that would already be a good outcome. from then on we can say “no” for the next 5 years or so… :wink:

  • @edolstra: yes, take out lots of details next time, too

1 Like