Skip to content

Contributing to SynoCommunity

SynoCommunity is a community-driven project that provides open-source packages for Synology NAS devices. We welcome contributions of all kinds!

Ways to Contribute

Package Development

  • New Packages - Add support for applications not yet available
  • Package Updates - Keep existing packages current with upstream releases
  • Bug Fixes - Fix installation, runtime, or compatibility issues
  • Architecture Support - Extend packages to work on more devices

Documentation

  • Improve Guides - Clarify instructions, add examples
  • Package Documentation - Write or update package-specific docs
  • Translations - Help translate wizard dialogs and descriptions

Community Support

  • Issue Triage - Help categorize and reproduce bug reports
  • User Support - Answer questions in issues
  • Testing - Test packages on different hardware and DSM versions

Getting Started

1. Set Up Your Environment

Follow the development environment setup to prepare your build system.

2. Understand the Framework

Read through the developer basics to understand:

  • Package structure and anatomy
  • Build workflow and targets
  • How cross-compilation works

3. Find Something to Work On

Good first issues:

  • Look for issues labeled good first issue
  • Simple version updates
  • Documentation improvements

More advanced:

  • New package requests
  • Architecture-specific fixes
  • Framework improvements

4. Follow the Development Process

See Development Process for the full workflow from fork to merge.

Contribution Guidelines

Code Quality

  • Follow existing code style and patterns
  • Keep changes focused - one package or fix per PR
  • Test on real hardware when possible
  • Update changelog and version numbers appropriately

Commit Messages

Use the DISPLAY_NAME from the package's spk/*/Makefile as the commit prefix. See Development Process for format details and examples.

Pull Request Guidelines

  • Title: {DISPLAY_NAME}: brief description
  • Description: Explain what and why, not just how
  • Testing: Describe how you tested the changes
  • Screenshots: Include for UI changes or wizard updates

See Pull Request Guidelines for detailed requirements and the PR template.

Communication

GitHub Issues

  • Bug reports and feature requests
  • Package-specific problems
  • Build failures

Discord

  • Real-time chat with maintainers and contributors
  • Quick questions and debugging help
  • Use the #package-dev channel for development discussions

Join the SynoCommunity Discord

Recognition

Contributors are recognized in:

  • Package maintainer credits
  • Repository contributor list
  • Release notes for significant contributions

Code of Conduct

All contributors are expected to follow the Contributor Covenant Code of Conduct. We are committed to providing a welcoming and inclusive environment.