jobsetevals: refer to jobset by ID
[?]
Jan 25, 2021, 7:51 PM
BMGYDRNKCMHZDQLDS4NQNC24AVMNW2QGVBAUZ5X6CNOEU3ZOIIGACDependencies
- [2]
OCUNY4XBJobsetEvals: noop: re-run the generator to update the order of fields - [3]
S5PV6IIM* Represent jobs explicitly in the DB. - [4]
DH3KNBAVMerge remote-tracking branch 'upstream/who-broke-builds' into upstream-master - [5]
W4G5MZZShydra-evaluator improvements - [6]
ZWCTAZGLadded newsitems, added some admin options to clear various caches. - [7]
P5X4P6VK* Renaming "release sets" to "views" (not finished yet). Having - [8]
RBNQKATL* Adding persistant releases. A release is a named set of builds. - [9]
K3HODXGHCheck all inputs for blame but only email selected inputs - [10]
SB2V735VKeep track of the database schema version - [11]
LZVO64YGMerge in the first bits of the API work - [12]
7ECJWNVXCleanup Project model - [13]
BXHG3HYLWhen renaming a jobset, add a redirect from the old name - [14]
CHJANKMMIndexJobsetEvalsOnJobsetId: Only index jobsets with new builds - [15]
6WRGCITDEnable declarative projects. - [16]
B7ENVLRShydra-queue-runner: Make build notification more reliable - [17]
KSBB33REAdd a dashboard - [18]
SW7STLQ7Cache flake-based jobset evaluations - [19]
FYO6NECEhydra - [20]
SIDK2E7VJobs: add a nullable jobset_id foreign key to Jobsets. - [21]
YF3HTIPFUse partial indexes - [22]
NZXX6PLDRemove the Jobs table - [23]
KN3VYE5P* Cleaned up the foreign key constraints. - [24]
W5OAZWPDDrop the errorMsg column in the Jobs table - [25]
X27GNHDV* Basic job info in the database. - [26]
PCKLFRT5Support push notification of repository changes - [27]
N74SRHS6Remove the "releases" feature - [28]
5SHCWE7X* Prevent repeated evaluation of a jobset with the same inputs. This - [29]
MQYHIUEECleanup eval serialization - [30]
YU6CND7CRemove support for views - [31]
AZCCANUBMissing part of aaacf9eda36f5cdcc77cec20d6f49fbb6f925105 - [32]
RXVJFQ5AEvaluator cleanups - [33]
SS4TZXNUDistinguish between permanent evaluation errors and transient input errors - [34]
MB5INTIQNormalize nixexpr{input,path} from builds to jobsetevals. - [35]
RFE6T5LG* Store jobset evaluations in the database explicitly. This includes - [36]
QUMWPGCUAdd flake configuration to the web interface - [37]
T5BIOVJEAdd support for tracking custom metrics - [38]
CCIORPJ5When manually scheduling an eval, force re-instantiation of store derivations - [39]
IGR322YPsql: Generate models from postgresql - [40]
SJPEC375Builds: add a nullable jobset_id foreign key to Jobsets. - [41]
Y6AHH4THRemove the logfile and logSize columns from the database - [42]
FZR7ET5DJobsets: add a SERIAL, unique, non-null id column - [43]
JM3DPYOMgenerated schema with new dbix class schema loader, grrrrrr - [44]
FHF6IZJQ* Basic release management: releases are now dynamically computed as - [45]
G2T4WAHIStore the inputs of each evaluation in the database - [46]
TJK27WSBOpen the DB using Hydra::Model::DB->new - [47]
GEADFVZ5hydra-queue-runner: Improved scheduling - [48]
SVDYZSZCSchema: add errorMsg, errorTime to JobsetEvals - [49]
3PNG7NIBRemove trailing whitespace - [50]
PCD3ZH6ZPartially revert 1c20cfdf2403feb78cef515faf15c04d5c9f17bd - [51]
MWXDVTS3Copy the flake migration from the flake branch - [52]
KPZNJ33U* In views, support selecting a job that doesn't depend on the - [53]
KQAQ4FIFUpdate Schema classes - [54]
BQHDSG6OMerge remote-tracking branch 'origin/master' into flake - [55]
QLOLZHRXAllow a per-jobset check interval - [*]
N22GPKYT* Put info about logs / build products in the DB. - [*]
D5QIOJGP* Move everything up one directory.
Change contents
- replacement in src/lib/Hydra/Schema/JobsetEvals.pm at line 45
=head2 project=head2 jobset_id - replacement in src/lib/Hydra/Schema/JobsetEvals.pm at line 47
data_type: 'text'data_type: 'integer' - edit in src/lib/Hydra/Schema/JobsetEvals.pm at line 51[3.16176]→[3.16176:16191](∅→∅),[3.16191]→[3.17477:17497](∅→∅),[3.17497]→[3.16232:16269](∅→∅),[3.16232]→[3.16232:16269](∅→∅),[3.16269]→[3.0:1](∅→∅)
=head2 jobsetdata_type: 'text'is_foreign_key: 1is_nullable: 0 - replacement in src/lib/Hydra/Schema/JobsetEvals.pm at line 121[3.3787]→[3.352:365](∅→∅),[3.4689]→[3.352:365](∅→∅),[3.17687]→[3.352:365](∅→∅),[3.352]→[3.352:365](∅→∅),[3.365]→[3.17688:17754](∅→∅),[3.17754]→[3.493:505](∅→∅),[3.493]→[3.493:505](∅→∅),[3.505]→[3.17755:17821](∅→∅)
"project",{ data_type => "text", is_foreign_key => 1, is_nullable => 0 },"jobset",{ data_type => "text", is_foreign_key => 1, is_nullable => 0 },"jobset_id",{ data_type => "integer", is_foreign_key => 1, is_nullable => 0 }, - edit in src/lib/Hydra/Schema/JobsetEvals.pm at line 143
- replacement in src/lib/Hydra/Schema/JobsetEvals.pm at line 174
{ name => "jobset", project => "project" },{ is_deferrable => 0, on_delete => "CASCADE", on_update => "CASCADE" },{ id => "jobset_id" },{ is_deferrable => 0, on_delete => "CASCADE", on_update => "NO ACTION" }, - edit in src/lib/Hydra/Schema/JobsetEvals.pm at line 208
=head2 project - replacement in src/lib/Hydra/Schema/JobsetEvals.pm at line 209
Type: belongs_to# Created by DBIx::Class::Schema::Loader v0.07049 @ 2021-01-25 14:44:07# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:OVxeYH+eoZZrAsAJ2/mAAA - edit in src/lib/Hydra/Schema/JobsetEvals.pm at line 212[3.18212]→[3.18212:18262](∅→∅),[3.18262]→[3.4984:5153](∅→∅),[3.5153]→[3.18352:18354](∅→∅),[3.18352]→[3.18352:18354](∅→∅),[3.18354]→[2.308:450](∅→∅),[3.252]→[3.1674:1675](∅→∅),[3.252]→[3.1674:1675](∅→∅),[3.380]→[3.1674:1675](∅→∅),[2.450]→[3.1674:1675](∅→∅),[3.529]→[3.1674:1675](∅→∅),[3.902]→[3.1674:1675](∅→∅),[3.2807]→[3.1674:1675](∅→∅),[3.3170]→[3.1674:1675](∅→∅),[3.4832]→[3.1674:1675](∅→∅),[3.5296]→[3.1674:1675](∅→∅),[3.31159]→[3.1674:1675](∅→∅),[3.4788]→[3.1674:1675](∅→∅)
Related object: L<Hydra::Schema::Projects>=cut__PACKAGE__->belongs_to("project","Hydra::Schema::Projects",{ name => "project" },{ is_deferrable => 0, on_delete => "CASCADE", on_update => "CASCADE" },);# Created by DBIx::Class::Schema::Loader v0.07049 @ 2021-01-25 14:43:28# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:VKQNG53wwdbO8p1CTdX+WA - replacement in src/lib/Hydra/Schema/Jobsets.pm at line 304
{"foreign.jobset" => "self.name","foreign.project" => "self.project",},{ "foreign.jobset_id" => "self.id" }, - replacement in src/lib/Hydra/Schema/Jobsets.pm at line 375
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2021-01-22 07:11:57# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:6P1qlC5oVSPRSgRBp6nmrw# Created by DBIx::Class::Schema::Loader v0.07049 @ 2021-01-25 14:38:14# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:7XtIqrrGAIvReqly1kapog - edit in src/lib/Hydra/Schema/Projects.pm at line 159[3.24635]→[3.20715:20716](∅→∅),[3.20715]→[3.20715:20716](∅→∅),[3.20724]→[3.24679:24698](∅→∅),[3.24698]→[3.20736:20753](∅→∅),[3.20736]→[3.20736:20753](∅→∅),[3.20753]→[3.24699:24745](∅→∅)
=head2 jobsetevalsType: has_manyRelated object: L<Hydra::Schema::JobsetEvals> - edit in src/lib/Hydra/Schema/Projects.pm at line 160[3.20793]→[3.20793:20799](∅→∅),[3.20799]→[3.4738:4761](∅→∅),[3.4738]→[3.4738:4761](∅→∅),[3.4761]→[3.24746:24795](∅→∅),[3.24795]→[3.2168:2208](∅→∅),[3.3497]→[3.2168:2208](∅→∅),[3.2208]→[3.6905:6914](∅→∅),[3.6914]→[3.2208:2211](∅→∅),[3.24802]→[3.2208:2211](∅→∅),[3.2208]→[3.2208:2211](∅→∅),[3.2211]→[3.2995:2996](∅→∅)
=cut__PACKAGE__->has_many("jobsetevals","Hydra::Schema::JobsetEvals",{ "foreign.project" => "self.name" },undef,); - replacement in src/lib/Hydra/Schema/Projects.pm at line 246
# Created by DBIx::Class::Schema::Loader v0.07049 @ 2021-01-22 07:11:57# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:Ff5gJejFu+02b0lInobOoQ# Created by DBIx::Class::Schema::Loader v0.07049 @ 2021-01-25 14:38:14# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:+4yWd9UjCyxxLZYDrVUAxA - edit in src/sql/hydra.sql at line 443
jobset_id integer not null, - edit in src/sql/hydra.sql at line 445
project text not null,jobset text not null, - replacement in src/sql/hydra.sql at line 474
foreign key (project) references Projects(name) on delete cascade on update cascade,foreign key (project, jobset) references Jobsets(project, name) on delete cascade on update cascadeforeign key (jobset_id) references Jobsets(id) on delete cascade - replacement in src/sql/hydra.sql at line 629
create index IndexJobsetEvalsOnJobsetId on JobsetEvals(project, jobset, id desc) where hasNewBuilds = 1;create index IndexJobsetEvalsOnJobsetId on JobsetEvals(jobset_id, id desc) where hasNewBuilds = 1;create index IndexJobsetIdEvals on JobsetEvals(jobset_id) where hasNewBuilds = 1; - file addition: upgrade-72.sql[58.3004]
ALTER TABLE JobsetEvalsADD COLUMN jobset_id integer NULL,ADD FOREIGN KEY (jobset_id)REFERENCES Jobsets(id)ON DELETE CASCADE;UPDATE JobsetEvalsSET jobset_id = (SELECT jobsets.idFROM jobsetsWHERE jobsets.name = JobsetEvals.jobsetAND jobsets.project = JobsetEvals.project);ALTER TABLE JobsetEvalsALTER COLUMN jobset_id SET NOT NULL,DROP COLUMN jobset,DROP COLUMN project;create index IndexJobsetIdEvals on JobsetEvals(jobset_id) where hasNewBuilds = 1;