Source Guide - nicho92/MtgDesktopCompanion GitHub Wiki
Development Guide
This document explains how to build, test, and contribute to MTG Desktop Companion.
Prerequisites
- Java 23+
- Maven 3.9+
- Git
Local setup
git clone https://github.com/nicho92/MtgDesktopCompanion.git
cd MtgDesktopCompanion
mvn -DskipTests clean install
For full verification:
mvn clean test
Useful Maven commands
- Full build:
mvn clean install - Skip tests:
mvn -DskipTests clean install - Tests only:
mvn test
Code organization
src/main/java/org/magic/api- Pluggable provider interfaces and implementations (cache, dashboards, notifiers, shops, tracking, etc.)
src/main/java/org/magic/services- Core service layer, managers, jobs, adapters, tools, and network utilities
src/main/java/org/magic/servers- Embedded server components and timers
src/main/java/org/magic/game- Game components and logics
src/test/java- Test suites for APIs, providers, analysis, and networking
Contribution workflow
- Create a dedicated branch from
main. - Keep changes scoped and atomic.
- Add or update tests when behavior changes.
- Run
mvn testbefore opening a PR. - Document user-visible changes in
CHANGELOG.mdunderUnreleased.
Documentation expectations
When adding features, update wiki
README.mdfor discoverability and quick start impact- Developer Guide for developer workflow changes