Fix indentation and get rid of some unnecessary whitespace in the output
[?]
Feb 14, 2013, 4:51 PM
4WZQW2N6NJSIKSK7DCOV2YVEG5C45LLUM2FCCZRLISUXUGMBGF6QCDependencies
- [2]
OXHCJQDVfix build links in input diff's, showed only current build in each link - [3]
C5YJTWYMAdd maximum nest level for input changes on build page. - [4]
OAA2HBFA"r. " -> "r" in showing revisions - [5]
IVEDB2LGOmit the small build status icon on the build page - [6]
YPDYBK5GShow dependencies as a tree rather than a list - [7]
6KIJX24RGet rid of unnecessary [%- and -%] tags - [8]
T2232OBS* Add some DB indices to make the /releases page much faster. - [9]
GNIEG2GC* Disambiguate jobs by jobset name. I.e. jobs with the same name in - [10]
6F4UNDTC* Provide access to the raw, non-pretty-printed logfiles. - [11]
VJ7KT7XZremove cvs from list because it is not implemented yet - [12]
SMCOU72Fhydra: add some admin for adding/enabling/etc build machines - [13]
3U3CXCDWNicer link to the rest of the jobset evals - [14]
3PNG7NIBRemove trailing whitespace - [15]
PMNWRTGJAdd multiple output support - [16]
4S4ZMFJK* Links on trs. - [17]
H7CNGK4O* Log evaluation errors etc. in the DB. - [18]
FEMR2C5W - [19]
XZJFZSCJUser color instead of a big animated GIF to indicate whether a build is running - [20]
YFPZ46YK* hydra: added variant of build input type, 'build output (same system)' to allow better continous integration in one jobset for multiple system. it makes sure that the system of the build that is passed as input for a job has the same system as the job. - [21]
2BUX775I* More release -> view. - [22]
G5YSUSNZIn build tables, hide the project, jobset and/or job name if they're constant - [23]
X5OIC5FF* hydra: ui bug - [24]
OEPUOUNBUsing twitter bootstrap for more consistent looks for Hydra - [25]
D5QIOJGP* Move everything up one directory. - [26]
75XUS62Y* Added a page to quickly see all failed builds and failed evaluations - [27]
6FXGLP7T* Render durations nicely. - [28]
WW6BFSNFMove the "Cancel build" button to the menu - [29]
CVWQXYKMuse newer icons consistently - [30]
3E6IP3R3* Add the name of the jobset to ReleaseSetJobs, otherwise we can't - [31]
ODNCGFQ5* Improved the navigation bar: don't include all projects (since that - [32]
PPER7HEBFix pager prev/next button. - [33]
JRU2LRPZ - [34]
J7EE2XZAFix a huge performance regression in the jobstatus page - [35]
ZXJSQF6Bpoint log link for running build step to the automatically reloading log page in stead of the 'useless' pretty log page - [36]
ZI535LI6* hydra: 'new' UI for project/jobset/job/build - [37]
JFZNAYJX* Showing releases. - [38]
RWFCW6ZNIn the jobset evals lists, show what inputs changed between consecutive evals - [39]
IK53RV4V - [40]
2WUNXJGWHydra/26: Go back to using "svn export" as default for svn, added svn-checkout type for jobset which need .svn dirs. export is much more efficient - [41]
22JB5HNEmake changes section more compact/readable - [42]
U4TD3AIQAdd support for viewing jobset evaluations - [43]
JTRG7RDQadd support for git as jobinput - [44]
2B63JW6F* hydra: changes in list in stead of table, also showing changes of changed 'build output' inputs - [45]
PTH265IX* Fix the queue page. - [46]
MOX7XJ2EMerge the BuildSchedulingInfo table into the Builds table - [47]
S5PV6IIM* Represent jobs explicitly in the DB. - [48]
SHYRGAWZhydra: when no external url is given for diff's of git/hg input, revert to a diff done on a local available clone - [49]
E5DMQRPORemove unnecessary whitespace in the HTML output - [50]
JARRBLZDBootstrapify the Hydra forms (except the project and jobset edit pages) - [51]
3TL5XENEDifferent icons (darker red) for cancelled builds. Fixes #25. - [52]
PCZHB5JU* Remove trailing whitespace. - [53]
K2NXFFKH - [54]
XHK7IGYI* hdyra: show last succeeded build and changes since on build status summary if build has failed - [55]
NAJJDIK6Move 'keep build' and 'restart' to toplevel menu - [56]
QL55ECJ6- adapted ui for hydra, more in line with nixos.org website - [57]
2M7J26V4inital version of links to diff in scm - [58]
IE3SRMWZ* Show global and per-project statistics. - [59]
7Z3YOKCV* PROCESS -> INCLUDE in most cases. INCLUDE does proper scoping of - [60]
KAZWI5G4* hydra: buildpage, show changes since last build/successful build - [61]
3SQCOHZN* minor performance tweaks - [62]
HPEG2RHVMerge the BuildResultInfo table into the Builds table - [63]
YAPITGB3* Boolean inputs. - [64]
BTYVIHF7Make the jobset eval rows clickable - [65]
JLDUSNUO* Unify rendering of finished and scheduled builds. - [66]
DE2DNCOIAllow comparing an evaluation with an arbitrary other evaluation - [67]
WJBEYHIORemoving tarball as option for build input; does not exist. - [68]
RH2BAJ6Kfix annoying behaviour in webkit browsers when middle-clicking (open in new tab) on a build, it used to open the build both in new tab as current tab - [69]
RAKTHYAI* In the job status and error pages, show when the status of a job - [70]
US27ZTX5* HydraFrontend -> Hydra. - [71]
KJC7RKIESpeed up the jobset eval list a bit - [72]
MAXVLN2KRenamed running to started in queue. - [73]
DYR3KYMGFix rendering of Subversion inputs in the Evaluations table - [74]
Q4VDOA76Replace last 5 builds on jobset page with last 5 evaluations. Moved hide/unhide and evaluate options to jobset topmenu. - [75]
Z4E37VQWremove useless url in changes overview - [76]
T6KISLR6Fix indentation - [77]
O25D52TAinitial support for mercurial - [78]
DEMSSSB2* Controller for jobs which inherits all actions in ListBuilds. So - [79]
LVRSAUULAdded running icon in queue in stead of background color. - [80]
FXW2UR7Finitial bzr support
Change contents
- replacement in src/root/common.tt at line 1
[% USE date %][% USE String %][% USE HTML %][%USE date;USE String;USE HTML; - replacement in src/root/common.tt at line 7[8.696]→[7.589:605](∅→∅),[8.71]→[8.554:633](∅→∅),[7.605]→[8.554:633](∅→∅),[8.2820]→[8.554:633](∅→∅),[8.633]→[8.2726:2797](∅→∅),[8.633]→[8.5885:5914](∅→∅),[8.2797]→[8.5885:5914](∅→∅),[8.2885]→[8.5885:5914](∅→∅),[8.2927]→[8.2669:2703](∅→∅),[8.2703]→[8.2927:2959](∅→∅),[8.2927]→[8.2927:2959](∅→∅),[8.2959]→[8.2859:2887](∅→∅),[8.2887]→[8.2959:3018](∅→∅),[8.2959]→[8.2959:3018](∅→∅),[8.3018]→[8.2279:2327](∅→∅),[8.2327]→[8.3018:3024](∅→∅),[8.3018]→[8.3018:3024](∅→∅),[8.3024]→[7.606:609](∅→∅)
[% inputTypes ={ "svn" = "Subversion export", "svn-checkout" = "Subversion checkout", "bzr" = "Bazaar export", "bzr-checkout" = "Bazaar checkout", "git" = "Git checkout", "hg" = "Mercurial checkout", "string" = "String value", "boolean" = "Boolean", "path" = "Local path", "build" = "Build output", "sysbuild" = "Build output (same system)"}%]inputTypes ={ "svn" = "Subversion export", "svn-checkout" = "Subversion checkout", "bzr" = "Bazaar export", "bzr-checkout" = "Bazaar checkout", "git" = "Git checkout", "hg" = "Mercurial checkout", "string" = "String value", "boolean" = "Boolean", "path" = "Local path", "build" = "Build output", "sysbuild" = "Build output (same system)"}; - edit in src/root/common.tt at line 21
BLOCK renderDateTime;date.format(timestamp, '%Y-%m-%d %H:%M:%S');END; - edit in src/root/common.tt at line 25
[% BLOCK renderDateTime %][% date.format(timestamp, '%Y-%m-%d %H:%M:%S') %][% END %] - edit in src/root/common.tt at line 26
BLOCK renderProjectName %]<a href="[% c.uri_for('/project' project) %]"><tt>[% project %]</tt></a>[% END; - edit in src/root/common.tt at line 30
[% BLOCK renderProjectName %]<a href="[% c.uri_for('/project' project) %]"><tt>[% project %]</tt></a>[% END %] - edit in src/root/common.tt at line 31
BLOCK renderJobsetName %]<a href="[% c.uri_for('/jobset' project jobset) %]"><tt>[% jobset %]</tt></a>[% END; - edit in src/root/common.tt at line 35
[% BLOCK renderJobsetName %]<a href="[% c.uri_for('/jobset' project jobset) %]"><tt>[% jobset %]</tt></a>[% END %] - edit in src/root/common.tt at line 36
BLOCK renderJobName %]<a href="[% c.uri_for('/job' project jobset job) %]"><tt>[% job %]</tt></a>[% END; - edit in src/root/common.tt at line 40[8.708]→[7.930:1041](∅→∅),[7.1041]→[8.708:709](∅→∅),[8.4342]→[8.708:709](∅→∅),[8.708]→[8.708:709](∅→∅)
[% BLOCK renderJobName %]<a href="[% c.uri_for('/job' project jobset job) %]"><tt>[% job %]</tt></a>[% END %] - replacement in src/root/common.tt at line 41
[% BLOCK renderFullJobsetName %]BLOCK renderFullJobsetName %] - replacement in src/root/common.tt at line 43
[% END %][% END; - replacement in src/root/common.tt at line 46
[% BLOCK renderFullJobName %]BLOCK renderFullJobName %] - replacement in src/root/common.tt at line 48
[% END %][% END; - replacement in src/root/common.tt at line 51[8.4493]→[7.1129:1166](∅→∅),[8.322]→[8.1182:1318](∅→∅),[7.1166]→[8.1182:1318](∅→∅),[8.4941]→[8.1182:1318](∅→∅),[8.5084]→[8.368:378](∅→∅)
[% BLOCK renderFullJobNameOfBuild %][% INCLUDE renderFullJobName project=build.get_column("project") jobset = build.get_column("jobset") job = build.get_column("job") %][% END %]BLOCK renderFullJobNameOfBuild;INCLUDE renderFullJobName project=build.get_column("project") jobset = build.get_column("jobset") job = build.get_column("job");END; - replacement in src/root/common.tt at line 56[8.380]→[7.1167:1194](∅→∅),[8.352]→[8.408:638](∅→∅),[7.1194]→[8.408:638](∅→∅),[8.408]→[8.408:638](∅→∅),[8.638]→[8.5084:5094](∅→∅),[8.5084]→[8.5084:5094](∅→∅)
[% BLOCK renderDuration %][% IF duration >= 24 * 60 * 60 %][% duration div (24 * 60 * 60) %]d[% END %][% IF duration >= 60 * 60 %][% duration div (60 * 60) % 24 %]h[% END %][% IF duration >= 60 %][% duration div 60 % 60 %]m[% END %][% duration % 60 %]s[% END %]BLOCK renderDuration;IF duration >= 24 * 60 * 60; duration div (24 * 60 * 60) %]d[% END;IF duration >= 60 * 60; duration div (60 * 60) % 24 %]h[% END;IF duration >= 60; duration div 60 % 60 %]m[% END;duration % 60 %]s[%END; - replacement in src/root/common.tt at line 64
[% BLOCK renderBuildListHeader %]BLOCK renderBuildListHeader %] - replacement in src/root/common.tt at line 93
[% END %][% END; - replacement in src/root/common.tt at line 95[8.4237]→[7.1542:1630](∅→∅),[7.1630]→[8.21317:21346](∅→∅),[8.654]→[8.21317:21346](∅→∅),[8.21346]→[7.1631:1940](∅→∅),[7.1940]→[8.1030:1142](∅→∅),[8.1030]→[8.1030:1142](∅→∅),[8.1142]→[7.1941:1976](∅→∅),[8.1179]→[8.1273:1290](∅→∅),[7.1976]→[8.1273:1290](∅→∅),[8.1273]→[8.1273:1290](∅→∅),[8.1290]→[7.1977:2099](∅→∅),[8.1318]→[8.0:18](∅→∅),[8.1399]→[8.0:18](∅→∅),[7.2099]→[8.0:18](∅→∅),[8.9370]→[8.0:18](∅→∅),[8.58]→[8.0:18](∅→∅),[8.18]→[7.2100:2120](∅→∅),[7.2120]→[8.79:117](∅→∅),[8.1341]→[8.79:117](∅→∅),[8.117]→[7.2121:2264](∅→∅),[8.144]→[8.261:281](∅→∅),[7.2264]→[8.261:281](∅→∅),[8.261]→[8.261:281](∅→∅),[8.281]→[8.1548:1631](∅→∅),[8.1341]→[8.1548:1631](∅→∅),[8.1548]→[8.1548:1631](∅→∅),[8.1631]→[7.2265:2303](∅→∅),[7.2303]→[8.6265:6307](∅→∅),[8.6265]→[8.6265:6307](∅→∅),[8.6307]→[7.2304:2414](∅→∅)
[% BLOCK renderBuildListBody %][% odd = 0 %][% FOREACH build IN builds %]<tr class="clickable[% IF showSchedulingInfo %][% IF build.busy %]runningBuild[% ELSIF build.disabled == 1 || build.get_column('enabled') == 0 %]disabledBuild[% END %][% ELSE %][% IF odd %] odd [% END; odd = !odd %][% END %]"onclick="if(event.which == 2) return true; window.location = '[% c.uri_for('/build' build.id) %]'">[% IF !hideResultInfo %]<td>[% INCLUDE renderBuildStatusIcon size=16 busy=(showSchedulingInfo ? 1 : 0) buildstatus=build.buildstatus %]</td>[% END %][% IF showSchedulingInfo %]<td>[% IF build.busy %]<span class="label label-success">Started</span>[% ELSE %]<span class="label">Queued</span>[% END %]</td>[% END %]<td><a href="[% c.uri_for('/build' build.id) %]">[% build.id %]</a></td>[% IF showSchedulingInfo %]<td>[% build.priority %]</td>[% END %][% IF !hideJobName %]<td>[% INCLUDE renderFullJobNameOfBuild %]</td>BLOCK renderBuildListBody;odd = 0;FOREACH build IN builds; %]<tr class="clickable[% IF showSchedulingInfo %][% IF build.busy %]runningBuild[% ELSIF build.disabled == 1 || build.get_column('enabled') == 0 %]disabledBuild[% END %][% ELSE %][% IF odd %] odd [% END; odd = !odd %][% END %]"onclick="if(event.which == 2) return true; window.location = '[% c.uri_for('/build' build.id) %]'">[% IF !hideResultInfo %]<td>[% INCLUDE renderBuildStatusIcon size=16 busy=(showSchedulingInfo ? 1 : 0) buildstatus=build.buildstatus %]</td>[% END %][% IF showSchedulingInfo %]<td>[% IF build.busy %]<span class="label label-success">Started</span>[% ELSE %]<span class="label">Queued</span>[% END %]</td>[% END %]<td><a href="[% c.uri_for('/build' build.id) %]">[% build.id %]</a></td>[% IF showSchedulingInfo %]<td>[% build.priority %]</td>[% END %][% IF !hideJobName %]<td>[% INCLUDE renderFullJobNameOfBuild %]</td>[% END %]<td>[% !showSchedulingInfo and build.get_column('releasename') ? build.get_column('releasename') : build.nixname %]</td><td><tt>[% build.system %]</tt></td><td>[% date.format(build.timestamp, '%Y-%m-%d %H:%M:%S') %]</td>[% IF showStatusChange %]<td>[% IF build.get_column('statusChangeTime') %]<a href="[% c.uri_for('/build' build.get_column('statusChangeId')) %]">[% date.format(build.get_column('statusChangeTime'), '%Y-%m-%d %H:%M:%S') %]</a>[% ELSE %]<em>never</em> - replacement in src/root/common.tt at line 133[8.456]→[8.0:131](∅→∅),[8.1465]→[8.0:131](∅→∅),[7.2434]→[8.0:131](∅→∅),[8.4688]→[8.0:131](∅→∅),[8.131]→[8.1981:2103](∅→∅),[8.408]→[8.1981:2103](∅→∅),[8.2029]→[8.1981:2103](∅→∅),[8.1981]→[8.1981:2103](∅→∅),[8.2103]→[7.2435:2471](∅→∅),[8.1504]→[8.2113:2128](∅→∅),[7.2471]→[8.2113:2128](∅→∅),[8.2113]→[8.2113:2128](∅→∅),[8.2128]→[7.2472:2530](∅→∅),[8.1565]→[8.2186:2384](∅→∅),[7.2530]→[8.2186:2384](∅→∅),[8.2186]→[8.2186:2384](∅→∅),[8.2384]→[7.2531:2554](∅→∅),[8.1591]→[8.2407:2436](∅→∅),[7.2554]→[8.2407:2436](∅→∅),[8.2407]→[8.2407:2436](∅→∅),[8.2436]→[7.2555:2577](∅→∅),[8.1616]→[8.2458:2474](∅→∅),[7.2577]→[8.2458:2474](∅→∅),[8.2458]→[8.2458:2474](∅→∅),[8.2474]→[7.2578:2629](∅→∅),[8.285]→[8.2103:2146](∅→∅),[8.1672]→[8.2103:2146](∅→∅),[8.2494]→[8.2103:2146](∅→∅),[7.2629]→[8.2103:2146](∅→∅),[8.2103]→[8.2103:2146](∅→∅),[8.2146]→[7.2630:2648](∅→∅),[8.305]→[8.2146:2160](∅→∅),[8.1693]→[8.2146:2160](∅→∅),[7.2648]→[8.2146:2160](∅→∅),[8.2146]→[8.2146:2160](∅→∅)
<td>[% !showSchedulingInfo and build.get_column('releasename') ? build.get_column('releasename') : build.nixname %]</td><td><tt>[% build.system %]</tt></td><td>[% date.format(build.timestamp, '%Y-%m-%d %H:%M:%S') %]</td>[% IF showStatusChange %]<td>[% IF build.get_column('statusChangeTime') %]<a href="[% c.uri_for('/build' build.get_column('statusChangeId')) %]">[% date.format(build.get_column('statusChangeTime'), '%Y-%m-%d %H:%M:%S') %]</a>[% ELSE %]<em>never</em>[% END %]</td>[% END %][% IF showDescription %]<td>[% build.description %]</td>[% END %]</tr></td>[% END %][% IF showDescription %]<td>[% build.description %]</td> - replacement in src/root/common.tt at line 138
[% END %]</tr>[% END;END; - replacement in src/root/common.tt at line 143
[% BLOCK renderBuildListFooter %]BLOCK renderBuildListFooter %] - replacement in src/root/common.tt at line 146
[% END %][% END; - replacement in src/root/common.tt at line 149
[% BLOCK renderBuildList %][% INCLUDE renderBuildListHeader %][% INCLUDE renderBuildListBody %][% INCLUDE renderBuildListFooter %][% END %]BLOCK renderBuildList;INCLUDE renderBuildListHeader;INCLUDE renderBuildListBody;INCLUDE renderBuildListFooter;END; - replacement in src/root/common.tt at line 156
[% BLOCK renderLink %]<a href="[% uri %]">[% title %]</a>[% END %]BLOCK renderLink %]<a href="[% uri %]">[% title %]</a>[% END; - edit in src/root/common.tt at line 158
[% BLOCK showBuildStats %] - edit in src/root/common.tt at line 159
BLOCK showBuildStats %] - edit in src/root/common.tt at line 186
[% END; - edit in src/root/common.tt at line 188
[% END %] - edit in src/root/common.tt at line 189
BLOCK renderViewJobName;IF job.description; HTML.escape(job.description); ELSE %]<tt>[% job.job %]</tt> ([% job.attrs %])[% END;END; - edit in src/root/common.tt at line 193
[% BLOCK renderViewJobName %][% IF job.description; HTML.escape(job.description); ELSE %]<tt>[% job.job %]</tt> ([% job.attrs %])[% END %][% END %] - edit in src/root/common.tt at line 194
BLOCK maybeLink;IF uri %]<a [% HTML.attributes(href => uri, class => class) %][% IF confirmmsg %]onclick="javascript:return confirm('[% confirmmsg %]')"[% END %]>[% content %]</a>[% ELSE; content; END;END; - edit in src/root/common.tt at line 198
[% BLOCK maybeLink %][% IF uri %]<a [% HTML.attributes(href => uri, class => class) %][% IF confirmmsg %]onclick="javascript:return confirm('[% confirmmsg %]')"[% END %]>[% content %]</a>[% ELSE; content; END %][% END %] - replacement in src/root/common.tt at line 199
[% BLOCK maybeButton %][% IF uri %]<a class="btn btn-mini" [% HTML.attributes(href => uri) %][% IF confirmmsg %]onclick="javascript:return confirm('[% confirmmsg %]')"[% END %]>[% content %]</a>[% ELSE; content; END %][% END %]BLOCK maybeButton;IF uri %]<a class="btn btn-mini" [% HTML.attributes(href => uri); IF confirmmsg %]onclick="javascript:return confirm('[% confirmmsg %]')"[% END; content %]</a>[% ELSE; content; END;END; - replacement in src/root/common.tt at line 203
[% BLOCK renderSelection %][% IF edit %][% IF radiobuttons %]BLOCK renderSelection;IF edit;IF radiobuttons; %] - replacement in src/root/common.tt at line 223
[% END %][% ELSE %][% options.$curValue %][% END %][% END %][% END;ELSE;options.$curValue;END;END; - replacement in src/root/common.tt at line 230
[% BLOCK maybeEditString;BLOCK maybeEditString; - replacement in src/root/common.tt at line 235
END %][% END %]END;END; - replacement in src/root/common.tt at line 238[8.14477]→[8.21347:21379](∅→∅),[8.21379]→[7.3618:3744](∅→∅),[8.160]→[8.14633:14643](∅→∅),[8.826]→[8.14633:14643](∅→∅),[7.3744]→[8.14633:14643](∅→∅),[8.14633]→[8.14633:14643](∅→∅)
[% BLOCK renderFullBuildLink %][% INCLUDE renderFullJobNameOfBuild build=build %] <a href="[% c.uri_for('/build' build.id) %]">build [% build.id %]</a>[% %][% END %]BLOCK renderFullBuildLink;INCLUDE renderFullJobNameOfBuild build=build %] <a href="[% c.uri_for('/build' build.id) %]">build [% build.id %]</a>[%END; - replacement in src/root/common.tt at line 243
[% BLOCK renderBuildStatusIcon %][% finished = build != undef ? build.finished : 1 %][% busy = busy != undef ? busy : build.busy %][% buildstatus = buildstatus != undef ? buildstatus : build.buildstatus %][% IF finished %][% IF buildstatus == 0 %]BLOCK renderBuildStatusIcon;finished = build != undef ? build.finished : 1;busy = busy != undef ? busy : build.busy;buildstatus = buildstatus != undef ? buildstatus : build.buildstatus;IF finished;IF buildstatus == 0 %] - replacement in src/root/common.tt at line 263
[% END %][% ELSIF busy %][% END;ELSIF busy %] - replacement in src/root/common.tt at line 268
[% END %][% END %][% END;END; - replacement in src/root/common.tt at line 271[8.15729]→[8.21397:21422](∅→∅),[8.1581]→[8.1171:1197](∅→∅),[8.21422]→[8.1171:1197](∅→∅),[8.15756]→[8.1171:1197](∅→∅),[8.1197]→[8.9451:9493](∅→∅),[8.9493]→[5.302:364](∅→∅),[5.364]→[8.2385:2415](∅→∅),[8.1630]→[8.2385:2415](∅→∅)
[% BLOCK renderStatus %][% IF build.finished %][% buildstatus = build.buildstatus %][% IF icon; INCLUDE renderBuildStatusIcon size=16; END %][% IF buildstatus == 0 %]BLOCK renderStatus;IF build.finished;buildstatus = build.buildstatus;IF icon; INCLUDE renderBuildStatusIcon size=16; END;IF buildstatus == 0 %] - replacement in src/root/common.tt at line 291
[% END %][% ELSIF build.busy %][% END;ELSIF build.busy %] - replacement in src/root/common.tt at line 294
since [% INCLUDE renderDateTime timestamp = build.starttime %][% ELSE %]since [% INCLUDE renderDateTime timestamp = build.starttime;ELSE %] - edit in src/root/common.tt at line 297
[% END;END;BLOCK renderInputValue;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 %][% IF input.revision %] (r[% input.revision %])[% END %]</tt>[% END;END;BLOCK renderShortInputValue;IF input.type == "build" || input.type == "sysbuild" %]<a href="[% c.uri_for('/build' input.dependency.id) %]">[% input.dependency.id %]</a>[% ELSIF input.type == "string" || input.type == "boolean" %]<tt>"[% input.value %]"</tt>[% ELSE %]<tt>[% input.uri %][% IF input.revision %] (r[% input.revision %])[% END %]</tt> - replacement in src/root/common.tt at line 320
[% END %][% END; - edit in src/root/common.tt at line 322[8.1675]→[8.1675:1836](∅→∅),[8.1836]→[8.1357:1475](∅→∅),[8.1475]→[4.0:89](∅→∅),[4.89]→[8.1566:1590](∅→∅),[8.1566]→[8.1566:1590](∅→∅)
[% BLOCK renderInputValue %][% IF input.type == "build" || input.type == "sysbuild" %][% INCLUDE renderFullBuildLink build=input.dependency %]</a>[% ELSIF input.type == "string" || input.type == "boolean" %]<tt>"[% input.value %]"</tt>[% ELSE %]<tt>[% input.uri %][% IF input.revision %] (r[% input.revision %])[% END %]</tt>[% END %][% END %] - replacement in src/root/common.tt at line 323[8.1591]→[8.1591:1688](∅→∅),[8.1688]→[2.0:94](∅→∅),[2.94]→[8.1836:1954](∅→∅),[8.1760]→[8.1836:1954](∅→∅),[8.1836]→[8.1836:1954](∅→∅),[8.1954]→[4.90:179](∅→∅),[4.179]→[8.2045:2069](∅→∅),[8.2045]→[8.2045:2069](∅→∅)
[% BLOCK renderShortInputValue %][% IF input.type == "build" || input.type == "sysbuild" %]<a href="[% c.uri_for('/build' input.dependency.id) %]">[% input.dependency.id %]</a>[% ELSIF input.type == "string" || input.type == "boolean" %]<tt>"[% input.value %]"</tt>[% ELSE %]<tt>[% input.uri %][% IF input.revision %] (r[% input.revision %])[% END %]</tt>[% END %][% END %]BLOCK renderDiffUri;nouri = 1;FOREACH m IN mappers;base = m.baseuri;url = bi1.uri;path = url.replace(base, '');IF url.match(base) %]<a target="_new" href="[% m.uri.replace('_path_', path).replace('_1_', bi1.revision).replace('_2_', bi2.revision) %]">[% contents %]</a>[% nouri = 0;END;END;IF nouri;res = bi1.uri.split(' ');url = res.0;branch = res.1;IF bi1.type == "hg" || bi1.type == "git" %]<a target="_new" href="/api/scmdiff?uri=[% url %]&rev1=[% bi1.revision %]&rev2=[% bi2.revision %]&type=[% bi1.type %]&branch=[% branch %]">[% contents %]</a>[% ELSE;contents;END;END;END; - edit in src/root/common.tt at line 346[8.17970]→[8.87:524](∅→∅),[8.524]→[8.1153:1518](∅→∅),[8.1518]→[8.545:569](∅→∅),[8.545]→[8.545:569](∅→∅)
[% BLOCK renderDiffUri; %][% nouri = 1 %][% FOREACH m IN mappers %][% base = m.baseuri %][% url = bi1.uri %][% path = url.replace(base, '') %][% IF url.match(base) %]<a target="_new" href="[% m.uri.replace('_path_', path).replace('_1_', bi1.revision).replace('_2_', bi2.revision) %]">[% contents %]</a>[% nouri = 0 %][% END %][% END %][% IF nouri %][% res = bi1.uri.split(' ') %][% url = res.0 %][% branch = res.1 %][% IF bi1.type == "hg" || bi1.type == "git" %]<a target="_new" href="/api/scmdiff?uri=[% url %]&rev1=[% bi1.revision %]&rev2=[% bi2.revision %]&type=[% bi1.type %]&branch=[% branch %]">[% contents %]</a>[% ELSE %][% contents %][% END %][% END %][% END %] - replacement in src/root/common.tt at line 347
[% BLOCK renderInputDiff; %]<table class="table table-striped table-condensed">BLOCK renderInputDiff; %]<table class="table table-striped table-condensed"> - replacement in src/root/common.tt at line 350
<tr><th>Input</th><th>Changes</th></tr>[% END %][% IF !nestLevel %][% nestLevel = 0 %][% END %]<tr><th>Input</th><th>Changes</th></tr>[% END;IF !nestLevel;nestLevel = 0;END; - replacement in src/root/common.tt at line 356[3.68]→[3.68:96](∅→∅),[8.68]→[8.2211:2366](∅→∅),[3.96]→[8.2211:2366](∅→∅),[8.121]→[8.2211:2366](∅→∅),[8.2211]→[8.2211:2366](∅→∅),[8.2387]→[8.2387:2433](∅→∅),[8.2433]→[8.69:143](∅→∅),[8.143]→[8.14537:14722](∅→∅),[8.279]→[8.284:367](∅→∅),[8.1937]→[8.284:367](∅→∅),[8.14722]→[8.284:367](∅→∅),[8.284]→[8.284:367](∅→∅),[8.367]→[8.1938:1989](∅→∅),[8.1989]→[8.280:313](∅→∅),[8.367]→[8.280:313](∅→∅),[8.313]→[8.1990:2159](∅→∅),[8.122]→[8.449:484](∅→∅),[8.741]→[8.449:484](∅→∅),[8.2159]→[8.449:484](∅→∅),[8.449]→[8.449:484](∅→∅),[8.484]→[8.2160:2440](∅→∅),[8.484]→[8.555:650](∅→∅),[8.2440]→[8.555:650](∅→∅),[8.555]→[8.555:650](∅→∅),[8.650]→[8.485:518](∅→∅),[8.518]→[8.14723:14894](∅→∅),[8.661]→[8.815:883](∅→∅),[8.2603]→[8.815:883](∅→∅),[8.14894]→[8.815:883](∅→∅),[8.815]→[8.815:883](∅→∅),[8.883]→[3.97:237](∅→∅),[3.237]→[8.779:814](∅→∅),[8.779]→[8.779:814](∅→∅),[8.814]→[8.2819:2849](∅→∅),[8.1016]→[8.2819:2849](∅→∅),[8.2819]→[8.2819:2849](∅→∅)
[% IF nestLevel <= 3 %][% FOREACH bi1 IN build1.inputs %][% deletedInput = 1 %][% FOREACH bi2 IN build2.inputs %][% IF bi1.name == bi2.name %][% IF bi1.type == bi2.type %][% IF bi1.value != bi2.value || bi1.uri != bi2.uri %]<tr><td><b>[% bi1.name %]</b></td><td><tt>[% INCLUDE renderShortInputValue input=bi1 %]</tt> to <tt>[% INCLUDE renderShortInputValue input=bi2 %]</tt></td></tr>[% ELSIF bi1.uri == bi2.uri && bi1.revision != bi2.revision %][% IF bi1.type == "git" %]<tr><td><b>[% bi1.name %]</b></td><td><tt>[% INCLUDE renderDiffUri contents=(bi1.revision.substr(0, 6) _ ' to ' _ bi2.revision.substr(0, 6)) %]</tt></td></tr>[% ELSE %]<tr><td><b>[% bi1.name %]</b></td><td><tt>[% INCLUDE renderDiffUri contents=(bi1.revision _ ' to ' _ bi2.revision) %]</tt></td></tr>[% END %][% ELSIF bi1.dependency.id != bi2.dependency.id || bi1.path != bi2.path %]<tr><td><b>[% bi1.name %]</b></td><td><tt>[% INCLUDE renderShortInputValue input=bi1 %]</tt> to <tt>[% INCLUDE renderShortInputValue input=bi2 %]</tt><br/><br/>[% INCLUDE renderInputDiff build1=bi1.dependency, build2=bi2.dependency, nestedDiff=1, nestLevel=nestLevel+1 %]</td></tr>[% END %]IF nestLevel <= 3;FOREACH bi1 IN build1.inputs;deletedInput = 1;FOREACH bi2 IN build2.inputs;IF bi1.name == bi2.name;IF bi1.type == bi2.type;IF bi1.value != bi2.value || bi1.uri != bi2.uri %]<tr><td><b>[% bi1.name %]</b></td><td><tt>[% INCLUDE renderShortInputValue input=bi1 %]</tt> to <tt>[% INCLUDE renderShortInputValue input=bi2 %]</tt></td></tr>[% ELSIF bi1.uri == bi2.uri && bi1.revision != bi2.revision %][% IF bi1.type == "git" %]<tr><td><b>[% bi1.name %]</b></td><td><tt>[% INCLUDE renderDiffUri contents=(bi1.revision.substr(0, 6) _ ' to ' _ bi2.revision.substr(0, 6)) %]</tt></td></tr> - replacement in src/root/common.tt at line 370
<tr><td><b>[% bi1.name %]</b></td><td>Changed input type from '[% type = bi1.type; inputTypes.$type %]' to '[% type = bi2.type; inputTypes.$type %]'</td></tr><tr><td><b>[% bi1.name %]</b></td><td><tt>[% INCLUDE renderDiffUri contents=(bi1.revision _ ' to ' _ bi2.revision) %]</tt></td></tr> - replacement in src/root/common.tt at line 374[8.3104]→[8.21479:21480](∅→∅),[8.1198]→[8.3126:3240](∅→∅),[8.21480]→[8.3126:3240](∅→∅),[8.3126]→[8.3126:3240](∅→∅),[8.3240]→[8.995:1088](∅→∅),[8.1088]→[8.3326:3358](∅→∅),[8.1276]→[8.3326:3358](∅→∅),[8.3326]→[8.3326:3358](∅→∅),[8.3358]→[3.238:252](∅→∅),[3.252]→[8.1089:1098](∅→∅),[8.3358]→[8.1089:1098](∅→∅)
[% deletedInput = 0 %][% END %][% END %][% IF deletedInput == 1 %]<tr><td><b>[% bi1.name %]</b></td><td>Input not present in this build.</td></tr>[% END %][% END %][% END %]</table>[% ELSIF bi1.dependency.id != bi2.dependency.id || bi1.path != bi2.path %]<tr><td><b>[% bi1.name %]</b></td><td><tt>[% INCLUDE renderShortInputValue input=bi1 %]</tt> to <tt>[% INCLUDE renderShortInputValue input=bi2 %]</tt><br/><br/>[% INCLUDE renderInputDiff build1=bi1.dependency, build2=bi2.dependency, nestedDiff=1, nestLevel=nestLevel+1 %]</td></tr>[% END %][% ELSE %]<tr><td><b>[% bi1.name %]</b></td><td>Changed input type from '[% type = bi1.type; inputTypes.$type %]' to '[% type = bi2.type; inputTypes.$type %]'</td></tr>[% END;deletedInput = 0;END;END;IF deletedInput == 1 %]<tr><td><b>[% bi1.name %]</b></td><td>Input not present in this build.</td></tr>[% END;END;END %]</table>[% END; - edit in src/root/common.tt at line 396
[% END %] - replacement in src/root/common.tt at line 397[8.3391]→[8.10949:10973](∅→∅),[8.10973]→[8.2971:3035](∅→∅),[8.3035]→[8.11001:11572](∅→∅),[8.11001]→[8.11001:11572](∅→∅),[8.11572]→[8.0:124](∅→∅),[8.124]→[8.14895:14957](∅→∅),[8.14957]→[8.11744:11897](∅→∅),[8.11744]→[8.11744:11897](∅→∅)
[% BLOCK hydraStatus %]<table class="tablesorter table table-striped table-condensed"><thead><tr><th>Machine</th><th>Job</th><th>Type</th><th>Build</th><th>Step</th><th>What</th><th>Since</th></tr></thead><tbody>[% FOREACH step IN steps %]<tr><td><tt>[% IF step.machine; step.machine.match('@(.*)').0; ELSE; 'localhost'; END %]</tt></td><td><tt>[% INCLUDE renderFullJobName project = step.build.project.name jobset = step.build.jobset.name job = step.build.job.name %]</tt></td><td><tt>[% step.system %]</tt></td><td><a href="[% c.uri_for('/build' step.build.id) %]">[% step.build.id %]</a></td><td><a href="[% c.uri_for('/build' step.build.id 'nixlog' step.stepnr 'tail-reload') %]">[% step.stepnr %]</a></td><td><tt>[% step.drvpath.match('-(.*)').0 %]</tt></td><td class='right'>[% INCLUDE renderDuration duration = curTime - step.starttime %] </td></tr>[% END %]</tbody></table>[% END %]BLOCK hydraStatus %]<table class="tablesorter table table-striped table-condensed"><thead><tr><th>Machine</th><th>Job</th><th>Type</th><th>Build</th><th>Step</th><th>What</th><th>Since</th></tr></thead><tbody>[% FOREACH step IN steps %]<tr><td><tt>[% IF step.machine; step.machine.match('@(.*)').0; ELSE; 'localhost'; END %]</tt></td><td><tt>[% INCLUDE renderFullJobName project = step.build.project.name jobset = step.build.jobset.name job = step.build.job.name %]</tt></td><td><tt>[% step.system %]</tt></td><td><a href="[% c.uri_for('/build' step.build.id) %]">[% step.build.id %]</a></td><td><a href="[% c.uri_for('/build' step.build.id 'nixlog' step.stepnr 'tail-reload') %]">[% step.stepnr %]</a></td><td><tt>[% step.drvpath.match('-(.*)').0 %]</tt></td><td class='right'>[% INCLUDE renderDuration duration = curTime - step.starttime %] </td></tr>[% END %]</tbody></table>[% END; - replacement in src/root/common.tt at line 419
[% BLOCK renderPager %]<ul class="pagination">BLOCK renderPager %]<ul class="pagination"> - edit in src/root/common.tt at line 422
- replacement in src/root/common.tt at line 425
</ul>[% END %]</ul>[% END; - replacement in src/root/common.tt at line 429
[% BLOCK renderShortEvalInput %][% IF input.type == "svn" || input.type == "svn-checkout" || input.type == "bzr" || input.type == "bzr-checkout" %]BLOCK renderShortEvalInput;IF input.type == "svn" || input.type == "svn-checkout" || input.type == "bzr" || input.type == "bzr-checkout" %] - replacement in src/root/common.tt at line 438
[% END %][% END %][% END;END; - replacement in src/root/common.tt at line 442[8.1879]→[8.840:864](∅→∅),[8.840]→[8.840:864](∅→∅),[8.865]→[8.865:985](∅→∅),[8.985]→[8.1880:1909](∅→∅),[8.1909]→[8.985:1051](∅→∅),[8.985]→[8.985:1051](∅→∅),[8.1051]→[7.4626:4668](∅→∅)
[% BLOCK renderEvals %]<table class="tablesorter table table-condensed table-striped"><thead><tr><th>#</th><th>Date</th><th>Input changes</th><th colspan='2'>Success</th></tr></thead><tbody>[% FOREACH e IN evals; eval = e.eval;BLOCK renderEvals %]<table class="tablesorter table table-condensed table-striped"><thead><tr><th>#</th><th>Date</th><th>Input changes</th><th colspan='2'>Success</th></tr></thead><tbody>[% FOREACH e IN evalseval = e.eval; - replacement in src/root/common.tt at line 456[8.2041]→[8.181:311](∅→∅),[7.4754]→[8.181:311](∅→∅),[8.181]→[8.181:311](∅→∅),[8.311]→[8.1284:1362](∅→∅),[8.1284]→[8.1284:1362](∅→∅),[8.1362]→[8.2042:2054](∅→∅),[8.2054]→[7.4755:4997](∅→∅),[7.4997]→[8.2327:2340](∅→∅),[8.2327]→[8.2327:2340](∅→∅),[8.2340]→[7.4998:5017](∅→∅),[7.5017]→[8.2361:2374](∅→∅),[8.2361]→[8.2361:2374](∅→∅),[8.2374]→[8.1362:1388](∅→∅),[8.1362]→[8.1362:1388](∅→∅),[8.1388]→[8.714:853](∅→∅),[8.853]→[8.21525:21636](∅→∅),[8.21636]→[8.1751:1790](∅→∅),[8.1751]→[8.1751:1790](∅→∅),[8.1790]→[7.5018:5047](∅→∅),[7.5047]→[8.21668:21752](∅→∅),[8.21668]→[8.21668:21752](∅→∅),[8.21752]→[7.5048:5102](∅→∅),[7.5102]→[8.21808:21893](∅→∅),[8.21808]→[8.21808:21893](∅→∅),[8.21893]→[7.5103:5122](∅→∅),[8.2634]→[8.2112:2136](∅→∅),[7.5122]→[8.2112:2136](∅→∅),[8.21914]→[8.2112:2136](∅→∅),[8.2112]→[8.2112:2136](∅→∅),[8.2136]→[7.5123:5160](∅→∅),[7.5160]→[8.2635:2735](∅→∅),[8.41]→[8.2635:2735](∅→∅),[8.2735]→[7.5161:5175](∅→∅),[8.157]→[8.2150:2170](∅→∅),[7.5175]→[8.2150:2170](∅→∅),[8.2150]→[8.2150:2170](∅→∅),[8.2632]→[8.2171:2181](∅→∅)
<tr class="clickable" onclick="window.location = '[% link %]'"><td><a href="[% link %]">[% eval.id %]</a> </td><td>[% INCLUDE renderDateTime timestamp = eval.timestamp %] </td><td>[% IF e.changedInputs.size > 0 %][% sep=''; FOREACH input IN e.changedInputs %][% sep %] [% input.name %] → [% INCLUDE renderShortEvalInput input=input %][% sep=','; END %][% ELSE %]-[% END %]</td><td align='right'><span class="label label-success">[% e.nrSucceeded %]</span><span class="label label-important">[% e.nrFailed %]</span>[% IF e.nrScheduled > 0 %]<span class="label">[% e.nrScheduled %]</span>[% END %]</td><td align='right'>[% IF e.diff > 0 %]<span class='label label-success'><strong>+[% e.diff %]</strong></span>[% ELSIF e.diff < 0 && e.nrScheduled == 0 %]<span class='label label-important'><strong>[% e.diff %]</strong></span>[% END %]</td></tr>[% END %][% IF linkToAll %]<tr><td class="centered" colspan=54"><a href="[% linkToAll %]"><em>More...</em></a></td></tr>[% END %]</tbody></table>[% END %]<tr class="clickable" onclick="window.location = '[% link %]'"><td><a href="[% link %]">[% eval.id %]</a> </td><td>[% INCLUDE renderDateTime timestamp = eval.timestamp %] </td><td>[% IF e.changedInputs.size > 0;sep='';FOREACH input IN e.changedInputs;sep; %] [% input.name %] → [% INCLUDE renderShortEvalInput input=input;sep=',';END;ELSE %]-[% END %]</td><td align='right'><span class="label label-success">[% e.nrSucceeded %]</span><span class="label label-important">[% e.nrFailed %]</span>[% IF e.nrScheduled > 0 %]<span class="label">[% e.nrScheduled %]</span>[% END %]</td><td align='right'>[% IF e.diff > 0 %]<span class='label label-success'><strong>+[% e.diff %]</strong></span>[% ELSIF e.diff < 0 && e.nrScheduled == 0 %]<span class='label label-important'><strong>[% e.diff %]</strong></span>[% END %]</td></tr>[% END;IF linkToAll %]<tr><td class="centered" colspan=54"><a href="[% linkToAll %]"><em>More...</em></a></td></tr>[% END %]</tbody></table>[% END; - replacement in src/root/common.tt at line 494
[% BLOCK renderLogLinks %]BLOCK renderLogLinks %]