!djTaTBQyWEPRQxrPTb:nixos.org

Nixpkgs Architecture Team

231 Members
https://github.com/nixpkgs-architecture, weekly public meetings on Wednesday 15:00-16:00 UTC at https://meet.jit.si/nixpkgs-architecture53 Servers

Load older messages


SenderMessageTime
27 Mar 2023
@infinisil:matrix.orginfinisil @room: The next meeting will take place in ~10 minutes - meeting link - live stream - meeting notes 14:25:26
@infinisil:matrix.orginfinisil * @room: The next meeting will take place in ~5 minutes - meeting link - live stream - meeting notes 14:25:32
@infinisil:matrix.orginfinisil tomberek: growpotkin ( Alex Ameen ): Another ping, joining? 14:32:48
@federicodschonborn:matrix.org@federicodschonborn:matrix.org joined the room.15:03:30
@tomberek:matrix.orgtomberekno, not today (traveling)15:15:32
@kha13d:matrix.orgkha13d joined the room.15:20:10
@infinisil:matrix.orginfinisil tomberek: Ah I see you declined the calendar event, I should check that next time :) 15:54:54
@infinisil:matrix.orginfinisil I'll reach out to #matrix-suggestions:nixos.org to have a channel for the Package Modules WG 16:00:57
@asymmetric:matrix.dapp.org.ukasymmetric left the room.16:04:56
@nbp:mozilla.orgnbp

infinisil: I just read the WG search … I have multiple comments:

  1. Do not name it module system, unless you want to have module systems as an answer. Nixpkgs does not require modularity, it requires extensibility and configuration. We care about overriding, not mixing.
  2. This topic is the only reason why I am in this channel.
  3. I would be happy present why S.O.S. is the answer, and reply to all questions.
  4. I have no time to dedicate working on this project, I am focused on another pet project on my spare time, and Nix is not part of my day job.
16:20:51
@infinisil:matrix.orginfinisil nbp: It's subtle, but yes we didn't name it "the module system", we called it "a module system" and "something like the module system" :) 16:22:27
@infinisil:matrix.orginfinisil nbp: Regarding S.O.S., I think this is also something the working group needs to take into account and check whether it might be a better alternative. 16:23:57
@infinisil:matrix.orginfinisil nbp: How sure are you that S.O.S. solves all of the problems described here? 16:25:27
@whentze:matrix.orgWanja Hentzewhat's SOS short for?16:26:06
@infinisil:matrix.orginfinisilOh and even if you don't have time to actually work with the WG, you can still contribute by just reviewing what the WG does16:26:27
@infinisil:matrix.orginfinisil Wanja Hentze: https://github.com/NixOS/rfcs/pull/3 16:26:35
@nbp:mozilla.orgnbp
In reply to @infinisil:matrix.org
nbp: How sure are you that S.O.S. solves all of the problems described here?
  • Overlays are outside the scope of S.O.S., overlays are how layers are applied one after the other.
  • S.O.S. should help unify override, .overrideAttrs, overrideDerivation, extendDerivation, .overrideScope', .extend, makeScope, .overridePythonAttrs, pkgs.haskell.lib.overrideCabal and probably more under a single update operator syntax.
  • S.O.S. does not solve discoverability, as this is a problem which is orthogonal. mkDerivation can be updated to have a fix set of inputs, which would make it nicer with or without S.O.S.
  • S.O.S. does not solve the merging responsibility, but it provides update operator (or 2 functions in the mean time) to resolve this problem to be use as the base for any automated logic that we might want to add on top.
  • S.O.S. does not require the evaluation on previous overriden packages in case of extension, as mkDerivation would be called after the fix-point.
16:37:43
@infinisil:matrix.orginfinisil nbp: Then honestly S.O.S. doesn't sound like it would work as well as something like the module system 16:45:35
@nbp:mozilla.orgnbpbecause this is not a module system, this is just a different way of ordering computation, which let you parametrize before computing, thus remove the need for unpeeling functions before adding them back (all our override functions today …)16:47:03
@nbp:mozilla.orgnbp * because this is not a module system, this is just a different way of ordering computation, which let you parametrize before computing, thus remove the need for unpeeling functions before adding them back (i.e: all our override functions today …)16:47:09
@nbp:mozilla.orgnbpAnd I honestly recommend adopting something like S.O.S. before trying to solve a larger problem of how the merging responsibility is handled.16:47:57
@nbp:mozilla.orgnbpNickel provide a nice approach to having type-like per attribute, and merge definition per attribute, but this is something which can be added later on, after having a clean syntax which no longer requires override functions.16:49:19
@nbp:mozilla.orgnbp To summarize. Yes S.O.S. does not answer all the problems, it focuses on the override one, and does not prevent fixing the other problems later / sooner. 16:51:13
@infinisil:matrix.orginfinisilIf we want to consider doing SOS instead of a module system to solve these problem, then SOS needs to be at least better than the module system at solving these problems.16:51:45
@infinisil:matrix.orginfinisil Yeah I guess we don't need to solve all problems at once, but it would be nice, and it's what the module system seems to be able to do 16:52:53
@infinisil:matrix.orginfinisil nbp: Wait in your proposal, can SOS be used outside of Nixpkgs by third-parties? Iirc it can't 16:53:21
@toonn:matrix.orgtoonn The current "module" system? 16:53:41
@infinisil:matrix.orginfinisilOh I guess via overlays16:53:42
@infinisil:matrix.orginfinisil
In reply to @toonn:matrix.org
The current "module" system?
Not entirely sure what your question is :)
16:54:19
@toonn:matrix.orgtoonn "and it's what the module system seems to be able to do" Are you referring to what is currently called "the module system," even though it has very little to do with what is generally considered a module system in other languages? Or did you mean "a module system" like before? 16:56:44

Show newer messages


Back to Room ListRoom Version: 9