Show inputs and input changes on the jobset eval page
[?]
Mar 5, 2013, 3:19 PM
W74RIXTJSDGUC4Q7NAUCS7TNC6YIR6KZST5ALO5DV7OPUEADZK3ACDependencies
- [2]
R7MDDCB2Some unnecessary job names - [3]
5ELHGCP4Propagate URI parameters - [4]
ZI535LI6* hydra: 'new' UI for project/jobset/job/build - [5]
KQZQI2WNAllow creating a release from an evaluation - [6]
2GUAKGTBFix indentation of build.tt - [7]
WZZOOYCHShow queued builds in jobset evaluation pages - [8]
SSKVYYI4Tweaks - [9]
TW5ZQX5Z* Move up the build products in the builds page, since they're more - [10]
U4TD3AIQAdd support for viewing jobset evaluations - [11]
DE2DNCOIAllow comparing an evaluation with an arbitrary other evaluation - [12]
KAZWI5G4* hydra: buildpage, show changes since last build/successful build - [13]
3PNG7NIBRemove trailing whitespace - [14]
C5YJTWYMAdd maximum nest level for input changes on build page. - [15]
4WZQW2N6Fix indentation and get rid of some unnecessary whitespace in the output - [16]
6KIJX24RGet rid of unnecessary [%- and -%] tags - [17]
PZL3SZM3Give every page a consistent title - [18]
XHK7IGYI* hdyra: show last succeeded build and changes since on build status summary if build has failed - [19]
22JB5HNEmake changes section more compact/readable - [20]
L7NUCXKSShow new and removed jobs - [21]
37RKEEMPDon't use colspan=0, it doesn't work in all browsers - [*]
J5UVLXOK* Start of a basic Catalyst web interface. - [*]
IK53RV4V
Change contents
- replacement in src/root/build.tt at line 209
<td>[% INCLUDE renderInputDiff build1=prevSuccessfulBuild build2=firstBrokenBuild %]</td><td>[% INCLUDE renderInputDiff inputs1=prevSuccessfulBuild.inputs inputs2=firstBrokenBuild.inputs %]</td> - replacement in src/root/build.tt at line 211
<td>[% INCLUDE renderInputDiff build1=prevSuccessfulBuild , build2=build %]</td><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>[% INCLUDE renderInputs inputs=build.inputs %] - replacement in src/root/build.tt at line 318
[% INCLUDE renderInputDiff build2=build, build1=prevBuild %][% INCLUDE renderInputDiff inputs2=build.inputs inputs1=prevBuild.inputs %] - edit in src/root/common.tt at line 307
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
FOREACH bi1 IN build1.inputs;FOREACH bi1 IN inputs1; - replacement in src/root/common.tt at line 349
FOREACH bi2 IN build2.inputs;FOREACH bi2 IN inputs2; - replacement in src/root/common.tt at line 369
[% INCLUDE renderInputDiff build1=bi1.dependency, build2=bi2.dependency, nestedDiff=1, nestLevel=nestLevel+1 %][% 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 %]<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
[% INCLUDE renderBuildListHeader unsortable=1 %]<div class="tab-content"> - replacement in src/root/jobset-eval.tt at line 18
[% IF unfinished.size > 0 %]<tr><th class="subheader" colspan="6"><strong>Queued</strong> jobs</th></tr>[% INCLUDE renderSome builds=unfinished %][% END %]<div id="tabs-status" class="tab-pane active"> - replacement in src/root/jobset-eval.tt at line 20
[% IF new.size > 0 %]<tr><th class="subheader" colspan="6"><strong>New</strong> jobs</th></tr>[% INCLUDE renderSome builds=new %][% END %][% 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 %][% 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 %][% 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 %][% 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 %][% 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 %][% 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
[% INCLUDE renderBuildListFooter %][% 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
[% IF c.user_exists %]<p><a class="btn" href="[% c.uri_for(c.controller('JobsetEval').action_for('release'), [eval.id]) %]">Release</a></p>[% END %][% 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>