Build systems
Codetracer uses nix, just, tup and direnv as parts of its build system.
Breakdown of the different components
Nix
The Nix package manager/build system deals with managing all dependencies, required by CodeTracer, as well as packaging
it for NixOS. It can package for other operating systems through an AppImage generator utility, however currently we are building our
appimages with custom shell scripts in appimage-scripts.
Just
The just task runner is used to trigger build commands and various other actions. It's semi-analogous to a Makefile. The following commands are the most widely-used:
just build- Builds the project with Tup and starts the automatic build process, which is used for active developmentjust build-once- Just builds the project using Tupjust build-nix- Builds the project and packages it for Nixjust build-docs- Builds the documentation. More info can be found herejust cachix-push-nix-package- Pushes nix package artefacts to cachixjust cachix-push-devshell- Pushes the current dev shell to cachixjust reset-db- Resets the local user's trace databasejust clear-local-traces- Clears the local user's tracesjust reset-layout- Resets the GUI window arrangements layout if your user's layout is incompatible with the latest version of CodeTracer. Further documentationjust reset-config- Resets the user's configuration if it's incompatible with the latest version of CodeTracer. Further documentation
Tup
The Tup build system is used for local builds of CodeTracer and deals with calling the actual low-level build instructions.
Direnv
The direnv utility sets up your local environment for using CodeTracer.
Packaging
More detailed breakdown of the Nix package
Coming soon!
Packaging for non-NixOS distributions
tip
If you're a user that wants a package for your distribution contact us. We're currently in the process of creating packages for popular distributions, such as Debian/Ubuntu, Fedora/RHEL, Arch Linux, Gentoo, Void, etc.
To package for another Linux distribution with a ports-based package manager, you can utilise our AppImage(currently unreleased),
which you can install to /usr/bin. Along with it, you should also install our icon and desktop file
from resources/ to the needed directories, such as /usr/share/pixmaps and /usr/share/applications.
Packaging for Windows(DB-backend only)
Coming soon!
Packaging for macOS(DB-backend only)
Coming soon!