From Fedora Project Wiki

Revision as of 04:21, 20 January 2009 by Cweyl (talk | contribs) (→‎Submitting)

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

Warning.png
reviewtool is under active development!
reviewtool is under active development, and as such, is liable and likely to change significantly before it GA's. While it's not likely to file a zillion bugs or kick off a thousand koji scratch builds, if it breaks, you get to keep all the pieces.

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.conf will enable you to use yum. Note this 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

You may also want to install this update.

Configuring

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 :-)