********
Overview
********
What is Velocity
################
Velocity is a tool to help with the maintenance of container build scripts on multiple systems,
backends (e.g podman or apptainer) and distros.
.. important::
While Velocity provides a compatibility layer for `Apptainer `_ and
`Podman `_, it is still important to have a basic
knowledge of how they work and the container building process in general.
How it Works
############
Velocity works by building a set of containers in a chain so that the final container has all of the needed components.
.. important::
Velocity maintains a very hands off approach. It is only as good as the templates/configuration that you write.
In general it will assume that a particular build will work (on a system, distro etc.) unless you tell it otherwise.
.. note::
While Velocity has many features that are similar to those provided by a package manager, it is NOT a
package manager. Rather it should be viewed as a templating and build orchestration tool.
Installation
############
The easiest way to install velocity is to install prebuilt python packages using pip.
.. code-block:: bash
# note: you will need python 3.10 or greater
pip install olcf-velocity
Alternatively, you can clone the velocity repository and build/install velocity from source.
.. code-block:: bash
git clone https://github.com/olcf/velocity.git
cd velocity
pip install build
python3 -m build
# install the built python wheel package the version will depend on what version of velocity you have checked out
# check the dist directory for the exact version
pip install dist/olcf_velocity--py3-none-any.whl
Now you can use Velocity as a python module! We recommend setting a bash alias for convenience.
.. code-block:: bash
$ alias velocity="python3 -m velocity"
$ velocity
usage: velocity [-h] [-v] [-D {TRACE,DEBUG,INFO,SUCCESS,WARNING,ERROR,CRITICAL}] [-b BACKEND] [-s SYSTEM] [-d DISTRO] {build,avail,spec} ...
build tool for OLCF containers
positional arguments:
{build,avail,spec}
build build specified container image
avail lookup available images
spec lookup image dependencies
options:
-h, --help show this help message and exit
-v, --version program version
-D {TRACE,DEBUG,INFO,SUCCESS,WARNING,ERROR,CRITICAL}, --debug {TRACE,DEBUG,INFO,SUCCESS,WARNING,ERROR,CRITICAL}
set debug output level
-b BACKEND, --backend BACKEND
-s SYSTEM, --system SYSTEM
-d DISTRO, --distro DISTRO
See https://github.com/olcf/velocity
.. _configuration: