1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
tatt (is an) arch testing tool
Introduction
============
Arch testing includes many boring tasks and tatt tries to automate
them. It can be configured through the file ~/.tatt, an example is
given below.
tatt uses a template system. Basically it fills in small bash scripts
using data scraped off bugzilla. You can look at the default
templates which live in /usr/share/tatt/templates/
tatt uses 'bugz' from www-client/pybugz. You may want to configure an
alias for 'bugz' to contain your login-credentials or you will have to
type them everytime you use tatt.
tatt lives on github. Forks and pull requests are welcome:
https://github.com/tom111/tatt
Ways to use tatt
================
1) Work on a stable bug no 300000. This will unmask the package and
create five shell scripts. One is for automated testing of USE-flag
combinations, one is for testing of reverse dependencies, one is for
committing the new keywords to CVS, one is for leaving a message on
the bug, and finally one is for cleaning up.
tatt -b300000 -j myjob
-j specifies a jobname which will be a prefix for the scripts that
tatt produces, if it is left empty the bugnumber will be used
2) If a whole list of packages should be tested, they can be specified
in a file
tatt -f myPackageFile -b bugnumber
This will open the file myPackageFile, look for all atoms in it, and
write scripts that test/commit all packages. If -j is omitted the
filename is used. The bugnumber is necessary for the commit script.
3) Resolving a bug
Assume everything was committed and we want to resolve the bug.
tatt -r bugnum -m "x86 stable, Thanks xyz"
removes your arch from the CC field of the bug and adds the message.
tatt -cr bugnum -m "x86 stable, Thanks, closing"
Does the things -r does and additionally closes the bug.
4) Running individual parts of tatt.
-) Open a bug and leave a message (for instance after successfull
testing)
tatt -s300000
-) Create only the test script for reverse dependencies of foo:
tatt -d app-bar/foo
-) Create only the USE-flag testing script of foo
tatt -u app-bar/foo
4) Show help
tatt -h
* Configuring tatt via ~/.tatt
The specification of the configuration file can be found in dot-tatt-spec which usually resides
/usr/lib/${python}/site-packages/tatt
####### EXAMPLE ~/.tatt ############
# Here we show the possible options together with their default values
# Regular expression to identify a portage atom
# atom-regexp='=?[^\s:,;<>]+/\S+-[0-9]?\S+[0-9][^\s:,;<>]?[a-z]*'
# Message for the success script @@ARCH@@ will be replaced by arch
# successmessage='Archtested on @@ARCH@@: Everything fine'
# ignoreprefix contains a list of use flag prefixes to be ignored
# ignoreprefix="elibc_","video_cards_","linguas_","python_targets_","python_single_target_","kdeenablefinal","test","debug"
# The arch you are working on (be careful, only tested with x86)
# arch=x86
# Directory where your script templates are (normally you don't need
# to change this)
# template-dir="/usr/share/tatt/templates/"
# Where do you want tatt to put unmasked packages.
# unmaskfile="/etc/portage/package.keywords/archtest"
# You can customize the maximal number of rdeps to be tested as follows:
# rdeps=3
# You can customize the maximal number USE combis to be tested as follows:
# usecombis=3
# Note that All USE-flags on and all USE-flags off will always be tested.
# Location of a checked out CVS Gentoo tree for repoman checks and commit scripts
# repodir="./gentoo-x86"
# Url where the pre-generated rindex is to be found
# tinderbox-url="http://qa-reports.gentoo.org/output/genrdeps/rindex/"
# If this is set, then tatt will refuse to run in a directory that does not
# match this string. Use it as a safety measure against creating tatt-scripts
# in random places of you filesystem
# safedir=string(default="")
# All emerge runs in the generated scripts are automatically passed
# the -1 option. Here you can specify additional options.
# emergeopts="-v"
|