2023-03-13 Nixpkgs Architecture Team Meeting #32

Nixpkgs Architecture Team Meeting #32

Notes

RFC 140

  • Finding a shepherd proves hard. Co-authors are excluded by the rfc process. Ways forward, choice:
    • Sketchy: remove some authors. @roberth would be the(?) co-author. Defeats the RFC process.
    • Talk to the steering the committee for an exception
  • @j-k is interested in this RFC
  • @infinisil summarizes the RFC. questions:
    • @j-k: possible confusion around single character packages
  • Going to change pkg-fun → package
  • Lots of positive reactions
  • Inviting meeting guests to shepherd
    • @j-k: how does the implementation fit into this?
      • @infinisil: the RFC team is only concerned with the improving and accepting of the RFC
    • @j-k: what if they like it but there are concerns about performance? Can the RFC be accepted on e.g. the condition that performance is evaluated/improved?
      • @infinisil: performance has already been evaluated
  • Generally bi-weekly meetings. There will be a shepherd leader. [I suppose details can be looked up]
    • @j-k: confirms that he intends to nominate himself. Doubts about exact responsibilities
      • It’s a bit administrative lead role. [Not too complicated]
  • The RFC is blocked on the RFC process for now.

Package modules workgroup

  • @infinisil: We’ve made a start writing a problem description / discourse announcement for the module based packages idea

  • @infinisil: Would like to resume this after the call

  • @infinisil: Plan to work on the RFC in a repo (as in RFC 138)

  • @j-k: interested in helping out

    • overlay style mkDerivation argument comes to mind
    • “matrix” parameters come to mind, e.g. source dependent on system
  • @infinisil: We’re going to explore and find out what we can do

  • @roberth: How can Nixpkgs support DavHau’s efforts as they are? Support other configuration systems. Better separation of concerns

  • @infinisil: Recalls the team’s commitment to focus on one thing at NixCon 2022. It helps to make a small step

RFC 140 tooling work

  • @infinisil: Would like some help with nix-spp. Wanja is joining later today, 7 PM CET

  • If you have time during the week, feel free to contribute.

Review mkDerivation __cleanAttrs

  • @infinisil: What about third-party users of e.g. hello.buildInputs?
    • @roberth: Should get away from this at some point, we don’t really know these values anyways
  • @qyliss: .overrideAttrs still needs to work
    • @roberth: Does still work, attributes are stored internally
  • @qyliss: Can you use .overrideAttrs to disable cleanAttrs?
  • @qyliss: Makes it easier to debug
  • @Ericson2314: Interacts nicely with module-based packages, can’t return to original args once called. Small step towards many good things (@roberth agrees)
    • @Adam: .overrideAttrs wouldn’t work on module-created packages?
    • @Ericson2314: Yes (…?)
    • @Adam: I feel like there’s always some cases that the module system can’t cover
    • @roberth: There’s extendModules
    • @Adam: Need to be able to do things like e.g. removing things with a predicate from cflags
    • @roberth: Will be possible, with mkForce and the old value that’s already in lexical scope
    • @Ericson2314/infinisil: We always need to support the necessary use-cases
  • @infinisil: Does .drvAttrs still work?
    • @roberth: .internal is the same as .drvAttrs
    • @infinisil: What about providing backwards-compat?
    • @Ericson2314: It’s opt-in, you’re choosing to break your consumers
    • @infinisil: No defined API to Nixpkgs, people might not know about it meaning to be internal
    • @Ericson2314: Forking road, we’re deciding what is stable and what isn’t
    • @infinisil: Keeping attributes and throwing a warning for a release would not be very expensive
    • @roberth: Could look into that, three-value variable, either false, true, or `“warn”
    • @infinisil: Can include link in the error message for getting more feedback
    • @roberth: We can figure out the final interface better like this

After the meeting time slot

  • @qyliss: Rust fetching change don’t have any stats yet, let’s discuss next time
    • Space is similar to Haskell, probably
    • @infinisil: 10M Nixpkgs increase is for everyone
    • … discussion of rust dependency management situation …
    • @qyliss: We need dependency info in order to execute on security updates. Not something we can do in the current situation.

Action items

3 Likes