Show inputs and input changes on the jobset eval page

[?]
Mar 5, 2013, 3:19 PM
W74RIXTJSDGUC4Q7NAUCS7TNC6YIR6KZST5ALO5DV7OPUEADZK3AC

Dependencies

  • [2] R7MDDCB2 Some unnecessary job names
  • [3] SSKVYYI4 Tweaks
  • [4] 2GUAKGTB Fix indentation of build.tt
  • [5] KAZWI5G4 * hydra: buildpage, show changes since last build/successful build
  • [6] L7NUCXKS Show new and removed jobs
  • [7] WZZOOYCH Show queued builds in jobset evaluation pages
  • [8] KQZQI2WN Allow creating a release from an evaluation
  • [9] 22JB5HNE make changes section more compact/readable
  • [10] 6KIJX24R Get rid of unnecessary [%- and -%] tags
  • [11] DE2DNCOI Allow comparing an evaluation with an arbitrary other evaluation
  • [12] 5ELHGCP4 Propagate URI parameters
  • [13] 37RKEEMP Don't use colspan=0, it doesn't work in all browsers
  • [14] TW5ZQX5Z * Move up the build products in the builds page, since they're more
  • [15] C5YJTWYM Add maximum nest level for input changes on build page.
  • [16] 3PNG7NIB Remove trailing whitespace
  • [17] 4WZQW2N6 Fix indentation and get rid of some unnecessary whitespace in the output
  • [18] ZI535LI6 * hydra: 'new' UI for project/jobset/job/build
  • [19] XHK7IGYI * hdyra: show last succeeded build and changes since on build status summary if build has failed
  • [20] PZL3SZM3 Give every page a consistent title
  • [21] U4TD3AIQ Add support for viewing jobset evaluations
  • [*] J5UVLXOK * Start of a basic Catalyst web interface.
  • [*] IK53RV4V

Change contents

  • replacement in src/root/build.tt at line 209
    [2.727][2.727:831]()
    <td>[% INCLUDE renderInputDiff build1=prevSuccessfulBuild build2=firstBrokenBuild %]</td>
    [2.727]
    [2.831]
    <td>[% INCLUDE renderInputDiff inputs1=prevSuccessfulBuild.inputs inputs2=firstBrokenBuild.inputs %]</td>
  • replacement in src/root/build.tt at line 211
    [2.853][3.7146:7239](),[3.7146][3.7146:7239]()
    <td>[% INCLUDE renderInputDiff build1=prevSuccessfulBuild , build2=build %]</td>
    [2.853]
    [3.7239]
    <td>[% INCLUDE renderInputDiff inputs1=prevSuccessfulBuild.inputs inputs2=build.inputs %]</td>
  • replacement in src/root/build.tt at line 314
    [3.1148][3.10816:11728](),[3.11728][3.1646:1664](),[3.1646][3.1646:1664](),[3.1664][3.11729:11757]()
    <table class="tablesorter table table-striped table-condensed">
    <thead>
    <tr><th>Name</th><th>Type</th><th>Value</th><th>Revision</th><th>Store path</th></tr>
    </thead>
    <tbody>
    [% FOREACH input IN build.inputs %]
    <tr>
    <td><tt>[% input.name %]</tt></td>
    <td><tt>[% type = input.type; inputTypes.$type %]</tt></td>
    <td>
    [% IF input.type == "build" || input.type == "sysbuild" %]
    [% INCLUDE renderFullBuildLink build=input.dependency %]
    [% ELSIF input.type == "string" || input.type == "boolean" %]
    <tt>"[% input.value %]"</tt>
    [% ELSE %]
    <tt>[% input.uri %]</tt>
    [% END %]
    </td>
    <td>[% IF input.revision %][% input.revision %][% END %]</td>
    <td><tt>[% input.path %]</tt></td>
    </tr>
    [% END %]
    </tbody>
    </table>
    [3.1148]
    [3.265]
    [% INCLUDE renderInputs inputs=build.inputs %]
  • replacement in src/root/build.tt at line 318
    [2.938][2.938:1005]()
    [% INCLUDE renderInputDiff build2=build, build1=prevBuild %]
    [2.938]
    [3.11993]
    [% INCLUDE renderInputDiff inputs2=build.inputs inputs1=prevBuild.inputs %]
  • edit in src/root/common.tt at line 307
    [3.6305]
    [3.17969]
    BLOCK renderInputs; %]
    <table class="tablesorter table table-striped table-condensed">
    <thead>
    <tr><th>Name</th><th>Type</th><th>Value</th><th>Revision</th><th>Store path</th></tr>
    </thead>
    <tbody>
    [% FOREACH input IN inputs %]
    <tr>
    <td><tt>[% input.name %]</tt></td>
    <td><tt>[% type = input.type; inputTypes.$type %]</tt></td>
    <td>
    [% IF input.type == "build" || input.type == "sysbuild" %]
    [% INCLUDE renderFullBuildLink build=input.dependency %]
    [% ELSIF input.type == "string" || input.type == "boolean" %]
    <tt>"[% input.value %]"</tt>
    [% ELSE %]
    <tt>[% input.uri %]</tt>
    [% END %]
    </td>
    <td>[% IF input.revision %][% input.revision %][% END %]</td>
    <td><tt>[% input.path %]</tt></td>
    </tr>
    [% END %]
    </tbody>
    </table>
    [% END;
  • replacement in src/root/common.tt at line 347
    [3.6518][3.6518:6554]()
    FOREACH bi1 IN build1.inputs;
    [3.6518]
    [3.6554]
    FOREACH bi1 IN inputs1;
  • replacement in src/root/common.tt at line 349
    [3.6580][3.6580:6618]()
    FOREACH bi2 IN build2.inputs;
    [3.6580]
    [3.6618]
    FOREACH bi2 IN inputs2;
  • replacement in src/root/common.tt at line 369
    [3.7785][3.7785:7915]()
    [% INCLUDE renderInputDiff build1=bi1.dependency, build2=bi2.dependency, nestedDiff=1, nestLevel=nestLevel+1 %]
    [3.7785]
    [3.7915]
    [% INCLUDE renderInputDiff inputs1=bi1.dependency.inputs inputs2=bi2.dependency.inputs nestedDiff=1 nestLevel=nestLevel+1 %]
  • replacement in src/root/jobset-eval.tt at line 11
    [3.5046][3.5270:5293](),[3.5293][3.5071:5255](),[3.5071][3.5071:5255](),[3.5255][3.0:255](),[3.196][3.5473:5495](),[3.255][3.5473:5495](),[3.5473][3.5473:5495]()
    [% BLOCK renderSome %]
    [% size = builds.size; max = full ? size : 30; %]
    [% INCLUDE renderBuildListBody builds=builds.slice(0, (size > max ? max : size) - 1)
    hideProjectName=1 hideJobsetName=1 %]
    [% IF size > max; params = c.req.params; params.full = 1 %]
    <tr><td class="centered" colspan="6"><a href="[% c.uri_for(c.controller('JobsetEval').action_for('view'), [eval.id], params) %]"><em>([% size - max %] more builds omitted)</em></a></td></tr>
    [% END %]
    [% END %]
    [3.5046]
    [3.5495]
    <ul class="nav nav-tabs">
    <li class="active"><a href="#tabs-status" data-toggle="tab">Job status</a></li>
    <li><a href="#tabs-inputs" data-toggle="tab">Inputs</a></li>
    </ul>
  • replacement in src/root/jobset-eval.tt at line 16
    [3.5496][3.5496:5545]()
    [% INCLUDE renderBuildListHeader unsortable=1 %]
    [3.5496]
    [3.250]
    <div class="tab-content">
  • replacement in src/root/jobset-eval.tt at line 18
    [3.251][3.251:280](),[3.280][3.197:276](),[3.276][3.359:414](),[3.359][3.359:414]()
    [% IF unfinished.size > 0 %]
    <tr><th class="subheader" colspan="6"><strong>Queued</strong> jobs</th></tr>
    [% INCLUDE renderSome builds=unfinished %]
    [% END %]
    [3.251]
    [3.518]
    <div id="tabs-status" class="tab-pane active">
  • replacement in src/root/jobset-eval.tt at line 20
    [3.519][3.519:541](),[3.541][3.277:353](),[3.353][3.617:665](),[3.617][3.617:665]()
    [% IF new.size > 0 %]
    <tr><th class="subheader" colspan="6"><strong>New</strong> jobs</th></tr>
    [% INCLUDE renderSome builds=new %]
    [% END %]
    [3.519]
    [3.665]
    [% BLOCK renderSome %]
    [% size = builds.size; max = full ? size : 30; %]
    [% INCLUDE renderBuildListBody builds=builds.slice(0, (size > max ? max : size) - 1)
    hideProjectName=1 hideJobsetName=1 %]
    [% IF size > max; params = c.req.params; params.full = 1 %]
    <tr><td class="centered" colspan="6"><a href="[% c.uri_for(c.controller('JobsetEval').action_for('view'), [eval.id], params) %]"><em>([% size - max %] more builds omitted)</em></a></td></tr>
    [% END %]
    [% END %]
  • replacement in src/root/jobset-eval.tt at line 29
    [3.666][3.666:692](),[3.692][3.354:434](),[3.434][3.415:468](),[3.772][3.415:468](),[3.468][3.5294:5362](),[3.538][3.803:812](),[3.5362][3.803:812](),[3.803][3.803:812](),[3.812][3.539:723](),[3.723][3.1002:1012](),[3.1002][3.1002:1012](),[3.1012][3.5363:5375](),[3.5375][3.256:509](),[3.1026][3.256:509](),[3.509][3.940:952](),[3.629][3.940:952](),[3.940][3.940:952](),[3.952][3.1026:1036](),[3.1026][3.1026:1036]()
    [% IF removed.size > 0 %]
    <tr><th class="subheader" colspan="6"><strong>Removed</strong> jobs</th></tr>
    [% size = removed.size; max = full ? size : 30; %]
    [% FOREACH j IN removed.slice(0,(size > max ? max : size) - 1) %]
    <tr>
    <td colspan="2"></td>
    <td colspan="2">[% INCLUDE renderJobName project=project.name jobset=jobset.name job=j.job %]</td>
    <td colspan="2"><tt>[% j.system %]</tt></td>
    </tr>
    [% END %]
    [% IF size > max; params = c.req.params; params.full = 1 %]
    <tr><td class="centered" colspan="6"><a href="[% c.uri_for(c.controller('JobsetEval').action_for('view'), [eval.id], params) %]"><em>([% size - max %] more jobs omitted)</em></a></td></tr>
    [% END %]
    [% END %]
    [3.666]
    [3.5545]
    [% INCLUDE renderBuildListHeader unsortable=1 %]
  • replacement in src/root/jobset-eval.tt at line 31
    [3.5546][3.5546:5572](),[3.5572][3.630:716](),[3.716][3.5660:5712](),[3.1123][3.5660:5712](),[3.5660][3.5660:5712]()
    [% IF nowFail.size > 0 %]
    <tr><th class="subheader" colspan="6">Jobs that now <strong>fail</strong></th></tr>
    [% INCLUDE renderSome builds=nowFail %]
    [% END %]
    [3.5546]
    [3.5712]
    [% IF unfinished.size > 0 %]
    <tr><th class="subheader" colspan="6"><strong>Queued</strong> jobs</th></tr>
    [% INCLUDE renderSome builds=unfinished %]
    [% END %]
  • replacement in src/root/jobset-eval.tt at line 36
    [3.5713][3.5713:5742](),[3.5742][3.717:806](),[3.806][3.5833:5888](),[3.1213][3.5833:5888](),[3.5833][3.5833:5888]()
    [% IF nowSucceed.size > 0 %]
    <tr><th class="subheader" colspan="6">Jobs that now <strong>succeed</strong></th></tr>
    [% INCLUDE renderSome builds=nowSucceed %]
    [% END %]
    [3.5713]
    [3.23915]
    [% IF new.size > 0 %]
    <tr><th class="subheader" colspan="6"><strong>New</strong> jobs</th></tr>
    [% INCLUDE renderSome builds=new %]
    [% END %]
  • replacement in src/root/jobset-eval.tt at line 41
    [3.23916][3.5891:5919](),[3.5891][3.5891:5919](),[3.5919][3.807:895](),[3.895][3.6009:6063](),[3.1302][3.6009:6063](),[3.6009][3.6009:6063]()
    [% IF stillFail.size > 0 %]
    <tr><th class="subheader" colspan="6">Jobs that still <strong>fail</strong></th></tr>
    [% INCLUDE renderSome builds=stillFail %]
    [% END %]
    [3.23916]
    [3.6063]
    [% IF removed.size > 0 %]
    <tr><th class="subheader" colspan="6"><strong>Removed</strong> jobs</th></tr>
    [% size = removed.size; max = full ? size : 30; %]
    [% FOREACH j IN removed.slice(0,(size > max ? max : size) - 1) %]
    <tr>
    <td colspan="2"></td>
    <td colspan="2">[% INCLUDE renderJobName project=project.name jobset=jobset.name job=j.job %]</td>
    <td colspan="2"><tt>[% j.system %]</tt></td>
    </tr>
    [% END %]
    [% IF size > max; params = c.req.params; params.full = 1 %]
    <tr><td class="centered" colspan="6"><a href="[% c.uri_for(c.controller('JobsetEval').action_for('view'), [eval.id], params) %]"><em>([% size - max %] more jobs omitted)</em></a></td></tr>
    [% END %]
    [% END %]
  • replacement in src/root/jobset-eval.tt at line 56
    [3.6064][3.6064:6095](),[3.6095][3.896:987](),[3.987][3.6188:6245](),[3.1394][3.6188:6245](),[3.6188][3.6188:6245]()
    [% IF stillSucceed.size > 0 %]
    <tr><th class="subheader" colspan="6">Jobs that still <strong>succeed</strong></th></tr>
    [% INCLUDE renderSome builds=stillSucceed %]
    [% END %]
    [3.6064]
    [3.6245]
    [% IF nowFail.size > 0 %]
    <tr><th class="subheader" colspan="6">Jobs that now <strong>fail</strong></th></tr>
    [% INCLUDE renderSome builds=nowFail %]
    [% END %]
  • replacement in src/root/jobset-eval.tt at line 61
    [3.6246][3.6246:6282]()
    [% INCLUDE renderBuildListFooter %]
    [3.6246]
    [3.976]
    [% IF nowSucceed.size > 0 %]
    <tr><th class="subheader" colspan="6">Jobs that now <strong>succeed</strong></th></tr>
    [% INCLUDE renderSome builds=nowSucceed %]
    [% END %]
  • replacement in src/root/jobset-eval.tt at line 66
    [3.977][3.977:1130]()
    [% IF c.user_exists %]
    <p>
    <a class="btn" href="[% c.uri_for(c.controller('JobsetEval').action_for('release'), [eval.id]) %]">Release</a>
    </p>
    [% END %]
    [3.977]
    [3.6282]
    [% IF stillFail.size > 0 %]
    <tr><th class="subheader" colspan="6">Jobs that still <strong>fail</strong></th></tr>
    [% INCLUDE renderSome builds=stillFail %]
    [% END %]
    [% IF stillSucceed.size > 0 %]
    <tr><th class="subheader" colspan="6">Jobs that still <strong>succeed</strong></th></tr>
    [% INCLUDE renderSome builds=stillSucceed %]
    [% END %]
    [% INCLUDE renderBuildListFooter %]
    [% IF c.user_exists %]
    <p>
    <a class="btn" href="[% c.uri_for(c.controller('JobsetEval').action_for('release'), [eval.id]) %]">Release</a>
    </p>
    [% END %]
    </div>
    <div id="tabs-inputs" class="tab-pane">
    [% INCLUDE renderInputs inputs=eval.jobsetevalinputs %]
    [% IF otherEval %]
    <h3>Changes</h3>
    [% INCLUDE renderInputDiff inputs2=eval.jobsetevalinputs inputs1=otherEval.jobsetevalinputs %]
    [% END %]
    </div>
    </div>