A good bug report includes:
- FlyPhotos version, and whether it's the Microsoft Store or GitHub MSI build.
- Windows version and architecture (x64 / ARM64).
- The image format involved (e.g. JPEG, HEIC, PSD, AVIF) and, if possible, a sample file.
- Steps to reproduce, what you expected, and what actually happened.
- Screenshots or a short screen recording when the issue is visual.
FlyPhotos is WinUI 3 + Win2D on .NET 10 with Native AOT, plus native C++ and a Rust bridge. You need Visual Studio 2022, the .NET 10 SDK, vcpkg, and Rust/cargo.
- Match the style of the surrounding code, and keep PRs focused.
- Be mindful of allocations and threading in the navigation/ rendering / image-loading hot paths.
- Branch off
main, test your change with real image files, and reference any related issue (e.g.Ref #123) in the PR.
If you're vibe coding, please ensure a human has reviewed and understands the entire change before opening a PR. Automated or unattended submissions are not welcome.
- Please review and understand every line of code you submit.
- Discuss significant architectural changes in an issue before implementing them.
- Ensure your contribution provides more value than the effort required to review it.
- If AI tools helped with code, documentation, commit messages, or the PR description, please mention it in the PR description.
Help keeping translations accurate and adding new languages is especially welcome. You don't need to build the app to contribute a translation — it's just an XML file edit.
Each language is a Resources.resw file under Src/FlyPhotos/Strings/<locale>/:
Src/FlyPhotos/Strings/
├── en-US/Resources.resw ← English, the source of truth
├── de-DE/Resources.resw
├── fr-FR/Resources.resw
└── ...
Each string is a <data> entry — keep the name untouched and translate the <value>:
<data name="Settings_Theme" xml:space="preserve">
<value>Theme</value>
</data>- Open the
Resources.reswfor the language underSrc/FlyPhotos/Strings/<locale>/. - Compare against
en-US/Resources.reswand fix or fill in any<value>. - Never change the
nameattributes — they are the lookup keys and must matchen-US. - Save as UTF-8 and open a pull request.
- Copy
Src/FlyPhotos/Strings/en-US/Resources.reswinto a newStrings/<locale>/folder (use the correct BCP-47 code, e.g.cs-CZ). - Translate every
<value>, leaving thenamekeys as-is.
Thank you for helping make FlyPhotos better! 🚀