Make sure you have read the FAQ
Thank you for wanting to contribute to making QtPass awesome.
Pull Request Process
-
Sign your commits - All commits must be signed with
GPG using
git commit -S -m "description". - Ensure install or build dependencies and artifacts are not committed.
- When adding big new features or changes to the build tool, update the README.md to reflect those.
- Make sure you update all the CI configs if needed. These run on every Pull Request.
- Increase the version numbers in relevant files when applicable. The versioning scheme we use is PrideVer.
- You may merge the Pull Request once you have the sign-off of one other developer, or if you do not have permission to do that, you may request a reviewer to merge it for you.
AI assistance
Using an AI coding assistant is fine. The rules:
-
Disclose it. Add a
Co-Authored-By:trailer naming the tool or model to each assisted commit (for exampleCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>), or say so in the pull request description. - You are the author. Read, understand and test everything you submit; do not open a pull request with output you cannot explain. The DCO sign-off applies to assisted commits exactly as to hand-written ones.
- Keep secrets out. Never paste password-store contents, GPG key material or other private data into an assistant.
- AI review findings are advisory. CodeRabbit and Copilot comment on pull requests; verify each finding against the code, fix what is real, and answer false positives with a short explanation instead of a change.
-
Machine-drafted translations stay
type="unfinished"in the.tsfiles so native speakers can finalise them on Weblate.
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:
-
Add your language code to
src/src.prounder TRANSLATIONS -
If you have an existing build, run
make distcleanfirst (prevents stale generated files likeui_*.hfrom being included) -
Determine which qmake command your Qt 6 installation provides: run
qmake6 -v(orqmake -vifqmake6is unavailable) and confirm it shows Qt version 6.8 or newer. -
Run that same command (
qmake6orqmake) at the repository root, thenmake lupdate; the target runslupdateover bothsrc/andmain/and updates every.tsfile. Do not runlupdateonsrc/src.proalone — that misses the strings inmain/. A plainqmake6run leaveslocalization/untouched. -
Edit the
.tsfile with Qt Linguist:linguist localization/qtpass_xx_YY.ts
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)
- Go to Settings > Update & Security > For developers
- Enable "Developer Mode"
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:
-
Run
ls -l .claude(Git Bash) ordir .claude(CMD) to verify it shows as a symlink, not a regular file. -
If it appears as a regular file, set
core.symlinks=truein your Git config, then re-checkout the file or re-clone the repository to restore the proper symlink.
Getting Help
- Open an issue for bugs or feature requests
- Email help@qtpass.org for general questions
License
QtPass is released under the GNU GPL v3.0 license. https://www.gnu.org/licenses/gpl-3.0.html