Build Status Coverage Status openSUSE Tumbleweed package


Rethink release tooling presentation overview

Everything denoted with a cloud is largely in this repository while the rest is the open-build-service (OBS).


For non-development usage just install the package.

zypper in openSUSE-release-tools

Many sub-packages are provided which can be found either by searching or looking on the build service.

zypper se openSUSE-release-tools osc-plugin

If CI builds are needed add the appropriate openSUSE:Tools repository.


All tools provide help documentation accessible via --help.

For osc plugins include the plugin name after osc like the following.

osc staging --help

For other tools execute the tool directly.

osrt-repo-checker --help

See the docs directory or a specific tool directory for specific tool documentation outside of --help. The wiki also contains some additional documentation.


git clone

If working on an osc plugin create symlinks for the plugin and osclib in either ~/.osc-plugins or /usr/lib/osc-plugins. For example to install the staging plugin do the following.

ln -sr ./ ./osclib ~/.osc-plugins

It can also be useful to work against a development copy of osc either to utilize new features or to debug/fix functionality. To do so one must place the development copy in the path to be loaded and utilize the wrapper script if working on osc plugins. One method to accomplish this is shown below.

# outside of openSUSE-release-tools checkout
git clone git clone

# inside openSUSE-release-tools checkout
# note the ending /osc which points to the osc directory within the checkout
ln -s /path/to/osc/osc ./

# to utilize the wrapper for working on osc plugins from osrt checkout
$(realpath ./osc)/../ --version

A containerized OBS can be started via one command. The default credentials are Admin and opensuse on


An osc alias is automatically configured as local.

osc -A local api /about

A facsimile of openSUSE:Factory in the form of a subset of the related data can be quickly created in a local OBS instance using the obs_clone tool.

./ --debug --apiurl-target local

Some tests will attempt to run against the local OBS, but not all.