Builds: add a nullable jobset_id foreign key to Jobsets.

[?]
Feb 5, 2020, 8:11 PM
SJPEC375K7K4PJRGHLFKAOXX5FFAJCGNVIARROGOR3RISTZBYBDAC

Dependencies

  • [2] B7ENVLRS hydra-queue-runner: Make build notification more reliable
  • [3] SIDK2E7V Jobs: add a nullable jobset_id foreign key to Jobsets.
  • [4] SB2V735V Keep track of the database schema version
  • [5] ZI535LI6 * hydra: 'new' UI for project/jobset/job/build
  • [6] CMU3YKOU * Store the release name.
  • [7] 53IMJNBB Add isChannel column and meta attribute.
  • [8] FHF6IZJQ * Basic release management: releases are now dynamically computed as
  • [9] KOTB7BKV
  • [10] TLZ2SPBR
  • [11] PCD3ZH6Z Partially revert 1c20cfdf2403feb78cef515faf15c04d5c9f17bd
  • [12] 4CELXP7P Remove the longDescription field
  • [13] LZVO64YG Merge in the first bits of the API work
  • [14] RU7AQO7U * Role-based access control. Only admins can create projects. Only
  • [15] FZR7ET5D Jobsets: add a SERIAL, unique, non-null id column
  • [16] G2T4WAHI Store the inputs of each evaluation in the database
  • [17] IGR322YP sql: Generate models from postgresql
  • [18] X27GNHDV * Basic job info in the database.
  • [19] VJHIHMEH * Store the meta.longDescription and meta.license attributes in the
  • [20] V4RNHJNR * Add a link to each project's homepage. Suggested by karltk.
  • [21] 37R34XJO * Negative caching: don't perform a build if a dependency already
  • [22] S5PV6IIM * Represent jobs explicitly in the DB.
  • [23] IK53RV4V
  • [24] Y6AHH4TH Remove the logfile and logSize columns from the database
  • [25] DH3KNBAV Merge remote-tracking branch 'upstream/who-broke-builds' into upstream-master
  • [26] EYNG4EL4 * Regenerate the bindings from a clean sqlite database.
  • [27] TQKGQ5R3
  • [28] 4S5JF5JP Use latest DBIx::Class::Schema::Loader
  • [29] ITJWNQEZ Update Hydra schema, otherwise hydra-notify will not work.
  • [30] R5D7DZPE
  • [31] D3DIBMOK * For products that are directories (like manuals), allow a default
  • [32] AHTEIK7G * Added a maintainers field to the Builds table.
  • [33] 26PYNDXV Remove the errorMsg column from the Builds table
  • [34] ECBA3GQO * Make the schema class names match the case of the SQL table names.
  • [35] YAPITGB3 * Boolean inputs.
  • [36] GNIEG2GC * Disambiguate jobs by jobset name. I.e. jobs with the same name in
  • [37] CCIORPJ5 When manually scheduling an eval, force re-instantiation of store derivations
  • [38] SS4TZXNU Distinguish between permanent evaluation errors and transient input errors
  • [39] QLOLZHRX Allow a per-jobset check interval
  • [40] S66BOMVU * Added authentication.
  • [41] L2E6EVE2 * Merged the Build and Job tables.
  • [42] YTZOC7C5 * Editing of jobset inputs.
  • [43] B72GLND4
  • [44] H7CNGK4O * Log evaluation errors etc. in the DB.
  • [45] 6BLUKEQ2 * Caching of "path" inputs, and fake a revision number for those.
  • [46] JTHWA6AM Rename aggregate members to constituents
  • [47] TWVSALRL * Allow the maximum number of concurrent builds per platform to be
  • [48] KSBB33RE Add a dashboard
  • [49] FYO6NECE hydra
  • [50] W4G5MZZS hydra-evaluator improvements
  • [51] 3ZCEPLNO
  • [52] FTPCV25M Store aggregate members in the database
  • [53] YTIDBFGU Drop unused "disabled" columns
  • [54] JM3DPYOM generated schema with new dbix class schema loader, grrrrrr
  • [55] TPNHTE5V Remove obsolete Builds columns and provide accurate "Running builds"
  • [56] WE5Q2NVI Allow build to be bumped to the front of the queue via the web interface
  • [57] PMNWRTGJ Add multiple output support
  • [58] GEADFVZ5 hydra-queue-runner: Improved scheduling
  • [59] BHZXGT2H * Channels: provide an index page that lists all the packages in the
  • [60] K3HODXGH Check all inputs for blame but only email selected inputs
  • [61] SJLEZFC4 check getHydraPath in stead of Envvar HYDRA_DBI directly
  • [62] W5OAZWPD Drop the errorMsg column in the Jobs table
  • [63] PCKLFRT5 Support push notification of repository changes
  • [64] T5BIOVJE Add support for tracking custom metrics
  • [65] SHBLLAVH * More global substitution.
  • [66] 3E6IP3R3 * Add the name of the jobset to ReleaseSetJobs, otherwise we can't
  • [67] MWXDVTS3 Copy the flake migration from the flake branch
  • [68] LCKWLQW3 * In Sqlite "release" is now a keyword, so use "release_" instead.
  • [69] KQAQ4FIF Update Schema classes
  • [70] BD3GRK4B * Get rid of "positive failures" and separate log phases.
  • [71] ZVTSOVHN * Support Subversion checkouts.
  • [72] CLJQCY2X * Store info about all the build actions and allow them to be
  • [*] J5UVLXOK * Start of a basic Catalyst web interface.
  • [*] N22GPKYT * Put info about logs / build products in the DB.
  • [*] TM6C352U Ensure that stoptime and starttime are set for finished builds
  • [*] D5QIOJGP * Move everything up one directory.

Change contents

  • edit in src/lib/Hydra/Schema/Builds.pm at line 66
    [4.7586]
    [4.7600]
    =head2 jobset_id
    data_type: 'integer'
    is_foreign_key: 1
    is_nullable: 1
  • edit in src/lib/Hydra/Schema/Builds.pm at line 224
    [4.8335]
    [4.1331]
    "jobset_id",
    { data_type => "integer", is_foreign_key => 1, is_nullable => 1 },
  • edit in src/lib/Hydra/Schema/Builds.pm at line 467
    [4.10436]
    [4.10436]
    "Hydra::Schema::Jobsets",
    { id => "jobset_id" },
    {
    is_deferrable => 0,
    join_type => "LEFT",
    on_delete => "CASCADE",
    on_update => "NO ACTION",
    },
    );
    =head2 jobset_project_jobset
    Type: belongs_to
    Related object: L<Hydra::Schema::Jobsets>
    =cut
    __PACKAGE__->belongs_to(
    "jobset_project_jobset",
  • replacement in src/lib/Hydra/Schema/Builds.pm at line 581
    [4.3378][4.1911:2053]()
    # Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:22:36
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:H3hs+zEywsUmwTWKfSE8wQ
    [4.3378]
    [4.4481]
    # Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:32:28
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:RvrINOAowDcde8Nd9VD6rQ
  • edit in src/lib/Hydra/Schema/Jobsets.pm at line 259
    [4.7385]
    [4.19217]
    =head2 builds_jobset_ids
    Type: has_many
  • replacement in src/lib/Hydra/Schema/Jobsets.pm at line 264
    [4.19218][4.21697:21711]()
    =head2 builds
    [4.19218]
    [4.19235]
    Related object: L<Hydra::Schema::Builds>
    =cut
    __PACKAGE__->has_many(
    "builds_jobset_ids",
    "Hydra::Schema::Builds",
    { "foreign.jobset_id" => "self.id" },
    undef,
    );
    =head2 builds_project_jobsets
  • replacement in src/lib/Hydra/Schema/Jobsets.pm at line 284
    [4.2575][4.21754:21766]()
    "builds",
    [4.2575]
    [4.21766]
    "builds_project_jobsets",
  • replacement in src/lib/Hydra/Schema/Jobsets.pm at line 411
    [4.22628][3.908:1050]()
    # Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-09 15:26:15
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:DH1jX0smo2rFvyr4V+qJcw
    [4.22628]
    [3.1050]
    # Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-09 15:32:17
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:P8+t7rgpOqkGwRdM2b+3Bw
    =head2 builds
  • edit in src/lib/Hydra/Schema/Jobsets.pm at line 417
    [3.1051]
    [3.1051]
    Type: has_many
    Related object: L<Hydra::Schema::Builds>
    =cut
    __PACKAGE__->has_many(
    "builds",
    "Hydra::Schema::Builds",
    {
    "foreign.jobset" => "self.name",
    "foreign.project" => "self.project",
    },
    undef,
    );
  • edit in src/sql/hydra.sql at line 173
    [4.5820]
    [4.5820]
    jobset_id integer null,
  • edit in src/sql/hydra.sql at line 240
    [76.143]
    [2.1531]
    foreign key (jobset_id) references Jobsets(id) on delete cascade,
  • file addition: upgrade-61.sql (----------)
    [77.3004]
    -- Add the jobset_id columns to the Builds table. This will go
    -- quickly, since the field is nullable. Note this is just part one of
    -- this migration. Future steps involve a piecemeal backfilling, and
    -- then making the column non-null.
    ALTER TABLE Builds
    ADD COLUMN jobset_id integer NULL,
    ADD FOREIGN KEY (jobset_id)
    REFERENCES Jobsets(id)
    ON DELETE CASCADE;