* Adding persistant releases. A release is a named set of builds.

[?]
Oct 21, 2009, 3:44 PM
RBNQKATLSAKTGW2IRNB5CRV3SEH5F6E4BPVWX4BII7MH5TCIPINQC

Dependencies

  • [2] 2BUX775I * More release -> view.
  • [3] KN3VYE5P * Cleaned up the foreign key constraints.
  • [4] WYN733ST * Store build duration, handle cached builds.
  • [5] SHBLLAVH * More global substitution.
  • [6] 37R34XJO * Negative caching: don't perform a build if a dependency already
  • [7] S6OISBQ3 * Mark the "current" builds in a jobset, i.e. those corresponding to
  • [8] RU7AQO7U * Role-based access control. Only admins can create projects. Only
  • [9] GCHNNFZP
  • [10] ZVTSOVHN * Support Subversion checkouts.
  • [11] 7ZSVXUGF sequence fix for postgresql
  • [12] 7YBYT2LQ
  • [13] M552HLIA * Support variant builds.
  • [14] VJHIHMEH * Store the meta.longDescription and meta.license attributes in the
  • [15] PBFZEQLZ
  • [16] TQKGQ5R3
  • [17] X27GNHDV * Basic job info in the database.
  • [18] TLZ2SPBR
  • [19] TWVSALRL * Allow the maximum number of concurrent builds per platform to be
  • [20] R5D7DZPE
  • [21] KOTB7BKV
  • [22] IK53RV4V
  • [23] YAPITGB3 * Boolean inputs.
  • [24] GNIEG2GC * Disambiguate jobs by jobset name. I.e. jobs with the same name in
  • [25] BVOPAMLS
  • [26] GWCV3TQV * BuildInputs table: link to dependencies, include store paths.
  • [27] H7CNGK4O * Log evaluation errors etc. in the DB.
  • [28] ECBA3GQO * Make the schema class names match the case of the SQL table names.
  • [29] S66BOMVU * Added authentication.
  • [30] 6BLUKEQ2 * Caching of "path" inputs, and fake a revision number for those.
  • [31] HJLYC753 * Adding input value alternatives.
  • [32] V4RNHJNR * Add a link to each project's homepage. Suggested by karltk.
  • [33] W6DC6K4I * Happy Javascript hacking.
  • [34] 3E6IP3R3 * Add the name of the jobset to ReleaseSetJobs, otherwise we can't
  • [35] VCOSLZRP
  • [36] S5PV6IIM * Represent jobs explicitly in the DB.
  • [37] UUGBVEGY * Development notes.
  • [38] CMU3YKOU * Store the release name.
  • [39] ZEHSSVFG
  • [40] SJLEZFC4 check getHydraPath in stead of Envvar HYDRA_DBI directly
  • [41] FHF6IZJQ * Basic release management: releases are now dynamically computed as
  • [42] 3ZCEPLNO
  • [43] AHTEIK7G * Added a maintainers field to the Builds table.
  • [44] 67P45PY4
  • [45] 6ULJO5NI * Urgh. `-' had special significance in HTML form parameters...
  • [46] J5UVLXOK * Start of a basic Catalyst web interface.
  • [47] PHX2HIVG * Store info about the build inputs in the build record.
  • [48] BD3GRK4B * Get rid of "positive failures" and separate log phases.
  • [49] EYNG4EL4 * Regenerate the bindings from a clean sqlite database.
  • [50] LCKWLQW3 * In Sqlite "release" is now a keyword, so use "release_" instead.
  • [51] YTZOC7C5 * Editing of jobset inputs.
  • [52] B72GLND4
  • [53] DVNWJXWW * Generic declaration of build products.
  • [54] OG7BEM57
  • [55] D3DIBMOK * For products that are directories (like manuals), allow a default
  • [56] BHZXGT2H * Channels: provide an index page that lists all the packages in the
  • [57] L2E6EVE2 * Merged the Build and Job tables.
  • [58] CLJQCY2X * Store info about all the build actions and allow them to be
  • [59] ODNCGFQ5 * Improved the navigation bar: don't include all projects (since that
  • [60] P5X4P6VK * Renaming "release sets" to "views" (not finished yet). Having
  • [61] UWVMQIAC * Refactoring.
  • [62] 4D4U5IPY * Allow jobsets to be disabled.
  • [*] FPK5LF53 * Put the project-related actions in a separate controller. Put the
  • [*] D5QIOJGP * Move everything up one directory.
  • [*] N22GPKYT * Put info about logs / build products in the DB.
  • [*] T2232OBS * Add some DB indices to make the /releases page much faster.

Change contents

  • edit in doc/dev-notes.txt at line 98
    [4.66][4.66:115]()
    alter table Views rename column name to view_;
  • edit in doc/dev-notes.txt at line 131
    [4.5711][4.5711:5900]()
    * nix-env -f . -u --leq sqlite perl-Catalyst-Engine-HTTP-Prefork perl-Catalyst-View-Download perl-DBD-SQLite perl-IO-Compress-Bzip2 perl-IPC-Run perl-Task-Catalyst-Tutorial perl-XML-Simple
  • edit in doc/dev-notes.txt at line 132
    [4.5901][4.5901:5902]()
  • edit in src/lib/Hydra/Controller/Project.pm at line 213
    [2.902]
    [64.9373]
    sub releases : Chained('project') PathPart('releases') Args(0) {
    my ($self, $c) = @_;
    $c->stash->{template} = 'releases.tt';
    $c->stash->{releases} = [$c->stash->{project}->releases->all];
    }
    sub create_release : Chained('project') PathPart('releases/create') {
    my ($self, $c) = @_;
    $c->stash->{template} = 'create-release.tt';
    }
  • replacement in src/lib/Hydra/Schema/BuildInputs.pm at line 106
    [4.25][3.61:206]()
    # Created by DBIx::Class::Schema::Loader v0.04999_06 @ 2009-10-21 14:17:55
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:7blxTiVkvfdukDiXCoD+Lw
    [4.25]
    [4.781]
    # Created by DBIx::Class::Schema::Loader v0.04999_06 @ 2009-10-21 17:40:21
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:IrEeOAeGZJUN3/kCMRNy5g
  • replacement in src/lib/Hydra/Schema/BuildProducts.pm at line 94
    [4.4922][3.207:352]()
    # Created by DBIx::Class::Schema::Loader v0.04999_06 @ 2009-10-21 14:17:55
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:8wtm75jCRmcyWInKMO826g
    [4.4922]
    [4.5064]
    # Created by DBIx::Class::Schema::Loader v0.04999_06 @ 2009-10-21 17:40:21
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:uVdvtQkCkZXqjpLhIB6OjQ
  • replacement in src/lib/Hydra/Schema/BuildResultInfo.pm at line 89
    [4.2382][3.353:498]()
    # Created by DBIx::Class::Schema::Loader v0.04999_06 @ 2009-10-21 14:17:55
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:3P0UuNHhdA8VfALMfwssTA
    [4.2382]
    [4.2524]
    # Created by DBIx::Class::Schema::Loader v0.04999_06 @ 2009-10-21 17:40:21
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:HbQGfeYtXVLhEofMmXgq9A
  • replacement in src/lib/Hydra/Schema/BuildSchedulingInfo.pm at line 46
    [4.4473][3.499:644]()
    # Created by DBIx::Class::Schema::Loader v0.04999_06 @ 2009-10-21 14:17:55
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:e4O2JqrJN8coHmRdjbbxHg
    [4.4473]
    [4.4615]
    # Created by DBIx::Class::Schema::Loader v0.04999_06 @ 2009-10-21 17:40:21
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:GoOrRB+LCSskU+/lEmhtGw
  • replacement in src/lib/Hydra/Schema/BuildSteps.pm at line 94
    [4.2959][3.645:790]()
    # Created by DBIx::Class::Schema::Loader v0.04999_06 @ 2009-10-21 14:17:55
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:/Qdb8Y3Tqw7AOM5ique5Nw
    [4.2959]
    [4.2959]
    # Created by DBIx::Class::Schema::Loader v0.04999_06 @ 2009-10-21 17:40:21
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:USyzZLDTSJrN+FJg29e/vA
  • edit in src/lib/Hydra/Schema/Builds.pm at line 164
    [4.1152]
    [4.6192]
    __PACKAGE__->has_many(
    "releasemembers",
    "Hydra::Schema::ReleaseMembers",
    { "foreign.build" => "self.id" },
    );
  • replacement in src/lib/Hydra/Schema/Builds.pm at line 171
    [4.6194][3.791:936]()
    # Created by DBIx::Class::Schema::Loader v0.04999_06 @ 2009-10-21 14:17:55
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:eJS7WCbSjwylQuAbQtB24w
    [4.6194]
    [4.62]
    # Created by DBIx::Class::Schema::Loader v0.04999_06 @ 2009-10-21 17:40:21
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:otgQGRHBbSwp3Tb2UBW1Xg
  • replacement in src/lib/Hydra/Schema/CachedPathInputs.pm at line 50
    [4.1497][3.937:1082]()
    # Created by DBIx::Class::Schema::Loader v0.04999_06 @ 2009-10-21 14:17:55
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:FcLeNgdEr13JAYZLxF4/tw
    [4.1497]
    [4.1639]
    # Created by DBIx::Class::Schema::Loader v0.04999_06 @ 2009-10-21 17:40:21
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:avORhqvcxFi5m+j9g9NYGg
  • replacement in src/lib/Hydra/Schema/CachedSubversionInputs.pm at line 43
    [4.2342][3.1083:1228]()
    # Created by DBIx::Class::Schema::Loader v0.04999_06 @ 2009-10-21 14:17:55
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:y14yX+UAP03N7VGrgehcLw
    [4.2342]
    [4.2484]
    # Created by DBIx::Class::Schema::Loader v0.04999_06 @ 2009-10-21 17:40:21
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:g3iZG160pb+oYl3LeM0duA
  • replacement in src/lib/Hydra/Schema/Jobs.pm at line 78
    [4.2613][3.1430:1575]()
    # Created by DBIx::Class::Schema::Loader v0.04999_06 @ 2009-10-21 14:17:55
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:AjrYM1rAdgYy3j0+IFFUEw
    [4.2613]
    [4.2755]
    # Created by DBIx::Class::Schema::Loader v0.04999_06 @ 2009-10-21 17:40:21
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:SS2bc4Erxn0xyxeEndq88Q
  • replacement in src/lib/Hydra/Schema/JobsetInputAlts.pm at line 72
    [4.1831][3.1576:1721]()
    # Created by DBIx::Class::Schema::Loader v0.04999_06 @ 2009-10-21 14:17:55
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:o5NC1PPpGrzOZZcumFoudg
    [4.1831]
    [4.1973]
    # Created by DBIx::Class::Schema::Loader v0.04999_06 @ 2009-10-21 17:40:21
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:ID6qQsHY59pmsJjfQKO07g
  • replacement in src/lib/Hydra/Schema/JobsetInputs.pm at line 68
    [4.1681][3.1722:1867]()
    # Created by DBIx::Class::Schema::Loader v0.04999_06 @ 2009-10-21 14:17:55
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:7A5UkNWAqy0XuhlKvOgr6Q
    [4.1681]
    [4.1823]
    # Created by DBIx::Class::Schema::Loader v0.04999_06 @ 2009-10-21 17:40:21
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:TwiOYM2FLwu6Vo45BLPRAA
  • replacement in src/lib/Hydra/Schema/Jobsets.pm at line 106
    [4.2992][3.2022:2167]()
    # Created by DBIx::Class::Schema::Loader v0.04999_06 @ 2009-10-21 14:17:55
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:vaCDa6WBFdcLMG23Nlr27g
    [4.2992]
    [4.3134]
    # Created by DBIx::Class::Schema::Loader v0.04999_06 @ 2009-10-21 17:40:21
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:EmQCVkqwPcbXYQg9g7vWpQ
  • edit in src/lib/Hydra/Schema/Projects.pm at line 75
    [4.8176]
    [4.2341]
    { "foreign.project" => "self.name" },
    );
    __PACKAGE__->has_many(
    "releases",
    "Hydra::Schema::Releases",
    { "foreign.project" => "self.name" },
    );
    __PACKAGE__->has_many(
    "releasemembers",
    "Hydra::Schema::ReleaseMembers",
  • replacement in src/lib/Hydra/Schema/Projects.pm at line 89
    [4.3685][3.2274:2419]()
    # Created by DBIx::Class::Schema::Loader v0.04999_06 @ 2009-10-21 14:17:55
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:XcrLhOH+WuO24UFulGft1w
    [4.3685]
    [4.3827]
    # Created by DBIx::Class::Schema::Loader v0.04999_06 @ 2009-10-21 17:40:21
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:XnlHCaAVSobU9lrUhuViXQ
  • replacement in src/lib/Hydra/Schema/SystemTypes.pm at line 24
    [4.2105][3.2420:2565]()
    # Created by DBIx::Class::Schema::Loader v0.04999_06 @ 2009-10-21 14:17:55
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:X1voxjTNUQrn04o0zyVZ+w
    [4.2105]
    [4.2247]
    # Created by DBIx::Class::Schema::Loader v0.04999_06 @ 2009-10-21 17:40:21
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:Qb9hjYs3pwR/hv9ds0lbuQ
  • replacement in src/lib/Hydra/Schema/UserRoles.pm at line 31
    [4.3736][3.2566:2711]()
    # Created by DBIx::Class::Schema::Loader v0.04999_06 @ 2009-10-21 14:17:55
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:hbm45HCbdLU4emCiCC5gyA
    [4.3736]
    [4.3878]
    # Created by DBIx::Class::Schema::Loader v0.04999_06 @ 2009-10-21 17:40:21
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:Jte1GUXzt62VhfWrdefJow
  • replacement in src/lib/Hydra/Schema/Users.pm at line 53
    [4.3782][3.2824:2969]()
    # Created by DBIx::Class::Schema::Loader v0.04999_06 @ 2009-10-21 14:17:55
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:4Lj9iNcQhOG5VzUXkQFzkg
    [4.3782]
    [4.3924]
    # Created by DBIx::Class::Schema::Loader v0.04999_06 @ 2009-10-21 17:40:21
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:lcMVy+i3xmpHO4TYQYXG4Q
  • replacement in src/lib/Hydra/Schema/ViewJobs.pm at line 69
    [4.6070][3.2970:3115]()
    # Created by DBIx::Class::Schema::Loader v0.04999_06 @ 2009-10-21 14:17:55
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:63nUKTtC6XdTSawDvU+oFg
    [4.6070]
    [4.6212]
    # Created by DBIx::Class::Schema::Loader v0.04999_06 @ 2009-10-21 17:40:21
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:new5Scb0JMcSyamjKPL2BA
  • replacement in src/lib/Hydra/Schema/Views.pm at line 45
    [4.7142][3.3116:3261]()
    # Created by DBIx::Class::Schema::Loader v0.04999_06 @ 2009-10-21 14:17:55
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:+x+gzFpHSZzVMlsjMn47UA
    [4.7142]
    [4.7284]
    # Created by DBIx::Class::Schema::Loader v0.04999_06 @ 2009-10-21 17:40:21
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:HzIM+PxhyBLfCX6N5zFEIw
  • replacement in src/lib/Hydra/Schema.pm at line 11
    [4.6498][3.3262:3407]()
    # Created by DBIx::Class::Schema::Loader v0.04999_06 @ 2009-10-21 14:17:55
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:Fs+amiko3zHOhK97IatSgQ
    [4.6498]
    [4.6640]
    # Created by DBIx::Class::Schema::Loader v0.04999_06 @ 2009-10-21 17:40:21
    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:yd1F1Xb8MbehV6bTP6wEGQ
  • edit in src/root/navbar.tt at line 52
    [4.16591]
    [4.16591]
    uri = c.uri_for(c.controller('Project').action_for('releases'), [project.name])
    title = "Releases" %]
    [% INCLUDE makeLink
  • edit in src/root/project.tt at line 101
    [4.4594][4.2672:2673](),[4.2672][4.2672:2673]()
  • file addition: releases.tt (----------)
    [65.1486]
    [% WRAPPER layout.tt title="Releases for Project ‘$project.name’" %]
    [% PROCESS common.tt %]
    [% USE HTML %]
    <h1>Releases for Project <tt>[% project.name %]</tt></h1>
    [% IF c.user_exists %]
    <p>
    [<a href="[% c.uri_for('/project' project.name 'releases' 'create') %]">Create a release</a>]
    </p>
    [% END %]
    [% IF releases.size == 0 %]
    <p><em>This project has no releases yet.</em></p>
    [% ELSE %]
    <ul>
    [% FOREACH release IN releases %]
    <li><tt>[% release.name %]</tt></li>
    [% END %]
    </ul>
    [% END %]
    [% END %]
  • edit in src/sql/hydra.sql at line 345
    [4.13513]
    [67.2209]
    -- A release is a named set of builds. The ReleaseMembers table lists
    -- the builds that constitute each release.
    create table Releases (
    project text not null,
    name text not null,
  • edit in src/sql/hydra.sql at line 353
    [67.2210]
    [67.2210]
    timestamp integer not null,
  • edit in src/sql/hydra.sql at line 355
    [67.2211]
    [67.2211]
    description text,
    primary key (project, name),
    foreign key (project) references Projects(name) on delete cascade
    );
    create table ReleaseMembers (
    project text not null,
    release_ text not null,
    build integer not null,
    description text,
    primary key (project, release_, build),
    foreign key (project) references Projects(name) on delete cascade on update cascade,
    foreign key (project, release_) references Releases(project, name) on delete cascade on update cascade,
    foreign key (build) references Builds(id)
    );