Skip to content

Development Environment

Rodolfo Olivieri edited this page Dec 30, 2024 · 1 revision

Development Environment

This project uses pdm to manage it's dependency, build and local development.

In order to get things running, please, follow the Installation steps on PDM documentation website, or, you can run the following make command in your terminal to install the tools.

# Inside the root repository
make install-tools

After you installed pdm, you can now install the dependencies and pdm will handle to create a new virtualenv for you.

Run the following command in the root repository:

make install

After pdm finishes to install the dependencies, it will create two new binaries inside the virtualenv related to the project that you can use it in your terminal.

  • c - Refers to the client side of command line assistant
  • clad - Refers to the daemon that will be managed by systemd

Executing commands in the environment

We use a Makefile to map and execute the commands in our development environment. Here's a few to look out for.

install-tools             Install required utilities/tools
install                   Sync all required dependencies for Command Line Assistant to work
install-dev               Sync all development dependencies
unit-test                 Unit test cla
unit-test-coverage        Unit test cla with coverage
coverage                  Generate coverage report from unit-tests
coverage-html             Generate coverage report from unit-tests as html
help                      Show available make commands
clean                     Clean project files
link-systemd-units        Link the systemd units to ~/.config/systemd/user
unlink-systemd-units      Unlink the systemd units from ~/.config/systemd/user
clad                      Run clad on the system
run-clad                  Run the clad under systemd
status-clad               Check the status for clad
reload-clad               Reload clad systemd unit

To view all available options, simply go to the root of the repository and run make to get the up-to-date listing.

Location of development files

All files related to development can be seen in the directory data/development/**, there you will find the files that we use for configuration, systemd, dbus and many others that are meant to be used during development.

Clone this wiki locally