Building the package#

This page describes the requirements and steps to build the CLP package. If you’re looking for a prebuilt version instead, check out the releases page.

Requirements#

  • An x86_64 Ubuntu 22.04 (Jammy) machine or container

    • At runtime, the CLP package uses an Ubuntu Jammy container, so we need to build in a matching environment.

    • It should be possible to build a package for a different environment, it just requires a some extra configuration.

  • Docker

    • containerd.io >= 1.7.18

    • docker-buildx-plugin >= 0.15.1

    • docker-ce >= 27.0.3

    • docker-ce-cli >= 27.0.3

  • Python 3.9 or newer

  • python3-dev

  • python3-venv (for the version of Python installed)

  • Task 3.44.0

  • uv >= 0.8

Setup#

Initialize the project

tools/scripts/deps-download/init.sh

Install CLP core’s dependencies

components/core/tools/scripts/lib_install/ubuntu-jammy/install-all.sh

Build#

There are two flavours of the CLP package:

  1. clp-json for managing JSON logs

  2. clp-text for managing text logs

Note

Both flavours contain the same binaries but are configured with different values for the package.storage_engine key.

To build the package, run:

task

The build will be in build/clp-package and defaults to using the storage engine for clp-text.

Note

The task command runs task docker-images:package under the hood. In addition to the build, a Docker image named clp-package:dev-<user>-<unique-id> will also be created.

Note

The package includes a docker-compose.yaml file that can be used to deploy CLP using Docker Compose. If you want to manually deploy with Docker Compose instead of using the package scripts, see the Docker Compose design for more information.

To build a releasable tar of either flavour, run:

task clp-<flavour>-pkg-tar

where <flavour> is json or text.

The tar will be written to build/clp-<flavour>-<os>-<arch>-v<version>.tar.gz, with appropriate values for the fields in angle brackets.

Cleanup#

To clean up all build artifacts, run:

task clean