Show the runtime/build dependencies in the build page
[?]
Feb 20, 2013, 4:58 PM
36M6DGITWMQQGZ7VROEHUOY4FP7OHPJ5DXMQMHHISBIAJLQE24YACDependencies
- [2]
2GUAKGTBFix indentation of build.tt - [3]
CLJQCY2X* Store info about all the build actions and allow them to be - [4]
ZI535LI6* hydra: 'new' UI for project/jobset/job/build - [5]
YS3AVMLCRemove buildtime and runtime dependency graph. It is useless on normal derivations. - [6]
NW3ZYPCMadded store path size graph - [7]
CAFO4ATEAlways show the build duration (using the cached build if necessary) - [8]
3PNG7NIBRemove trailing whitespace - [9]
HSVVEKTY* Start of a JSON API to get information about a specific build. - [10]
J5UVLXOK* Start of a basic Catalyst web interface. - [11]
67P45PY4 - [12]
ZHHFJ4K5Simplify the tree implementation a bit more - [13]
7IJXKGHDTurn repeated dependencies into hyperlinks - [14]
WHAFVCEI - [15]
5NO7NCKT* Refactoring. - [16]
TCXFZZFN* hydra: make chart zoomable and clickable - [17]
OD5FSS5A* Quick hack to allow viewing of dependency graphs (via nix-store -q - [18]
CQTN62OHDie tabs die - [19]
LQNBKF3D - [20]
PMNWRTGJAdd multiple output support - [21]
OEPUOUNBUsing twitter bootstrap for more consistent looks for Hydra - [22]
L2E6EVE2* Merged the Build and Job tables. - [23]
SBMOICGVEvil CSS hackery to prevent link targets from being under the navbar - [24]
VCOSLZRP - [25]
XDDCO6CH* hydra: add dependency list with links to logfiles - [26]
XHK7IGYI* hdyra: show last succeeded build and changes since on build status summary if build has failed - [27]
GJFYEU3S* Nix now stores logs by default as bzip2, make sure the build page uncompresses before showing. - [28]
PZL3SZM3Give every page a consistent title - [29]
YPDYBK5GShow dependencies as a tree rather than a list - [*]
LBNVQXUB* Build the /build stuff in a separate controller. - [*]
D5QIOJGP* Move everything up one directory. - [*]
2R7GHSA4* hydra: added initial version of build graph
Change contents
- replacement in src/lib/Hydra/Controller/Build.pm at line 342
sub deps : Chained('build') PathPart('deps') {sub build_deps : Chained('build') PathPart('build-deps') { - edit in src/lib/Hydra/Controller/Build.pm at line 344
- edit in src/lib/Hydra/Controller/Build.pm at line 346
error($c, "Derivation no longer available.") unless isValidPath $drvPath;$c->stash->{buildTimeGraph} = getDependencyGraph($self, $c, 0, {}, $drvPath);$c->stash->{template} = 'build-deps.tt';}sub runtime_deps : Chained('build') PathPart('runtime-deps') {my ($self, $c) = @_;my $build = $c->stash->{build}; - replacement in src/lib/Hydra/Controller/Build.pm at line 360
$c->stash->{available} = all { isValidPath($_) } @outPaths;$c->stash->{drvAvailable} = isValidPath $drvPath;error($c, "Build outputs no longer available.") unless all { isValidPath($_) } @outPaths; - replacement in src/lib/Hydra/Controller/Build.pm at line 362[3.614]→[3.1018:1178](∅→∅),[3.1178]→[3.937:943](∅→∅),[3.1450]→[3.937:943](∅→∅),[3.937]→[3.937:943](∅→∅)
if ($c->stash->{available}) {my $done = {};$c->stash->{runtimeGraph} = [ map { getDependencyGraph($self, $c, 1, $done, $_) } @outPaths ];}my $done = {};$c->stash->{runtimeGraph} = [ map { getDependencyGraph($self, $c, 1, $done, $_) } @outPaths ]; - replacement in src/lib/Hydra/Controller/Build.pm at line 365[3.944]→[3.1179:1328](∅→∅),[3.1328]→[3.1171:1178](∅→∅),[3.1654]→[3.1171:1178](∅→∅),[3.1171]→[3.1171:1178](∅→∅),[3.618]→[3.1284:1323](∅→∅),[3.1284]→[3.1284:1323](∅→∅)
if ($c->stash->{drvAvailable}) {my $done = {};$c->stash->{buildTimeGraph} = getDependencyGraph($self, $c, 0, $done, $drvPath);}$c->stash->{template} = 'deps.tt';$c->stash->{template} = 'runtime-deps.tt'; - file addition: build-deps.tt[32.1486]
[% PROCESS deps.tt %]<div class="dep-tree"><ul class="tree">[% INCLUDE renderNode node=buildTimeGraph %]</ul></div> - edit in src/root/build.tt at line 73
[% IF drvAvailable %]<li><a href="#tabs-build-deps" data-toggle="tab">Build dependencies</a></li>[% END %][% IF available %]<li><a href="#tabs-runtime-deps" data-toggle="tab">Runtime dependencies</a></li>[% END %] - replacement in src/root/build.tt at line 106
<tr>g <tr> - replacement in src/root/build.tt at line 254
<td><tt>[% build.drvpath %]</tt>[% IF drvAvailable %] (<a href="[% c.uri_for('/build' build.id 'deps') %]#buildtime">build-time dependencies</a>)[% END %]</td><td><tt>[% build.drvpath %]</tt></td> - replacement in src/root/build.tt at line 258
<td><tt>[% INCLUDE renderOutputs outputs=build.buildoutputs %]</tt> [% IF available %](<a href="[% c.uri_for('/build' build.id 'deps') %]#runtime">runtime dependencies</a>)[% END %]</td><td><tt>[% INCLUDE renderOutputs outputs=build.buildoutputs %]</tt></td> - edit in src/root/build.tt at line 348[3.2258]→[3.145:146](∅→∅),[3.4210]→[3.145:146](∅→∅),[3.13780]→[3.145:146](∅→∅),[3.145]→[3.145:146](∅→∅),[3.146]→[2.12476:12499](∅→∅)
<h2>Used by</h2> - replacement in src/root/build.tt at line 371
<h2>Build time history (in seconds)</h2><h3>Build time history (in seconds)</h3> - replacement in src/root/build.tt at line 440
<h2>Store path size history (in MB)</h2><h3>Store path size history (in MB)</h3> - edit in src/root/build.tt at line 444
- edit in src/root/build.tt at line 507[33.2840][2.17954]
[% END %][% IF drvAvailable %]<div id="tabs-build-deps" class="tab-pane"><i class="icon-time icon-black"></i></div><script>$('#tabs-build-deps').load("[% c.uri_for('/build' build.id 'build-deps') %]");</script>[% END %][% IF available %]<div id="tabs-runtime-deps" class="tab-pane"><i class="icon-time icon-black"></i></div><script>$('#tabs-runtime-deps').load("[% c.uri_for('/build' build.id 'runtime-deps') %]");</script> - edit in src/root/build.tt at line 526
- edit in src/root/deps.tt at line 1
[% WRAPPER layout.tt title="Dependencies of build $id" %] - edit in src/root/deps.tt at line 2
[% USE HTML %] - replacement in src/root/deps.tt at line 3
[% project = build.project;jobset = build.jobset;job = build.job;global.nodeId = 1 %][% global.nodeId = 1 %] - edit in src/root/deps.tt at line 31[3.2248]→[3.2248:2258](∅→∅),[3.2258]→[3.2292:2293](∅→∅),[3.2293]→[3.1670:1726](∅→∅),[3.140]→[3.2350:2369](∅→∅),[3.1726]→[3.2350:2369](∅→∅),[3.2350]→[3.2350:2369](∅→∅),[3.2369]→[3.153:171](∅→∅),[3.171]→[3.2374:2445](∅→∅),[3.2374]→[3.2374:2445](∅→∅),[3.2445]→[3.2258:2275](∅→∅),[3.2258]→[3.2258:2275](∅→∅),[3.2275]→[3.2446:2483](∅→∅),[3.2483]→[3.2309:2319](∅→∅),[3.2309]→[3.2309:2319](∅→∅),[3.2319]→[3.1727:1738](∅→∅),[3.1738]→[3.2319:2320](∅→∅),[3.2319]→[3.2319:2320](∅→∅),[3.2320]→[3.1739:1746](∅→∅),[3.1746]→[3.193:194](∅→∅),[3.193]→[3.193:194](∅→∅),[3.194]→[3.1747:1808](∅→∅),[3.194]→[3.2345:2367](∅→∅),[3.1808]→[3.2345:2367](∅→∅),[3.2521]→[3.2345:2367](∅→∅),[3.2345]→[3.2345:2367](∅→∅),[3.2367]→[3.172:190](∅→∅),[3.190]→[3.2522:2569](∅→∅),[3.2429]→[3.2522:2569](∅→∅),[3.2569]→[3.2693:2710](∅→∅),[3.2693]→[3.2693:2710](∅→∅),[3.2710]→[3.2570:2607](∅→∅),[3.2607]→[3.2750:2760](∅→∅),[3.2750]→[3.2750:2760](∅→∅),[3.2760]→[3.1809:1820](∅→∅),[3.1820]→[3.2760:2761](∅→∅),[3.2760]→[3.2760:2761](∅→∅)
[% END %]<section><h2 id="runtime">Runtime dependency graph</h2>[% IF available %]<ul class="tree">[% done={}; FOREACH node IN runtimeGraph; INCLUDE renderNode; END %]</ul>[% ELSE %]<p><em>No longer available.</em></p>[% END %]</section><br /><section><h2 id="buildtime">Build-time dependency graph</h2>[% IF drvAvailable %]<ul class="tree">[% INCLUDE renderNode node=buildTimeGraph %]</ul>[% ELSE %]<p><em>No longer available.</em></p>[% END %]</section> - edit in src/root/deps.tt at line 32
- file addition: runtime-deps.tt[32.1486]
[% PROCESS deps.tt %]<div class="dep-tree"><ul class="tree">[% FOREACH node IN runtimeGraph; INCLUDE renderNode; END %]</ul></div> - replacement in src/root/static/css/hydra.css at line 33
padding-top: 40px;margin-top: -40px;display: inline-block; /* required for webkit browsers */padding-top: 40px;margin-top: -40px;display: inline-block; /* required for webkit browsers */