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_DIRdirectory, which is generated byincus admin init. TheINCUS_DIRdefaults to/var/lib/incus.As you develop, you may want to change the
INCUS_DIRfor your fork of Incus so as to avoid version conflicts.Binaries compiled from your source will be generated in the
$(go env GOPATH)/bindirectory by default.You will need to explicitly invoke these binaries (not the global
incusdyou may have installed) when testing your changes.You may choose to create an alias in your
~/.bashrcto call these binaries with the appropriate flags more conveniently.
If you have a
systemdservice configured to run the Incus daemon from a previous installation of Incus, you may want to disable it to avoid version conflicts.