Skip to content

Latest commit

 

History

History
210 lines (157 loc) · 6.67 KB

tito.props.5.asciidoc

File metadata and controls

210 lines (157 loc) · 6.67 KB

tito.props(5)

NAME

tito.props - Settings file for whole git repository with multiple packages. build.py.props - Setting file in package directory, which override values in tito.props

SYNOPSIS

None

DESCRIPTION

Project settings can be stored in files:

GITROOT/rel-eng/tito.props

GITROOT/SOME/PACKAGE/tito.props

The global rel-eng/tito.props is generally where settings are defined. For some multi-project git repositories, individual packages can override these settings by placing a tito.props in the project directory. (i.e. same location as it’s .spec file)

SECTIONS

tito.props can contain several sections:

GLOBALCONFIG

This section is mandatory. At least in tito.props as you need to specify default builder and tagger for you project. You can use following variables:

default_builder

The fully qualified Builder class implementation to use. You can either specify builders shipped with Tito (see BUILDERS section below), or a custom builder located within the directory your lib_dir option points to.

default_tagger

The fully qualified Tagger class implementation to use. You can either specify builders shipped with Tito (see TAGGERS section below), or a custom builder located within the directory your lib_dir option points to.

lib_dir

Optional property defining a directory to be added to the Python path when executing tito. Allows you to store custom implementations of Builder, Tagger, and Releaser.

builder

This option is used in project specific tito.props only, and allows that project to override the default_builder defined in rel-eng/tito.props.

tagger

This option is used in project specific tito.props only, and allows that project to override the default_tagger defined in rel-eng/tito.props.

changelog_format

This option is used to control the formatting of entries when generating changelog entries. The default value is "%s (%ae)". See PRETTY FORMATS in git-log(1) for more information.

changelog_with_email

If set to 0, then entries in changelog (subject of commits) are not followed by email of commiter. Default is 1. This option is deprecated and provided for backwards-compatibility only. New configurations should consider changelog_format instead.

changelog_do_not_remove_cherrypick

If set to 0, it will not remove from cherry picked commits the part "(cherry picked from commit …​)"

tag_suffix

An optional specification of a suffix to append to all tags created by tito for this repo. Can be useful for situations where one git repository is inheriting from another, but tags are created in both. The suffix will be an indicator as to which repo the tag originated in. (i.e. tag_suffix = -mysuffix)

KOJI

Warning
very experimental, and not tested against Fedora’s Koji.
autobuild_tags

If you use --koji-relase it will try to build src.rpm package in specified tags in koji. Also see KOJI_OPTIONS in titorc(5). You can specify section which is named as the tag and put there following options:

disttag

Dist tag variable, which is passed to rpmbuild for packages build in this tag.

blacklist

Space separated list of packages, which should not be built in this tag.

CVS

cvsroot

Root of your CVS repository. (i.e. cvsroot = :ext:myuser@cvs.fedoraproject.org:/cvs/extra)

branches

CVS branches to sync sources to, and build from. If you use zStreamTagger for EUS builds, use the format branches = BASE/EUS-VARIANT for example: branches = RHEL-6/RHEL-6_1-Z This will run "make zstreams" in BASE directory and will then use EUS-VARIANT branch.

REQUIREMENTS

tito

If tito is older then specified version, it will refuse to continue.

TAGCONFIG

require_package

Comma separated list of packages, which needs to be installed prior tagging. If those packages are not installed, tito will refuse to continue.

BUILDERS

tito.builder.Builder

Basic package builder. It create tar.gz of whole directory and create src.rpm and build rpm using some supported method.

tito.builder.NoTgzBuilder

Builder for packages that do not require the creation of tarball. Usually these package have source files checked directly into git.

tito.builder.CvsBuilder

Builder for packages whose sources are managed in dist-cvs/Fedora-cvs.

tito.builder.UpstreamBuilder

Builder for packages that are based off an upstream git tag. Commits applied in downstream git become patches applied to the upstream tarball. For example - you are building package foo-1.2-3…​ Tar.gz file is created from commit, which is tagged by foo-1.2-1 and the diff between release 1 and 3 is put in spec file as Patch0.

tito.builder.GemBuilder

Builder for packages that list a .gem as Source0, the .gemspec shares a directory hierarchy with the .spec file and the upstream does not want to check .gem files into their git repository.

tito.distributionbuilder.DistributionBuilder

Behave similar as tito.builder.UpstreamBuilder, but patch is created for every release. Therefore package from previous example will end up with tar.gz file created from tag foo-1.2-1 and with Patch0: foo-1.2-1-to-foo-1.2-2.patch Patch1: foo-1.2-1-to-foo-1.2-3.patch

TAGGERS

All taggers which inherit fom tito.tagger.VersionTagger (all to this date), will update file GITROOT/rel-eng/packages/name-of-package and put there one line which consist of version-release of package, space delimiter, path to package directory relative to GITROOT.

tito.tagger.VersionTagger

Standard tagger class, used for tagging packages build from source in git. Releaase will be tagged by incrementing the package version, and the actual "Release" will be always set to 1.

tito.tagger.ReleaseTagger

Keep version and increment release.

tito.zstreamtagger.zStreamTagger

Tagger which increments zstream number in release. I.e. x.y.z-r%{dist}.Z+1 It is used for EUS packages.

tito.rheltagger.RHELTagger

Tagger which is based on ReleaseTagger and uses Red Hat Enterprise Linux changelog format:

  • Resolves: #1111 - description

  • Related: #1111 - description

EXAMPLE

[globalconfig]
default_builder = tito.builder.Builder
default_tagger = spacewalk.releng.tagger.VersionTagger
[koji]
autobuild_tags = dist-5E-sw-1.2-candidate dist-f12-sw-1.2-candidate dist-f13-sw-1.2-candidate
[dist-5E-sw-1.2-candidate]
disttag = .el5
[dist-f12-sw-1.2-candidate]
disttag = .fc12
blacklist=jabberd-selinux
[dist-f13-sw-1.2-candidate]
disttag = .fc13
blacklist=jabberd-selinux
[cvs]
cvsroot = :gserver:your.dist-cvs.server.com:/cvs/dist
branches = SATELLITE-5_4-RHEL-5
[requirements]
tito=0.3.0

SEE ALSO

tito(8) titorc(5)

AUTHORS