1
0
mirror of https://github.com/lxc/incus.git synced 2026-02-05 18:45:46 +01:00
Files
incus/doc/contributing/code.md
Benjamin Somers 2e529ab519 doc: Contributing section restructuring
Signed-off-by: Benjamin Somers <benjamin.somers@resel.fr>
2024-12-20 15:34:45 -05:00

40 lines
1.6 KiB
Markdown

# 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 {ref}`installing_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:
```bash
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 by `incus admin init`.
The `INCUS_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.