ODCS command line client¶
ODCS provides the odcs
command line client which is provided in Fedora
by odcs-client
package.
In this document, most common use-cases of ODCS client are explained.
Generating compose from Koji tag¶
The most common use-case is generating compose with packages from Koji tag.
For example, you can create compose from epel7
Koji tag with packages
httpd
and mod_perl
including their dependencies:
$ odcs create tag epel7 "httpd mod_perl"
If you do not want to include the dependencies in a resulting compose,
you can use the --flag no_deps
flag. This will also make compose faster.
In case your Koji tag contains unsigned packages, you need to enable composes
with unsigned packages by using --sigkey none
option.
Generating compose with cherry-picked modules¶
ODCS is used quite often to test modules after they are built. You only
need to know NAME:STREAM
, NAME:STREAM:VERSION
or
NAME:STREAM:VERSION:CONTEXT
of the module you want to include in the
compose.
For example, you can create compose with latest version and all contexts of
testmodule:master
, including its modular dependencies:
$ odcs create module testmodule:master
Instead of getting latest version of modules, --modular-tag
option could
be used to getting module and its modular dependencies from the specified
Koji tag.
$ odcs create module testmodule:master --modular-tag testmodule-tag
Again, if the packages in a module are not signed yet, you need to use
--sigkey none
.
In case you do not want the modular dependencies in a compose, you can use
--flag no_deps
.
Note that the platform
module is not treated as modular dependency
and modules generated using create module
sub-commands will not include
RPMs from the virtual platform
module. This is done by design to not
make composes unnecessary big. You can use “hybrid” compose described
later in this doc.
Selecting modules¶
If you specify a name:stream
without specifying a version:context
,
ODCS will query MBS to find the very latest version:context
build. For
example, if you specify go-toolset:rhel8
, ODCS will query MBS for the
latest go-toolset
module build for the rhel8
stream, whereas if you
specify go-toolset:rhel8:8020020200128163444:0ab52eed
, ODCS will compose
that exact module instead.
Generating compose with cherry-picked Koji builds¶
In case you have list of Koji builds in the NVR form, you can use them directly to generate the compose:
$ odcs create build "httpd-2.4.38-2.fc29 mod_perl-2.0.10-13.fc29"
Generating hybrid compose with both modules and bare RPMs¶
TODO
Generating compose with lookaside repositories¶
TODO