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, and other operating systems through an AppImage generator utility.
Just
The Just build system is used to trigger build commands. 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
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!