Thanks for your interest in contributing to EQSwitch!
- Check existing issues first
- Include your Windows version, .NET version (if building from source), and EQ server
- Describe what you expected vs what happened
- Include steps to reproduce
# Clone
git clone https://github.com/itsnateai/eqswitch.git
cd eqswitch
# Debug build
dotnet build
# Release build (single-file portable exe)
dotnet publish -c Release -r win-x64 --self-contained -p:PublishSingleFile=trueRequires .NET 8 SDK.
- Fork and create a feature branch
- Keep changes focused — one feature or fix per PR
- Test with at least one EQ client running (or mock the process detection)
- Run
dotnet buildto verify no errors or warnings - Update CHANGELOG.md under
[Unreleased]
- All Win32 P/Invoke goes in
Core/NativeMethods.cs— never scatter DllImport - Use
Debug.WriteLinefor diagnostic logging - Dispose Process objects with
using var - Graceful degradation: log and continue on Win32 failures, don't crash
- Follow existing patterns in the codebase
See the project's CLAUDE.md for detailed architecture documentation, design decisions, and gotchas.
By contributing, you agree that your contributions will be licensed under the GPL-2.0-or-later License.