Changelog

Changes in v7.12.1

  • Fixed CMake install prefix bug
  • Marked the Cordova builder as deprecated. It will be removed in v8.

Changes in v7.12.0

  • Added new command clean-images to remove obsolete Clickable Docker images
  • Added environment variable to change the Docker registry used to pull images
  • Docker images are now published on GitLab’s container registry in addition to Docker Hub
  • Changed automatically setting the CMake release type and prefix to not override any values set in the build args
  • Improved Docker image lookup
  • Improved timeout handling during the publish command
  • Fixed QtCreator build
  • Fixed the initial setup of CMake projects in QtCreator for Focal
  • Fixed Go linker issue for Focal

Changes in v7.11.0

  • Desktop mode commands (like test) can now be used in container mode
  • Disabled the image version check when a custom Docker image is being used
  • Added --all flag to the clean command for cleaning all build dirs at once
  • Fixed cleaning build dirs when using the build command with --clean --all
  • Reduced the number of Docker layers when Clickable generates an image

Changes in v7.10.0

  • Clickable placeholders are now available in image_setup
  • desktop --gdb now implies --debug
  • Fixed debug symbol export

Changes in v7.9.0

  • Added support for dark mode when using Focal based desktop mode
  • Fixed icons not showing correctly in desktop mode

Changes in v7.8.0

  • Added warning when trying to build an app without libraries being built first
  • Dropped Qt 5.9 support
  • Switched to using fully qualified docker image names to fix an issue with Podman
  • Fixed bug cleaning desktop mode directories

Changes in v7.7.3

  • Fixed installing QML modules

Changes in v7.7.2

  • Fixed crash when using Python 3.11
  • Fixed command outputs not being displayed

Changes in v7.7.1

  • Fixed installing files with podman

Changes in v7.7.0

Changes in v7.6.0

  • Added new QBS builder
  • Added live reloading for qmlscene based apps in desktop mode
  • Added support to configure the SSH port
  • Added a configurable timeout when publishing click packages
  • Added more options for the clean command
  • Added CLICKABLE_DOCKER_COMMAND env variable to choose between podman and docker
  • clickable --version will always check for updates
  • Fixed Clickable trying to setup docker when podman is being used
  • Fixed running commands via adb on Focal devices
  • Fixed checking for systemd on non-Linux systems
  • Fixed getting logs from Focal devices
  • Fixed desktop mode crashing when pulse directories are not found

Changes in v7.5.0

  • Added support for running Clickable with Podman
  • Added support for running Clickable on Fedora
  • Added support for cross compiling Focal clicks
  • Added support for building Focal clicks on arm64 hosts
  • Added support for Focal for the ide and ci commands
  • Added support for Focal to the nvidia images
  • Fixed timezone in desktop mode
  • Added support for clickable.yml files in addition to clickable.yaml
  • Added support for installing and launching clicks on Focal devices
  • Fixed some issues running Clickable on Windows Subsystem for Linux (support is not complete yet)

Changes in v7.4.0

  • Added initial support for building clicks for Focal (Currently only supporting amd64 builds)
  • When using install_lib, common library locations will be searched
  • When using install_bin, the PATH will be searched

Changes in v7.3.0

  • Fix NUM_PROCS placeholder for libs
  • Updated docs for library commands
  • Fix env var issues between apps and libs
  • Updated container mode to use image_setup env vars
  • Added configuration options to ignore review warnings and/or errors
  • Moved warning about framework to a debug message
  • @ is now allowed in paths
  • Fixed the skip_review option when chaining commands

Changes in v7.2.0

  • Removed deprecated go build flag
  • Fixed the bash completion setup to only run the setup once
  • Fixed commands run in Docker containers not being stopped with CTRL+C
  • The ? wildcard can be used in install paths
  • The build command now fail if the review also fails, use skip_review for unconfined apps

Changes in v7.1.2

  • Fixed the Rust cargo settings for building armhf packages

Changes in v7.1.1

  • Updated framework list
  • Fixed issue when setting up docker group
  • The current user is no longer automatically added to docker group
  • clickable setup now includes warning about security implications adding the current user to the docker group
  • Fixed double cleaning when using the always_clean option
  • Fixed migration warning showing at the wrong times
  • Fixed clickable_minimum_required to also allow numbers
  • Fixed prebuild and postbuild for libraries
  • Added more logging for docker commands

Changes in v7.1.0

  • restrict_arch can now be used with libraries
  • Fixed make_args not working as expected when specified as a list
  • Removed desktop file places holder when executing an app in desktop mode
  • Fixed clickable ide qtcreator not working

Changes in v7.0.1

  • Fixed dependency issues

Changes in v7.0.0

For information on breaking changes and how to migrate from Clickable v6, check the Migration Guide. There is also a migration tool referenced in the guide.

New features

  • Configure Clickable globally with a new configuration file.
  • Integrated bash completion, to set up run clickable setup completion.
  • Run Clickable from sub-directories, not only project root.
  • Added new chain command to run multiple Clickable commands in a chain.
  • Added new script command to run scripts defined in the clickable.json config file.
  • Added new ci command to open a shell in the Clickable CI container.
  • The run command can now be provided with a library name to run within the respective image.
  • The create command allows to create apps non-interactively configuring the template with command line parameters.
  • The gdb command allows to export a GDB init script that can be used by any IDE’s remote debugger.
  • The behavior of the gdb and gdbserver commands can be configured in detail via command line parameters.
  • The test command now runs cargo test by default for the rust builder.
  • The rust builder supports the rust_channel field to configure the desired tool chain (e.g. 1.56.1 or nightly).
  • The rust builder supports the build_args field in the project config (arguments are forwarded to cargo).
  • The rust builder supports --verbose flag (forwarded to cargo).
  • The rust builder supports Clickable libraries.
  • The rust builder installs the binaries into lib/<ARCH_TRIPLET>/bin (does not apply to libraries).
  • Project configuration now uses yaml format and project config is called clickable.yaml (clickale.json is used as fallback and json format can still be used as it is a subset of yaml)
  • Build commands can be either specified as a string or a list of strings (prebuild, build, postmake, postbuild).
  • Added install_root_data config field to list files for installation into the click package root directory.
  • Improved ignored files field to match with wildcard characters.
  • Added sanity checks for paths in the config.
  • Added Desktop Mode env var to allow apps detecting Clickable Desktop Mode
  • Library placeholders are available to successive libraries in the sequence (useful for linking libraries against other libraries).
  • Library install directories are added to CMAKE_INSTALL_PREFIX for successive libraries in the sequence (to enable the usage of find_package()).
  • Set CMAKE_INSTALL_PREFIX in Qt Creator run configurations.
  • dependencies_host, dependencies_target and dependencies_ppa now support placeholders
  • Added Godot template
  • Support for running Clickable on arm64 MacOS devices (except for desktop mode)

Breaking Changes

  • Overhauled command line interface with proper sub-commands, each providing specific options. See clickable --help and clickable <sub-command> --help.
  • The default architecture changed from armhf to the host architecture. If you want the architecture of your test device as default, it can be configured in the Clickable config.
  • The default now is to do dirty builds, if you want to do a clean build use clickable build --clean or set always_clean config field or CLICKABLE_ALWAYS_CLEAN=ON env var.
  • Merged the build-libs command into build.
  • Merged the clean-libs command into clean.
  • Merged the test-libs command into test.
  • Scripts can only be executed through the script command.
  • The rust builder has been aligned to the other builders and does not try to install manifest and desktop file automatically anymore.
  • The rust builder runs cargo install instead of cargo build
  • The go builder has been aligned to the other builders and does not try to install all files in the project dir automatically anymore.
  • The go builder does not rename the produced binary anymore.
  • The pure and cordova builders no longer override manifest architecture and framework fields, unless they are set to @CLICK_ARCH@ and @CLICK_FRAMEWORK@.
  • prebuild and postbuild are executed within the build container.
  • The image setup (image_setup, dependencies_*, rust_channel) is executed for custom docker images, too.
  • The image setup can be skipped with the cli flag --skip-image-setup.
  • Removed deprecated configuration fields.

Bug Fixes

  • The rust builder does not fail any more if the source dir (containing the Cargo.toml) is a sub-directory of the project dir.
  • The rust builder does not try to update the tool chain on building any more (which would fail)
  • The rust builder configures the cargo target directory to match the build dir, fixing cleaning via the clean command.
  • The rustup cache is made writable in the container to fix permission issues on accessing it.
  • The go builder configures the package dir to match the build dir, fixing cleaning via the clean command.
  • Fixed app icons not displaying in Qt Creator.
  • Fixed run configuration name in Qt Creator.
  • Fixed crash for QtCreator when no exec args have been found
  • Fixed shell command if public SSH key is id_ed25519.pub.
  • General polish and small bug fixes.
  • Fix sound in desktop mode.

Changes in v6.24.2

  • Fixed version checking when there is no internet connection

Changes in v6.24.1

  • Fixed qmake building a pure qml app

Changes in v6.24.0

  • Switched to use Qt 5.12 by default

Changes in v6.23.3

  • When using the qmake builder a specific .pro file can be specified using the build_args setting
  • Fixed cross-compiling for armhf with qmake when using Qt 5.12

Changes in v6.23.2

  • Fixed version checker
  • Fixed image update

Changes in v6.23.1

  • Improved the Qt 5.9 docker images
  • Rebuild docker images if the base image changes

Changes in v6.23.0

  • Added new test-libs command to run tests on libs
  • When using the verbosity flag make commands will also be verbose
  • Fixed Qt version to Ubuntu framework mapping
  • Added new version checker

Changes in v6.22.0

  • Added more docs and improved error messages
  • Added checks to avoid removing sources based on configuration
  • Added support for building against Qt 5.12 or Qt 5.9
  • Fixed rust problem when using nvidia

Changes in v6.21.0

  • Added option to use an nvidia specific container for Clickable’s ide feature
  • Improved error messages when no device can be found
  • Added option to set custom env vars for the build container via env vars provided to Clickable
  • Improved how container version numbers are checked
  • Improved checking for container updates
  • Minor fixes

Changes in v6.20.1

  • Fixed building libraries using make

Changes in v6.20.0

  • Added support for armhf and arm64 hosts with new docker images
  • Added support for env vars in image setup

Changes in v6.19.0

  • Click review is now run after each build by default
  • Added NUM_PROCS env var and placeholder for use in custom builders
  • Enabled dependencies_ppa and image_setup in container mode
  • Fixed issues detecting the timezone for desktop mode

Changes in v6.18.0

  • Updated the clickable run command to use the container’s root user

Changes in v6.17.1

  • Fixed container mode when building libraries
  • Added better handling of keyboard interrupts

Changes in v6.17.0

  • Fixed errors when using ssh for some functions
  • Added initial non-interactive mode to create new apps
  • Added better error handling
  • Allow opening qtcreator without a clickable.json file

Changes in v6.16.0

  • Enhanced and fixed issues with the qtcreator support
  • Fixed the docker_image setting

Changes in v6.15.0

  • Vastly improved qtcreator support using clickable ide qtcreator
  • Improved docs
  • Updated docs with the new Atom editor plugin
  • Fixed the warning about spaces in the path
  • Fixed various issues with container mode
  • Fixed using gdb and desktop mode

Changes in v6.14.2

  • Fixed issue where some directories were being created by root in the docker container
  • Various documentation updates
  • Restored the warning about spaces in the source path
  • Fixed container mode so it doesn’t check for docker images
  • Fixed issues with env vars for libraries in container mode
  • Added env vars to the ide command

Changes in v6.14.1

  • Fixed issue when using the Atom editor extension
  • Merged the C++ templates into one and included qrc compiling
  • Minor bug fixes

Changes in v6.14.0

  • Added new setup command to help during initial setup of Clickable
  • Prevent building in home directory that isn’t a click app

Changes in v6.13.1

  • Fixed issue with an error showing the wrong message
  • Fixed multiple ppas in dependencies_ppa

Changes in v6.13.0

  • Fixed packaging issues and published to pypi
  • Fixed the builder auto detect showing up when it wasn’t needed
  • Added better errors when the current user is not part of the docker group
  • Remove apps before installing them to avoid apparmor issues
  • Various bug fixes
  • Added optional git tag versioning in cmake based templates

Changes in v6.12.2

  • Fixed bug checking docker image version
  • Renamed build template to builder
  • Fixed the publish command

Changes in v6.12.1

  • Bug fixes
  • Display nicer error messages when a template fails to be created
  • Fixed auto detecting the build template

Changes in v6.12.0

  • Added new feature for debugging via valgrind
  • Added new ide command to allow running arbitrary graphical apps like qtcreator
  • Code improvements
  • Added versioning to the docker images to allow Clickable to depend on certain features in the image

Changes in v6.11.2

  • Fixed the review and clean-build commands not working

Changes in v6.11.1

  • Fixed the run command not working

Changes in v6.11.0

  • Added on device debugging with gdb.
  • Deprecated chaining commands (this will be removed in the next major release)
  • Fixed the build home directory for libraries
  • Added error when trying to use docker images on unsupported host architectures
  • Use the host architecture as the default when building in container mode
  • Enable localhost access and pseudo-tty in run command
  • When using CMake a Release build will be created unless --debug is specified
  • Added new library placeholders
  • Added new clean-build command
  • Fixed issues with clickable create on older versions of Ubuntu
  • Various minor bug fixes and code improvements

Changes in v6.10.1

  • Fixed issues installing dependencies when in container mode

Changes in v6.10.0

  • Fix containers being rebuilt when switching between desktop mode and building for amd64
  • Enabled compiling rust apps into arm64
  • Make install_data paths relative to the install dir
  • Fixed the clickable create command when using an older version of git

Changes in v6.9.1

  • Fixed broken lib builds

Changes in v6.9.0

  • Placeholders are now allowed in env vars
  • Changed placeholder syntax to ${PLACEHOLDER}, the old syntax is now deprecated
  • Replaced dependencies_host with dependencies_build to avoid confusion about the name, dependencies_build is now deprecated
  • Normalized env var names
  • Added new precompiled build template to replace the now deprecated python build template
  • Fixed issues using the install_* configuration options
  • install_qml will now install qml modules to the correct nested path
  • A per project home directory gets mounted during the build process
  • Cleaned up arch handling and improved conflict detection

Changes in v6.8.2

  • Fixed broken architecture agnostic builds

Changes in v6.8.1

  • Fixed new architecture errors breaking architecture agnostic builds

Changes in v6.8.0

  • Fixed the ARCH placeholder breaking ARCH_TRIPLET placeholder
  • Added new env_vars configuration for passing custom env vars to the build process
  • Fixed errors on systems where /etc/timezone does not exist
  • Added errors to detect conflicting architecture settings
  • Improved multi arch support

Changes in v6.7.2

  • Fixed architecture mismatch error for architecture agnostic templates

Changes in v6.7.0

  • New error when there is no space left on the disk
  • New error when the manifest’s architecture does not match the build architecture
  • New option to use @CLICK_ARCH@ as the architecture in the manifest to allow Clickable to automatically set the architecture

Changes in v6.6.0

  • Fixed issue in with timezone detection
  • Added better detection for nvidia mode and added a new –no-nvidia argument

Changes in v6.5.0

  • New bash completion, more info here
  • Fixed crash when running in container mode
  • Added image_setup configuration to run arbitrary commands to setup the docker image
  • Added arm64 support for qmake builds

Changes in v6.4.0

  • Use the system timezone when in desktop mode

Changes in v6.3.2

  • Fixed issues logging process errors
  • Fixed issues parsing desktop files

Changes in v6.3.1

  • Updated clickable create to use a new template for a better experience
  • Fixed desktop mode issue when the command already exits in the PATH
  • Added a prompt for autodetecting the template type
  • Improved Clickable’s logging

Changes in v6.2.1

  • Fixed env vars in libs

Changes in v6.2.0

  • Replaced the --debug argument with --verbose
  • Switched the --debug-build argument to --debug
  • Initial support for running Clickable on MacOS
  • Added new desktop mode argument --skip-build to run an app in desktop mode without recompiling

Changes in v6.1.0

Changes in v6.0.3

  • Fixed building go apps
  • Fixed post build happening after the click is built

Changes in v6.0.2

  • Fixed container mode

Changes in v6.0.1

  • Added back click-build with a warning to not break existing apps

Changes in v6.0.0

New features

  • When publishing an app for the first time a link to create it on the OpenStore will be shown
  • Desktop mode can now use the dark theme with the --dark-mode argument
  • Automatically detect when nvidia drivers are used for desktop mode
  • Use native docker nvidia integration rather than nvidia-docker (when the installed docker version supports it)
  • The UBUNTU_APP_LAUNCH_ARCH env var is now set for desktop mode
  • Added remote gdb debugging in desktop mode via the --gdbserver <port> argument
  • Added configurable install_dir
  • Libraries get installed when using cmake or qmake build template (into install_dir)

Breaking Changes

  • The click-build command has been merged into the build command
  • Removed deprecated configuration properties: dependencies, specificDependencies, and dir
  • Removed deprecated library configuration format
  • Removed deprecated lxd support
  • Moved the default build directory from build to build/<arch triplet>/app
  • Moved the default library build directory to build/<arch triplet>/<lib name>
  • Removed deprecated vivid support

Bug Fixes

  • Fixed utf-8 codec error
  • Use separate cached containers when building libraries
  • Automatically rebuild the cached docker image for dependencies