* Add some DB indices to make the /releases page much faster.
[?]
Mar 23, 2009, 1:52 PM
T2232OBSNVDGHY46RY5BBB2IET5LV5OLKSSBDYUF7KAEDBUOTC7QCDependencies
- [2]
7Z3YOKCV* PROCESS -> INCLUDE in most cases. INCLUDE does proper scoping of - [3]
RI4S7SYT* Job status: show the active jobs. - [4]
H5REHM3M - [5]
VSVQIXAA* Allow `-' in release set names. - [6]
TQKGQ5R3 - [7]
PBFZEQLZ - [8]
2AUODJBT - [9]
JK2QWPH6 - [10]
BSYM6IUT - [11]
NDL67SQT* XHTML validity. - [12]
AKAZKCR6* At top-level and for each project, provide two channels: "latest" - [13]
JLDUSNUO* Unify rendering of finished and scheduled builds. - [14]
G6HJY2V4 - [15]
UQ6K57MS* Include nix-prefetch-svn in the Hydra binary distribution. - [16]
FPK5LF53* Put the project-related actions in a separate controller. Put the - [17]
2AIIYGI5* Show job status and all builds for a project. - [18]
DEMSSSB2* Controller for jobs which inherits all actions in ListBuilds. So - [19]
T4LLYESZ* Nix expression for building Hydra. - [20]
UWVMQIAC* Refactoring. - [21]
HKWIDRO6* I love untyped databases... - [22]
FHF6IZJQ* Basic release management: releases are now dynamically computed as - [23]
KR7QIG6Z - [24]
ECBA3GQO* Make the schema class names match the case of the SQL table names. - [25]
IN272KZW* Automatically keep all builds in the latest successful release in - [26]
TMP2FRIW - [27]
3MDDGGSN* Install the manual. - [28]
5NO7NCKT* Refactoring. - [29]
K2NXFFKH - [30]
S5PV6IIM* Represent jobs explicitly in the DB. - [31]
5IK6NYKF - [32]
E6IC7YIK* Release sets: need to include the jobset name to disambiguate - [33]
S66BOMVU* Added authentication. - [34]
AFTXA575* $HYDRA_DATA environment variable. - [35]
HCKFTNQ6 - [36]
4S4ZMFJK* Links on trs. - [37]
3E6IP3R3* Add the name of the jobset to ReleaseSetJobs, otherwise we can't - [38]
ZNFDFJHG* Provide a redirect to the latest successful release in a release set - [39]
FEMR2C5W - [40]
GNIEG2GC* Disambiguate jobs by jobset name. I.e. jobs with the same name in - [41]
JFZNAYJX* Showing releases. - [*]
J5UVLXOK* Start of a basic Catalyst web interface. - [*]
LBNVQXUB* Build the /build stuff in a separate controller. - [*]
2GK5DOU7* Downloading closures. - [*]
IK53RV4V - [*]
N22GPKYT* Put info about logs / build products in the DB.
Change contents
- replacement in release.nix at line 108
--set HYDRA_HOME $out/libexec/hydra--set HYDRA_HOME $out/libexec/hydra \--set HYDRA_RELEASE ${tarball.version} - replacement in src/lib/Hydra/Base/Controller/ListBuilds.pm at line 37
{finished => 1}, {order_by => "timestamp DESC", rows => $resultsPerPage, page => $page})];{ finished => 1 },{ join => 'resultInfo', '+select' => ["resultInfo.buildstatus", "resultInfo.releasename"], '+as' => ["buildstatus", "releasename"], order_by => "timestamp DESC", rows => $resultsPerPage, page => $page })]; - edit in src/lib/Hydra/Controller/Root.pm at line 18
$c->stash->{version} = $ENV{"HYDRA_RELEASE"} || "<devel>"; - replacement in src/lib/Hydra/Controller/Root.pm at line 82
die "Project $projectName doesn't exist." if !defined $project;notFound($c, "Project $projectName doesn't exist.") if !defined $project; - replacement in src/lib/Hydra/Controller/Root.pm at line 86
die "Release set $releaseSetName doesn't exist." if !defined $releaseSet;notFound($c, "Release set $releaseSetName doesn't exist.") if !defined $releaseSet; - replacement in src/lib/Hydra/Controller/Root.pm at line 105
die "Invalid release set name: $releaseSetName" unless $releaseSetName =~ /^[[:alpha:]][\w\-]*$/;error($c, "Invalid release set name: $releaseSetName")unless $releaseSetName =~ /^[[:alpha:]][\w\-]*$/; - replacement in src/lib/Hydra/Controller/Root.pm at line 142
die "There must be one primary job." if $releaseSet->releasesetjobs->search({isprimary => 1})->count != 1;error($c, "There must be one primary job.")if $releaseSet->releasesetjobs->search({isprimary => 1})->count != 1; - replacement in src/lib/Hydra/Controller/Root.pm at line 190
die "Project $projectName doesn't exist." if !defined $project;error($c, "Project $projectName doesn't exist.") if !defined $project; - replacement in src/lib/Hydra/Controller/Root.pm at line 228
{ join => 'resultInfo', '+select' => ["resultInfo.releasename"], '+as' => ["releasename"] });error($c, "Release $releaseId doesn't exist.") if !defined $primaryBuild;{ join => 'resultInfo',, '+select' => ["resultInfo.releasename", "resultInfo.buildstatus"], '+as' => ["releasename", "buildstatus"] })or error($c, "Release $releaseId doesn't exist."); - replacement in src/lib/Hydra/Helper/CatalystUtils.pm at line 58
{ join => 'resultInfo', order_by => 'timestamp DESC', rows => 1 });{ join => 'resultInfo', order_by => 'timestamp DESC', rows => 1, '+select' => ["resultInfo.releasename", "resultInfo.buildstatus"], '+as' => ["releasename", "buildstatus"]}); - replacement in src/lib/Hydra/Helper/Nix.pm at line 133
, '+select' => ["resultInfo.releasename"], '+as' => ["releasename"], '+select' => ["resultInfo.releasename", "resultInfo.buildstatus"], '+as' => ["releasename", "buildstatus"] - replacement in src/lib/Hydra/Helper/Nix.pm at line 162
{ jobset => $job->get_column('jobset'), job => $job->get_column('job'), finished => 1 },{ project => $job->get_column('project'), jobset => $job->get_column('jobset'), job => $job->get_column('job'), finished => 1 }, - edit in src/lib/Hydra/Helper/Nix.pm at line 167
, '+select' => ["resultInfo.buildstatus"], '+as' => ["buildstatus"] - replacement in src/lib/Hydra/Helper/Nix.pm at line 174
} elsif ($thisBuild->resultInfo->buildstatus != 0) {} elsif ($thisBuild->get_column('buildstatus') != 0) { - replacement in src/root/common.tt at line 83
[% IF build.resultInfo.buildstatus == 0 %][% IF build.get_column('buildstatus') == 0 %] - replacement in src/root/common.tt at line 97[6.1159]→[6.307:408](∅→∅),[6.1383]→[6.307:408](∅→∅),[6.4114]→[6.307:408](∅→∅),[6.4688]→[6.307:408](∅→∅),[6.1981]→[6.307:408](∅→∅)
<td>[% build.resultInfo.releasename ? build.resultInfo.releasename : build.nixname %]</td><td>[% build.get_column('releasename') ? build.get_column('releasename') : build.nixname %]</td> - replacement in src/root/layout.tt at line 149
Generated on [% INCLUDE renderDateTime %].<em>Hydra [% HTML.escape(version) %].</em>Page generated on [% INCLUDE renderDateTime %]. - replacement in src/root/releases.tt at line 51
[% IF job.build.resultInfo.buildstatus == 0 %][% IF job.build.get_column('buildstatus') == 0 %] - edit in src/sql/hydra.sql at line 404[6.13513]
-- Some indices.create index IndexBuildInputsByBuild on BuildInputs(build);create index IndexBuildInputsByDependency on BuildInputs(dependency);