English version

All person who have done a number of reviews to allow RPM package to enter the fedora repositories know that it is a pretty repetitive process.

The proof is that a number of person have tried to write tool to automate some/most of the review process. I'm just thinking of:

One of the missing point from these tools was the fact that the test performed are written in one single language, while python guys like to work in python, perl guys would prefer to run their tests in perl, php guys in php and so on. Also, quite sometime these tests are actually written more for a specific type of package (C/C++, Java, R, perl...) while we would need a more generic solution.

So recently, few of us decided that we really should do something about it.

We started from the work of Tim Lauridsen on FedoraReview. We used this as a basis and decided to enhance it.

The whole project is now located on http://fedorahosted.org/FedoraReview and we have (among other):

  • Enhance the number of checks run by the tool
  • Allow language specific tests to override a generic test (for example, in R, if the package if in one of the major repositories, one can check if it is the latest version of the package which is present there)
  • Allow checks to be written in any executable language (we now have an example of this type of plugin written in perl)

This is in addition of what was already there:

  • Integration with bugzilla
  • Integration with mock

For now on what we would like is:

  • Testers to report us bugs
  • Testers to make feature request
  • More testers
  • Potential contributors to help us develop more plugin and check (remember you can do that in any executable language you want!)
  • More testers (did I say that already?)

Please have a look, test it, complain to us and come to help us improve it!


Want more reading? See Stanislav's blog

Want to see how it looks like?

$ fedora-review -b 678809
Processing review bug : 678809
Getting .spec and .srpm Urls from bug report : 678809
Downloading .spec and .srpm files
Building ./678809/seeks-0.4.0-0.5.RC2.fc17.src.rpm using mock fedora-rawhide-i386
INFO: mock.py version 1.1.17 starting...
State Changed: init plugins
INFO: selinux enabled
State Changed: start
INFO: Start(./678809/seeks-0.4.0-0.5.RC2.fc17.src.rpm)  Config(fedora-rawhide-i386)
State Changed: lock buildroot
State Changed: clean
INFO: chroot (/var/lib/mock/fedora-rawhide-i386) unlocked and deleted
[... mock output ...]
Build completed ok
Downloading (Source0): http://downloads.sourceforge.net/seeks/solo/seeks-0.4.0-RC2.tar.gz
No upstream for (Source2): seeks.logrotate
No upstream for (Source1): seeks.service
Running checks and generate report
Checking source md5 : /home/pingou/FedoraReview/src/678809/seeks-0.4.0-RC2.tar.gz
Review in: ./678809/seeks-review.txt

And the output:

Package Review
==============

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

==== C/C++ ====
[x]: MUST Header files in -devel subpackage, if present.
[x]: MUST ldconfig called in %post and %postun if required.
[x]: MUST Package does not contain any libtool archives (.la)
[ ]: MUST Package does not contains kernel modules.

[...]

==== Generic ====
[ ]: MUST Package is licensed with an open-source compatible license and meets other legal requirements as defined in the legal section of Packaging Guidelines.
[x]: MUST Package successfully compiles and builds into binary rpms on at least one supported architecture.
[x]: MUST All build dependencies are listed in BuildRequires, except for any that are listed in the exceptions section of Packaging Guidelines.
[ ]: MUST Package contains no bundled libraries.
[ ]: MUST Changelog in prescribed format.

...

Feel free to drop by #fedora-review with you suggestions/complains