Add flake configuration to the web interface
[?]
May 10, 2019, 9:39 PM
QUMWPGCUBMAPWLUPRSISK7PNU5LIHKHKCAZYE4XXQCJ5E4L74VSQCDependencies
- [2]
OK4P3AMKRemove the ability to add multiple jobset input alternatives - [3]
XLJT5EO6Check for a valid number of shares - [4]
26PYNDXVRemove the errorMsg column from the Builds table - [5]
W4G5MZZShydra-evaluator improvements - [6]
ECBA3GQO* Make the schema class names match the case of the SQL table names. - [7]
53IMJNBBAdd isChannel column and meta attribute. - [8]
GEADFVZ5hydra-queue-runner: Improved scheduling - [9]
BXHG3HYLWhen renaming a jobset, add a redirect from the old name - [10]
QLOLZHRXAllow a per-jobset check interval - [11]
TQKGQ5R3 - [12]
TWVSALRL* Allow the maximum number of concurrent builds per platform to be - [13]
PCKLFRT5Support push notification of repository changes - [14]
TPNHTE5VRemove obsolete Builds columns and provide accurate "Running builds" - [15]
S66BOMVU* Added authentication. - [16]
V4RNHJNR* Add a link to each project's homepage. Suggested by karltk. - [17]
GNIEG2GC* Disambiguate jobs by jobset name. I.e. jobs with the same name in - [18]
RQI3GRC6Enable setting checkresponsible in the edit jobset form - [19]
CCIORPJ5When manually scheduling an eval, force re-instantiation of store derivations - [20]
KN3VYE5P* Cleaned up the foreign key constraints. - [21]
W5OAZWPDDrop the errorMsg column in the Jobs table - [22]
PMNWRTGJAdd multiple output support - [23]
OX6NYJDVSplit viewing and editing a jobset - [24]
PCD3ZH6ZPartially revert 1c20cfdf2403feb78cef515faf15c04d5c9f17bd - [25]
D3DIBMOK* For products that are directories (like manuals), allow a default - [26]
DH3KNBAVMerge remote-tracking branch 'upstream/who-broke-builds' into upstream-master - [27]
T5BIOVJEAdd support for tracking custom metrics - [28]
3ZCEPLNO - [29]
HQGXL4MXAdd validation for project and jobset names - [30]
ODNCGFQ5* Improved the navigation bar: don't include all projects (since that - [31]
CLJQCY2X* Store info about all the build actions and allow them to be - [32]
ZI535LI6* hydra: 'new' UI for project/jobset/job/build - [33]
VJHIHMEH* Store the meta.longDescription and meta.license attributes in the - [34]
BHZXGT2H* Channels: provide an index page that lists all the packages in the - [35]
OOQ2D3KC* Refactoring: move fetchInput out of hydra_scheduler into a separate - [36]
JM3DPYOMgenerated schema with new dbix class schema loader, grrrrrr - [37]
37R34XJO* Negative caching: don't perform a build if a dependency already - [38]
YTIDBFGUDrop unused "disabled" columns - [39]
LUYDIGYMMake input value wider - [40]
RU7AQO7U* Role-based access control. Only admins can create projects. Only - [41]
SB2V735VKeep track of the database schema version - [42]
X27GNHDV* Basic job info in the database. - [43]
KOTB7BKV - [44]
AHTEIK7G* Added a maintainers field to the Builds table. - [45]
ZFEN2MAOSimplify jobset cloning - [46]
KSBB33REAdd a dashboard - [47]
3E6IP3R3* Add the name of the jobset to ReleaseSetJobs, otherwise we can't - [48]
FTPCV25MStore aggregate members in the database - [49]
6BLUKEQ2* Caching of "path" inputs, and fake a revision number for those. - [50]
YAPITGB3* Boolean inputs. - [51]
CMU3YKOU* Store the release name. - [52]
K3HODXGHCheck all inputs for blame but only email selected inputs - [53]
B72GLND4 - [54]
EYNG4EL4* Regenerate the bindings from a clean sqlite database. - [55]
KQAQ4FIFUpdate Schema classes - [56]
IK53RV4V - [57]
QMW24O5SAdd support for Guile & Guix. - [58]
LCKWLQW3* In Sqlite "release" is now a keyword, so use "release_" instead. - [59]
Y6AHH4THRemove the logfile and logSize columns from the database - [60]
TQVKZQUGUse the REST API in the web interface for editing jobsets - [61]
UMFB2767Hydra/64: Leaving number of builds empty gives DBIx error - [62]
WE5Q2NVIAllow build to be bumped to the front of the queue via the web interface - [63]
G2T4WAHIStore the inputs of each evaluation in the database - [64]
AMI4DGBKDon't trigger evaluation of disabled jobsets - [65]
YTZOC7C5* Editing of jobset inputs. - [66]
ZVTSOVHN* Support Subversion checkouts. - [67]
FHF6IZJQ* Basic release management: releases are now dynamically computed as - [68]
CQTN62OHDie tabs die - [69]
BD3GRK4B* Get rid of "positive failures" and separate log phases. - [70]
SJLEZFC4check getHydraPath in stead of Envvar HYDRA_DBI directly - [71]
VJFLX7B6Fix rendering of jobset inputs - [72]
SS4TZXNUDistinguish between permanent evaluation errors and transient input errors - [73]
SHBLLAVH* More global substitution. - [74]
JTHWA6AMRename aggregate members to constituents - [75]
TLZ2SPBR - [76]
R5D7DZPE - [77]
BSOLESYK* hydra: project members can do stuff that the owner can do - [78]
KYSBJAYNAllow dashes in jobset input names - [79]
S5PV6IIM* Represent jobs explicitly in the DB. - [80]
4CELXP7PRemove the longDescription field - [81]
4S5JF5JPUse latest DBIx::Class::Schema::Loader - [82]
H7CNGK4O* Log evaluation errors etc. in the DB. - [83]
L2E6EVE2* Merged the Build and Job tables. - [84]
LZVO64YGMerge in the first bits of the API work - [85]
ZCTQCN3EUse inputTypes from plugins to determine valid input types - [86]
VZX6HJ3IFix jobset input handling in the API - [*]
3HZY24CX* Make jobsets viewable under - [*]
J5UVLXOK* Start of a basic Catalyst web interface. - [*]
HPEG2RHVMerge the BuildResultInfo table into the Builds table - [*]
FGQPXZIXhydra: make nr of build to keep configurable per jobset - [*]
3PNG7NIBRemove trailing whitespace - [*]
N22GPKYT* Put info about logs / build products in the DB. - [*]
LLAJKVGIFix syntax error - [*]
D5QIOJGP* Move everything up one directory.
Change contents
- edit in src/lib/Hydra/Controller/Jobset.pm at line 225
my $type = int($c->stash->{params}->{"type"}) // 0; - replacement in src/lib/Hydra/Controller/Jobset.pm at line 228
# When the expression is in a .scm file, assume it's a Guile + Guix# build expression.my $exprType =$c->stash->{params}->{"nixexprpath"} =~ /.scm$/ ? "guile" : "nix";my ($nixExprPath, $nixExprInput);my $flake; - replacement in src/lib/Hydra/Controller/Jobset.pm at line 231
my ($nixExprPath, $nixExprInput) = nixExprPathFromParams $c;if ($type == 0) {($nixExprPath, $nixExprInput) = nixExprPathFromParams $c;} elsif ($type == 1) {$flake = trim($c->stash->{params}->{"flakeref"});error($c, "Invalid flake URI ‘$flake’.") if $flake !~ /^[a-zA-Z]/;} else {error($c, "Invalid jobset type.");} - edit in src/lib/Hydra/Controller/Jobset.pm at line 261
, type => $type, flake => $flake - replacement in src/lib/Hydra/Controller/Jobset.pm at line 272
foreach my $name (keys %{$c->stash->{params}->{inputs}}) {my $inputData = $c->stash->{params}->{inputs}->{$name};my $type = $inputData->{type};my $value = $inputData->{value};my $emailresponsible = defined $inputData->{emailresponsible} ? 1 : 0;if ($type == 0) {foreach my $name (keys %{$c->stash->{params}->{inputs}}) {my $inputData = $c->stash->{params}->{inputs}->{$name};my $type = $inputData->{type};my $value = $inputData->{value};my $emailresponsible = defined $inputData->{emailresponsible} ? 1 : 0; - replacement in src/lib/Hydra/Controller/Jobset.pm at line 279
error($c, "Invalid input name ‘$name’.") unless $name =~ /^[[:alpha:]][\w-]*$/;error($c, "Invalid input type ‘$type’.") unless defined $c->stash->{inputTypes}->{$type};error($c, "Invalid input name ‘$name’.") unless $name =~ /^[[:alpha:]][\w-]*$/;error($c, "Invalid input type ‘$type’.") unless defined $c->stash->{inputTypes}->{$type}; - replacement in src/lib/Hydra/Controller/Jobset.pm at line 282[6.1]→[2.42:203](∅→∅),[6.110]→[6.208:224](∅→∅),[2.203]→[6.208:224](∅→∅),[6.343]→[6.208:224](∅→∅),[6.208]→[6.208:224](∅→∅)
my $input = $jobset->jobsetinputs->create({ name => $name,type => $type,emailresponsible => $emailresponsible});my $input = $jobset->jobsetinputs->create({ name => $name,type => $type,emailresponsible => $emailresponsible}); - replacement in src/lib/Hydra/Controller/Jobset.pm at line 288
$value = checkInputValue($c, $name, $type, $value);$input->jobsetinputalts->create({altnr => 0, value => $value});$value = checkInputValue($c, $name, $type, $value);$input->jobsetinputalts->create({altnr => 0, value => $value});} - edit in src/lib/Hydra/Schema/Builds.pm at line 193
=head2 notificationpendingsincedata_type: 'integer'is_nullable: 1 - edit in src/lib/Hydra/Schema/Builds.pm at line 260
"notificationpendingsince",{ data_type => "integer", is_nullable => 1 }, - replacement in src/lib/Hydra/Schema/Builds.pm at line 547
# Created by DBIx::Class::Schema::Loader v0.07043 @ 2016-02-12 17:20:42# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:/8aVtXu/+o0jmKHnSzwt+g# Created by DBIx::Class::Schema::Loader v0.07049 @ 2019-05-10 22:30:12# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:YK8Fc+37UAcL0u6ziOc5xQ - replacement in src/lib/Hydra/Schema/Jobsets.pm at line 59
is_nullable: 0is_nullable: 1 - replacement in src/lib/Hydra/Schema/Jobsets.pm at line 64
is_nullable: 0is_nullable: 1 - edit in src/lib/Hydra/Schema/Jobsets.pm at line 142
=head2 typedata_type: 'integer'default_value: 0is_nullable: 0=head2 flakedata_type: 'text'is_nullable: 1 - replacement in src/lib/Hydra/Schema/Jobsets.pm at line 163
{ data_type => "text", is_foreign_key => 1, is_nullable => 0 },{ data_type => "text", is_foreign_key => 1, is_nullable => 1 }, - replacement in src/lib/Hydra/Schema/Jobsets.pm at line 165
{ data_type => "text", is_nullable => 0 },{ data_type => "text", is_nullable => 1 }, - edit in src/lib/Hydra/Schema/Jobsets.pm at line 194
"type",{ data_type => "integer", default_value => 0, is_nullable => 0 },"flake",{ data_type => "text", is_nullable => 1 }, - replacement in src/lib/Hydra/Schema/Jobsets.pm at line 300
{ is_deferrable => 0, on_delete => "NO ACTION", on_update => "NO ACTION" },{is_deferrable => 0,join_type => "LEFT",on_delete => "NO ACTION",on_update => "NO ACTION",}, - replacement in src/lib/Hydra/Schema/Jobsets.pm at line 375
# Created by DBIx::Class::Schema::Loader v0.07045 @ 2017-03-09 13:03:05# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:ivYvsUyhEeaeI4EmRQ0/QQ# Created by DBIx::Class::Schema::Loader v0.07049 @ 2019-05-11 00:03:52# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:UVG1D59bXaQ1TUEF237tXQ - replacement in src/root/edit-jobset.tt at line 45
<table class="table table-striped table-condensed"><table class="table table-striped table-condensed show-on-legacy"> - edit in src/root/edit-jobset.tt at line 99
<label class="control-label">Type</label><div class="controls"><div class="btn-group" data-toggle="buttons-radio"><input type="hidden" id="type" name="type" value="[% jobset.type %]" /><button type="button" class="btn" value="1" id="type-flake">Flake</button><button type="button" class="btn" value="0" id="type-legacy">Legacy</button></div></div></div><div class="control-group show-on-flake"><label class="control-label">Flake URI</label><div class="controls"><input type="text" class="span3" name="flakeref" [% HTML.attributes(value => jobset.flake) %]/></div></div><div class="control-group show-on-legacy"> - edit in src/root/edit-jobset.tt at line 188
function update() {if ($("#type").val() == 0) {$(".show-on-legacy").show();$(".show-on-flake").hide();} else {$(".show-on-legacy").hide();$(".show-on-flake").show();}}$("#type-flake").click(function() { update(); });$("#type-legacy").click(function() { update(); });update(); - edit in src/root/jobset.tt at line 137
</tr>[% IF jobset.type == 1 %]<tr><th>Flake URI:</th><td><tt>[% HTML.escape(jobset.flake) %]</tt></td> - edit in src/root/jobset.tt at line 145
[% END %][% IF jobset.type == 0 %] - edit in src/root/jobset.tt at line 154
[% END %] - edit in src/root/jobset.tt at line 179
[% IF jobset.type == 0 %] - edit in src/root/jobset.tt at line 181
[% END %] - replacement in src/sql/hydra.sql at line 57
nixExprInput text not null, -- name of the jobsetInput containing the Nix or Guix expressionnixExprPath text not null, -- relative path of the Nix or Guix expressionnixExprInput text, -- name of the jobsetInput containing the Nix or Guix expressionnixExprPath text, -- relative path of the Nix or Guix expression - edit in src/sql/hydra.sql at line 73
type integer not null default 0, -- 0 == legacy, 1 == flakeflake text, - edit in src/sql/hydra.sql at line 76
check ((type = 0) = (nixExprInput is not null and nixExprPath is not null)),check ((type = 1) = (flake is not null)), - file addition: upgrade-57.sql[95.3004]
alter table Jobsets alter column nixExprInput drop not null;alter table Jobsets alter column nixExprPath drop not null;alter table Jobsets add column type integer default 0;alter table Jobsets add column flake text;alter table Jobsets add check ((type = 0) = (nixExprInput is not null and nixExprPath is not null));alter table Jobsets add check ((type = 1) = (flake is not null));