00:20
<
gchristensen >
samueldr: tbh, I would more likely bet a bug with ofborg. can you link me the PR?
00:21
<
samueldr >
I don't know rust much, a match with Err(eval::Error::Fail) then Err(eval::Error::FailWithGist) couldn't have matched with Fail first since it's listed first, right? no inheritance in matching?
00:21
<
{^_^} >
#59313 (by eyJhb, 9 hours ago, open): displaylink: mark broken on 19.03
00:21
<
gchristensen >
right
00:21
<
samueldr >
and the other day I looked at a couple failed checks and none of them show a gist url for failure to list outputs
00:22
<
samueldr >
(that was the other day when we had a user jump in and ask, then ping timeout; tried to find their PR and check)
00:23
<
gchristensen >
interesting
00:23
<
gchristensen >
iirc a failure to create the gist is logged and ignored
00:23
<
gchristensen >
to the logs!
00:26
<
gchristensen >
to the other computer, whicd has access to the logs!
00:32
<
gchristensen >
nope, more mysterious
00:32
<
gchristensen >
failure to make a gist blows up the evaluator
00:32
<
gchristensen >
Apr 11 15:00:47 eval-1-lassulus.ewr1.nix.ci ofborg-evaluator-start[24286]: Ok(File { fd: 5, path: "/tmp/#7080299 (deleted)", read: true, write: true })
00:32
<
gchristensen >
Apr 11 15:00:48 eval-1-lassulus.ewr1.nix.ci ofborg-evaluator-start[24286]: Ok(File { fd: 5, path: "/tmp/#7080299 (deleted)", read: true, write: true })
00:32
<
gchristensen >
Apr 11 15:01:34 eval-1-lassulus.ewr1.nix.ci ofborg-evaluator-start[24286]: INFO:ofborg::outpathdiff: Failed to find After list
00:32
<
gchristensen >
Apr 11 15:03:39 eval-1-lassulus.ewr1.nix.ci ofborg-evaluator-start[24286]: INFO:ofborg::tasks::evaluate: Working on 59315
00:34
<
samueldr >
not sure what you mean. It failed to make the gist or didn't?
00:34
<
gchristensen >
it did not fail to make the gist
00:34
<
gchristensen >
but also maybe it didn't try to
00:35
<
gchristensen >
at least the evaluator is not 1,000,000,000 lines in a single function now.
00:37
<
gchristensen >
... ok I don't understand what it is doing.
00:37
<
gchristensen >
oh dammit!
00:37
<
gchristensen >
oaethoaeuthdaontuh
00:37
<
samueldr >
explain for the crowd not-in-your-head?
00:38
<
samueldr >
oh, sorry
00:38
<
gchristensen >
hrm?
00:38
<
samueldr >
I read "ok I [...] understand what it is doing"
00:38
<
gchristensen >
looks good, right?
00:38
<
samueldr >
the don't was critical
00:38
<
samueldr >
that's why I asked about the match
00:39
<
gchristensen >
if those two lines were swapped, it'd Do The Thing
00:39
<
samueldr >
isn't it set_url that makes the details link work on successes?
00:39
<
gchristensen >
set_url then set
00:41
<
samueldr >
`set` is like `yes tell github about it`, right?
00:41
<
gchristensen >
this is a horrible API! :D
00:42
<
samueldr >
yeah, confirmation asked from just after reading that bit
00:42
<
samueldr >
that's... I wouldn't expect set to do such an action :)
00:42
<
samueldr >
(from the name)
00:42
<
gchristensen >
yeah :(
00:42
<
gchristensen >
horrible!
00:43
<
samueldr >
apparently you didn't either ;)
00:43
<
gchristensen >
hmm I had some good code uncommitted in my local ofborg repo
00:43
<
gchristensen >
do I dare deploy that too tonight?
00:44
<
samueldr >
how grumpy do you expect to be when you wake up? :)
00:44
<
{^_^} >
[ofborg] @grahamc pushed to fix/fail-with-github « set_with_description actually does the thing, set_url is lies »:
https://git.io/fjq7t
00:44
<
samueldr >
before saying failures, I mean
00:44
<
samueldr >
seeing failures*
00:45
<
{^_^} >
[ofborg] @grahamc opened pull request #348 → set_with_description actually does the thing, set_url is lies →
https://git.io/fjq7q
00:48
<
samueldr >
gchristensen: uh? what do you mean "point to nixos"?
00:48
<
{^_^} >
[ofborg] @grahamc closed pull request #274 → README.md: switch to workaround for running tests →
https://git.io/fpRa3
00:52
<
gchristensen >
shouldn't it import ./nixos/release-combined.nix or something instead of nixpkgs' release?
00:53
<
samueldr >
pkgs/top-level/release-combined.nix isn't even a thing
00:56
<
samueldr >
terrible since in my PR body I used the right filename :o
00:56
<
gchristensen >
wow, new clippy has really fairly ugly suggestions
00:56
<
samueldr >
just pushed the fixed one
00:56
<
samueldr >
(this time actually copy/pasted the strings from the command in a local nix-instantiate invocation!)
00:56
<
gchristensen >
.map(|k| k.to_owned()) -> .map(std::borrow::ToOwned::to_owned)
00:57
<
samueldr >
I see why, but that's more bytes
00:57
<
samueldr >
s/bytes/chars/
00:58
<
gchristensen >
I wouldn't actually want to type that
00:59
<
samueldr >
that's one syntaxic sugar bit I like from ruby, enumerable.map(&:something) is like enumerable.map { |x| x.something }
01:00
<
samueldr >
with as many previously rubyists on rust, I though they would have had a similar sweetened syntax already :)
01:01
<
gchristensen >
they do, but it has to be carefully typed
01:07
<
gchristensen >
319 | .filter(|line| line.is_ok())
01:07
<
gchristensen >
| ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `std::result::Result::is_ok`
01:07
<
gchristensen >
they're moving my cheese, samueldr!
01:08
<
samueldr >
though, not sure about how "it has to be carefully typed" matters :/ here `line` is presumably a `std::result::Result`, anything like 🧀::is_ok would work, where the compiler resolves the cheese to the type?
01:09
<
gchristensen >
not sure
01:09
<
samueldr >
there's probably a huge gap in my rust knowledge where it would make sense not to have something like that
01:09
<
samueldr >
but considering the whole "don't use a closure" clippies, such a syntax would make sense to me?
01:10
<
samueldr >
though, I sure agree that "adding syntaxes for the sake of syntaxes" is also a good thing not to do
01:35
<
{^_^} >
[ofborg] @grahamc merged pull request #348 → set_with_description actually does the thing, set_url is lies →
https://git.io/fjq7q
01:50
<
{^_^} >
#59313 (by eyJhb, 10 hours ago, open): displaylink: mark broken on 19.03
01:51
<
samueldr >
<3 gchristensen doing good work
01:51
<
{^_^} >
gchristensen's karma got increased to 101
01:51
<
gchristensen >
samueldr: however, the problem is surprisingly obvious. obvious enough that I was blind to it
06:37
orivej has quit [Ping timeout: 252 seconds]
08:39
andi- has quit [Ping timeout: 258 seconds]
08:44
andi- has joined #nixos-borg
08:55
andi- has quit [Excess Flood]
08:56
andi- has joined #nixos-borg
09:01
andi- has quit [Ping timeout: 250 seconds]
09:06
andi- has joined #nixos-borg
09:08
orivej has joined #nixos-borg
09:12
andi- has quit [Ping timeout: 252 seconds]
09:18
andi- has joined #nixos-borg
09:23
andi- has quit [Ping timeout: 264 seconds]
09:33
andi- has joined #nixos-borg
11:32
jtojnar has joined #nixos-borg
11:58
orivej has quit [Ping timeout: 264 seconds]
12:00
orivej has joined #nixos-borg
12:05
<
gchristensen >
w00t my nice looking code worked a treat
12:06
orivej has quit [Ping timeout: 246 seconds]
12:44
orivej has joined #nixos-borg
13:29
<
gchristensen >
one step closer to ofborg being able to do CI for NixOS/nix
13:30
<
samueldr >
gchristensen: about that PR you asked me to fix, I did fix it yesterday (the one testing nixos/release-combined.nix)
13:30
<
gchristensen >
ah right
13:31
<
gchristensen >
I held off on deploying it last night for the reasons you mentioned (not waking up to 100 broken PRs)
13:31
<
gchristensen >
let's give it a go
13:33
<
samueldr >
though yeah with the right path it will work fine :)
13:34
<
samueldr >
it will catch those few that break release-combined evals without affecting eval for nixpkgs
17:25
MichaelRaskin has joined #nixos-borg
18:26
orivej has quit [Ping timeout: 252 seconds]
19:49
<
gchristensen >
ok friends, question about publishing statistics
19:50
<
gchristensen >
I was thinking it'd be good to publish the statistics for the outpaths.nix evaluation with checkMeta = true
19:50
<
gchristensen >
but we don't checkMeta before and after, only after
19:50
<
gchristensen >
should we checkMeta before and after?
19:50
<
gchristensen >
should we publish statistics for outpaths with checkMeta=false?
20:43
<
gchristensen >
some of this code is so ugly =)
21:05
<
infinisil >
gchristensen: Soo, you have before/checkMetaTrue, before/checkMetaFalse, after/checkMetaTrue and after/checkMetaFalse?
21:05
<
infinisil >
(the possible measurements)
21:06
<
gchristensen >
those are all the possible ones
21:06
<
gchristensen >
at the moment, I do before/checkMetaFalse, after/checkMetaFalse after/checkMetaTrue
21:07
<
infinisil >
Why does checkMetaFalse matter at all though?
21:08
<
infinisil >
Just for getting rid one of the major performance bottlenecks?
21:08
<
gchristensen >
I think it is good to verify it evaluates properly with check meta = false
21:08
<
gchristensen >
I'm not sure why we chose to do checkMeta = false before/after instead of =true
21:09
<
gchristensen >
possibly to start least strict and become more strict
21:10
<
infinisil >
Oh I see
21:10
orivej has joined #nixos-borg
21:12
<
infinisil >
For performance statistics, I don't think after/checkMetaTrue is useful on its own, because you can't compare it to anything
21:13
<
gchristensen >
it isn't
21:13
<
gchristensen >
it is only useful for a "did this PR mess up meta checks?"
21:14
<
gchristensen >
so maybe the thing to do is do checkmetatrue before/after
21:14
<
gchristensen >
and do a checkmetafalse in the after
21:15
<
infinisil >
But then you don't have the less strict -> more strict thing
21:15
<
gchristensen >
yeah
21:15
<
gchristensen >
I could stop doing that, that probably isn't super important
21:15
<
samueldr >
is the hydra eval with checkMeta true?
21:16
<
samueldr >
then yeah, I'm not sure with true has much worth, though I don't know for sure
21:16
<
samueldr >
(stats with it true, checking is important!)
21:16
<
infinisil >
before/checkMetaFalse succeeds but after/checkMetaFalse fails -> Error is in your change, not in meta
21:16
<
gchristensen >
also a valid point
21:16
<
infinisil >
after/checkMetaFalse succeeds but after/checkMetaTrue false -> Error is in your change, in meta
21:17
<
infinisil >
And I think before/checkMetaFalse and after/checkMetaFalse is good enough to record performance over time
21:17
<
infinisil >
imo at least :)
21:18
<
gchristensen >
I wouldn't count on these #'s being useful "over time" just an before vs. after diff in the PR
21:18
tilpner has quit [Remote host closed the connection]
21:19
tilpner has joined #nixos-borg
21:25
<
gchristensen >
ok I'm sold
21:25
<
gchristensen >
I was thinking checkMeta=true for "worst case" stats, but
23:10
orivej has quit [Ping timeout: 250 seconds]