Thanks for your interest in improving Zeal. This document covers the practical side: how to build the project, which conventions to follow, and what to expect from review.
Bug reports and small fixes can go straight to GitHub issues or a pull request. For anything larger, such as a new feature or refactoring, please open an issue or a discussion first so we can agree on the approach before you spend time on the implementation.
Questions are welcome in GitHub discussions or on Discord. Project spaces follow a short code of conduct.
Build dependencies are listed in the README, and platform-specific instructions are in the wiki.
The repository includes a justfile with recipes for common tasks:
just configure # configure a build directory
just build # compile
just run # compile and launch Zeal
just test # configure, build, and run the test suiteRecipes use the dev CMake preset by default; override it with PRESET=release just build. If you prefer plain
CMake, the presets work on their own:
cmake --preset dev
cmake --build --preset devFormatting is defined by .clang-format and .editorconfig. Run clang-format on the code you change, and match the
style of the surrounding code for anything the tools do not cover.
Commit messages follow Conventional Commits: a type, an optional scope, and a short description in the imperative mood.
fix(core): guard setColorScheme behind Qt 6.8
feat(ui): improve tab bar sizing and styling
build(cmake): append to CMAKE_MODULE_PATH
Common scopes are app, core, ui, util, assets, and cmake. When in doubt, git log has plenty of examples.
Run the suite with just test. New logic in src/libs should come with tests where practical.
Zeal is licensed under GPL-3.0-or-later, and the repository follows the REUSE specification:
-
New source files need a copyright notice and an SPDX license identifier; copy them from an existing file:
// Copyright (C) Oleg Shparber, et al. <https://zealdocs.org> // SPDX-License-Identifier: GPL-3.0-or-later
-
If you bring in third-party code, add its license text to
LICENSES/and declare it inREUSE.toml.
By submitting a contribution, you agree to provide it under the project license.
- Keep pull requests small and focused; unrelated changes belong in separate PRs.
- CI must pass. It runs builds for all supported platforms and CodeQL analysis.
- Zeal is maintained in spare time, so a review can take a while. If a PR sits without a response for a couple of weeks, a polite ping is fine.
If you think you have found a security issue, please report it privately to support@zealdocs.org instead of opening a public issue.