Files
ObsidianDragon/CONTRIBUTING.md
2026-03-03 01:20:03 -06:00

77 lines
2.0 KiB
Markdown

# 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.dragonx.is/<your-username>/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.dragonx.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.