1TITO(8) Tito User Manual TITO(8)
2
3
4
6 tito - manage RPM based projects using git
7
9 tito init
10
11 tito tag [OPTIONS]
12
13 tito build --test --rpm
14
15 tito build [OPTIONS]
16
17 tito release [OPTIONS] TARGET
18
19 tito report
20
22 After setting up a directory as a Git repo, use tito to manage the tags
23 and builds. A simple workflow may look like:
24
25 1. Save user preferences as described in titorc(5)
26
27 2. Initialize a .tito directory
28
29 3. Test
30
31 1. Make changes to source
32
33 2. Use git to commit changes
34
35 3. Build: tito build --rpm --test
36
37 4. Finalize a release
38
39 1. Tag: tito tag
40
41 2. Push: git push && git push $ORIGIN $TAG
42
43 3. Build: tito build [OPTIONS]
44
46 tito init
47 This will create a top-level metadata directory called ".tito/" and
48 commit it to git. This directory will store tito’s configuration and
49 package metadata on a per branch basis. It will be filtered out when
50 creating .tar.gz’s.
51
52 Note
53 Your spec file should list the source as %{name}-%{version}.tar.gz
54
55 tito tag [options]
56 By default, tito will tag by bumping the rpm version (i.e. we bump the
57 Z in X.Y.Z). If you’d prefer to bump the package release instead
58 (normally should just be used for changes to the spec file or patches
59 applied within it), you can change the tagger class in .tito/tito.props
60 to ReleaseTagger. This will affect all packages in this git branch; if
61 you’d prefer to do this on a per-package basis you can do so in a
62 package specific tito.props.
63
64 If you work in a OBS style git with a separate .changes file for the
65 changelog, change the tagger class to tito.susetagger.SUSETagger. The
66 SUSETagger is based on the VersionTagger.
67
68 -h, --help
69 show this help message and exit
70
71 --debug
72 print debug messages (can be also set using DEBUG environment
73 variable)
74
75 --offline
76 do not attempt any remote communication (avoid using this please)
77
78 -o OUTPUTDIR, --output=OUTPUTDIR
79 Write temp files, tarballs, and RPMs to OUTPUTDIR. Create
80 sub-directories as needed by rpmbuild(8). (default /tmp/tito)
81
82 --tag-release
83 Deprecated, no longer required.
84
85 --keep-version
86 Use spec file version/release exactly as specified in spec file to
87 tag package.
88
89 --use-version=USE_VERSION
90 Update the spec file with the specified version.
91
92 --use-release=USE_RELEASE
93 Update the spec file with the specified release.
94
95 --no-auto-changelog
96 Don’t automatically create a changelog entry for this tag if none
97 is found
98
99 --accept-auto-changelog
100 Automatically accept the generated changelog.
101
102 --auto-changelog-message=MESSAGE
103 Use MESSAGE as the default changelog message for new packages
104
105 --changelog=MESSAGE
106 Use MESSAGE as the changelog when tagging, this can be specified
107 every time a package is tagged. Useful when needing to generate
108 custom changelogs. This will override the auto generated changelog.
109
110 -u, --undo
111 Undo the most recent (un-pushed) tag.
112
113 Note
114 Tito will create automatic changelog from git commits. Unless you
115 specify one of auto options, tito will open text editor and allow
116 you to edit the text. Editor is by default. This can be changes by
117 environment variable EDITOR.
118
119 tito build [options]
120 -h, --help
121 show this help message and exit
122
123 --debug
124 print debug messages (can be also set using DEBUG environment
125 variable)
126
127 --offline
128 do not attempt any remote communication. Avoid using this please.
129 See OFFLINE section below.
130
131 -o OUTPUTDIR, --output=OUTPUTDIR
132 Write temp files, tarballs and RPMs to OUTPUTDIR. (default
133 /tmp/tito)
134
135 --tgz
136 Build .tar.gz
137
138 --srpm
139 Build srpm
140
141 --rpm
142 Build srpm and rpm
143
144 -i, --install
145 Install any binary RPMs being built.
146
147 Warning
148 uses sudo rpm -Uvh --force
149
150 --no-sudo
151 Don’t escalate privileges when installing. Use when running this
152 command with required privileges.
153
154 --dist=DISTTAG
155 Apply DISTTAG to srpm and/or rpm. (e.g., ".el5")
156
157 --test
158 use current branch HEAD instead of latest package tag.
159
160 --no-cleanup
161 do not clean up temporary build directories/files
162
163 --rpmbuild-options=OPTIONS
164 Pass OPTIONS to rpmbuild.
165
166 --builder=BUILDER
167 Override the normal builder by specifying a full class path or one
168 of the pre-configured shortcuts. Only useful if you need to
169 override the default builder for some purpose, such as testing a
170 build via mock.
171
172 --arg=BUILDER_ARGS
173 Custom arguments specific to a particular builder. (key=value)
174
175 --scl=COLLECTION
176 Build package for software collection. This is mostly useful for
177 building src.rpm, because for rpm you want to define this option
178 for specific tag in tito.props
179
180 --quiet
181 Suppress output from the build process.
182
183 --verbose
184 Expose more output from the build process.
185
186 tito release [options] TARGETS
187 Runs the release targets defined in .tito/releasers.conf.
188
189 -h, --help
190 show this help message and exit
191
192 --debug
193 print debug messages (can be also set using DEBUG environment
194 variable)
195
196 --offline
197 do not attempt any remote communication. Avoid using this please.
198 See OFFLINE section below.
199
200 -o OUTPUTDIR, --output=OUTPUTDIR
201 Write temp files, tarballs and RPMs to OUTPUTDIR. (default
202 /tmp/tito)
203
204 --tag=PKGTAG
205 build a specific tag instead of the latest version (e.g.,
206 spacewalk-java-0.4.0-1)
207
208 --dry-run
209 Do not actually commit/push anything during release.
210
211 --no-build
212 Do not perform a brew/koji build, only DistGit commit. (only for
213 Koji/DistGit releasers)
214
215 --all
216 Run all release targets defined in .tito/releasers.conf.
217
218 --list
219 List all release targets defined in .tito/releasers.conf.
220
221 --all-starting-with=ALL_STARTING_WITH
222 Run all release targets starting with the given string. (i.e. if
223 you have defined release targets yum-f15 and yum-f14 in
224 releasers.conf, --all-starting-with=yum will run only these
225 targets, and ignore any others.)
226
227 --scratch
228 Perform a scratch build in Koji. Can be specified using environment
229 variable SCRATCH set to 1 as well.
230
231 --yes
232 Do not ask to confirm release commits or edit their messages.
233
234 tito report [options]
235 Display a report of all packages with differences between HEAD and
236 their most recent tag, as well as a patch for that diff. Used to
237 determine which packages are in need of a rebuild.
238
239 -h, --help
240 show this help message and exit
241
242 --debug
243 print debug messages (can be also set using DEBUG environment
244 variable)
245
246 --offline
247 do not attempt any remote communication. Avoid using this please.
248 See OFFLINE section below.
249
250 -o OUTPUTDIR, --output=OUTPUTDIR
251 Write temp files, tarballs and RPMs to OUTPUTDIR. (default
252 /tmp/tito)
253
254 --untagged-diffs
255 Print out diffs for all packages with changes between their most
256 recent tag and HEAD. Useful for determining which packages are in
257 need of a re-tag.
258
259 --untagged-commits
260 Print out the list for all packages with changes between their most
261 recent tag and HEAD. Useful for determining which packages are in
262 need of a re-tag.
263
265 Offline lets you potentially do builds you can’t reproduce, normally we
266 check that the tag you’re building exists in the remote repo. If it
267 hasn’t been pushed, it’s quite easy to do a build that will result in a
268 checksum that is no longer the same. This is something you should try
269 to avoid.
270
272 Build and install a test package from the latest code in current git
273 HEAD
274 tito build --rpm --test -i
275
276 Overriding the default builder to build via mock instead
277 tito build --builder mock --arg mock=fedora-15-x86_64 --rpm
278
280 titorc(5) releasers.conf(5) tito.props(5)
281
282 /usr/share/doc/tito-*/README.mkd
283
285 Devan Goodwin <dgoodwin@rm-rf.ca>
286
287 James Bowes <jbowes@repl.ca>
288
289 Jan Pazdziora
290
291 Jesus M Rodriguez <jesusr@redhat.com>
292
293 Pall Sigurdsson <palli@opensource.is>
294
295 Miroslav Suchý <msuchy@redhat.com>
296
297 and: Adam Miller, Alex Wood, Aron Parsons, Brenton Leanhardt, Ivan
298 Nečas, John Eckersberg, Kenny MacDermid, Lukáš Zapletal, Luke Meyer,
299 Marian Csontos, Martin Bačovský, Michael Stead, Mike McCune, mscherer,
300 Paul Morgan, Sean P. Kane, Steve Ashcrow Milner
301
302
303
304tito 07/08/2023 TITO(8)