Review-o-matic: laying the foundations

From WorkOutWiki2008

Jump to: navigation, search

Contents

Proposer

Debarshi Ray

Purpose

Automate as much of Fedora's package review process as, is reasonably, possible.

Abstract

The Fedora Project is encountering an acute shortage of people with enough time and skill to review packages submitted for review. This has led to an ever-increasing queue of packages, and an inordinate delay in reviewing them.

The task of a reviewer can be broadly classified into two broad categories:

  • Routine checks for Fedora packaging guideline compliance, which can be automated.
  • More in-depth and case-specific checks which need human attention.

We believe that if the first category of tests can be carried out using a tool, it would significantly lessen the burden on the reviewer, which in turn will encourage more people to carry out reviews.

Right now RPM packages are checked for common errors using rpmlint. However there is a need for automating some checks which do not fall under the purview of a conventional lint tool. eg., verifying that the tarball in the source RPM is actually the upstream tarball, submitting the package to Fedora's build system to ensure successful builds on as many architectures and supported branches as possible, name conflicts with other packages in Fedora's repository, etc..

Seasoned reviewers have been using their personal scripts to implement some of this automation. eg., fedora-qa. These scripts can serve as viable prototypes to base a full-blown and matured tool.

Pre-requisites

Languages, tools to be known

  • Python. A very large chunk of the Fedora infrastructure is written in Python, and it is easy to learn and quite powerful once you know how to use it. Go through the documentation if you do not know the language and want to learn it. It would not take much time. Good programmers would need less than a week.
  • Although not necessary, being a Fedora Package Collection Maintainer is recommended. If you are not one, please consider joining the team.

Getting and compiling the code

Review-o-matic will be hosted on fedorahosted.org.

Links to overall design/architecture

We are in the process of writing a Developer's guide.

Orcan Ogetbil has drafted a list of guidelines for which we may need to implement checks in Review-O-Matic.

Pre-event planning

Tasks

Existing work

Only some proof of concept work has been done till now. You can look at the existing sources here: https://fedorahosted.org/review-o-matic/browser.

Getting in touch

Use the review-o-matic@lists.fedorahosted.org mailing list to get in touch with us.

Progress

  • Rakesh Pandit - Trying to interface with rpm wrappers for python to check how spec files can be parsed.
  • Debarshi Ray - Designing Srpm class (patch), SrpmCheck class (patch)
  • Pradeep - Working on Check for Pkg Naming Guideline

The stage is now set to implement the following checkers loosely corresponding to the entries in the list:

  • GroupCheck - Group tag must make sense.
  • LangCheck - The spec file must be written in American English
  • FileDupCheck - A package must not contain any duplicate files in the %files listing.

Info

  • The rpmlint spec file parsing is useless - it mixes checks and parsing :(
  • Srpm and Spec classes are being written
https://fedorahosted.org/review-o-matic/browser <-- Patches are getting upstream and discussion is also on in mailing list.

Participants

Personal tools