Factory workflow plugins
========================

image:https://travis-ci.org/openSUSE/osc-plugin-factory.png?branch=master["Build Status", link="https://travis-ci.org/openSUSE/osc-plugin-factory"] image:https://coveralls.io/repos/openSUSE/osc-plugin-factory/badge.png?branch=master["Coverage Status", link="https://coveralls.io/r/openSUSE/osc-plugin-factory"]

This repository contains various OSC plugins and scripts used for the
maintenance of openSUSE distributions like Factory.

Scripts
-------

* *link:docs/staging.asciidoc[Staging].* Plugin used to manage the
   different staging projects and to assign different group of
   packages (requests) to different staging projects.

* *link:docs/checkrepo.asciidoc[CheckRepo].* This OSC plugin check
   continuously for usual mistakes or problems in requests like, for
   example, new dependency cycles or errors in the binary RPM.

* *link:docs/checksource.asciidoc[CheckSource].* This plugin checks for usual
   mistakes and problems in the source packages submitted by the users.

* *link:docs/totest.asciidoc[ToTest].* A plugin that checks if Factory is ready
   to be released as Tumbleweed.

* *link:docs/checkdups.asciidoc[CheckDups].* Plugin to detect
   superseded or duplicated requests.

* *link:docs/factory-source.asciidoc[factory-source].* script that checks if the
   submitted sources of a request are already accepted in Factory

* *link:docs/maintbot.asciidoc[maintbot].* script that checks maintenance
  incidents to make sure the Factory maintainer submitted the package.

* *link:checknewer[checknewer].* script compares version numbers in repos to
  make sure all packages e.g. in a new distro are newer

Installation
------------

Clone this repository:

-------------------------------------------------------------------------------
git clone https://github.com/openSUSE/osc-plugin-factory.git
-------------------------------------------------------------------------------

Create links for the different plugins that you want to install in
+~/.osc-plugins+ or +/var/lib/osc-plugins+.  For example, to install
the staging plugin:

-------------------------------------------------------------------------------
cd osc-plugin-factory
ln -sr ./osc-staging.py ./osclib ~/.osc-plugins
-------------------------------------------------------------------------------

Now you are done and all that is left is start using plugin, see help
in regards of what you can do:

-------------------------------------------------------------------------------
osc help staging
-------------------------------------------------------------------------------

or

-------------------------------------------------------------------------------
osc staging --help
-------------------------------------------------------------------------------


Testing
-------

Covering all functionality with test suite is currently work in
progress. In general new functionality should be covered by tests in
order to make sure we don't break it in future. Before refactoring,
functions has to be covered by tests as well to ensure we don't break
them.

How to work with test suite is better described in
link:docs/testing.asciidoc[testing] file in link:docs[docs] directory.
