Welcome to cruiz
cruiz stands for Conan Recipe User Interface.
At this time, only Conan 1.x is supported in versions 1.3.x.
Both Conan 1.x and 2.x (from v2.0.14) are supported in versions 1.4.x and in the latest development code. Most of the existing UI is reused, and cruiz will modify its UI based on the major version of Conan present in the Python environment.
Goals
The goals of cruiz are as follows:
-
Responsive UI
multiprocessing is used for each Conan command to separate UI and asynchronous workers.
-
Managing local caches
Local caches are named, associated with recipes, and deals with Conan environment variables.
-
Visualisation of dependencies
Visualisation of the package dependency graph using GraphViz and SVG.
-
Ease Conan learning curve
Reduce the learning curve on Conan specifics.
-
Alternative remote package inspection
Something different to Artifactory's web interface but on the client side. Improvements such as syntax highlighted file viewing.
Main menu
File menu
Open...to open a recipe into a tabRecent recipesto view a list of previously opened recipesQuit
Edit menu
Preferences...to open the preferences dialogManage local caches...to open the local cache management dialog
View menu
Conan remote browserto toggle the remote browser dock
Help menu
About cruiz...to view version information about cruiz and the Python ecosystem runningAbout Qt...to show the standard Qt version dialogIcon licenses...to show the licenses for icons used
Recipes are first class citizens
Conan recipe files (conanfile.py/conanfile.txt) are the primary files that cruiz will open.
Use File->Open... to open a recipe into the UI. A wizard will be shown to guide the loading process for any recipe unknown to cruiz. Version agnostic recipes are supported, and the associated conandata.yml is parsed to determine the versions available.
Multiple recipes can be loaded, each into their own tab.
Commands are run on the recipe with focus. There is a choice in the UI of using the following to invoke commands:
- keyboard shortcuts, defined in preferences
- menu options from the Commands menu in each recipe tab
- toolbar buttons across the top of each recipe tab
Manage local caches
Conan supports local caches in different locations. Working with different projects may require a different local cache for each. This can be done with environment variables.
cruiz offers a mechanism to associate a recipe file with a named local cache. This binding is kept in preferences. The binding can be changed if you need to move recipe output to a different cache.
Use Edit->Manage local caches... to manage the named local caches. A wizard will guide you through the steps when creating a new named local cache.
Remote browser
The Artifactory web UI and the Conan CLI are the common ways to browse and search for packages on a remote of an Artifactory server. cruiz offers an alternative viewer, with an interactive package reference search leading to recipe revisions, package_ids, package revisions, and finally a browser over package tarballs themselves. Revisions are only shown when that feature is enabled.
The remote browser dock visibility can been toggled via the View->Conan remote browser menu option.
Binary browser
There are a few differences being able to view the package binary files in cruiz compared to the Artifactory web UI:
- cruiz needs to download the
conan_package.tgzso if these are large, it may take some time - cruiz identifies text files, symbolic links, and binary files
- cruiz can syntax highlight text files if their context can be correctly determined from their extension
- cruiz allows hiving off the
conan_package.tgzto your local disk for additional processing
Preferences
Many features of cruiz can be configured via the preferences. Features are logically grouped to make finding what you want easier. Most settings can be applied while the dialog remains open; a few require restarting the application.
Use Edit->Preferences... to open the preferences dialog.
Recipe tabs
Each recipe loaded into cruiz is displayed as a tab in the UI. Each tab widget is split into several sections by default:
- the output panes
- menu
- toolbars along the top
- a dock to the left, showing the dependencies of the recipe and a visualisation of them
- a dock to the right, split between configuration of the recipe and local workflow options
- a dock to the bottom, split between a history of Conan commands run on the recipe, and the Conan log stream
Output Panes
The central widget to each recipe tab is the output area, where the output from commands run is displayed.
Features of this pane * Output is colourised * Output and error streams can be combined or split into separate panes; set in preferences. * Text is searchable. See the context menu over the pane. * Text is clearable. This can be performed manually via the context menu, or automatically upon each new command run in the preerences. * Pane output can be pinned to a separate tab (single level of pinning only) via the context menu; this may be useful for comparing output on multiple runs
Menus
Recipe menu
This menu offers options to interact with the recipe, and the local cache it is associated with.
Open recipe in editor...uses the configured editor to view the recipe fileOpen recipe folder...opens the file system folder containing the recipe fileCopy recipe folder to clipboardOpen another version of this recipe...opens a wizard to open a new recipe tab for a different version for version agnostic recipesManage associated local cache...opens the local cache management dialog for the cache associated with this recipeReloadreloads the recipe from disk, and updates the UIClose
Commands menu
This menu offers all of the Conan (and other) commands that are on the toolbars.
Create package in local cacherunsconan createCreate package in local cache with latest dependenciesrunsconan create -u- Local workflow
Download dependencies and configurerunsconan installDownload latest dependencies and configurerunsconan install -uImport files from dependentsrunsconan importsGet source coderunsconan sourceBuild sourcerunsconan buildMake local packagerunsconan packageExport package to local cacherunsconan export-pkgTest package in local cacherunsconan test- CMake
Run CMake build toolrunscmake --buildin the build folderRun CMake build tool (verbose)runscmake --buildin verbose mode in the build folderDelete CMake cachedeletes theCMakeCache.txtfile in the build folder
Remove package from local cacherunsconan remove -fCancel running commandwill stop any running command in cruiz.
Toolbars
Profile
A combobox offering all of the profiles in the associated local cache.
Cores
A spinbox offering a way to change the number of cores that Conan commands will use.
Commands
Toolbar icons for each Conan and other commands that can be executed on the recipe. Tooltips contain the exact command to be executed on the command line, and will update with changes to the configuration of the recipe.
CMake
Checkboxes to enable verbose CMake output and enabling CMake find debug mode. These are to avoid needing to modify any build scripts on disk.
Compiler caching
cruiz is aware of several compiler caching technologies:
- ccache
- sccache
- buildcache
CMake based builds should integrate with any of these. Autotools based builds can be configured to add extra command line flags to integrate.
Dependencies dock
This is a representation of a Conan lock file for the recipe in its selected configuration. This displays a flat list of the dependencies found and a graphical representation, if graphviz has been configured. Double clicking on the small visualisation opens a separate dialog showing it full size, with an option to save as an SVG.
Configuration dock
Split into three sections, it shows:
- the package_id computed from the lockfile
- all of the options in the recipe, showing all possible values to choose from for each
- the package reference namespace, @user/channel, to use for the recipe
Modifying any input data to the lockfile generation will recompute the package_id.
Local workflow dock
Not available when Conan 2.x is used.
Split into several sections, this allows the definition of paths used in Conan local workflows.
Conan command dock
Whenever a command is executed on a recipe, it is recorded in the command log. This is intended both as a learning mechanism by seeing what changes by modifying a recipe's configuration, but also as a reproducible mechanism as right clicking over a command allows exporting it to different shells.
Conan log dock
Not available when Conan 2.x is used.
Running Conan commands captures logging from Conan itself, which is displayed in this dock. This is for diagnostic purposes only really.