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 discussions and 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 clear, descriptive commit messages:

{DISPLAY_NAME}: brief description of change

Detailed explanation if needed. Reference issues with #123.

Use the DISPLAY_NAME from the package's spk/*/Makefile (e.g., "Transmission", "Python 3.12").

Examples:

Transmission: Update to v4.0.5

Python 3.12: Fix wheel building for armv5

docs: add troubleshooting section for PHP packages

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.

Communication

GitHub Issues

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

GitHub Discussions

  • General questions
  • Ideas and proposals
  • Community announcements

IRC/Matrix

  • Real-time chat with maintainers
  • Quick questions and debugging help

Recognition

Contributors are recognized in:

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

Code of Conduct

We are committed to providing a welcoming and inclusive environment. Please:

  • Be respectful and considerate
  • Welcome newcomers and help them learn
  • Focus on constructive feedback
  • Respect differing viewpoints and experiences