fedora-review: Tools to helpe review packages for inclusion in Fedora --------------------------------------------------------------------- This tool automates much of the dirty work when reviewing a package for the Fedora Package Collection. Like: - Downloading SRPM & SPEC from Bugzilla report - Download upstream source - Check md5sums - Run rpmlint - Generate review report will both manual & automated checks, ready to complete and paste into the Bugzilla report. fedora-review is still under heavy development. Contacts -------- * IRC: #fedora-review @ freenode * Mailing list: fedorareview@lists.fedorahosted.org Requirements ------------ * Python * rpm & yum * mock * editor * python-bugzilla * fedora-packager * python-straight-plugin * python-kitchen * python-BeautifulSoup * rpmdevtools The mock requirement is not hard, it's possible to use fedora-review without mock when always using the --prebuilt/-p option. This means that packages must be built using other tools e. g., koji. Generally, installing without mock is not recommended. Download -------- Install git and run the command below to clone the source: git clone http://git.fedorahosted.org/git/FedoraReview.git Alternative repository for users wishing to use github: git clone git://github.com/timlau/FedoraReview.git Usage ----- See nroff -man fedora-review.1 | more License ------- fedora-review is licensed under GPLv2+, for more details check COPYING. Create a language plugin ------------------------ To create a plugin of checks, create a file in src/reviewtools/checks. All the files in this folder are automatically loaded. Your class should inherit from the class `LangCheckBase`. You may want to create a Base class for your own language. Then each tests is a class. This class has a __init__ method with predefine information (such as the link to the guidelines and the text to be printed) and a run method which is what is actually performing the test. For your test to be taken into account, the class should have - 'Check' (case sensitive) in its name - *Not* end with 'Base' (this is reserved for parent class which don't actually run tests). - The result of the test should be set using the self.set_passed(): None == na 'inconclusive' == pending True == passed False == failed The file plugin.tmpl shows the basic structure/idea and implement an example test. External plugins ---------------- It is also possible to create plugins in different languages than Python. See api/README for details