Core library
Holder Core contains the shared code for saving, finding, and organising Holder data.
Developer setup
Set up a Windows computer to contribute Holder code.
This guide is for people who want to change Holder's code. If you just want to use Holder, go to the Holder for Windows page to get the installer.
You need a PC running 64-bit Windows 11 or Windows 10*, and an internet connection. Allow tens of gigabytes of free disk space for the development tools, downloaded libraries, and builds. The Visual Studio installer will show how much space your selected tools need; see Microsoft's system requirements for details.
Install Git for Windows once: Git downloads project code and keeps track of the changes you make to it.
C:\Users\pigeonwrath\projects\holderteam but you can choose your own location, just be consistent.$HOME means your Windows user folder. The commands below use your own folder automatically. If you choose a different workspace, use that location in each guide.mkdir $HOME\projects\holderteam
cd $HOME\projects\holderteam
* Windows 11 is 64-bit only. Windows 10 also has 32-bit editions. The Core and Daemon guides use 64-bit build tools, but advanced users may be able to adapt them to build Core and Daemon for x86, then use holderctl or the local HTTP API. There is no current 32-bit holder-desktop build path.
Each Holder project has its own Git repository: its source files and the recorded history of changes. Source code is the text programmers change to alter how an app works.
Choose the part you want to change. You do not need to complete all three guides.
The core and backend use Visual Studio. The desktop app uses MSYS2 UCRT64 instead.
Holder Core contains the shared code for saving, finding, and organising Holder data.
holder-daemon is the local service that stores your data and provides Holder's command-line and web interfaces.
Desktop is the app with windows and buttons. Build it if you want to change the editors, navigation, or other parts of the user interface.
Open Holder's issue page; it covers Core, Daemon and Desktop. Issues are GitHub's place for reporting problems and discussing fixes. Search for the error first; if no existing issue covers it, sign in to GitHub and open a new one.
Include the guide you followed, the step that failed, and what you expected to happen. Copy the command and its output, or the error from Visual Studio's Output window. Include your Windows version and the versions of the tools you used. This helps someone else understand where you got stuck.
Once you can build and test the project, you are ready to try a small change. A documentation correction or a fix for an issue you can reproduce is a useful place to start.
GitHub's step-by-step contribution guide explains forks, branches, commits, and pull requests. Each Holder repository also has a CLA.md contributor agreement linked from its pull request checklist; read it before submitting your contribution.