arriero - simplifies management of several Debian packages
arriero [--config FILE] [--verbose]
[--quiet] command [options] [package
names]
Arriero is a tool that allows simplifying the management of Debian packages,
particularly useful when having to make new upstream releases, builds and
uploads of similar packages. It relies heavily in the use of
git-buildpackage and general
git practices, so it's only useful
for packages currently maintained through git.
-
-c,--config FILE
- Specifies the location of the config file to use. The
config file holds all information related to packages. It's recommended to
have different config files in order to work with different groups of
packages.
If not specified, the default config file ~/.config/arriero.conf is
read.
-
-v, --verbose
- Show info and debug messages. By default, only warnings and
errors are shown.
-
-q, --quiet
- Only show critical errors. If both quiet and
verbose are specified, verbose is honored.
-
-a, --all
- Work with all packages. When this option is not specified,
package names need to be specified following the command option, separated
by spaces.
The main action that arriero will perform is determined by the command it
receives. Each command may have its own specific options, that modify its
behavior.
build
Build each package in a pbuilder. This will call
git-pbuilder which will
read local configurations from
/etc/pbuilderrc and
~/.pbuilderrc.
-
-D, --distribution , --dist
dist-name
- Build the package for the specified distribution
-
-A, --architecture , --arch
arch-name
- Build the package for the specified architecture
-
-U, --local-upload
- After a successful build is finished, the package is
uploaded, using the upload-command, using local as the host
to upload to.
clone
Obtain the repository for each package. This command can either receive a list
of package names or a git URL to clone from. When specifying a URL, it will
create a new entry in the configuration file; if specifying a package name, it
needs to already be present in the configuration.
- --basedir
- The base directory in which to create the clone. After
making the clone successfully, the package will be located in
basedir/package_name
- --upstream-branch
- The branch where the upstream code is located.
- --debian-branch
- The branch where the Debian code is located.
When performing a clone from a URL, if the branches are not manually
specified, arriero will try to guess their names, and store the guessed
names in the configuration file.
exec
Execute one or more scripts for each package. The scripts invoked will receive
the properties of the packages as environment variables, and will be executed
inside the package directory.
-
-x, --script script_name
- The name of the script to be executed. This option can be
present multiple times. In that case, each script will be called, in the
same order as presented in the command line. If one of the scripts fails
for a certain package, the following ones will not be executed for that
package
fetch-upstream
Fetch the current upstream tarball for each package.
list
List packages matching some criteria, with a specific format. This command
allows specifying the desired format with which each package is going to be
displayed.
-
-f, --fields field_list
- Fields to include while generating the list. The list of
fields should be comma separated. The fields available are:
- basedir
- branch
- build_file
- changes_file
- debian_branch
- depends
- distribution
- export_dir
- is_dfsg
- is_native
- is_merged
- name
- path
- pristine_tar_branch
- tarball_dir
- upstream_branch
- upstream_version
- vcs_git
- version
-
-F, --format field_format
- The format to use may include fields by name or order, as
specified in the --fields parameter.
-
-e, --include-empty-results
- By default, results where nothing would be listed are
skipped, if this option is specified, they will be shown even when there
is no string to show.
overlay
Combine upstream and debian branches into either the original debian branch, or
a new branch. This command is intended to be used when the debian branch
doesn't include the upstream code and the user needs to have them together in
order to work on the package (for example, to create a quilt package).
Important: this command does not handle cleaning up the branch after
the work is done. This has to be done manually by the user.
-
-b, --branch branch-name
- The name of the new branch to create with the overlay. If
specified and the branch already exists, the command will fail without
modifying anything. If not specified, the debian branch for the package
will be used.
pull
Obtain any new changes from the packages' repositories.
push
Push local changes to the packages' repositories.
release
Change the distribution in the changelog, committing the change to the local
git. This command only has effect if the distribution in the changelog is
either UNRELEASED or different than the one passed here.
-
-D,--distribution
distribution-name
- The distribution to make the release to.
-
-P,--pre-release
- If this option is received, the release will contain a ~
after the debian version. The number after the ~ will get incremented each
time the release command is called. This allows for maitainers to keep
track of internal tests until it's time to actually release the package.
If this option is not passed, but the version in the changelog was already a
pre-release (i.e. it contained a ~), the it's modified to be a final
release (without ~)
status
Show the status of each package. This command checks both the repository state
(by using git to query any local/remote changes) and the upstream state (by
using uscan)
update
Get the new upstream release for each package. This command not only downloads
the new upstream tarball, but also updates the debian/changelog with a new
entry for the new release, with distribution set to UNRELEASED.
upload
Upload each package. This command uses the upload-command set in the config file
to upload each built package (packages that have not been built are ignored).
Maximiliano Curia <
[email protected]>, Margarita Manterola
<
[email protected]>