* Negative caching: don't perform a build if a dependency already
[?]
Mar 9, 2009, 5:21 PM
37R34XJOGMP3E3DD4RGGRX5LBW2LGB6J3E6XOXLWSU2QEIWBEM4QCDependencies
- [2]
2T42QGZD* Register builds as GC roots so they don't get deleted. - [3]
NDL67SQT* XHTML validity. - [4]
NLJJZVHO* Use ->update({...}) properly. - [5]
M552HLIA* Support variant builds. - [6]
BHZXGT2H* Channels: provide an index page that lists all the packages in the - [7]
BVOPAMLS - [8]
7YBYT2LQ - [9]
B72GLND4 - [10]
X27GNHDV* Basic job info in the database. - [11]
TLZ2SPBR - [12]
IK53RV4V - [13]
BD3GRK4B* Get rid of "positive failures" and separate log phases. - [14]
PHX2HIVG* Store info about the build inputs in the build record. - [15]
SHBLLAVH* More global substitution. - [16]
TWVSALRL* Allow the maximum number of concurrent builds per platform to be - [17]
D3DIBMOK* For products that are directories (like manuals), allow a default - [18]
DVNWJXWW* Generic declaration of build products. - [19]
TQKGQ5R3 - [20]
GWCV3TQV* BuildInputs table: link to dependencies, include store paths. - [21]
FHF6IZJQ* Basic release management: releases are now dynamically computed as - [22]
YTZOC7C5* Editing of jobset inputs. - [23]
CMU3YKOU* Store the release name. - [24]
67P45PY4 - [25]
R5D7DZPE - [26]
EYNG4EL4* Regenerate the bindings from a clean sqlite database. - [27]
S66BOMVU* Added authentication. - [28]
VCOSLZRP - [29]
YAPITGB3* Boolean inputs. - [30]
6BLUKEQ2* Caching of "path" inputs, and fake a revision number for those. - [31]
RU7AQO7U* Role-based access control. Only admins can create projects. Only - [32]
CLJQCY2X* Store info about all the build actions and allow them to be - [33]
ECBA3GQO* Make the schema class names match the case of the SQL table names. - [34]
ZEHSSVFG - [35]
KOTB7BKV - [36]
A52HEFHQ* Allow builds to be restarted (if they failed with a transient error, - [37]
WYN733ST* Store build duration, handle cached builds. - [38]
VJHIHMEH* Store the meta.longDescription and meta.license attributes in the - [39]
3ZCEPLNO - [40]
WHAFVCEI - [41]
ZVTSOVHN* Support Subversion checkouts. - [42]
H7CNGK4O* Log evaluation errors etc. in the DB. - [43]
J5UVLXOK* Start of a basic Catalyst web interface. - [44]
V4RNHJNR* Add a link to each project's homepage. Suggested by karltk. - [45]
L2E6EVE2* Merged the Build and Job tables. - [*]
ZILILXXK* Allow scheduled builds to be cancelled. They're not removed from - [*]
N22GPKYT* Put info about logs / build products in the DB.
Change contents
- replacement in src/lib/Hydra/Schema/BuildInputs.pm at line 39
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-06 14:20:12# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:H25BhHe9wbU6nj6fSKjZnw# Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-09 18:05:06# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:L6NP/+9zhMg4TRw3w911rg - replacement in src/lib/Hydra/Schema/BuildProducts.pm at line 38
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-06 14:20:12# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:rfkj/A+Li7Q0hWydqtJHAw# Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-09 18:05:06# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:yTJRsclWIpHApRSLqyR06Q - edit in src/lib/Hydra/Schema/BuildResultInfo.pm at line 28
{ data_type => "integer", is_nullable => 0, size => undef },"faileddepbuild",{ data_type => "integer", is_nullable => 0, size => undef },"faileddepstepnr", - replacement in src/lib/Hydra/Schema/BuildResultInfo.pm at line 38
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-06 14:20:12# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:wmL9881G+dZrgHKM83dHXw# Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-09 18:05:06# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:o1XAUgKd15pN76Rs8aX+IA - edit in src/lib/Hydra/Schema/BuildResultInfo.pm at line 41
__PACKAGE__->belongs_to("failedDep","Hydra::Schema::BuildSteps",{ id => "faileddepbuild", stepnr => "faileddepstepnr" },); - edit in src/lib/Hydra/Schema/BuildResultInfo.pm at line 47
# You can replace this text with custom content, and it will be preserved on regeneration - replacement in src/lib/Hydra/Schema/BuildSchedulingInfo.pm at line 30
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-06 14:20:12# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:6cTj5JovtTmtemvQjWtucQ# Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-09 18:05:06# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:MeS9DLCs3kuhS4pTqfl4Lg - edit in src/lib/Hydra/Schema/BuildSteps.pm at line 36
- edit in src/lib/Hydra/Schema/BuildSteps.pm at line 37
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-06 14:20:12# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:LyNlkn5XjBnLp7M4ipB/ZQ - edit in src/lib/Hydra/Schema/BuildSteps.pm at line 38
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-09 18:05:06# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:nFSksz60oxcM1+nYqAdjzw - edit in src/lib/Hydra/Schema/BuildSteps.pm at line 41
# You can replace this text with custom content, and it will be preserved on regeneration - replacement in src/lib/Hydra/Schema/Builds.pm at line 79
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-06 14:20:12# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:8U9CmcfeowLJVViKiR3n1g# Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-09 18:05:06# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:p9SIzdyW9p4+eqwKwXzAdQ - replacement in src/lib/Hydra/Schema/CachedPathInputs.pm at line 25
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-06 14:20:12# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:+F3EiYsvXuOjnGDrkhLxng# Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-09 18:05:06# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:zvTGb3qhlacSWzc0H+7dfg - replacement in src/lib/Hydra/Schema/CachedSubversionInputs.pm at line 23
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-06 14:20:12# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:O0QvXjOulMVTjhW4rRHkmQ# Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-09 18:05:06# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:TY8SHfWiBibwiG3WPkP8Mg - replacement in src/lib/Hydra/Schema/JobsetInputAlts.pm at line 34
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-06 14:20:12# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:qXh+0QbMUHIDmQCG9T5qdA# Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-09 18:05:06# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:4iKXGIdrm56xZeHFxa/K4A - replacement in src/lib/Hydra/Schema/JobsetInputs.pm at line 46
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-06 14:20:12# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:TUTdwfhSsFMKBXa/wKenOQ# Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-09 18:05:06# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:rh03/olFXpMiTA+zhRYltg - replacement in src/lib/Hydra/Schema/Jobsets.pm at line 53
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-06 14:20:12# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:dVevQ8lPI2/IRpYoJgzLBA# Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-09 18:05:06# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:IfDpZfiD9haRHLXGdkapGg - replacement in src/lib/Hydra/Schema/Projects.pm at line 48
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-06 14:20:12# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:Q5mSKzMxB9px2ja8NjK/9Q# Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-09 18:05:06# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:7VRmssxrhgzfySJ6OGuhGg - replacement in src/lib/Hydra/Schema/ReleaseSetJobs.pm at line 35
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-06 14:20:12# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:+Ky8V3sZIgT22hgF27Y0cw# Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-09 18:05:06# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:GdOtS3nLs7dwpArSdGob0w - replacement in src/lib/Hydra/Schema/ReleaseSets.pm at line 32
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-06 14:20:12# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:f+4AnWTJsi4RDfxoJxECgw# Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-09 18:05:06# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:lQymTkBv/Av2y6iYjvP5PQ - replacement in src/lib/Hydra/Schema/SystemTypes.pm at line 19
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-06 14:20:12# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:Af/LU15/hpXngfrBrDMI/A# Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-09 18:05:06# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:KZzTedcMG8IxkLgEEkdn9A - replacement in src/lib/Hydra/Schema/UserRoles.pm at line 20
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-06 14:20:12# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:/yDlbFhRYDzf+0VHzygrhA# Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-09 18:05:06# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:9YGxnZD9hLoJJ8b1aejBuA - replacement in src/lib/Hydra/Schema/Users.pm at line 33
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-06 14:20:12# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:d7M/Q6OucU9NUCSB5zZK7Q# Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-09 18:05:06# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:HwKK4N8V5fzvR3XrKnrDEA - replacement in src/lib/Hydra/Schema.pm at line 11
# Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-06 14:20:12# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:hRwus0A1vxnFCzQxghFgTw# Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-09 18:05:06# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:DQAmauNODAxmM2mF/AE2aQ - replacement in src/root/build.tt at line 39
<span class="error">Build returned a non-zero exit code</span><span class="error">Build returned a non-zero exit code</span> - edit in src/root/build.tt at line 46
[% ELSIF build.resultInfo.buildstatus == 5 %]<img src="/static/images/failure.gif" alt="Failed" /><span class="error">Build inhibited because a dependency previously failed to build</span>[% failedDep = build.resultInfo.failedDep %](namely, <a href="[% c.uri_for('/build' failedDep.id.id 'nixlog' failedDep.stepnr) %]"><tt>[% failedDep.outpath %]</tt></a>) - replacement in src/root/build.tt at line 264
[% IF build.resultInfo.errormsg %][% IF build.resultInfo.errormsg && build.resultInfo.buildstatus != 5 %] - edit in src/script/hydra_build.pl at line 27
my $failedDepBuild;my $failedDepStepNr; - edit in src/script/hydra_build.pl at line 36
# Check whether a dependency of this build has previously# failed. If so, don't even bother to build, since it will# fail anyway. !!! Once Nix has negative caching, this code# can go.my @drvDeps = split '\n', `nix-store --query --requisites --include-outputs $drvPath`;die "cannot query dependencies of `$drvPath': $?" if $? != 0;@drvDeps = grep { $_ =~ /.drv$/ } @drvDeps;my @drvOutputs = split '\n', `nix-store --query --outputs @drvDeps`;die "cannot query outputs of the dependencies of `$drvPath': $?" if $? != 0;foreach my $dep (@drvOutputs) {# !!! This checks more than it has to, namely# build-time-only dependencies of dependencies (which# don't need to be built). However, it shouldn't matter:# if the dependency was built, then presumably *its*# dependencies were built as well.# !!! should disregard fixed-output derivations (?)if (!isValidPath($dep)) {my ($step) = $db->resultset('BuildSteps')->search({outPath => $dep}, {rows => 1, order_by => "stopTime DESC"});if (defined $step && $step->status != 0) {$buildStatus = 5;$failedDepBuild = $step->id->id;$failedDepStepNr = $step->stepnr;goto done;}}} - edit in src/script/hydra_build.pl at line 198
done: - replacement in src/script/hydra_build.pl at line 202
$build->({finished => 1, timestamp => time});$build->update({finished => 1, timestamp => time}); - edit in src/script/hydra_build.pl at line 224
, faileddepbuild => $failedDepBuild, faileddepstepnr => $failedDepStepNr - edit in src/sql/hydra.sql at line 65
-- 5 = build not done because a dependency failed previously - edit in src/sql/hydra.sql at line 78
-- If buildStatus == 5, the primary key of the failed build step.failedDepBuild integer,failedDepStepNr integer, - replacement in src/sql/hydra.sql at line 88
id integer not null,id integer not null, -- !!! rename to "build" - replacement in src/sql/hydra.sql at line 93
drvPath text,drvPath text,