Windows developer setup · Daemon
Build Holder Daemon
Build and test the local Holder service that stores data and provides the command-line and web interfaces.
Install the tools
As explained in the Windows developer setup, you need to install Git and create $HOME\projects\holderteam. You do not need to build Core separately: Daemon builds Core as part of its own build, from the core folder in the same download.
If you don't have it yet, install Visual Studio Community (2022 or later), the program with the purple logo. Visual Studio Code is a different program. The installer groups tools into “workloads”; select Desktop development with C++, and accept the pre-selected CMake tools and Windows SDK.
Download the source code
Open PowerShell and run these commands. The extra --recurse-submodules argument downloads fixed copies of smaller projects that Daemon needs to build.
cd $HOME\projects\holderteam
git clone --recurse-submodules https://github.com/HolderTeam/holder.git
Daemon is the daemon folder inside holder. The Windows debug build compiles Core from the core folder next to it, so changes you make in Core are used the next time you build Daemon. To work on Core's logic and run its own tests, follow the Core guide.
If you cloned holder without --recurse-submodules, use these commands before building:
cd $HOME\projects\holderteam\holder
git submodule update --init --recursive
Build and test
In Visual Studio, choose Open a local folder and select holder\daemon. Visual Studio reads the project's saved build choices automatically.
- In the configuration drop-down, choose
windows-vcpkg-debug. A configuration is a saved set of build choices; this one builds the programs for development. Wait for Visual Studio to finish preparing the project. The first preparation step uses vcpkg to download and build the libraries Daemon needs, so it can be slow. - Choose Build → Build All. When it finishes, look in
out\build\windows-vcpkg-debuginside your Daemon folder forholderd.exe, the backend, andholderctl.exe, the command-line tool. - Change the configuration to
windows-vcpkg-tests-debugand choose Build → Build All. - Choose Test → Run Test Preset for windows-vcpkg-tests-debug →
windows-vcpkg-tests-debug.
You have succeeded when the test run completes without failures. A few tests are deliberately skipped on Windows because they check behaviour that only exists on Linux and similar systems.
If a build seems stuck
The first vcpkg build can be long and quiet. Open Task Manager and check for active compiler processes before deciding that it has stopped.
If Visual Studio reports an error, copy it from the Output window and ask for help.
Continue
You can now share your first change. The Daemon README has more development details.
If you also want to work on the user interface, build the Holder desktop app. That guide also shows how to start Daemon and Desktop together.
If a Daemon change also needs a Core change, make it in holder\core, run Core's tests too, and include both in the same pull request.