* Disambiguate jobs by jobset name. I.e. jobs with the same name in

[?]
Mar 12, 2009, 11:46 PM
GNIEG2GCT6BUYHY2WXUAQVKHSYB6TVQT52O5GEY6COLKFK4ODCCQC

Dependencies

  • [2] 3E6IP3R3 * Add the name of the jobset to ReleaseSetJobs, otherwise we can't
  • [3] ECBA3GQO * Make the schema class names match the case of the SQL table names.
  • [4] L2E6EVE2 * Merged the Build and Job tables.
  • [5] RU7AQO7U * Role-based access control. Only admins can create projects. Only
  • [6] YTZOC7C5 * Editing of jobset inputs.
  • [7] V4RNHJNR * Add a link to each project's homepage. Suggested by karltk.
  • [8] VCOSLZRP
  • [9] ZVTSOVHN * Support Subversion checkouts.
  • [10] VJHIHMEH * Store the meta.longDescription and meta.license attributes in the
  • [11] R5D7DZPE
  • [12] FPK5LF53 * Put the project-related actions in a separate controller. Put the
  • [13] WYN733ST * Store build duration, handle cached builds.
  • [14] K5BEBWKM
  • [15] J5UVLXOK * Start of a basic Catalyst web interface.
  • [16] 67P45PY4
  • [17] S66BOMVU * Added authentication.
  • [18] 37R34XJO * Negative caching: don't perform a build if a dependency already
  • [19] B72GLND4
  • [20] 7YBYT2LQ
  • [21] PHX2HIVG * Store info about the build inputs in the build record.
  • [22] TLZ2SPBR
  • [23] CMU3YKOU * Store the release name.
  • [24] YAPITGB3 * Boolean inputs.
  • [25] NDL67SQT * XHTML validity.
  • [26] EYNG4EL4 * Regenerate the bindings from a clean sqlite database.
  • [27] KOTB7BKV
  • [28] H7CNGK4O * Log evaluation errors etc. in the DB.
  • [29] BHZXGT2H * Channels: provide an index page that lists all the packages in the
  • [30] LCKWLQW3 * In Sqlite "release" is now a keyword, so use "release_" instead.
  • [31] GWCV3TQV * BuildInputs table: link to dependencies, include store paths.
  • [32] X27GNHDV * Basic job info in the database.
  • [33] M552HLIA * Support variant builds.
  • [34] 6LTPI6B2
  • [35] FHF6IZJQ * Basic release management: releases are now dynamically computed as
  • [36] 7LKUAIGC
  • [37] 3ZCEPLNO
  • [38] YTSIRIMK * Separate job status and all builds pages.
  • [39] SHBLLAVH * More global substitution.
  • [40] BD3GRK4B * Get rid of "positive failures" and separate log phases.
  • [41] D3DIBMOK * For products that are directories (like manuals), allow a default
  • [42] IK53RV4V
  • [43] FEMR2C5W
  • [44] 6BLUKEQ2 * Caching of "path" inputs, and fake a revision number for those.
  • [45] ZEHSSVFG
  • [46] TWVSALRL * Allow the maximum number of concurrent builds per platform to be
  • [47] JLDUSNUO * Unify rendering of finished and scheduled builds.
  • [48] BVOPAMLS
  • [49] DVNWJXWW * Generic declaration of build products.
  • [50] 4S4ZMFJK * Links on trs.
  • [51] DEMSSSB2 * Controller for jobs which inherits all actions in ListBuilds. So
  • [52] TQKGQ5R3
  • [53] K2NXFFKH
  • [54] CLJQCY2X * Store info about all the build actions and allow them to be
  • [*] 2GK5DOU7 * Downloading closures.
  • [*] N22GPKYT * Put info about logs / build products in the DB.
  • [*] POPU2ATH * hydra_scheduler: use eval-jobs.

Change contents

  • replacement in src/lib/Hydra/Controller/Job.pm at line 10
    [3.214][3.214:320]()
    sub job : Chained('/project/project') PathPart('job') CaptureArgs(1) {
    my ($self, $c, $jobName) = @_;
    [3.214]
    [3.320]
    sub job : Chained('/') PathPart('job') CaptureArgs(3) {
    my ($self, $c, $projectName, $jobsetName, $jobName) = @_;
    # !!! cut&paste from Project::project.
    my $project = $c->model('DB::Projects')->find($projectName)
    or notFound($c, "Project $projectName doesn't exist.");
  • edit in src/lib/Hydra/Controller/Job.pm at line 17
    [3.321]
    [3.321]
    $c->stash->{curProject} = $project;
    $c->stash->{jobset} = $project->jobsets->find({name => $jobsetName})
    or notFound($c, "Jobset $jobsetName doesn't exist.");
  • edit in src/lib/Hydra/Controller/Job.pm at line 23
    [3.358][3.358:427]()
    # !!! nothing to do here yet, since we don't have a jobs table.
  • replacement in src/lib/Hydra/Controller/Job.pm at line 36
    [3.714][2.0:80]()
    $c->stash->{curProject}->builds->search({job => $c->stash->{jobName}});
    [3.714]
    [3.799]
    $c->stash->{jobset}->builds->search({job => $c->stash->{jobName}});
  • replacement in src/lib/Hydra/Controller/Project.pm at line 13
    [3.1566][3.1566:1712]()
    my $project = $c->model('DB::Projects')->find($projectName);
    notFound($c, "Project $projectName doesn't exist.") unless defined $project;
    [3.1566]
    [3.1712]
    my $project = $c->model('DB::Projects')->find($projectName)
    or notFound($c, "Project $projectName doesn't exist.");
  • replacement in src/lib/Hydra/Schema/BuildInputs.pm at line 39
    [3.782][2.413:555]()
    # Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-12 14:55:11
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:CLL7aeJ0fe0NX3LCnNs4/A
    [3.782]
    [3.924]
    # Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-12 17:44:15
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:9gWr8DPEeH2BjoHT3nt0Lw
  • replacement in src/lib/Hydra/Schema/BuildProducts.pm at line 38
    [3.4922][2.556:698]()
    # Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-12 14:55:11
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:9Eer/gLCKlOKfnwC+kfFaw
    [3.4922]
    [3.5064]
    # Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-12 17:44:15
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:GsPyt1OUQHWN6z7mSpNW2g
  • replacement in src/lib/Hydra/Schema/BuildResultInfo.pm at line 38
    [3.2382][2.699:841]()
    # Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-12 14:55:11
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:ieF3JOI4N3XZUyMboZhrjg
    [3.2382]
    [3.2524]
    # Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-12 17:44:15
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:zIpamqoL0AxNFDpQ/W1TVg
  • replacement in src/lib/Hydra/Schema/BuildSchedulingInfo.pm at line 30
    [3.4473][2.905:1047]()
    # Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-12 14:55:11
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:oomDjaTJHIQjraUqhzFPsg
    [3.4473]
    [3.4615]
    # Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-12 17:44:15
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:McWRZEMJtjFIcR4LplCc9A
  • replacement in src/lib/Hydra/Schema/BuildSteps.pm at line 38
    [3.2959][2.1188:1330]()
    # Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-12 14:55:11
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:+nb1zsYcv9WziZ6IHcc/yw
    [3.2959]
    [3.2959]
    # Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-12 17:44:15
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:zuyAJq4T5Ynsq920Pd7hLg
  • replacement in src/lib/Hydra/Schema/Builds.pm at line 79
    [3.6194][2.1378:1520]()
    # Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-12 14:55:11
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:UahvxjBmn7b70IK+QcnKHA
    [3.6194]
    [3.3377]
    # Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-12 17:44:15
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:6taCYZNB0HaY+fvDjUhrYQ
  • replacement in src/lib/Hydra/Schema/CachedPathInputs.pm at line 25
    [3.1497][2.1521:1663]()
    # Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-12 14:55:11
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:+AZEuCFAfkl7SKwlxDBnaw
    [3.1497]
    [3.1639]
    # Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-12 17:44:15
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:Jhu1KxMfSF1Y1b4VGUqTzg
  • replacement in src/lib/Hydra/Schema/CachedSubversionInputs.pm at line 23
    [3.2342][2.1664:1806]()
    # Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-12 14:55:11
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:2JtWOkH5OVGl7Cb7STLM5Q
    [3.2342]
    [3.2484]
    # Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-12 17:44:15
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:9aQa6Zo6z3lj/qFHNF5//w
  • replacement in src/lib/Hydra/Schema/JobsetInputAlts.pm at line 34
    [3.1831][2.1807:1949]()
    # Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-12 14:55:11
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:ka/dxG48LaZOQeShZFs0Hw
    [3.1831]
    [3.1973]
    # Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-12 17:44:15
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:fBv361MRwuWvAJQnOLZDIw
  • replacement in src/lib/Hydra/Schema/JobsetInputs.pm at line 25
    [3.1421][3.1421:1463]()
    "foreign.name" => "self.job",
    [3.1421]
    [3.1463]
    "foreign.name" => "self.jobset",
  • replacement in src/lib/Hydra/Schema/JobsetInputs.pm at line 46
    [3.1681][2.1950:2092]()
    # Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-12 14:55:11
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:earsp0XPWppy5/VOJkQ/PA
    [3.1681]
    [3.1823]
    # Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-12 17:44:15
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:S8AQqv8/GkLkXpPutV4N0A
  • replacement in src/lib/Hydra/Schema/Jobsets.pm at line 41
    [3.2812][3.2762:2829](),[3.3317][3.2762:2829](),[3.2762][3.2762:2829]()
    { job => "name", name => "nixexprinput", project => "project" },
    [3.2812]
    [3.2829]
    { jobset => "name", name => "nixexprinput", project => "project" },
  • replacement in src/lib/Hydra/Schema/Jobsets.pm at line 53
    [3.2992][2.2093:2235]()
    # Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-12 14:55:11
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:ADLNgkS2YPv4DuszwHau7g
    [3.2992]
    [3.3134]
    # Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-12 17:44:15
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:xYDUCEXRPeVdFJBQnG/Wog
  • replacement in src/lib/Hydra/Schema/Projects.pm at line 48
    [3.3685][2.2236:2378]()
    # Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-12 14:55:11
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:R/GeZxDujiuKze++Mc2ZTw
    [3.3685]
    [3.3827]
    # Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-12 17:44:15
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:9ZqA/21u40pt4t85YrYbeg
  • replacement in src/lib/Hydra/Schema/ReleaseSetJobs.pm at line 37
    [3.6070][2.2452:2594]()
    # Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-12 14:55:11
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:OM2joIa3Bj6t9BhVrOjN8Q
    [3.6070]
    [3.6212]
    # Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-12 17:44:15
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:Ta71pOzVsej/w0FoHIUMbg
  • replacement in src/lib/Hydra/Schema/ReleaseSets.pm at line 32
    [3.7142][2.2595:2737]()
    # Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-12 14:55:11
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:gSzri22yKGHLKCjNLv9/VQ
    [3.7142]
    [3.7284]
    # Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-12 17:44:15
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:0DtIgm5jznjy1l3809b06Q
  • replacement in src/lib/Hydra/Schema/SystemTypes.pm at line 19
    [3.2105][2.2738:2880]()
    # Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-12 14:55:11
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:viZlvDAHk9k8ScuA/qfUGw
    [3.2105]
    [3.2247]
    # Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-12 17:44:15
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:WUSl5Uivcl6E1KLxiq+89A
  • replacement in src/lib/Hydra/Schema/UserRoles.pm at line 20
    [3.3736][2.2881:3023]()
    # Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-12 14:55:11
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:gRuZJKELtc15+vQFjxjkKQ
    [3.3736]
    [3.3878]
    # Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-12 17:44:15
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:x/HXSH7s3bgPJSLK71hV9w
  • replacement in src/lib/Hydra/Schema/Users.pm at line 33
    [3.3782][2.3024:3166]()
    # Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-12 14:55:11
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:Lomf54EURbBIbrWGojiFIw
    [3.3782]
    [3.3924]
    # Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-12 17:44:15
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:uP86PxN/ZWgy5PRVU7Qgow
  • replacement in src/lib/Hydra/Schema.pm at line 11
    [3.6498][2.3167:3309]()
    # Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-12 14:55:11
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:oeLeU2T8C2dVBS+ugF0p8g
    [3.6498]
    [3.6640]
    # Created by DBIx::Class::Schema::Loader v0.04005 @ 2009-03-12 17:44:15
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:oIv4qqdjLKRDgAYXHHTz8A
  • replacement in src/root/all.tt at line 5
    [3.956][3.956:1028]()
    [% IF jobName %]for Job [% curProject.name %]:[% jobName %][% ELSE %]
    [3.956]
    [3.1028]
    [% IF jobName %]for Job [% curProject.name %]:[% jobset.name %]:[% jobName %][% ELSE %]
  • edit in src/root/build.tt at line 5
    [56.1440]
    [3.7413]
    [% project = build.get_column('project') %]
    [% jobset = build.get_column('jobset') %]
    [% job = build.get_column('job') %]
  • replacement in src/root/build.tt at line 11
    [3.5620][2.3310:3381]()
    Job <tt>[% build.project.name %]:[% build.job %]</tt> build [% id %]
    [3.5620]
    [3.5696]
    Job <tt>[% project %]:[% jobset %]:[% job %]</tt> build [% id %]
  • replacement in src/root/build.tt at line 80
    [3.451][3.2821:2929]()
    <td><a href="[% c.uri_for('/project' build.project.name) %]"><tt>[% build.project.name %]</tt></a></td>
    [3.451]
    [3.493]
    <td>[% PROCESS renderProjectName %]</td>
  • replacement in src/root/build.tt at line 84
    [3.529][3.2930:2976]()
    <td><tt>[% build.jobset.name %]</tt></td>
    [3.529]
    [3.7527]
    <td>[% PROCESS renderJobsetName %]</td>
  • replacement in src/root/build.tt at line 88
    [3.7565][2.3521:3636]()
    <td><a href="[% c.uri_for('/project' build.project.name 'job' build.job) %]"><tt>[% build.job %]</tt></a></td>
    [3.7565]
    [3.2225]
    <td>[% PROCESS renderJobName %]</td>
  • edit in src/root/build.tt at line 111
    [3.3189]
    [3.7673]
    </tr>
    <tr>
    <th>Homepage:</th>
    <td>[% IF build.homepage %]<a [% HTML.attributes(href => build.homepage) %]>[% HTML.escape(build.homepage) %]</a>[% ELSE %]<em>(not given)</em>[% END %]</td>
  • edit in src/root/common.tt at line 19
    [3.707]
    [3.707]
    [% BLOCK renderProjectName -%]
    <a href="[% c.uri_for('/project' project) %]"><tt>[% project %]</tt></a>[% END -%]
    [% BLOCK renderJobsetName -%]
    <a href="[% c.uri_for('/jobset' project jobset) %]"><tt>[% jobset %]</tt></a>[% END -%]
  • edit in src/root/common.tt at line 29
    [3.708]
    [3.708]
    [% BLOCK renderJobName -%]
    <a href="[% c.uri_for('/job' project jobset job) %]"><tt>[% job %]</tt></a>[% END -%]
  • edit in src/root/common.tt at line 32
    [3.709]
    [3.709]
    [% BLOCK renderFullJobName %]
    <tt>
    [% PROCESS renderProjectName %]:[% PROCESS renderJobsetName %]:[% PROCESS renderJobName %]
    </a>
    [% END %]
  • edit in src/root/common.tt at line 51
    [3.962][3.962:987]()
    <th>Project</th>
  • replacement in src/root/common.tt at line 52
    [3.1008][3.284:306]()
    <th>Name</th>
    [3.1008]
    [3.1008]
    <th>Release Name</th>
  • replacement in src/root/common.tt at line 81
    [3.1746][3.897:1029](),[3.1029][2.3984:4114]()
    <td><a href="[% c.uri_for('/project' build.get_column("project")) %]"><tt>[% build.get_column("project") %]</tt></a></td>
    <td><a href="[% c.uri_for('/project' build.get_column("project") 'job' build.job) %]"><tt>[% build.job %]</tt></a></td>
    [3.1746]
    [3.307]
    <td>
    [% PROCESS renderFullJobName project=build.get_column("project") jobset = build.get_column("jobset") job = build.job %]
    </td>
  • edit in src/script/hydra_scheduler.pl at line 238
    [58.1125]
    [58.1125]
    , homepage => $job->{homepage}
  • replacement in src/sql/hydra.sql at line 203
    [3.10964][3.10964:11056]()
    foreign key (project, name, nixExprInput) references JobsetInputs(project, job, name)
    [3.10964]
    [3.5202]
    foreign key (project, name, nixExprInput) references JobsetInputs(project, jobset, name)