Bram Moolenaar, NLnet Labs
Track: Python
Date: Thursday, July 10
Time: 10:45am - 11:30am
Location: Salon B
The well known "make" program was designed long before the Internet was
born. The A-A-P project was started to provide a build facility with
integrated support for programming in a networked environment.
Besides the known "make" mechanisms for handling the depenency tree, A-A-P
takes fully care of downloading a file when it is needed. It only requires
specifying the URL where the file is to be obtained from. Similarly, for
uploading a file the destination URL is specified. A-A-P will figure out
which files have changed and need to be uploaded.
A recipe is the A-A-P equivalent of a Makefile. It maintains the
simplicity of describing a task with dependencies. Someone who has worked
with "make" will easily understand the recipe semantics.
The A-A-P recipe is portable. This is achieved by avoiding shell commands.
Common functionality, such as copying files over the internet, is provided
by built-in commands. More complicated things can be done with the Python
script language, which is smoothly integrated.
Many features of other build tools are also supported, such as using
signatures to detect changed files, automatic dependency checking and
support for version control systems. This makes building more reliable and
avoids the need for separate scripts.
Moolenaar's presentation explains the goals of the project and the choices that
were made. The format of the A-A-P recipe is compared to other solutions,
such as using a Makefile with shell commands. Examples show how A-A-P can
be used for various tasks.