Files
2026-08-18 13:27:32 +02:00

31 lines
2.5 KiB
Markdown

# Repository Guidelines
## Project Structure & Module Organization
`HarmonyWinUI/` contains the unpackaged WinUI 3 application targeting .NET 8. Application startup and the main shell live in `App.xaml*` and `MainWindow.xaml*`. Put navigable views and their code-behind in `HarmonyWinUI/Pages/`, domain and service classes in `HarmonyWinUI/Models/`, and packaged images in `HarmonyWinUI/Assets/`. Publish settings are under `HarmonyWinUI/Properties/PublishProfiles/`. The root `vendor/` directory holds external tools such as `yt-dlp` and FFmpeg; treat downloaded media and temporary files there as local artifacts. Generated `bin/`, `obj/`, and `.vs/` content must not be edited or committed.
## Build, Test, and Development Commands
Run commands from the repository root:
```powershell
dotnet restore HarmonyWinUI/HarmonyWinUI.slnx
dotnet build HarmonyWinUI/HarmonyWinUI.csproj -c Debug -p:Platform=x64
dotnet run --project HarmonyWinUI/HarmonyWinUI.csproj -c Debug -r win-x64
dotnet publish HarmonyWinUI/HarmonyWinUI.csproj -c Release -r win-x64
```
Restore downloads NuGet dependencies; build compiles C# and XAML; run launches the unpackaged x64 app; publish creates the self-contained release output. ARM64 is also supported by replacing `x64`/`win-x64` with `ARM64`/`win-arm64`.
## Coding Style & Naming Conventions
Follow `HarmonyWinUI/.editorconfig`: tabs with width 4, LF endings, braces for blocks, nullable reference types, and `using` directives outside namespaces. Use PascalCase for types, properties, events, and methods; prefix interfaces with `I`. Keep UI concerns in `Pages` or XAML and network/process logic in `Models`. Never edit generated `*.g.cs` or `*.g.i.cs` files.
## Testing Guidelines
No automated test project currently exists. Every change must at least pass the x64 Debug build. Manually verify affected navigation, MusicBrainz search and Retry/Cancel behavior, playlist resizing, and vendor executable discovery as applicable. Add future tests in a separate `HarmonyWinUI.Tests` project and name cases `Method_Scenario_ExpectedResult`.
## Commit & Pull Request Guidelines
History favors short, single-purpose messages such as `added play list into right column` and `implemented search artists in MusicBrainz`. Keep commits focused and use a concise imperative summary. Pull requests should explain behavior changes, list build/manual-test results, link relevant issues, and include before/after screenshots for UI changes. Do not include `.user` files, downloaded media, FFmpeg archives, credentials, or machine-specific publish settings.