Contribute to the code¶
Follow the steps below to set up your development environment to get started working on new features for Incus.
Install Incus from source¶
To build the dependencies, follow the instructions in Install Incus from source.
Add your fork as a remote¶
After setting up your build environment, add your GitHub fork as a remote:
git remote add myfork git@github.com:<your_username>/incus.git
git remote update
Then switch to it:
git checkout myfork/main
Build Incus¶
Finally, you should be able to run make
inside the repository and build your fork of the project.
At this point, you most likely want to create a new branch for your changes on your fork:
git checkout -b [name_of_your_new_branch]
git push myfork [name_of_your_new_branch]
Important notes for new Incus contributors¶
Persistent data is stored in the
INCUS_DIR
directory, which is generated byincus admin init
. TheINCUS_DIR
defaults to/var/lib/incus
.As you develop, you may want to change the
INCUS_DIR
for your fork of Incus so as to avoid version conflicts.Binaries compiled from your source will be generated in the
$(go env GOPATH)/bin
directory by default.You will need to explicitly invoke these binaries (not the global
incusd
you may have installed) when testing your changes.You may choose to create an alias in your
~/.bashrc
to call these binaries with the appropriate flags more conveniently.
If you have a
systemd
service configured to run the Incus daemon from a previous installation of Incus, you may want to disable it to avoid version conflicts.