Version 0.24.0 Release

This release primarily refactors and improves the cloe-launch tool, with one major breaking change.

In addition, it includes the new frustum_culling plugin.

The following sections are about the changes to the launcher, starting with the breaking change and how to migrate.

Remove launcher profiles and change Conan argument pass-thru

For a while, cloe-launch has supported launcher profiles, which were Conan recipes (e.g. conanfile.txt) that were installed to a launcher profiles directory and managed by cloe-launch. You could then refer to these from anywhere with -p PROFILE_NAME argument.

In practice however, the cloe-launch profile system was under-used, confusing, and limited. To name just a few issues:

  • Profile names needed to end with .py if they were Python recipes.

  • Python recipes often could not be used at all because they referred to local files.

  • Passing arguments to Conan was limited and verbose.

  • Different commands supported profiles differently, leading to an un-orthogonal interface.

  • Handling -p or -P, one of which was required, led to complex code and error messages, confusing users.

  • Launcher “profiles” uses the same word as Conan “profiles”, but mean two very different things.

This release radically simplifies the launcher interface by doing away with the launcher profile system and opting for a clearer, leaner, and more flexible interface to boot.

This is a significant breaking change, because it fundamentally changes how cloe-launch parses arguments. They now have the form:

cloe-launch [OPTS] COMMAND [CMD_OPTS] CONANFILE [CONAN_INSTALL_ARGS] [-- ARGS]

For commands such as shell and exec it’s now necessary to use -- to pass arguments to them. It is also no longer possible to provide options to the cloe-launch command after specifying the conanfile. These now go to conan.

Migration:

Find use of profiles by searching for instances of cloe-launch and -P and -p. Make sure you pass existing Conan recipes to cloe-launch as a positional argument, and that all arguments to cloe-launch have been specified before the recipe is specified.

If you used -p with the launcher profiles before, you will need to find a new solution, such as by using symlinks or copies of recipes, or creating aliases for your favorite configurations.

Previously, Conan arguments needed to be passed as arguments to cloe-launch arguments, such as:

cloe-launch shell -P conanfile.py -o:o cloe-engine:with_server=False
cloe-launch shell -o --build=missing -o -o=cloe-engine:with_server=False -P conanfile.py

Now, these are provided as Conan arguments simply after the Conan file:

cloe-launch shell conanfile.py --build=missing -o cloe-engine:with_server=False

When using cloe-launch exec, you can specify the arguments to cloe-engine after a mandatory -- argument:

cloe-launch exec conanfile.py -- -l debug run test.json

To migrate your own use, search for cloe-launch and -o or -o:o or -o:s and replace these with the updated form.

Add config sub-command

This command lets you view the launcher configuration:

cloe-launch config

As well as edit it:

cloe-launch config --edit

If the configuration has not been created yet, it is recommended to create it first from the default configuration:

cloe-launch config --write --edit

Add deploy sub-command

This allows you to deploy a configuration to a directory:

cloe-launch -v deploy -P engine/tests/conanfile_with_server.py /usr/local

This deployment should work without any further setup required.

The patchelf tool needs to be installed for RPATH adjustment to work.

An uninstaller is created at ~/.cache/cloe/launcher/UUID/uinstall.sh where UUID is unique and determined from the configuration.

Add --ignore-plugin-setups option

This options lets you prevent Python configuration files from being loaded from the directories specified in CLOE_PLUGIN_PATH.

This is especially useful if you have added . to CLOE_PLUGIN_PATH.

Improve error messages

Conan error output can be hard to parse. There are several common errors that are now “caught” by the launcher and re-formatted in a way that it’s clearer to users what the error is and what they can do about it.

Further launcher fixes

  • Unpin click and toml versions.

  • Fix cloe-launch prepare not showing output.

  • Prevent . from in-advertently being added to CLOE_PLUGIN_PATH.

  • Show conan command being executed in verbose mode.