sphalerite changed the topic of #nixos-dev to: NixOS Development (#nixos for questions) | NixOS 19.03 released! https://discourse.nixos.org/t/nixos-19-03-release/2652 | https://hydra.nixos.org/jobset/nixos/trunk-combined https://channels.nix.gsc.io/graph.html https://r13y.com | 19.03 RMs: samueldr,sphalerite | https://logs.nix.samueldr.com/nixos-dev
orivej has quit [Ping timeout: 248 seconds]
drakonis has joined #nixos-dev
drakonis_ has joined #nixos-dev
Guanin has quit [Remote host closed the connection]
vika_nezrimaya has quit [Remote host closed the connection]
vika_nezrimaya has joined #nixos-dev
justanotheruser has quit [Read error: Connection reset by peer]
vika_nezrimaya has quit [Quit: ERC (IRC client for Emacs 26.2)]
vika_nezrimaya has joined #nixos-dev
justanotheruser has joined #nixos-dev
vika_nezrimaya has quit [Ping timeout: 245 seconds]
justanotheruser has quit [Ping timeout: 245 seconds]
justanotheruser has joined #nixos-dev
<gchristensen> going through all the committers is revealing some info about churn on github
<samueldr> enough information to write a blog post about?
<gchristensen> maybe so
<gchristensen> a large number of commits to the maintainer file are by people who don't have github accounts anymore
<gchristensen> s/large/good/
<samueldr> hmm
<samueldr> first I looked at might just be a b0rked commit
<samueldr> like an e-mail not linked to github
<samueldr> the user is on github, same case as in the commit, has a nixpkgs repo
<gchristensen> yea
<samueldr> and one is someone adding someone else to the file... lol
<samueldr> I think shle/vy is still a maintainer (someone else added him to the file)
<averell> why is this one here? https://github.com/nixos/nixpkgs/commit/5927faa13893f09d0c7065d9f9f8deef05346ce5 he's in the channel :)
<samueldr> I would wager old e-mail addresses not linked to github anymore
<samueldr> or something like that
<averell> ah, email too, ok. i thought this was nick based.
<samueldr> the commit is e-mail based
<samueldr> that's how github reconcile the author to a github account
<gchristensen> https://gist.github.com/grahamc/06d4695ae5192659f26167be8fe043a4 <- updated for a complete list of all not-perfectly-clean maintainers
<samueldr> either borked commit with wrong e-mail, or e-mail changed and unassigned to github account
<gchristensen> (not saying they're concerning)
<averell> found another false pos: https://github.com/nixos/nixpkgs/commit/f811f1fc65ba904b48767779f64575ee0a6d243b it's a typo fix :) i should play lottery
<samueldr> it seems like it's more "weird entries" than "deleted accounts", which in a way is good
<gchristensen> true
<gchristensen> however, no, this defeats the point of the testing I was doing
<gchristensen> since it isn't associated with their account by name
pie_ has quit [Ping timeout: 252 seconds]
justanotheruser has quit [Read error: Connection reset by peer]
<gchristensen> so I think we can just accept the github Ids as good enough
<{^_^}> #66361 (by grahamc, 22 hours ago, open): maintainers: add github user IDs in service to NixOS/rfcs#39
pie_ has joined #nixos-dev
<gchristensen> bed time :)
pie_ has quit [Client Quit]
justanotheruser has joined #nixos-dev
sogatori has joined #nixos-dev
drakonis has quit [Quit: WeeChat 2.4]
drakonis has joined #nixos-dev
drakonis_ has quit [Ping timeout: 252 seconds]
orivej has joined #nixos-dev
drakonis has quit [Remote host closed the connection]
drakonis has joined #nixos-dev
cjpbirkbeck has joined #nixos-dev
cjpbirkbeck has quit [Quit: Quitting now.]
cjpbirkbeck has joined #nixos-dev
phreedom_ has joined #nixos-dev
cjpbirkbeck has quit [Quit: Quitting now.]
phreedom has quit [Ping timeout: 260 seconds]
ixxie has joined #nixos-dev
orivej has quit [Ping timeout: 245 seconds]
orivej has joined #nixos-dev
cjpbirkbeck has joined #nixos-dev
orivej has quit [Quit: No Ping reply in 180 seconds.]
<{^_^}> #66393 (by ivan, 17 hours ago, open): chromium: 76.0.3809.87 -> 76.0.3809.100
phreedom_ has quit [Remote host closed the connection]
orivej has joined #nixos-dev
phreedom has joined #nixos-dev
orivej has quit [Ping timeout: 245 seconds]
jtojnar has joined #nixos-dev
vika_nezrimaya has joined #nixos-dev
edef has quit [Read error: Connection reset by peer]
edef has joined #nixos-dev
orivej has joined #nixos-dev
ixxie has quit [Ping timeout: 248 seconds]
orivej has quit [Ping timeout: 272 seconds]
vika_nezrimaya has quit [Read error: Connection reset by peer]
vika_nezrimaya has joined #nixos-dev
orivej has joined #nixos-dev
justanotheruser has quit [Ping timeout: 245 seconds]
<worldofpeace> jtojnar: was #66236 good to merge for you?
<{^_^}> https://github.com/NixOS/nixpkgs/pull/66236 (by worldofpeace, 3 days ago, open): Reorganize GNOME tests, re-enable LightDM for release-combined
<jtojnar> worldofpeace: yeah, it was good
<worldofpeace> merged. thanks jtojnar
ixxie has joined #nixos-dev
cjpbirkbeck has quit [Quit: Quitting now.]
drakonis_ has joined #nixos-dev
drakonis has quit [Ping timeout: 258 seconds]
drakonis_ has quit [Read error: Connection reset by peer]
drakonis has joined #nixos-dev
ixxie has quit [Ping timeout: 245 seconds]
drakonis_ has joined #nixos-dev
drakonis has quit [Ping timeout: 268 seconds]
drakonis has joined #nixos-dev
drakonis_ has quit [Ping timeout: 268 seconds]
obadz has quit [Ping timeout: 268 seconds]
obadz has joined #nixos-dev
drakonis_ has joined #nixos-dev
drakonis has quit [Ping timeout: 252 seconds]
drakonis has joined #nixos-dev
drakonis_ has quit [Ping timeout: 264 seconds]
drakonis_ has joined #nixos-dev
drakonis has quit [Ping timeout: 264 seconds]
phreedom has quit [Ping timeout: 260 seconds]
orivej has quit [Quit: orivej]
orivej has joined #nixos-dev
orivej has quit [Read error: Connection reset by peer]
orivej has joined #nixos-dev
drakonis has joined #nixos-dev
phreedom has joined #nixos-dev
ixxie has joined #nixos-dev
drakonis1 has joined #nixos-dev
drakonis has quit [Quit: WeeChat 2.4]
drakonis_ has quit [Ping timeout: 250 seconds]
drakonis has joined #nixos-dev
drakonis has quit [Read error: Connection reset by peer]
drakonis has joined #nixos-dev
drakonis1 has quit [Ping timeout: 272 seconds]
sogatori has quit [Remote host closed the connection]
drakonis_ has joined #nixos-dev
jtojnar has quit [Ping timeout: 245 seconds]
drakonis1 has joined #nixos-dev
drakonis has quit [Ping timeout: 250 seconds]
drakonis1 has quit [Quit: WeeChat 2.4]
<flokli> LnL: saw https://github.com/NixOS/nix/pull/2779, which changed some of the exit codes during build. While bisecting something earlier today, thought it might be a good idea if nix could end with exit code 125 if a dependency failed to build, but other exit codes if the "leaf" derivation failed to build. exit code 125 instructs git to skip that commit while inside a "git bisect run"
<{^_^}> nix#2779 (by LnL7, 16 weeks ago, merged): build: add exit code for hash and check mismatches
drakonis has joined #nixos-dev
<flokli> this idea is now of course conflicting with the changes done there. What do you think about it?
<flokli> also cc aszlig
drakonis1 has joined #nixos-dev
drakonis2 has joined #nixos-dev
<LnL> flokli: why not use another bit to mark that?
drakonis_ has quit [Ping timeout: 272 seconds]
<flokli> because then you'd still need to juggle around bits to be able to use it inside git bisect
<LnL> then it makes everything else useless
<infinisil> I think the standard nix commands aren't very useful for bisecting anyways. I've been thinking of making a nix-bisect script that does it in a better way
drakonis1 has quit [Ping timeout: 276 seconds]
<LnL> adding a bit for it does mean all the current exit codes will break 90% of the time so they could be reshuffled to make the bisect case easier
<infinisil> With optimizations like: Query hydra directly for whether a path exists, skip uncached paths in a first run, try to avoid big rebuilds, ignore commits that don't change any paths that can influence what you're currently bisecting
<flokli> LnL: the return codes so far weren't documented at all, and are not yet in any release ;-)
<LnL> well ofborg uses them
<LnL> the new ones are not, so those are fine to change
<gchristensen> yeah ,things use the released ones even if they're not documented
drakonis has quit [Ping timeout: 250 seconds]
<LnL> changing them might be fine, I just avoided it since it wasn't necessary
justanotheruser has joined #nixos-dev
<gchristensen> probably shouldn't change them :)
drakonis has joined #nixos-dev
<infinisil> Hm, hydra doesn't provide an API for search does it?
<gchristensen> what are you wanting to do?
<gchristensen> (I don't know)
<infinisil> I'm looking into building a nix-bisect script, and if I could search for outPath's in hydra, it could fail early when hydra failed building it
<gchristensen> ah
<gchristensen> does hydra upload logs of failed builds?
<infinisil> Well they're viewable in the web interface, so yeah
<gchristensen> I mean to the binary cache
<infinisil> Ah no idea
<infinisil> Would I have to live in shame if I used web scraping to do the store path search?
<timokau[m]> infinisil: had the exact same idea a while ago! I have a half-working nix-bixect python script lying around that I keep meaning to clean up and publish
ciil has quit [Quit: Lost terminal]
<gchristensen> yup it does
<infinisil> timokau[m]: Oh neat
<infinisil> timokau[m]: Right now I'm just collecting ideas as to what it should all do, would be interesting to see yours
<timokau[m]> infinisil: I'll throw the current version on github, not sure how useful it is
<gchristensen> infinisil: I have a solution, MUCH faster than search.
<infinisil> Ahh, get build logs
<gchristensen> have a drv you want to see if failed? -> see if you can substitute, if no -> curl -I https://cache.nixos.org/log/jr0c4r3xnlq04i86knlcw595pq84nzqw-ghc-8.6.5.drv
<infinisil> Yeah that should work, nice :D
<gchristensen> -> if that exists, it failed
<gchristensen> and doesn't involve hammering the sorta slow DB :)
<infinisil> And I could even extract the failure reason from it
<gchristensen> :)
<timokau[m]> infinisil: That's what I'm donig. Most important feature I think is grepping for a line in the failure log
<gchristensen> btw if you're going to download the log content, use `nix log` instead.
<infinisil> Ah neat
<timokau[m]> infinisil: very raw, but here it is: https://github.com/timokau/nix-bisect/blob/master2/nix-bisect.py
<timokau[m]> There's a `master` and a `master2` branch for some reason, pretty sure `master2` has the latest features and `master` was an unfinished attempt at cleanup
<infinisil> Awesome!
<infinisil> I'll use it for inspiration
<gchristensen> although you will find some confusing things
<infinisil> (I couldn't extend it as I'm a noob in python)
<gchristensen> like the reason ...ghc-8.6.5.drv failed is not listed in that log
<infinisil> gchristensen: Oh darn, it's cut off right where the interesting bits would be
<timokau[m]> Main features in my view: (1) detecting failure reason and skipping on unrelated failures, preferably skipping ranges. Skipping ranges is hard to do with normal git-bisect though. (2) cherry-pick patches only when needed (3) ability do avoid mass-rebuilds, though its hard to define mass-rebuild
<gchristensen> infinisil: the reason is that build *passed*
<gchristensen> infinisil: but was too large
<timokau[m]> Oh and building dependencies first, skipping if that fails
<infinisil> Neat
<infinisil> timokau[m]: Is this a mistake here? https://github.com/timokau/nix-bisect/blob/master2/nix-bisect.py#L250
<infinisil> Looks like it should be on_timeout
<timokau[m]> Should indeed
<infinisil> The joys of dynamically typed languages :)
<infinisil> (no offense)
<timokau[m]> Probably didn't notice because I always used the "skip" variant and pythons dynamic typing makes it easy to never discover some errors
<averell> (to the "typed" part)
<timokau[m]> Yeah its one of the things I like most and least with python
<timokau[m]> I wish it had some clever type inference like rust that means I don't have to write types too much but still get some guarantees
<infinisil> I was thinking of writing this nix-bisect thing in bash because everything is CLI's, but I might go for Haskell after all, because there might be some complicated decision logic
<gchristensen> "it is complicated enough to merrit not bash" -- me, a die-hard lover of bash
<timokau[m]> Mine started as a bash script, but I definitely wouldn't recommend it
<infinisil> Bash gets unwieldy rather quickly..
<timokau[m]> One thing that puzzled me when writing it was that the nice new `nix` commands actually skip some log lines
<timokau[m]> Initially I used those because of the status line, coloring etc. But then grepping for a line indicating failure wouldn't work, because it would happily skip lines if they come too fast
ciil has joined #nixos-dev
<infinisil> Huh
* infinisil isn't getting it
ixxie has quit [Remote host closed the connection]
<timokau[m]> Basically I'm checking each line `nix-build` outputs against a "failure line" to determine weather the failure I'm looking for occured
<timokau[m]> It can be nice to abort early as soon as the offending line occurs (though its debatable if that is worth it), so I'm reading the lines as a stream (instead of `nix-log` afterwards)
<timokau[m]> At the same time I'm also printing the lines to STDOUT for a nice user interface
<timokau[m]> If I use `nix build` to build, intercept the output and then relay it to STDOUT, I won't see all lines
<timokau[m]> Because `nix build` only prints a new line every couple of milliseconds or something, so if there is too much output some lines will be skipped
<infinisil> Oh damn, didn't know that
<infinisil> Probably nix-build doesn't do that
<gchristensen> nix build has a new option, -L, in the next minor release
<timokau[m]> Well it makes sense from the nix2 perspective. Its not trying to give you an accurate build log, just some idea of whats happening. Parsing its output is not really an intended use case
<timokau[m]> Just caught me off-guard
<timokau[m]> gchristensen: what does that do?
<timokau[m]> infinisil: And now, `nix-build` doesn't do that. The current version of the script uses `nix-build` and but modifies the lines before re-printing to STDOUT to still only display a single line like nix2
<timokau[m]> Just looses the nice stats nix2 displays
<gchristensen> oh, to get all the log outptu
<timokau[m]> gchristensen: So it basically increases the "refresh rate"? Or is it the long-asked-after verbose mode that actually prints all lines?
<timokau[m]> gchristensen: Huh, nice. As a little bikeshed, I kind of wished the flag was called `-v`
<gchristensen> =)
<gchristensen> I think that bikeshed was painted a long time ago when -v was taken by the evaluator
<timokau[m]> Oh yeah makes sense. Still think that would be more intuitive, but not worth the backwards incompatibility
<gchristensen> yeah
<timokau[m]> I've used a dumb wrapper script that just falls back to `nix-build` when I use `-v` since the release of nix2
<gchristensen> thanks! yes!
<timokau[m]> Bed time for today, infinisil infinisil feel free to reach out if you want to chat more about nix bisecting