In the jobset evals lists, show what inputs changed between consecutive evals

[?]
Apr 15, 2012, 8:06 PM
RWFCW6ZNIE24XTEQUK5Y37K42BQER7EDGSSD4GQNFTGO5V4TY72QC

Dependencies

  • [2] BTYVIHF7 Make the jobset eval rows clickable
  • [3] KG5AMUMG Cleanup
  • [4] Q4VDOA76 Replace last 5 builds on jobset page with last 5 evaluations. Moved hide/unhide and evaluate options to jobset topmenu.
  • [5] 3U3CXCDW Nicer link to the rest of the jobset evals
  • [6] UMFB2767 Hydra/64: Leaving number of builds empty gives DBIx error
  • [7] 6QRHXIM3 * Speed up the jobset index page. Especially the query to get the
  • [8] RSEGBU6C Hydra/20: Jobset clone feature
  • [9] DE2DNCOI Allow comparing an evaluation with an arbitrary other evaluation
  • [10] G4X5IUYJ Remove default logo, replaced by text for now. Hide template in jobset edit.
  • [11] U4TD3AIQ Add support for viewing jobset evaluations
  • [12] OEPUOUNB Using twitter bootstrap for more consistent looks for Hydra
  • [13] 22JB5HNE make changes section more compact/readable
  • [*] 3HZY24CX * Make jobsets viewable under
  • [*] IK53RV4V
  • [*] ODNCGFQ5 * Improved the navigation bar: don't include all projects (since that

Change contents

  • replacement in src/lib/Hydra/Controller/Jobset.pm at line 52
    [4.1][3.0:52]()
    $c->stash->{evals} = getEvals($self, $c, 0, 6);
    [4.1]
    [4.4]
    $c->stash->{evals} = getEvals($self, $c, 0, 5);
  • replacement in src/lib/Hydra/Controller/Jobset.pm at line 330
    [3.113][3.113:168]()
    return [ $c->stash->{jobset}->jobsetevals->search(
    [3.113]
    [3.168]
    my @evals = $c->stash->{jobset}->jobsetevals->search(
  • replacement in src/lib/Hydra/Controller/Jobset.pm at line 341
    [3.896][3.896:920]()
    , rows => $rows
    [3.896]
    [3.920]
    , rows => $rows + 1
  • edit in src/lib/Hydra/Controller/Jobset.pm at line 343
    [3.948]
    [3.948]
    });
    my @res = ();
    my $curInputs;
    for (my $n = 0; $n < $rows && $n < scalar @evals; $n++) {
    my $cur = $evals[$n];
    my $prev = $evals[$n + 1];
    # Compute what inputs changed between each eval.
    my $diff = 0;
    my $prevInputs = [];
    $curInputs = [ $cur->jobsetevalinputs->search(
    { uri => { '!=' => undef }, revision => { '!=' => undef }, altNr => 0 },
    { order_by => "name" }) ] unless defined $curInputs;
    if (defined $prev) {
    $diff = $cur->get_column("nrSucceeded") - $prev->get_column("nrSucceeded");
    $prevInputs = [ $prev->jobsetevalinputs->search(
    { uri => { '!=' => undef }, revision => { '!=' => undef }, altNr => 0 },
    { order_by => "name" }) ];
  • replacement in src/lib/Hydra/Controller/Jobset.pm at line 363
    [3.958][3.958:967]()
    ) ];
    [3.958]
    [4.1560]
    my @changedInputs;
    my %prevInputsHash;
    $prevInputsHash{$_->name} = $_ foreach @{$prevInputs};
    foreach my $input (@{$curInputs}) {
    my $p = $prevInputsHash{$input->name};
    push @changedInputs, $input
    if !defined $p || $input->revision != $p->revision || $input->type != $p->type || $input->uri != $p->uri;
    }
    $curInputs = $prevInputs;
    push @res, { eval => $cur, diff => $diff, changedInputs => [ @changedInputs ] };
    }
    return [@res];
  • replacement in src/lib/Hydra/Controller/Jobset.pm at line 393
    [4.436][3.968:1065]()
    $c->stash->{evals} = getEvals($self, $c, ($page - 1) * $resultsPerPage, $resultsPerPage + 1)
    [4.436]
    [4.1296]
    $c->stash->{evals} = getEvals($self, $c, ($page - 1) * $resultsPerPage, $resultsPerPage)
  • edit in src/root/common.tt at line 405
    [4.840]
    [4.840]
    [% BLOCK renderShortRev -%]
    [%- IF type == "svn" || type == "svn-checkout" || type == "bzr" || type == "bzr-checkout" -%]
    r[%- revision -%]
    [%- ELSIF type == "git" -%]
    <tt>[% revision.substr(0, 7) %]</tt>
    [%- ELSE -%]
    <tt>[%- revision -%]</tt>
    [%- END -%]
    [%- END %]
  • edit in src/root/common.tt at line 417
    [4.864][4.864:865]()
  • edit in src/root/common.tt at line 422
    [4.985]
    [4.985]
    <th>Input changes</th>
  • replacement in src/root/common.tt at line 427
    [4.1051][2.0:181]()
    [% last = nrShown - 1; FOREACH n IN [0..last]; eval = evals.$n; m = n + 1; next = evals.$m;
    link = c.uri_for(c.controller('JobsetEval').action_for('view'), [eval.id]) %]
    [4.1051]
    [2.181]
    [%- FOREACH e IN evals; eval = e.eval;
    link = c.uri_for(c.controller('JobsetEval').action_for('view'), [eval.id]) -%]
  • edit in src/root/common.tt at line 432
    [4.1362]
    [4.1362]
    <td>
    [%- IF e.changedInputs.size > 0 -%]
    [%- sep=''; FOREACH input IN e.changedInputs -%]
    [%- sep %] [% input.name %] → [% INCLUDE renderShortRev type=input.type revision=input.revision %]
    [%- sep=','; END -%]
    [%- ELSE -%]
    -
    [%- END -%]
    </td>
  • replacement in src/root/common.tt at line 449
    [4.1790][4.1790:2112]()
    [% diff = eval.get_column('nrSucceeded') - next.get_column('nrSucceeded');
    IF diff > 0 %]
    <span class='label label-success'><strong>+[% diff %]</strong></span>
    [% ELSIF diff < 0 && eval.get_column('nrScheduled') == 0 %]
    <span class='label label-important'><strong>[% diff %]</strong></span>
    [% END %]
    [4.1790]
    [4.2112]
    [%- IF e.diff > 0 -%]
    <span class='label label-success'><strong>+[% e.diff %]</strong></span>
    [%- ELSIF e.diff < 0 && eval.get_column('nrScheduled') == 0 -%]
    <span class='label label-important'><strong>[% e.diff %]</strong></span>
    [%- END -%]
  • replacement in src/root/common.tt at line 458
    [4.41][4.41:141]()
    <tr><td class="centered" colspan="4"><a href="[% linkToAll %]"><em>More...</em></a></td></tr>
    [4.41]
    [4.141]
    <tr><td class="centered" colspan=54"><a href="[% linkToAll %]"><em>More...</em></a></td></tr>
  • edit in src/root/common.tt at line 462
    [4.2170][4.2630:2632](),[4.4842][4.2630:2632](),[4.2630][4.2630:2632]()
  • edit in src/root/jobset-evals.tt at line 8
    [4.1994][4.1994:2068](),[4.2068][4.6628:6631](),[4.6628][4.6628:6631]()
    [% nrShown = evals.size > resultsPerPage ? resultsPerPage : evals.size %]
  • replacement in src/root/jobset-evals.tt at line 9
    [4.6697][4.2069:2134]()
    (page - 1) * resultsPerPage + nrShown %] out of [% total %].</p>
    [4.6697]
    [4.6765]
    (page - 1) * resultsPerPage + evals.size %] out of [% total %].</p>
  • replacement in src/root/jobset.tt at line 86
    [4.158][3.1105:1262]()
    [% INCLUDE renderEvals nrShown=evals.size() - 1 linkToAll=c.uri_for(c.controller('Jobset').action_for('evals'), [project.name, jobset.name]) %]
    [4.158]
    [4.413]
    [% INCLUDE renderEvals linkToAll=c.uri_for(c.controller('Jobset').action_for('evals'), [project.name, jobset.name]) %]