Open the DB using Hydra::Model::DB->new
[?]
Mar 13, 2012, 11:10 AM
TJK27WSBFOM6LKVCSA7LTTCWUGB4O2AL22PNIDQXS4BFOFCISH2QCDependencies
- [2]
VPEQI5QS* Don't disable fsync in production. - [3]
JH4RYUNGcheck if HYDRA_DBI is defined in stead of empty string comparison - [4]
AMFMXR52Provide a command ‘hydra-init’ to initialise/upgrade the database - [5]
HPEG2RHVMerge the BuildResultInfo table into the Builds table - [6]
3E6IP3R3* Add the name of the jobset to ReleaseSetJobs, otherwise we can't - [7]
W3HI52QVuse NIX_*_DIR env vars when defined - [8]
6KJXJB7Nqualify ordery_by clauses when necessary, remove unnecessary order_by's, reported by Ludo, resulted in errors in sqlite - [9]
2GK5DOU7* Downloading closures. - [10]
3BKF6P72* Use Nix's negative caching. - [11]
P5X4P6VK* Renaming "release sets" to "views" (not finished yet). Having - [12]
2QA4Y4G3* hydra: added index, actual build time (buildstep with same outpath, so without deps) of the build - [13]
37R34XJO* Negative caching: don't perform a build if a dependency already - [14]
JTRG7RDQadd support for git as jobinput - [15]
H7CNGK4O* Log evaluation errors etc. in the DB. - [16]
IK53RV4V - [17]
RFE6T5LG* Store jobset evaluations in the database explicitly. This includes - [18]
TLZ2SPBR - [19]
TWVSALRL* Allow the maximum number of concurrent builds per platform to be - [20]
C7CXMZ66hydra: do not perform git clone every time. in stead work on local clone and pull - [21]
6BLUKEQ2* Caching of "path" inputs, and fake a revision number for those. - [22]
GNIEG2GC* Disambiguate jobs by jobset name. I.e. jobs with the same name in - [23]
VVOAXWH4fix wrong dbix:class:loader generation - [24]
5SHCWE7X* Prevent repeated evaluation of a jobset with the same inputs. This - [25]
QNDXPVCI* Store the jobset's nixExprPath and nixExprInput fields in a build to - [26]
RBGYFVWXuse HYDRA_DATA/hydra.conf as default location for hydra.conf - [27]
QBQSQOSYhydra: moved getbuildlog - [28]
SB2V735VKeep track of the database schema version - [29]
67P45PY4 - [30]
EJFVQ33S* In the job status page and the channels, pick the build with the - [31]
4X6NS66Q* Keep the most recent builds for each job. - [32]
X5UVREJY* PostgreSQL compatibility. - [33]
IJPTEKRF - [34]
S5PV6IIM* Represent jobs explicitly in the DB. - [35]
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. - [36]
M552HLIA* Support variant builds. - [37]
3ZCEPLNO - [38]
KN3VYE5P* Cleaned up the foreign key constraints. - [39]
LCKWLQW3* In Sqlite "release" is now a keyword, so use "release_" instead. - [40]
AFTXA575* $HYDRA_DATA environment variable. - [41]
D3DIBMOK* For products that are directories (like manuals), allow a default - [42]
JK2QWPH6 - [43]
L2E6EVE2* Merged the Build and Job tables. - [44]
S66BOMVU* Added authentication. - [45]
SJN2QPWH* Big speed-up of the job status page and the channel generation (such - [46]
ONAQU4BRhydra: handle case where build to keep set to 0 - [47]
RWIBJ5L4* Autoflush stdout. - [48]
YTZOC7C5* Editing of jobset inputs. - [49]
ECBA3GQO* Make the schema class names match the case of the SQL table names. - [50]
N22GPKYT* Put info about logs / build products in the DB. - [51]
SJLEZFC4check getHydraPath in stead of Envvar HYDRA_DBI directly - [52]
A63IHCMX* Register GC roots properly. - [53]
KOTB7BKV - [54]
BD3GRK4B* Get rid of "positive failures" and separate log phases. - [55]
TQKGQ5R3 - [56]
V4RNHJNR* Add a link to each project's homepage. Suggested by karltk. - [57]
7PYQLDQLAdded sequences for auto increment primary key columns (for PostgreSQL) - [58]
7ZSVXUGFsequence fix for postgresql - [59]
JM3DPYOMgenerated schema with new dbix class schema loader, grrrrrr - [60]
LZO3C2KI* Hack around those SQLite timeouts: just retry the transaction. - [61]
SZYY2EQQ* Make the queries more readable. - [62]
KPZNJ33U* In views, support selecting a job that doesn't depend on the - [63]
7YBYT2LQ - [64]
SHBLLAVH* More global substitution. - [65]
GZAXDYBQ* Script for initialising the database. - [66]
OV7F5M3EMerge branch 'queue-17' - [67]
J5UVLXOK* Start of a basic Catalyst web interface. - [68]
ZEHSSVFG - [69]
IN272KZW* Automatically keep all builds in the latest successful release in - [70]
DVNWJXWW* Generic declaration of build products. - [71]
BHZXGT2H* Channels: provide an index page that lists all the packages in the - [72]
BDSD2JLV* Speed up manifest generation. - [73]
PHX2HIVG* Store info about the build inputs in the build record. - [74]
OOQ2D3KC* Refactoring: move fetchInput out of hydra_scheduler into a separate - [75]
VJHIHMEH* Store the meta.longDescription and meta.license attributes in the - [76]
B72GLND4 - [77]
RAKTHYAI* In the job status and error pages, show when the status of a job - [78]
R5D7DZPE - [79]
IDFJXJHWrevert commit 26130, use hardcoded default value for HYDRA_DATA (/var/lib/hydra) - [80]
K4C6DNSMchanged queries for compatibility with postgresql - [81]
CMU3YKOU* Store the release name. - [82]
YJKSGJPCSet a default value for `getHydraPath'. - [83]
YAPITGB3* Boolean inputs. - [84]
3HCBU2FA - [85]
VKOHKP4MHydra now uses an optional HYDRA_DBI environment variable which holds the DBI url. If this variable is not set, sqlite is used like before. - [86]
BVOPAMLS - [87]
4D4U5IPY* Allow jobsets to be disabled. - [88]
6KCP6ODP* Get the URI for use in notification mails from the Hydra config - [89]
ZVTSOVHN* Support Subversion checkouts. - [90]
AHTEIK7G* Added a maintainers field to the Builds table. - [91]
RBNQKATL* Adding persistant releases. A release is a named set of builds. - [92]
WZ3AEJ67* hydra_update_gc_roots.pl registers build outputs that should be kept - [93]
ZTQEU5QSHydra: Add support for maxSilent meta attribute (also already added timeout, but not implemented the actual timeout for the build yet) - [94]
ZWCTAZGLadded newsitems, added some admin options to clear various caches. - [95]
7DWCXNC7Use the new Nix Perl bindings - [96]
GWCV3TQV* BuildInputs table: link to dependencies, include store paths. - [97]
RU7AQO7U* Role-based access control. Only admins can create projects. Only - [98]
X27GNHDV* Basic job info in the database. - [99]
FHF6IZJQ* Basic release management: releases are now dynamically computed as - [100]
S6OISBQ3* Mark the "current" builds in a jobset, i.e. those corresponding to - [101]
ZDENAYQI* email notification of evaluation errors to project owner (if desired) - [102]
ZDF42B24revert change to dbix::class generated code - [103]
MOX7XJ2EMerge the BuildSchedulingInfo table into the Builds table - [104]
UMBR3VG3 - [105]
6US6LEC7* Add a NarSize field to Hydra manifests. This allows nix-env - [106]
2T42QGZD* Register builds as GC roots so they don't get deleted. - [107]
TULPZ62Y* Perform builds in parallel. - [108]
EYNG4EL4* Regenerate the bindings from a clean sqlite database. - [109]
CLJQCY2X* Store info about all the build actions and allow them to be - [110]
BMSQD2ZHIndentation - [111]
ZI535LI6* hydra: 'new' UI for project/jobset/job/build - [*]
T7Z63K6Thydra: moves jobsetOverview sub - [*]
IW2LHCLLfixed email bug
Change contents
- edit in src/lib/Hydra/Helper/AddBuilds.pm at line 9
use Hydra::Model::DB; - replacement in src/lib/Hydra/Helper/AddBuilds.pm at line 26
return getHydraPath . "/scm" ;return Hydra::Model::DB::getHydraPath . "/scm" ; - edit in src/lib/Hydra/Helper/Nix.pm at line 8
use Hydra::Model::DB; - replacement in src/lib/Hydra/Helper/Nix.pm at line 12
getHydraPath getHydraHome getHydraDBPath openHydraDB getHydraConf txn_dogetHydraHome getHydraConf txn_do - edit in src/lib/Hydra/Helper/Nix.pm at line 19[6.302]→[6.302:321](∅→∅),[6.321]→[6.30:84](∅→∅),[6.84]→[6.65:141](∅→∅),[6.129]→[6.503:520](∅→∅),[6.141]→[6.503:520](∅→∅),[6.153]→[6.503:520](∅→∅),[6.503]→[6.503:520](∅→∅),[6.520]→[6.142:145](∅→∅),[6.145]→[4.2509:2510](∅→∅)
sub getHydraPath {my $dir = $ENV{"HYDRA_DATA"} || "/var/lib/hydra";die "The HYDRA_DATA directory ($dir) does not exist!\n" unless -d $dir;return $dir;} - replacement in src/lib/Hydra/Helper/Nix.pm at line 26
my $conf = $ENV{"HYDRA_CONFIG"} || (getHydraPath . "/hydra.conf");my $conf = $ENV{"HYDRA_CONFIG"} || (Hydra::Model::DB::getHydraPath . "/hydra.conf"); - edit in src/lib/Hydra/Helper/Nix.pm at line 32[6.524]→[6.524:545](∅→∅),[6.545]→[6.0:32](∅→∅),[6.32]→[3.0:25](∅→∅),[3.25]→[6.53:252](∅→∅),[6.53]→[6.53:252](∅→∅),[6.252]→[6.673:677](∅→∅),[6.690]→[6.673:677](∅→∅),[6.673]→[6.673:677](∅→∅),[6.677]→[6.691:774](∅→∅),[6.774]→[2.0:98](∅→∅),[2.98]→[6.830:846](∅→∅),[6.830]→[6.830:846](∅→∅),[6.846]→[6.49:53](∅→∅)
sub getHydraDBPath {my $db = $ENV{"HYDRA_DBI"};if ( defined $db ) {return $db ;}else {my $path = getHydraPath . '/hydra.sqlite';die "The Hydra database ($path) not exist!\n" unless -f $path;return "dbi:SQLite:$path";}}sub openHydraDB {my $db = Hydra::Schema->connect(getHydraDBPath, "", "", {});$db->storage->dbh->do("PRAGMA synchronous = OFF;")if defined $ENV{'HYDRA_NO_FSYNC'};return $db;} - replacement in src/lib/Hydra/Model/DB.pm at line 5
use Hydra::Helper::Nix;sub getHydraPath {my $dir = $ENV{"HYDRA_DATA"} || "/var/lib/hydra";die "The HYDRA_DATA directory ($dir) does not exist!\n" unless -d $dir;return $dir;}sub getHydraDBPath {my $db = $ENV{"HYDRA_DBI"};return $db if defined $db;my $path = getHydraPath . '/hydra.sqlite';die "The Hydra database ($path) not exist!\n" unless -f $path;return "dbi:SQLite:$path";} - edit in src/lib/Hydra/Schema/BuildInputs.pm at line 158[6.83]→[6.781:782](∅→∅),[6.206]→[6.781:782](∅→∅),[6.266]→[6.781:782](∅→∅),[6.291]→[6.781:782](∅→∅),[6.317]→[6.781:782](∅→∅),[6.498]→[6.781:782](∅→∅),[6.1112]→[6.781:782](∅→∅),[6.1467]→[6.781:782](∅→∅),[6.2318]→[6.781:782](∅→∅),[6.2938]→[6.781:782](∅→∅),[6.6488]→[6.781:782](∅→∅),[6.781]→[6.781:782](∅→∅),[6.782]→[6.2319:2343](∅→∅),[6.142]→[6.924:925](∅→∅),[6.142]→[6.924:925](∅→∅),[6.142]→[6.924:925](∅→∅),[6.142]→[6.924:925](∅→∅),[6.142]→[6.924:925](∅→∅),[6.142]→[6.924:925](∅→∅),[6.142]→[6.924:925](∅→∅),[6.142]→[6.924:925](∅→∅),[6.142]→[6.924:925](∅→∅),[6.142]→[6.924:925](∅→∅),[6.142]→[6.924:925](∅→∅),[6.203]→[6.924:925](∅→∅),[6.205]→[6.924:925](∅→∅),[6.222]→[6.924:925](∅→∅),[6.231]→[6.924:925](∅→∅),[6.241]→[6.924:925](∅→∅),[6.289]→[6.924:925](∅→∅),[6.308]→[6.924:925](∅→∅),[6.321]→[6.924:925](∅→∅),[6.325]→[6.924:925](∅→∅),[6.395]→[6.924:925](∅→∅),[6.437]→[6.924:925](∅→∅),[6.507]→[6.924:925](∅→∅),[6.537]→[6.924:925](∅→∅),[6.555]→[6.924:925](∅→∅),[6.571]→[6.924:925](∅→∅),[6.629]→[6.924:925](∅→∅),[6.729]→[6.924:925](∅→∅),[6.825]→[6.924:925](∅→∅),[6.843]→[6.924:925](∅→∅),[6.852]→[6.924:925](∅→∅),[6.867]→[6.924:925](∅→∅),[6.875]→[6.924:925](∅→∅),[6.1143]→[6.924:925](∅→∅),[6.1473]→[6.924:925](∅→∅),[6.1540]→[6.924:925](∅→∅),[6.1643]→[6.924:925](∅→∅),[6.2117]→[6.924:925](∅→∅),[6.2343]→[6.924:925](∅→∅),[6.3193]→[6.924:925](∅→∅),[6.924]→[6.924:925](∅→∅),[6.925]→[6.0:136](∅→∅),[6.97]→[6.925:926](∅→∅),[6.136]→[6.925:926](∅→∅),[6.1740]→[6.925:926](∅→∅),[6.925]→[6.925:926](∅→∅),[6.926]→[6.137:151](∅→∅)
use Hydra::Helper::Nix;sub addSequence {my $hydradbi = getHydraDBPath ;if ($hydradbi =~ m/^dbi:Pg/) {__PACKAGE__->sequence('builds_id_seq');}}addSequence ; - edit in src/lib/Hydra/Schema/BuildInputs.pm at line 159
# You can replace this text with custom content, and it will be preserved on regeneration - edit in src/lib/Hydra/Schema/Builds.pm at line 434[6.928]→[6.1324:1325](∅→∅),[6.5178]→[6.1324:1325](∅→∅),[5.6862]→[6.1324:1325](∅→∅),[6.11112]→[6.1324:1325](∅→∅),[6.1324]→[6.1324:1325](∅→∅),[6.1325]→[6.63:87](∅→∅),[6.63]→[6.63:87](∅→∅)
use Hydra::Helper::Nix; - edit in src/lib/Hydra/Schema/Builds.pm at line 457[6.2196]→[6.153:171](∅→∅),[6.171]→[6.880:1004](∅→∅),[6.290]→[6.165:167](∅→∅),[6.1004]→[6.165:167](∅→∅),[6.165]→[6.165:167](∅→∅),[6.167]→[6.2196:2197](∅→∅),[6.2196]→[6.2196:2197](∅→∅)
sub addSequence {my $hydradbi = getHydraDBPath;if ($hydradbi =~ m/^dbi:Pg/) {__PACKAGE__->sequence('builds_id_seq');}} - edit in src/lib/Hydra/Schema/Builds.pm at line 520[6.292]→[6.292:305](∅→∅),[6.305]→[6.3770:3771](∅→∅),[6.3031]→[6.3770:3771](∅→∅),[6.3770]→[6.3770:3771](∅→∅)
addSequence; - edit in src/lib/Hydra/Schema/JobsetEvals.pm at line 147[6.4616]→[6.1130:1131](∅→∅),[6.18496]→[6.1130:1131](∅→∅),[6.1130]→[6.1130:1131](∅→∅),[6.1131]→[6.4617:4788](∅→∅)
use Hydra::Helper::Nix;# !!! Ugly, should be generated.my $hydradbi = getHydraDBPath;if ($hydradbi =~ m/^dbi:Pg/) {__PACKAGE__->sequence('jobsetevals_id_seq');} - edit in src/lib/Hydra/Schema/NewsItems.pm at line 88
use Hydra::Helper::Nix;# !!! Ugly, should be generated.my $hydradbi = getHydraDBPath;if ($hydradbi =~ m/^dbi:Pg/) {__PACKAGE__->sequence('newsitems_id_seq');} - edit in src/script/hydra-build at line 9[6.1070][114.0]
use Hydra::Model::DB; - replacement in src/script/hydra-build at line 25
my $db = openHydraDB;my $db = Hydra::Model::DB->new(); - edit in src/script/hydra-evaluator at line 8
use Hydra::Model::DB; - edit in src/script/hydra-evaluator at line 10
- replacement in src/script/hydra-evaluator at line 20
my $db = openHydraDB;my $db = Hydra::Model::DB->new(); - edit in src/script/hydra-init at line 6
use Hydra::Model::DB; - replacement in src/script/hydra-init at line 11
my $db = openHydraDB;my $db = Hydra::Model::DB->new(); - edit in src/script/hydra-queue-runner at line 9
use Hydra::Model::DB; - replacement in src/script/hydra-queue-runner at line 13
chdir getHydraPath or die;my $db = openHydraDB;chdir Hydra::Model::DB::getHydraPath or die;my $db = Hydra::Model::DB->new(); - edit in src/script/hydra-update-gc-roots at line 9
use Hydra::Model::DB; - replacement in src/script/hydra-update-gc-roots at line 12
my $db = openHydraDB;my $db = Hydra::Model::DB->new(); - replacement in src/script/hydra-update-gc-roots at line 79
if ($jobset->enabled == 0 && (time() - $jobset->lastcheckedtime > (7 * 24 * 3600))) {if ($jobset->enabled == 0 && (time() - ($jobset->lastcheckedtime || 0) > (7 * 24 * 3600))) {