[?]
Nov 9, 2008, 12:48 AM
67P45PY4GTWQXZRCMR734D5YYN2OERZM57NBB2CZXEULQT2GRFNACDependencies
- [2]
ZEHSSVFG - [3]
T7AHGVGM - [4]
TWURROKC - [5]
DVNWJXWW* Generic declaration of build products. - [6]
FDE3BJAP* Refactoring. - [7]
M552HLIA* Support variant builds. - [8]
WYN733ST* Store build duration, handle cached builds. - [9]
N22GPKYT* Put info about logs / build products in the DB. - [10]
UMBR3VG3 - [11]
J5UVLXOK* Start of a basic Catalyst web interface. - [12]
X27GNHDV* Basic job info in the database. - [13]
PHX2HIVG* Store info about the build inputs in the build record. - [14]
IMY5UQE3 - [15]
VCOSLZRP - [16]
GWCV3TQV* BuildInputs table: link to dependencies, include store paths.
Change contents
- edit in src/HydraFrontend/lib/HydraFrontend/Controller/Root.pm at line 32
$c->stash->{projects} = [$c->model('DB::Projects')->all]; - replacement in src/HydraFrontend/lib/HydraFrontend/Schema/Buildlogs.pm at line 11
"buildid","build", - edit in src/HydraFrontend/lib/HydraFrontend/Schema/Buildlogs.pm at line 19
);__PACKAGE__->set_primary_key("buildid", "logphase");__PACKAGE__->belongs_to("buildid","HydraFrontend::Schema::Builds",{ id => "buildid" }, - edit in src/HydraFrontend/lib/HydraFrontend/Schema/Buildlogs.pm at line 20
__PACKAGE__->set_primary_key("build", "logphase");__PACKAGE__->belongs_to("build", "HydraFrontend::Schema::Builds", { id => "build" }); - replacement in src/HydraFrontend/lib/HydraFrontend/Schema/Buildlogs.pm at line 24
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-08 23:34:46# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:tlyJLjDbR0vk3Jt/O3M4nw# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-09 01:36:21# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:xvWlrugDQD11vH+7f91K0A - replacement in src/HydraFrontend/lib/HydraFrontend/Schema/Buildproducts.pm at line 11
"buildid","build", - edit in src/HydraFrontend/lib/HydraFrontend/Schema/Buildproducts.pm at line 19[3.364]→[3.4758:4761](∅→∅),[3.4758]→[3.4758:4761](∅→∅),[3.4761]→[2.418:467](∅→∅),[3.419]→[3.4821:4917](∅→∅),[2.467]→[3.4821:4917](∅→∅),[3.4821]→[3.4821:4917](∅→∅)
);__PACKAGE__->set_primary_key("buildid", "path");__PACKAGE__->belongs_to("buildid","HydraFrontend::Schema::Builds",{ id => "buildid" }, - edit in src/HydraFrontend/lib/HydraFrontend/Schema/Buildproducts.pm at line 20
__PACKAGE__->set_primary_key("build", "path");__PACKAGE__->belongs_to("build", "HydraFrontend::Schema::Builds", { id => "build" }); - replacement in src/HydraFrontend/lib/HydraFrontend/Schema/Buildproducts.pm at line 24
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-08 23:34:46# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:lCdfeZud7izQv/11dVFFVA# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-09 01:36:21# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:SMsT6htcybeWNHhv82+ilA - replacement in src/HydraFrontend/lib/HydraFrontend/Schema/Builds.pm at line 42
"buildinputs","HydraFrontend::Schema::Buildinputs",{ "foreign.buildid" => "self.id" },"inputs","HydraFrontend::Schema::Inputs",{ "foreign.build" => "self.id" }, - replacement in src/HydraFrontend/lib/HydraFrontend/Schema/Builds.pm at line 49
{ "foreign.buildid" => "self.id" },{ "foreign.build" => "self.id" }, - replacement in src/HydraFrontend/lib/HydraFrontend/Schema/Builds.pm at line 54
{ "foreign.buildid" => "self.id" },{ "foreign.build" => "self.id" }, - replacement in src/HydraFrontend/lib/HydraFrontend/Schema/Builds.pm at line 58
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-08 23:34:46# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:JRXGOLW2h+DOY7LZUdkCWQ# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-09 01:36:21# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:nfVureYYGM1V/NHroQA5Tw - replacement in src/HydraFrontend/lib/HydraFrontend/Schema/Builds.pm at line 61
__PACKAGE__->has_many(dependentBuildInputs => 'HydraFrontend::Schema::Buildinputs', 'inputid');__PACKAGE__->has_many(dependents => 'HydraFrontend::Schema::Inputs', 'dependency'); - file move: Buildinputs.pm → Inputs.pm
- replacement in src/HydraFrontend/lib/HydraFrontend/Schema/Inputs.pm at line 1
package HydraFrontend::Schema::Buildinputs;package HydraFrontend::Schema::Inputs; - replacement in src/HydraFrontend/lib/HydraFrontend/Schema/Inputs.pm at line 9
__PACKAGE__->table("buildInputs");__PACKAGE__->table("inputs"); - replacement in src/HydraFrontend/lib/HydraFrontend/Schema/Inputs.pm at line 11
"buildid","id",{ data_type => "integer", is_nullable => 0, size => undef },"build",{ data_type => "integer", is_nullable => 0, size => undef },"job", - replacement in src/HydraFrontend/lib/HydraFrontend/Schema/Inputs.pm at line 27
"inputid","value",{ data_type => "text", is_nullable => 0, size => undef },"dependency", - edit in src/HydraFrontend/lib/HydraFrontend/Schema/Inputs.pm at line 32
{ data_type => "text", is_nullable => 0, size => undef },"value", - edit in src/HydraFrontend/lib/HydraFrontend/Schema/Inputs.pm at line 33
);__PACKAGE__->set_primary_key("buildid", "name");__PACKAGE__->belongs_to("buildid","HydraFrontend::Schema::Builds",{ id => "buildid" }, - edit in src/HydraFrontend/lib/HydraFrontend/Schema/Inputs.pm at line 34
__PACKAGE__->set_primary_key("id");__PACKAGE__->belongs_to("build", "HydraFrontend::Schema::Builds", { id => "build" }); - replacement in src/HydraFrontend/lib/HydraFrontend/Schema/Inputs.pm at line 38
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-08 23:34:46# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:2XeATQWeO3i3eSHlquS2QA# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-09 01:36:21# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:3PAsUD+79bZk4vGeSyyACg - replacement in src/HydraFrontend/lib/HydraFrontend/Schema/Inputs.pm at line 41
__PACKAGE__->belongs_to("build","HydraFrontend::Schema::Builds",{ id => "inputid" },);__PACKAGE__->belongs_to("dependency", "HydraFrontend::Schema::Builds", { id => "dependency" }); - file addition: Jobs.pm[3.3332]
package HydraFrontend::Schema::Jobs;use strict;use warnings;use base 'DBIx::Class';__PACKAGE__->load_components("Core");__PACKAGE__->table("jobs");__PACKAGE__->add_columns("id",{ data_type => "integer", is_nullable => 0, size => undef },"timestamp",{ data_type => "integer", is_nullable => 0, size => undef },"priority",{ data_type => "integer", is_nullable => 0, size => undef },"project",{ data_type => "text", is_nullable => 0, size => undef },"jobset",{ data_type => "text", is_nullable => 0, size => undef },"attrname",{ data_type => "text", is_nullable => 0, size => undef },"description",{ data_type => "text", is_nullable => 0, size => undef },"drvpath",{ data_type => "text", is_nullable => 0, size => undef },"outpath",{ data_type => "text", is_nullable => 0, size => undef },"system",{ data_type => "text", is_nullable => 0, size => undef },);__PACKAGE__->set_primary_key("id");# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-09 01:36:21# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:T8O0XTTOZXapWpJbzjKLTw# You can replace this text with custom content, and it will be preserved on regeneration1; - replacement in src/HydraFrontend/lib/HydraFrontend/Schema/Jobsetinputalts.pm at line 36
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-08 23:34:46# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:m24w17dWVxjIqPlea77G3A# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-09 01:36:21# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:DzEHCDlnponciGmGASknlg - replacement in src/HydraFrontend/lib/HydraFrontend/Schema/Jobsetinputs.pm at line 46
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-08 23:34:46# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:ufIbhVFTzl7awpRrZofvJQ# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-09 01:36:21# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:Lm2oIWEUSHFICYMX2qmTfw - replacement in src/HydraFrontend/lib/HydraFrontend/Schema/Jobsets.pm at line 43
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-08 23:34:46# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:7hm28Izo7wCZc07fH1EJRg# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-09 01:36:21# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:EmATMMeNmMd2AI8lVzcLFA - replacement in src/HydraFrontend/lib/HydraFrontend/Schema/Projects.pm at line 22
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-08 23:34:46# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:WCqXnL5vOhpwjYB9/Aw7tg# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-09 01:36:21# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:ZifQocKoHOPRrJQSPggZ+w - replacement in src/HydraFrontend/lib/HydraFrontend/Schema.pm at line 11
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-08 23:34:46# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:Gl/KqOOAg3rH0hWZUovhxw# Created by DBIx::Class::Schema::Loader v0.04005 @ 2008-11-09 01:36:21# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:G17vptu+2rEUXbsqVtoXzQ - replacement in src/HydraFrontend/root/build.tt at line 36
<td>[% date.format(build.starttime, '%Y-%m-%d %H:%M:%S') %]</td><td>[% IF build.starttime %][% date.format(build.starttime, '%Y-%m-%d %H:%M:%S') %][% ELSE %]<em>(cached build)</em>[% END %]</td> - replacement in src/HydraFrontend/root/build.tt at line 40
<td>[% date.format(build.stoptime, '%Y-%m-%d %H:%M:%S') %]</td><td>[% IF build.stoptime %][% date.format(build.stoptime, '%Y-%m-%d %H:%M:%S') %][% ELSE %]<em>(cached build)</em>[% END %]</td> - replacement in src/HydraFrontend/root/build.tt at line 84
[% FOREACH input IN build.buildinputs -%][% FOREACH input IN build.inputs -%] - replacement in src/HydraFrontend/root/build.tt at line 90
<a href="[% c.uri_for('/build' input.inputid) %]">Job <tt>[% input.build.project %]:[% input.build.attrname %]</tt> build [% input.inputid %]</a><a href="[% c.uri_for('/build' input.dependency.id) %]">Job <tt>[% input.dependency.project %]:[% input.dependency.attrname %]</tt> build [% input.dependency.id %]</a> - replacement in src/HydraFrontend/root/build.tt at line 143
[% IF build.dependentBuildInputs %][% IF build.dependents %] - replacement in src/HydraFrontend/root/build.tt at line 154
[% FOREACH input IN build.dependentBuildInputs -%][% FOREACH input IN build.dependents -%] - replacement in src/HydraFrontend/root/build.tt at line 156
<td><a href="[% c.uri_for('/build' input.buildid.id) %]">Job <tt>[% input.buildid.project %]:[% input.buildid.attrname %]</tt> build [% input.buildid.id %]</a></td><td><a href="[% c.uri_for('/build' input.build.id) %]">Job <tt>[% input.build.project %]:[% input.build.attrname %]</tt> build [% input.build.id %]</a></td> - replacement in src/HydraFrontend/root/build.tt at line 158
<td><tt>[% input.buildid.system %]</tt></td><td>[% date.format(input.buildid.timestamp, '%Y-%m-%d %H:%M:%S') %]</td><td><tt>[% input.build.system %]</tt></td><td>[% date.format(input.build.timestamp, '%Y-%m-%d %H:%M:%S') %]</td> - edit in src/HydraFrontend/root/index.tt at line 32
<h1>Projects</h1><ul>[% FOREACH project IN projects -%]<li><a href="[% c.uri_for('/project' project.name) %]"><tt>[% project.name %]</tt></a></li>[% END -%]</ul> - replacement in src/hydra.sql at line 23
create table buildInputs (buildId integer not null,-- Inputs of jobs/builds.create table inputs (id integer primary key autoincrement not null,-- Which job or build this input belongs to. Exactly one must be non-null.build integer,job integer, - replacement in src/hydra.sql at line 38
inputId integer, -- build ID of the input, for type == 'build'dependency integer, -- build ID of the input, for type == 'build' - replacement in src/hydra.sql at line 42
primary key (buildId, name),foreign key (buildId) references builds(id) on delete cascade -- ignored by sqliteforeign key (inputId) references builds(id) -- ignored by sqliteforeign key (build) references builds(id) -- ignored by sqliteforeign key (job) references jobs(id) -- ignored by sqliteforeign key (dependency) references builds(id) -- ignored by sqlite - replacement in src/hydra.sql at line 49
buildId integer not null,build integer not null, - replacement in src/hydra.sql at line 53[3.4117]→[2.1625:1660](∅→∅),[2.1660]→[3.643:732](∅→∅),[3.4158]→[3.643:732](∅→∅),[3.643]→[3.643:732](∅→∅)
primary key (buildId, path),foreign key (buildId) references builds(id) on delete cascade -- ignored by sqliteprimary key (build, path),foreign key (build) references builds(id) on delete cascade -- ignored by sqlite - replacement in src/hydra.sql at line 59
buildId integer not null,build integer not null, - replacement in src/hydra.sql at line 63
primary key (buildId, logPhase),foreign key (buildId) references builds(id) on delete cascade -- ignored by sqliteprimary key (build, logPhase),foreign key (build) references builds(id) on delete cascade -- ignored by sqlite - replacement in src/hydra.sql at line 72
delete from buildInputs where buildId = old.id;delete from buildLogs where buildId = old.id;delete from buildProducts where buildId = old.id;--delete from buildInputs where build = old.id;delete from buildLogs where build = old.id;delete from buildProducts where build = old.id; - replacement in src/hydra.sql at line 125
create table jobQueue (create table jobs ( - edit in src/hydra.sql at line 128
priority integer not null, - replacement in src/scheduler.pl at line 73
$db->resultset('Buildinputs')->create({ buildid => $build->id$db->resultset('Inputs')->create({ build => $build->id - replacement in src/scheduler.pl at line 81
, inputid => $input->{id}, dependency => $input->{id} - replacement in src/scheduler.pl at line 90
{ buildid => $build->id{ build => $build->id - replacement in src/scheduler.pl at line 103
{ buildid => $build->id{ build => $build->id - replacement in src/scheduler.pl at line 120
{ buildid => $build->id{ build => $build->id - replacement in src/scheduler.pl at line 129
{ buildid => $build->id{ build => $build->id - replacement in src/scheduler.pl at line 196
checkJob($project, $jobset, $inputInfo, $nixExprPath, $jobName, $jobExpr, $extraArgs);eval {checkJob($project, $jobset, $inputInfo, $nixExprPath, $jobName, $jobExpr, $extraArgs);};warn $@ if $@; - replacement in src/scheduler.pl at line 309[3.9063]→[3.4509:4539](∅→∅),[3.4539]→[3.534:583](∅→∅),[3.583]→[3.4596:4650](∅→∅),[3.4596]→[3.4596:4650](∅→∅)
checkJobAlternatives($project, $jobset, {}, $nixExprPath,$jobName, $jobExpr, "", \@argsNeeded, 0);eval {checkJobAlternatives($project, $jobset, {}, $nixExprPath,$jobName, $jobExpr, "", \@argsNeeded, 0);};warn $@ if $@;