Repository navigation
contributing
Thanks for your interest in improving RVZStudio. This page describes how to report issues, submit changes and follow the project conventions.
- Report bugs — open an issue with reproduction steps and log output.
- Request features — describe the use case and the expected behavior.
-
Improve documentation — the
docs/folder and the rootReadMe.mdare good starting points. - Submit code — bug fixes, platform fixes and new features are welcome.
- Star the project — it helps others discover RVZStudio.
Open an issue at https://github.com/purelogiccode/RVZStudio/issues and include:
- Environment — operating system, architecture and RVZStudio version (About window).
- Steps to reproduce — the exact sequence that triggers the problem.
- Expected vs actual behavior.
- Logs — the relevant part of the log file (see Troubleshooting for locations). The on-screen log viewer shows the same messages.
-
Screenshots — press
F8in the application to save one to theScreenshotfolder.
Please do not attach copyrighted game files. A small corrupt or synthetic sample that reproduces the problem is fine.
-
Fork the repository and create a topic branch from
master. -
Make your changes, keeping commits focused and atomic.
-
Build and test locally:
dotnet build RVZStudio.sln -c Release dotnet test RVZStudio.sln -
Push the branch and open a pull request against
master. -
Ensure CI passes on all three operating systems before requesting review.
- Language — C# with nullable reference types and implicit usings enabled.
- Analyzers — Roslynator and Meziantou analyzers run as part of the build. Keep the build at zero warnings.
-
Async — services are asynchronous and accept a
CancellationToken; never block the UI thread. -
UI updates — marshal to the UI thread with
Dispatcher.UIThreadfrom services and background tasks. -
Logging — use Serilog (
Log.Information,Log.Warning,Log.Error).Warningand above are automatically forwarded to the bug-report API, so do not log expected user errors at those levels. - Comments — the codebase prefers self-documenting code; add XML documentation for public APIs where it clarifies intent.
-
Tests — add or update tests in
RVZStudio.Testsfor service and model changes. Tests must pass on Windows, Linux and macOS.
The project uses Conventional Commits:
<type>: <short summary>
<optional body>
Common types used in this repository: feat, fix, chore, refactor, docs, test, ci.
Examples:
feat: add WIA output to the extraction tab
fix: keep the batch running when DolphinTool fails to start
docs: document the release workflow
- The solution builds with zero warnings.
-
dotnet testpasses. - New behavior is covered by tests where practical.
- Documentation (
ReadMe.md,docs/) is updated when user-facing behavior changes. - The commit history is clean and follows the conventions above.
By contributing, you agree that your contributions are licensed under the GNU General Public License v3.0, the same license as the project.
- Building — build, test and publish instructions.
- Architecture — how the application is structured.