ReviewTool

ReviewTool is a script designed to help with submitting and reviewing packages... It leverages the standard infrastructure tools (e.g., Koji, Bugzilla, fedorapeople.org) completely from one's own laptop, using no different or additional access to any to any tool than your id has.

It does NOT attempt to magically do the review for you, nor does it autogenerate spec files. It does, however, attempt to take the pain out of various routine bits of the process that goes into submitting and reviewing packages.

Installing reviewtool
Almost all of the prereqs for reviewtool are in Fedora, but review tool itself is not. You can install it by either downloading the packages manually, or letting yum hash it all out for you. There is a temporary development repository set up at http://fedorapeople.org/~cweyl/reviewtool/.

Installing the following as /etc/yum.repo.d/reviewtool.repo will enable you to use yum to automagically resolve any dependencies that haven't yet been installed on your system. Note that this development repository will go away as soon as everything is in Fedora proper.

[reviewtool] name=reviewtool temp devel repo baseurl=http://fedorapeople.org/~cweyl/reviewtool/ enabled=1 gpgcheck=0

After this repo file is in place, installing is a simple matter of:

[root@athena ~]# yum install reviewtool

review space
Login at fedorapeople.org, and make sure ~/public_html/review/ exists. Right now reviewtool only supports posting to your space on fedorapeople.org.

local configuration
Create a ~/.reviewtool.ini as:

[bugzilla] userid=my@email.address.com passwd=XXXXX

Alternatively, run "reviewtool setup". This will prompt you and write out a config file.

Or, don't do anything. reviewtool will prompt you when it needs ids and passwords, looking at your ~/.fedora.cert to try to guess some defaults.

Submitting Packages for Review

 * 1) Writing a spec file and creating a package
 * 2) Submitting a package for review
 * 3) Updating that review ticket (e.g. with a new spec/srpm/scratch when a revision has been made)
 * 4) Requesting branches be created
 * 5) Closing the review ticket

We handle everything except for #1.

Status
[cweyl@athena bin]$ time ./reviewtool status Retrieving status from bugzilla....

Fetching bugzilla data: 100% [===================================]D 0h00m05s

.+---+---+-. ++---+---+-+ '+---+---+-'
 * Bug   | R | C | Name                                                    |
 * 479218 | * | * | perl-DateTime-Format-Flexible                          |
 * |  |   |   NEW; last changed: 2009-01-08T00:57:33                |
 * |  |   |   R: cweyl@alumni.drew.edu                              |
 * |  |   |   A: nobody@fedoraproject.org                           |
 * 479223 | * | * | perl-DateTime-Format-DateParse                         |
 * |  |   |   NEW; last changed: 2009-01-08T00:59:54                |
 * |  |   |   R: cweyl@alumni.drew.edu                              |
 * |  |   |   A: nobody@fedoraproject.org                           |
 * 473723 | ? | * | perl-Eval-Context                                      |
 * |  |   |   ASSIGNED; last changed: 2009-01-09T00:00:11           |
 * |  |   |   R: cweyl@alumni.drew.edu                              |
 * |  |   |   A: wolfy@nobugconsulting.ro                           |
 * 478780 | + | + | perl-MooseX-Traits-Attribute-CascadeClear              |
 * |  |   |   ASSIGNED; last changed: 2009-01-09T00:58:15           |
 * |  |   |   R: cweyl@alumni.drew.edu                              |
 * |  |   |   A: panemade@gmail.com                                 |

In the above table, columns R and C are the settings of flags: fedora-review and fedora-cvs, respectively.

Submitting
[cweyl@athena bin]$ ./reviewtool submit perl-DateTime-Format-DateParse-0.04-1.fc10.src.rpm Working on: (1 of 1) perl-DateTime-Format-DateParse-0.04-1.fc10.src.rpm Searching bugzilla; this may take some time... No existing review bug for perl-DateTime-Format-DateParse. Starting koji scratch build. ...this may take some time. We started at 2009-01-08T05:56:44 Running koji build -- this may take some time Koji build done; we took 2 minutes, 46 seconds.

Pushing package and spec to fedorapeople... perl-DateTime-Format-DateParse-0.04-1.fc10.sr 100%  17KB  17.4KB/s   00:00 perl-DateTime-Format-DateParse.spec          100% 1627     1.6KB/s   00:00 ...done.

Pkg:     perl-DateTime-Format-DateParse Summary: Parse Date::Parse compatible formats SRPM:    perl-DateTime-Format-DateParse-0.04-1.fc10.src.rpm

// Begin request tix body ////////////////////////////////////////////// Spec URL: http://fedorapeople.org/~cweyl/review/perl-DateTime-Format-DateParse.spec SRPM URL: http://fedorapeople.org/~cweyl/review/perl-DateTime-Format-DateParse-0.04-1.fc10.src.rpm

Description: This module is a DateTime compatibility wrapper around Date::Parse; it allows one to easily parse formats Date::Parse recognises for DateTime.

Koji build: http://koji.fedoraproject.org/koji/taskinfo?taskID=1039635

// End request tix body ////////////////////////////////////////////////

Post for review? y Creating bug... ...done.

Review bug for perl-DateTime-Format-DateParse is: 479223

This process:


 * 1) Takes a srpm, and figures out where the spec is, package name, etc from it
 * 2) Checks to make sure there isn't an existing review bug for the package
 * 3) Submits a scratch koji (rawhide) build for the package (unless --no-koji) -- aborts if this fails
 * 4) Pushes the spec and srpm to fedorapeople.org
 * 5) Constructs a review ticket and submits it to Bugzilla

Updating with a new SRPM/SPEC
TODO.

Branching
[cweyl@athena bin]$ ./reviewtool branch Finding our submitted bugs... Found bugs 479218, 473723, 479223.

Checking 479218 (perl-DateTime-Format-Flexible)... 479218 not ready for branching.

Checking 473723 (perl-Eval-Context)... 473723 not ready for branching.

Checking 479223 (perl-DateTime-Format-DateParse)...

Bug:     479223 Summary: Review Request: perl-DateTime-Format-DateParse - Parse Date::Parse compatible formats Status:  ASSIGNED Assignee: wolfy@nobugconsulting.ro

Last comment:

// Begin comment ////////////////////////////////////////////////////// Package Review

=
=

Key: - = N/A x = Check ! = Problem ? = Not evaluated

REQUIRED ITEMS
[x] Package is named according to the Package Naming Guidelines. [x] Spec file name must match the base package %{name}, in the format %{name}.spec. [x] Package meets the Packaging Guidelines including the Perl specific items [.... snip ....] [-] The placement of pkgconfig(.pc) files is correct. [-] File based requires are sane. [+] "make test" passes

=
===
 * APPROVED ***

=
=== // End comment ////////////////////////////////////////////////////////

Branch request:

// Begin ///////////////////////////////////////////// New Package CVS Request

=
========== Package Name: perl-DateTime-Format-DateParse Short Description: Parse Date::Parse compatible formats Owners: cweyl Branches: F-9 F-10 devel InitialCC: perl-sig // End /////////////////////////////////////////////// Post branch request? y

Posting... Posted initial branch request to review bug (BZ#479223).

Closing a completed review
[cweyl@athena bin]$ ./reviewtool close Finding our submitted bugs... Found bugs 479218, 479223, 473723, 478780.

Checking 479218 (perl-DateTime-Format-Flexible)... 479218 not ready to close.

Checking 479223 (perl-DateTime-Format-DateParse)... 479223 not ready to close.

Checking 473723 (perl-Eval-Context)... 473723 not ready to close.

Checking 478780 (perl-MooseX-Traits-Attribute-CascadeClear)... 478780 has been approved, branched, and is ready to close. Close 478780? y 478780 closed.

The close command searches for your submitted review tix that are ready to close (fedora-review and fedora-cvs are both '+'); it then asks if you want to close.

Reviewing Packages
TODO. This is in the works, has been partially implemented, and will probably be completely reimplemented before too long :-)