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. 
 
- 
- 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 - We pin the version to 3.44.0 due to y-scope/clp#1352. 
 
- 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:
- clp-jsonfor managing JSON logs
- clp-textfor 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
