# Contributing to ObsidianDragon Thank you for your interest in contributing! This guide will help you get started. ## Getting Started 1. Fork the repository 2. Clone your fork and create a branch: ```bash git clone https://git.hush.is//ObsidianDragon.git cd ObsidianDragon git checkout -b my-feature ``` 3. Install dependencies: ```bash ./scripts/setup.sh ``` 4. Build: ```bash ./build.sh --linux-release # or --win-release, --mac-release ``` ## Development Workflow ### Code Style - C++17 standard - Use the Material Design icon font (`ICON_MD_*` defines) — never raw Unicode symbols - UI layout values go in `res/themes/ui.toml`, read via `schema::UI()` — never hardcode pixel sizes - Use the `RPCWorker` for all RPC calls — never block the main thread with synchronous curl See `.github/copilot-instructions.md` for detailed coding standards. ### Building ```bash # Linux debug build (fastest iteration) cd build && make -j$(nproc) # Full release builds ./build.sh --linux-release ./build.sh --win-release ./build.sh --mac-release ``` ### Testing Run the wallet and verify: - Daemon connection and sync - Lock screen / PIN unlock - Send and receive transactions - All tabs render correctly ## Submitting Changes 1. Commit with clear, descriptive messages 2. Push to your fork 3. Open a Pull Request against `main` 4. Describe what changed and why ### Pull Request Guidelines - Keep PRs focused — one feature or fix per PR - Ensure the project builds on Linux (`make -j$(nproc)`) - Test cross-compilation if touching platform-specific code (`./build.sh --win-release`) - Update `res/themes/ui.toml` if adding new UI layout values ## Reporting Issues - Use the [issue tracker](https://git.hush.is/dragonx/ObsidianDragon/issues) - Include: OS, wallet version, steps to reproduce, expected vs actual behaviour - For crashes: include any terminal output ## License By contributing, you agree that your contributions will be licensed under the GPLv3.