Daily Development using Archery

To ease some of the daily development tasks, we developed a Python-written utility called Archery.

Installation

Archery requires Python 3.5 or later. It is recommended to install archery in editable mode with the -e flag to automatically update the intallation when pulling the Arrow repository.

pip install -e dev/archery

Usage

You can inspect Archery usage by passing the --help flag:

$ archery --help
Usage: archery [OPTIONS] COMMAND [ARGS]...

  Apache Arrow developer utilities.

  See sub-commands help with `archery <cmd> --help`.

Options:
  --debug      Increase logging with debugging output.
  --pdb        Invoke pdb on uncaught exception.
  -q, --quiet  Silence executed commands.
  --help       Show this message and exit.

Commands:
  benchmark    Arrow benchmarking.
  build        Initialize an Arrow C++ build
  docker       Interact with docker-compose based builds.
  integration  Execute protocol and Flight integration tests
  lint         Check Arrow source tree for errors
  numpydoc     Lint python docstring with NumpyDoc
  trigger-bot

Archery exposes independent subcommands, each of which provides dedicated help output, for example:

$ archery docker --help
Usage: archery docker [OPTIONS] COMMAND [ARGS]...

  Interact with docker-compose based builds.

Options:
  --src <arrow_src>  Specify Arrow source directory.
  --help             Show this message and exit.

Commands:
  images  List the available docker-compose images.
  push    Push the generated docker-compose image.
  run     Execute docker-compose builds.