Docs chevron_right Contribute

Repository map

Find the project that owns the runtime, package, image, SDK, broker, Store, or website change.

Repository map

Use this map before opening a change. Repository boundaries follow ownership and release lifecycle.

Runtime and integration

RepositoryOwns
Containerpak/cpakCLI, store, OCI resolution, transactions, runtime, sandbox, brokers, manifests, and schema.
Containerpak/hrunControlled execution of explicitly allowed host commands.
mirkobrombin/DaBaDeeContent hashing and hard-link deduplication.

The Cpak runtime default branch is v2. hrun and DaBaDee are normal Go dependencies; they are not embedded helper binaries.

Shared images

RepositoryOwns
Containerpak/imagesGeneral base runtime images shared by Cpak packages.
Containerpak/wineMultiarch environment used by packages that supply their own Wine-derived runtime.

A shared image should contain the environment needed by several packages, not a copy of the consuming application.

Packages and SDKs

Official packages live in one repository per application under Containerpak. Bottles, UMU, Firefox, Chrome, VS Code, GIMP, Inkscape, LibreOffice, OBS Studio, and VLC each own their manifest and image workflow.

Language toolchains use the same model:

RepositoryProvides
Containerpak/sdk-goGo compiler and formatter for Cpak development environments.
Containerpak/sdk-node-ltsNode.js LTS, npm, npx, and Corepack.

An editor lists supported SDK origins as addons. The SDK repository owns toolchain compatibility paths and architecture tests.

Discovery and documentation

RepositoryOwns
Containerpak/storeReviewed catalog metadata, categories, original icons, screenshots, and generated indexes.
Containerpak/cpak.itWebsite, Store frontend, documentation renderer, and project pages.

The Store entry points to a package repository. It does not own the package's cpak.json or OCI image.

Where a fix belongs

Put namespace, transaction, permission, OCI, or CLI behavior in cpak. Put host command transport in hrun. Put duplicate-file storage logic in DaBaDee. Put an application dependency or launch workaround in that application's package repository. Put shared ABI content in a base image only when several packages need it.

When a change crosses repositories, keep each commit independently valid and update the consumer only after the dependency release or image is available.