Rename aggregate members to constituents

[?]
Aug 15, 2013, 12:33 AM
JTHWA6AM6UU4ZVWBH2JKUVFR743LVIMRU7IMDUVDLN4M3K7MR4XQC

Dependencies

  • [2] FTPCV25M Store aggregate members in the database
  • [3] HN3V252L On the build page, show how many aggregate constituents failed
  • [4] CMU3YKOU * Store the release name.
  • [5] 3E6IP3R3 * Add the name of the jobset to ReleaseSetJobs, otherwise we can't
  • [6] S66BOMVU * Added authentication.
  • [7] A63IHCMX * Register GC roots properly.
  • [8] ECBA3GQO * Make the schema class names match the case of the SQL table names.
  • [9] IK53RV4V
  • [10] BD3GRK4B * Get rid of "positive failures" and separate log phases.
  • [11] SHBLLAVH * More global substitution.
  • [12] YTIDBFGU Drop unused "disabled" columns
  • [13] RFE6T5LG * Store jobset evaluations in the database explicitly. This includes
  • [14] 2QA4Y4G3 * hydra: added index, actual build time (buildstep with same outpath, so without deps) of the build
  • [15] RU7AQO7U * Role-based access control. Only admins can create projects. Only
  • [16] SB2V735V Keep track of the database schema version
  • [17] MOX7XJ2E Merge the BuildSchedulingInfo table into the Builds table
  • [18] 4HPT4SDD Revert "Remove now-unused SystemTypes table"
  • [19] P5X4P6VK * Renaming "release sets" to "views" (not finished yet). Having
  • [20] 6BLUKEQ2 * Caching of "path" inputs, and fake a revision number for those.
  • [21] 3SQCOHZN * minor performance tweaks
  • [22] FANTYCR7 Materialize the number of finished builds
  • [23] LZVO64YG Merge in the first bits of the API work
  • [24] D3DIBMOK * For products that are directories (like manuals), allow a default
  • [25] CLJQCY2X * Store info about all the build actions and allow them to be
  • [26] 5MNUNZWR * Store meta.maintainers.
  • [27] J5UVLXOK * Start of a basic Catalyst web interface.
  • [28] HVXL2XUZ
  • [29] JJT5QG3K remove revision from cached cvs inputs, and added missing files
  • [30] HPEG2RHV Merge the BuildResultInfo table into the Builds table
  • [31] DHMTPGST * Ran update-dbix.
  • [32] PHJF4FUT Add missing files
  • [33] GNIEG2GC * Disambiguate jobs by jobset name. I.e. jobs with the same name in
  • [34] NABL63FI * hydra: project members can do stuff that the owner can do
  • [35] KXGOUX7P * Creating releases.
  • [36] YAPITGB3 * Boolean inputs.
  • [37] G2T4WAHI Store the inputs of each evaluation in the database
  • [38] B72GLND4
  • [39] TWVSALRL * Allow the maximum number of concurrent builds per platform to be
  • [40] 5SHCWE7X * Prevent repeated evaluation of a jobset with the same inputs. This
  • [41] JD7AWXQG Remove now-unused SystemTypes table
  • [42] ZVTSOVHN * Support Subversion checkouts.
  • [43] R5D7DZPE
  • [44] JM3DPYOM generated schema with new dbix class schema loader, grrrrrr
  • [45] H7CNGK4O * Log evaluation errors etc. in the DB.
  • [46] TLZ2SPBR
  • [47] EYNG4EL4 * Regenerate the bindings from a clean sqlite database.
  • [48] JJHVQGEL Show aggregate members
  • [49] VJHIHMEH * Store the meta.longDescription and meta.license attributes in the
  • [50] FHF6IZJQ * Basic release management: releases are now dynamically computed as
  • [51] V4RNHJNR * Add a link to each project's homepage. Suggested by karltk.
  • [52] FU4GO5VN On build pages, provide a link to the build's first eval
  • [53] SJLEZFC4 check getHydraPath in stead of Envvar HYDRA_DBI directly
  • [54] K22TMPH5 Make the info tables less compressed
  • [55] 3PNG7NIB Remove trailing whitespace
  • [56] TQKGQ5R3
  • [57] E7FID72S Remove the BuildMachines and BuildMachinesSystemTypes tables
  • [58] KOTB7BKV
  • [59] AHTEIK7G * Added a maintainers field to the Builds table.
  • [60] QQ4STW3S missing file
  • [61] SMCOU72F hydra: add some admin for adding/enabling/etc build machines
  • [62] 2GUAKGTB Fix indentation of build.tt
  • [63] ZTQEU5QS Hydra: Add support for maxSilent meta attribute (also already added timeout, but not implemented the actual timeout for the build yet)
  • [64] BHZXGT2H * Channels: provide an index page that lists all the packages in the
  • [65] 37R34XJO * Negative caching: don't perform a build if a dependency already
  • [66] ZWCTAZGL added newsitems, added some admin options to clear various caches.
  • [67] D5QIOJGP * Move everything up one directory.
  • [68] FD76WVTQ missing file
  • [69] ZI535LI6 * hydra: 'new' UI for project/jobset/job/build
  • [70] ODNCGFQ5 * Improved the navigation bar: don't include all projects (since that
  • [71] PMNWRTGJ Add multiple output support
  • [72] YTZOC7C5 * Editing of jobset inputs.
  • [73] S5PV6IIM * Represent jobs explicitly in the DB.
  • [74] 3ZCEPLNO
  • [75] LCKWLQW3 * In Sqlite "release" is now a keyword, so use "release_" instead.
  • [76] L2E6EVE2 * Merged the Build and Job tables.
  • [77] Y6AHH4TH Remove the logfile and logSize columns from the database
  • [*] 4N5APGRG * Start of a helper tool to evaluate job expressions efficiently.
  • [*] N22GPKYT * Put info about logs / build products in the DB.

Change contents

  • replacement in src/c/hydra-eval-jobs.cc at line 163
    [4.1270][2.0:65]()
    /* If this is an aggregate, then get its members. */
    [4.1270]
    [2.65]
    /* If this is an aggregate, then get its constituents. */
  • replacement in src/c/hydra-eval-jobs.cc at line 166
    [2.225][2.225:312]()
    Bindings::iterator a = v.attrs->find(state.symbols.create("members"));
    [2.225]
    [2.312]
    Bindings::iterator a = v.attrs->find(state.symbols.create("constituents"));
  • replacement in src/c/hydra-eval-jobs.cc at line 168
    [2.353][2.353:440]()
    throw EvalError("derivation must have a ‘members’ attribute");
    [2.353]
    [2.440]
    throw EvalError("derivation must have a ‘constituents’ attribute");
  • replacement in src/c/hydra-eval-jobs.cc at line 177
    [2.811][2.811:878]()
    xmlAttrs["members"] = concatStringsSep(" ", drvs);
    [2.811]
    [2.878]
    xmlAttrs["constituents"] = concatStringsSep(" ", drvs);
  • file move: AggregateMembers.pm (----------)AggregateConstituents.pm (----------)
    [4.477]
    [2.1669]
  • replacement in src/lib/Hydra/Schema/AggregateConstituents.pm at line 2
    [2.1680][2.1680:1721]()
    package Hydra::Schema::AggregateMembers;
    [2.1680]
    [2.1721]
    package Hydra::Schema::AggregateConstituents;
  • replacement in src/lib/Hydra/Schema/AggregateConstituents.pm at line 9
    [2.1821][2.1821:1853]()
    Hydra::Schema::AggregateMembers
    [2.1821]
    [2.1853]
    Hydra::Schema::AggregateConstituents
  • replacement in src/lib/Hydra/Schema/AggregateConstituents.pm at line 30
    [2.2063][2.2063:2097]()
    =head1 TABLE: C<AggregateMembers>
    [2.2063]
    [2.2097]
    =head1 TABLE: C<AggregateConstituents>
  • replacement in src/lib/Hydra/Schema/AggregateConstituents.pm at line 34
    [2.2104][2.2104:2144]()
    __PACKAGE__->table("AggregateMembers");
    [2.2104]
    [2.2144]
    __PACKAGE__->table("AggregateConstituents");
  • replacement in src/lib/Hydra/Schema/AggregateConstituents.pm at line 44
    [2.2242][2.2242:2256]()
    =head2 member
    [2.2242]
    [2.2256]
    =head2 constituent
  • replacement in src/lib/Hydra/Schema/AggregateConstituents.pm at line 55
    [2.2434][2.2434:2446]()
    "member",
    [2.2434]
    [2.2446]
    "constituent",
  • replacement in src/lib/Hydra/Schema/AggregateConstituents.pm at line 65
    [2.2571][2.2571:2590]()
    =item * L</member>
    [2.2571]
    [2.2590]
    =item * L</constituent>
  • replacement in src/lib/Hydra/Schema/AggregateConstituents.pm at line 71
    [2.2604][2.2604:2657]()
    __PACKAGE__->set_primary_key("aggregate", "member");
    [2.2604]
    [2.2657]
    __PACKAGE__->set_primary_key("aggregate", "constituent");
  • replacement in src/lib/Hydra/Schema/AggregateConstituents.pm at line 90
    [2.2932][2.2932:2946]()
    =head2 member
    [2.2932]
    [2.2946]
    =head2 constituent
  • replacement in src/lib/Hydra/Schema/AggregateConstituents.pm at line 99
    [2.3038][2.3038:3050]()
    "member",
    [2.3038]
    [2.3050]
    "constituent",
  • replacement in src/lib/Hydra/Schema/AggregateConstituents.pm at line 101
    [2.3077][2.3077:3099]()
    { id => "member" },
    [2.3077]
    [2.3099]
    { id => "constituent" },
  • replacement in src/lib/Hydra/Schema/AggregateConstituents.pm at line 106
    [2.3180][2.3180:3322]()
    # Created by DBIx::Class::Schema::Loader v0.07033 @ 2013-08-13 22:17:52
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:jHJtO2baXiprv0OcWCLZ+w
    [2.3180]
    [2.3322]
    # Created by DBIx::Class::Schema::Loader v0.07033 @ 2013-08-15 00:20:01
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:TLNenyPLIWw2gWsOVhplZw
  • replacement in src/lib/Hydra/Schema/Builds.pm at line 291
    [2.3472][2.3472:3507]()
    =head2 aggregatemembers_aggregates
    [2.3472]
    [2.3507]
    =head2 aggregateconstituents_aggregates
  • replacement in src/lib/Hydra/Schema/Builds.pm at line 295
    [2.3524][2.3524:3575]()
    Related object: L<Hydra::Schema::AggregateMembers>
    [2.3524]
    [2.3575]
    Related object: L<Hydra::Schema::AggregateConstituents>
  • replacement in src/lib/Hydra/Schema/Builds.pm at line 300
    [2.3605][2.3605:3675]()
    "aggregatemembers_aggregates",
    "Hydra::Schema::AggregateMembers",
    [2.3605]
    [2.3675]
    "aggregateconstituents_aggregates",
    "Hydra::Schema::AggregateConstituents",
  • replacement in src/lib/Hydra/Schema/Builds.pm at line 306
    [2.3728][2.3728:3760]()
    =head2 aggregatemembers_members
    [2.3728]
    [2.3760]
    =head2 aggregateconstituents_constituents
  • replacement in src/lib/Hydra/Schema/Builds.pm at line 310
    [2.3777][2.3777:3828]()
    Related object: L<Hydra::Schema::AggregateMembers>
    [2.3777]
    [2.3828]
    Related object: L<Hydra::Schema::AggregateConstituents>
  • replacement in src/lib/Hydra/Schema/Builds.pm at line 315
    [2.3858][2.3858:3962]()
    "aggregatemembers_members",
    "Hydra::Schema::AggregateMembers",
    { "foreign.member" => "self.id" },
    [2.3858]
    [2.3962]
    "aggregateconstituents_constituents",
    "Hydra::Schema::AggregateConstituents",
    { "foreign.constituent" => "self.id" },
  • replacement in src/lib/Hydra/Schema/Builds.pm at line 505
    [2.4015][2.4015:4073]()
    Composing rels: L</aggregatemembers_members> -> aggregate
    [2.4015]
    [4.62]
    Composing rels: L</aggregateconstituents_constituents> -> aggregate
  • replacement in src/lib/Hydra/Schema/Builds.pm at line 509
    [4.1182][2.4080:4162]()
    __PACKAGE__->many_to_many("aggregates", "aggregatemembers_members", "aggregate");
    [4.1182]
    [2.4162]
    __PACKAGE__->many_to_many(
    "aggregates",
    "aggregateconstituents_constituents",
    "aggregate",
    );
  • replacement in src/lib/Hydra/Schema/Builds.pm at line 515
    [2.4163][2.4163:4178]()
    =head2 members
    [2.4163]
    [2.4178]
    =head2 constituents
  • replacement in src/lib/Hydra/Schema/Builds.pm at line 519
    [2.4199][2.4199:4254]()
    Composing rels: L</aggregatemembers_members> -> member
    [2.4199]
    [2.4254]
    Composing rels: L</aggregateconstituents_constituents> -> constituent
  • replacement in src/lib/Hydra/Schema/Builds.pm at line 523
    [2.4261][2.4261:4337]()
    __PACKAGE__->many_to_many("members", "aggregatemembers_members", "member");
    [2.4261]
    [2.4337]
    __PACKAGE__->many_to_many(
    "constituents",
    "aggregateconstituents_constituents",
    "constituent",
    );
  • replacement in src/lib/Hydra/Schema/Builds.pm at line 530
    [4.3378][2.4339:4481]()
    # Created by DBIx::Class::Schema::Loader v0.07033 @ 2013-08-13 22:17:52
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:9jqsol/evbHYjusT09hLtw
    [4.3378]
    [2.4481]
    # Created by DBIx::Class::Schema::Loader v0.07033 @ 2013-08-15 00:20:01
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:U1j/qm0vslb6Jvgu5mGMtw
  • replacement in src/lib/Hydra/Schema/Builds.pm at line 563
    [4.1][4.1:81]()
    __PACKAGE__->many_to_many("members_", "aggregatemembers_aggregates", "member");
    [4.1]
    [4.296]
    __PACKAGE__->many_to_many("constituents_", "aggregateconstituents_aggregates", "constituent");
  • replacement in src/root/build.tt at line 10
    [4.6589][3.0:43]()
    [% isAggregate = build.members_ ? 1 : 0 %]
    [4.6589]
    [4.11433]
    [% isAggregate = build.constituents_ ? 1 : 0 %]
  • replacement in src/root/build.tt at line 122
    [3.265][3.265:301]()
    nrMembers = 0;
    [3.265]
    [3.301]
    nrConstituents = 0;
  • replacement in src/root/build.tt at line 124
    [3.338][3.338:480]()
    nrFailedMembers = 0;
    FOREACH b IN build.members_;
    nrMembers = nrMembers + 1;
    [3.338]
    [3.480]
    nrFailedConstituents = 0;
    FOREACH b IN build.constituents_;
    nrConstituents = nrConstituents + 1;
  • replacement in src/root/build.tt at line 128
    [3.552][3.552:656]()
    IF b.finished && b.buildstatus != 0; nrFailedMembers = nrFailedMembers + 1; END;
    [3.552]
    [3.656]
    IF b.finished && b.buildstatus != 0; nrFailedConstituents = nrFailedConstituents + 1; END;
  • replacement in src/root/build.tt at line 131
    [3.702][3.702:839]()
    [%+ IF nrFinished == 0 && nrFailedMembers == 0 %]
    all [% nrMembers %] constituent builds succeeded
    [3.702]
    [3.839]
    [%+ IF nrFinished == nrMembers && nrFailedConstituents == 0 %]
    all [% nrConstituents %] constituent builds succeeded
  • replacement in src/root/build.tt at line 134
    [3.868][3.868:1078]()
    [% nrFailedMembers %] out of [% nrMembers %] constituent builds failed
    [% IF nrFinished < nrMembers %]
    ([% nrMembers - nrFinished %] still pending)
    [3.868]
    [3.1078]
    [% nrFailedConstituents %] out of [% nrConstituents %] constituent builds failed
    [% IF nrFinished < nrConstituents %]
    ([% nrConstituents - nrFinished %] still pending)
  • replacement in src/root/build.tt at line 283
    [4.320][4.320:378]()
    [% INCLUDE renderBuildList builds=build.members_ %]
    [4.320]
    [4.378]
    [% INCLUDE renderBuildList builds=build.constituents_ %]
  • replacement in src/script/hydra-evaluator at line 186
    [2.5076][2.5076:5124]()
    # Create AggregateMembers mappings.
    [2.5076]
    [2.5124]
    # Create AggregateConstituents mappings.
  • replacement in src/script/hydra-evaluator at line 188
    [2.5172][2.5172:5217]()
    next unless $job->{members};
    [2.5172]
    [2.5217]
    next unless $job->{constituents};
  • replacement in src/script/hydra-evaluator at line 190
    [2.5280][2.5280:5564]()
    foreach my $drvPath (split / /, $job->{members}) {
    my $member = $drvPathToId{$drvPath};
    if (defined $member) {
    $db->resultset('AggregateMembers')->update_or_create({aggregate => $id, member => $member});
    [2.5280]
    [2.5564]
    foreach my $drvPath (split / /, $job->{constituents}) {
    my $constituent = $drvPathToId{$drvPath};
    if (defined $constituent) {
    $db->resultset('AggregateConstituents')->update_or_create({aggregate => $id, constituent => $constituent});
  • replacement in src/script/hydra-evaluator at line 195
    [2.5593][2.5593:5732]()
    warn "aggregate job ‘$job->{jobName}’ has a member ‘$drvPath’ that doesn't correspond to a Hydra build\n";
    [2.5593]
    [2.5732]
    warn "aggregate job ‘$job->{jobName}’ has a constituent ‘$drvPath’ that doesn't correspond to a Hydra build\n";
  • replacement in src/sql/hydra.sql at line 517
    [4.1368][2.5773:5805]()
    create table AggregateMembers (
    [4.1368]
    [2.5805]
    create table AggregateConstituents (
  • replacement in src/sql/hydra.sql at line 519
    [2.5881][2.5881:5995]()
    member integer not null references Builds(id) on delete cascade,
    primary key (aggregate, member)
    [2.5881]
    [2.5995]
    constituent integer not null references Builds(id) on delete cascade,
    primary key (aggregate, constituent)
  • replacement in src/sql/upgrade-19.sql at line 1
    [2.6002][2.6003:6035]()
    create table AggregateMembers (
    [2.6002]
    [2.6035]
    create table AggregateConstituents (
  • replacement in src/sql/upgrade-19.sql at line 3
    [2.6111][2.6111:6225]()
    member integer not null references Builds(id) on delete cascade,
    primary key (aggregate, member)
    [2.6111]
    [2.6225]
    constituent integer not null references Builds(id) on delete cascade,
    primary key (aggregate, constituent)