Clickable 8 Migration

This guide describes the changes that come with Clickable 8 and how to migrate a project from Clickable 7.

For migration from Clickable 6 to 7, see Clickable 7 Migration.

Default Framework

The default framework changed from ubuntu-sdk-16.04.5 to ubuntu-sdk-20.04. If your app is made for Ubuntu Touch 16.04, you need to set the framework:

framework: ubuntu-sdk-16.04.5

Command Line Interface

Until Clickable 7, all commands would accept --ssh and --serial-number as arguments. Starting with Clickable 8, only device commands like install or launch accept these.

If you want to opt into architecture detection for architecture-specific, but non-device commands, like build, you can pass --arch detect.

For device commands, you can specify the target device with --target, which can be one of ssh, adb, host and detect (resolves to either ssh or adb).

Project Config

There are no changes in the project configuration file format, except for the removal of the cordova builder.

Clickable Config

Since Clickable 7, the default architecture is the host one, meant to facilitate the Desktop Mode Use Case, e.g. a seemless clickable build --libs, followed by clickable desktop. For testing on an armhf or arm64 device, the user needed to specify the architecture, e.g. clickable build --all --arch arm64 followed by clickable chain install launch logs --arch arm64. Thanks to architecture detection in Clickable 8, the latter would automatically set the correct architecture and the --arch argument can be ommitted. For the build command, the issue remains, because it is a non-device command.

If you do not commonly use Desktop Mode, it might be more convenient for you to enforce architecture detection via always_detect in the device section. This comes at the cost of failing commands, when no target device is accessible. Another solution is to set the default_arch in the build section to your device’s architecture.

Thanks to architecture detection, the arch parameter in the device section became superfluous and is deprecated and ignored in Clickable 8.

You can set a default_target in the device section. This way you can control whether SSH or ADB takes precedence or you can set the host target if you run Clickable inside an Ubuntu Touch environment.

NodeJS Removal

With the drop of Cordova support, nodejs was removed from the docker images as well. If your app depends on it, you need to add it to your dependencies_host. In order to get an up-to-date version of nodejs, consider adding a repo via the image_setup field, e.g.:

image_setup:
  run:
  # Install instructions taken from https://github.com/nodesource/distributions#installation-instructions
  - mkdir -p /etc/apt/keyrings
  - curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
  - echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list

dependencies_host:
- nodejs