Make sure you have read the FAQ

Thank you for wanting to contribute to making QtPass awesome.

Everyone taking part in QtPass, in issues, pull requests, Weblate or anywhere else, is expected to follow the Code of Conduct. Report problems to help@qtpass.org.

Getting Started

Pull Request Process

  1. Sign your commits - All commits must be signed with GPG and signed off under the Developer Certificate of Origin: git commit -s -S -m "description" (-S signs, -s adds the Signed-off-by: line). Translation updates from Weblate arrive as Weblate's own commits without a sign-off; a committer reviews them before merging.
  2. Add tests - New features and bugfixes come with tests in tests/auto/, and make check must pass. Format the C++ files you changed with clang-format --style=file -i <file>...; CI runs the linters on Pull Requests that change code, build files, scripts or documentation.
  3. Ensure install or build dependencies and artifacts are not committed.
  4. When adding big new features or changes to the build tool, update the README.md to reflect those.
  5. Make sure you update all the CI configs if needed. These run on every Pull Request.
  6. Increase the version numbers in relevant files when applicable. The versioning scheme we use is PrideVer.
  7. Committers merge their own Pull Requests once CI and the automated review pass. A Pull Request from outside the team is reviewed by a committer, who merges it.

AI assistance

Using an AI coding assistant is fine. The rules:

Agents working on this repository should read AGENTS.md and the skills under .opencode/skills/.

Translations

QtPass uses Weblate for translations.

To add a new language:

Qt Linguist has helpful in-context translation options.

Windows Developers: Symlink Setup

This repository contains a symlink (.claude -> .opencode). Windows developers need to enable symlink support:

Option 1: Enable Developer Mode on Windows 10+ (recommended)

Option 2: Configure Git to use symlinks

git config core.symlinks true

Set this before cloning the repository.

Warning: Without symlink support enabled, .claude will be checked out as a regular text file containing the path ".opencode" instead of a proper symlink.

Troubleshooting: After cloning:

Getting Help

License

QtPass is released under the GNU GPL v3.0 license. https://www.gnu.org/licenses/gpl-3.0.html