tatt is an arch testing tool
Python Roff Shell
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
scripts
tatt-tests
tatt
templates
.gitignore
COPYING
README.md
dave-script.sh
setup.py
tatt.1
tatt.5

README.md

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/gentoo/tatt

Ways to use tatt

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

Work on multiple packages

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.

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.

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

  • 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

# 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"

# directory where logs of failed builds will be stored
# the exact name of the log will be shown in the report file
# buildlogdir="./tatt/logs"