!djTaTBQyWEPRQxrPTb:nixos.org

Nixpkgs Architecture

216 Members
Discussions about Nixpkgs' architecture - https://github.com/NixOS/nixpkgs/labels/architecture47 Servers

Load older messages


SenderMessageTime
8 Aug 2023
@infinisil:matrix.orginfinisil * Yes Nix doesn't have a good way to deprecate things yet, but that isn't Nixpkgs' problem :) 23:23:31
9 Aug 2023
@Ericson2314:matrix.orgJohn Ericson infinisil I think there is a misunderstanding of what is affected by this change. "Regular" usage that treats the output of `builtins.derivation` as a black box is not affected. Only usage that explicitly pulls out `drvPath` and splices that (into strings, ultimately into another derivation) is affected. Only *user* code does this. 01:54:54
@infinisil:matrix.orginfinisilYeah I get that, still, it's a breaking change01:56:47
@Ericson2314:matrix.orgJohn EricsonI believe based on my recollection of experiments, nix in fact hardly cares what the contents of `drvPath` is. It might just check that there is a string with that key.01:58:01
@Ericson2314:matrix.orgJohn EricsonIt is a breaking change, but it's Nixpkgs's breaking change01:58:17
@Ericson2314:matrix.orgJohn Ericson Robert Hensing (roberth)'s issue from a "nuts and bolts" perspective is to decouple what `derivation` produces from what the CLI or anything else expects 01:59:15
@Ericson2314:matrix.orgJohn EricsonRight now those things sort of match up, but it's somewhat a coincidence that they do01:59:51
@Ericson2314:matrix.orgJohn EricsonWe've been considering not doing deprecation cycles individual fields, but like a `derivationSuperStrict` that02:00:51
@Ericson2314:matrix.orgJohn Ericson* We've been considering not doing deprecation cycles individual fields, but like a `derivationSuperStrict`02:00:58
@infinisil:matrix.orginfinisilReally not sure why that should concern Nixpkgs though02:01:26
@Ericson2314:matrix.orgJohn EricsonAnd behind that is allowing individual projects to pick and choose their own stability / manage their own deprecation cycle02:01:37
@Ericson2314:matrix.orgJohn EricsonWith Nix just saying "here's what I produce, here's what I expect, between those is a lot of flexibility you do what you want"02:02:08
@Ericson2314:matrix.orgJohn EricsonAlso, a nix-based deprecation cycle means the same version of Nixpkgs evaluated with different Nixes gives different stuff (baring more language version machiner)02:04:09
@infinisil:matrix.orginfinisilI really only care about not having breaking changes without warning02:04:27
@infinisil:matrix.orginfinisilIn Nixpkgs (but Nix should care about that too)02:04:49
@Ericson2314:matrix.orgJohn EricsonI have 0 problem with Nixpkgs choosing to introduce a new attribute :)02:04:56
@Ericson2314:matrix.orgJohn EricsonDoing the warnings, etc.02:05:18
@infinisil:matrix.orginfinisil
In reply to @Ericson2314:matrix.org
Also, a nix-based deprecation cycle means the same version of Nixpkgs evaluated with different Nixes gives different stuff (baring more language version machiner)
There's minver.nix for that
02:05:26
@infinisil:matrix.orginfinisil
In reply to @Ericson2314:matrix.org
I have 0 problem with Nixpkgs choosing to introduce a new attribute :)
The problem is that Nix itself continues using drvPath. There needs to be an alternative that doesn't make everybody have warnings when they use e.g. the nix repl to evaluate derivations
02:07:09
@Ericson2314:matrix.orgJohn EricsonWarnings from forcing the old attribute?02:07:52
@Ericson2314:matrix.orgJohn EricsonFair enough, if so02:08:09
@infinisil:matrix.orginfinisilYeah nix repl at least uses drvPath to print, I imagine drvPath is used in other parts of Nix too02:08:54
@Ericson2314:matrix.orgJohn EricsonI guess it would be nice to say we can make use of this builtin irrespective of any deprecation policy: we can make a nicer way to keep this weird expressive power 02:09:24
@Ericson2314:matrix.orgJohn EricsonThe discard way is quasi unsafe because it "weakens" the string context throwing stuff away02:09:46
@infinisil:matrix.orginfinisilIt's very late here, can you write a concrete proposal for Nixpkgs into some issue? We can take another look then02:09:57
@Ericson2314:matrix.orgJohn EricsonThe one I made "strengthens" the string context so I think we can just set aside `drvPath` an hope this is good primop which we can e.g. make a Nixpkgs lib function from which would hide some of the details02:10:42
@Ericson2314:matrix.orgJohn EricsonYeah 02:10:47
@Ericson2314:matrix.orgJohn EricsonIndeed it is late02:11:00
@infinisil:matrix.orginfinisilI didn't bother with a PR, but I updated the NAT GitHub profile with information regarding the new member-exclusive Matrix channel used to review team applications23:01:00
@infinisil:matrix.orginfinisil * I didn't bother with a PR, but I updated the NAT GitHub profile with information regarding the new member-exclusive Matrix channel used to review team applications: https://github.com/nixpkgs-architecture/.github/commit/c8eb7b0c34bf4faa9a6cb1b06408b55bb9c32c9023:01:14

Show newer messages


Back to Room ListRoom Version: 9