Rockcraft parts

The main building blocks of a ROCK are parts.

If this sentence sounds familiar, it’s because it is familiar! Rockcraft parts are inherited from other existing Craft tools like Snapcraft and Charmcraft.

Rockcraft parts go through the same lifecycle steps as Charmcraft and Snapcraft parts.

The way the parts’ keys and values are used in the rockcraft.yaml is exactly the same as in snapcraft.yaml (here is how you define a part).

Albeit being fundamentally identical to Snapcraft parts, Rockcraft parts actually offer some extended functionality and keywords:

  • stage-packages: apart from offering the well-known package installation behaviour, in Rockcraft the stage-packages keyword actually supports chiselled packages as well (learn more about Chisel). To install a package slice instead of the whole package, simply follow the Chisel convention <packageName>_<sliceName>.

Example

parts:
  chisel-openssl:
    plugin: nil
    stage-packages:
      - openssl_bins
      - ca-certificates_data

  package-hello:
    plugin: nil
    stage-packages:
      - hello

NOTE: at the moment, it is not possible to mix packages and slices in the same stage-packages field.