Contributing - pothosware/SoapySDR GitHub Wiki

Collaboration table of contents

The following is a guide to contributors to encourage a semblance of order.

The SoapySDR repository contains the main library, development headers, and language bindings. Individual hardware support modules are contained in separate repositories that have varying dependencies and features. Clone and build the SoapySDR repository to get the development library and headers, then clone the appropriate Soapy hardware support repository for development.

The SoapySDR issue tracker is used for core library or "high level" issues. Issues for an individual support module can be found in the respective issue tracker. Please use the correct repository to create and comment on issues.

The main SoapySDR library is available under the Boost Software License (BSL) 1.0. This permissive license is friendly with many other open source licenses and commercial uses. In order to keep it that way, please be conscience of the licensing of external dependencies and code snippets. Copy-left licenses are are only appropriate for some hardware support modules when applicable. Permissive licences are preferable to maximize the utility of SoapySDR for others.

The licensing for the hardware support modules varies from repository to repository. The choice of licensing depends on the module's author, the licensing of its dependencies, and other factors. When contributing to an existing hardware support module, please be aware of its license, and make sure that contributions match appropriately.

SoapySDR follows the same copyright model as the Boost project. If you wrote a significant amount of code, anything more than a simple patch or bugfix, append your name, or the name of your organization to the top of the files in question. Proper code attribution signifies the copyright holder's intention to publish the contributions under the specified licensing, usually indicated by the "SPDX-License-Identifier".

The required dependencies vary widely depending upon which hardware devices are going to be used. However, SoapySDR itself requires very little in the way of dependencies. Ideally, just CMake and a compiler, and perhaps optional language bindings. The overall goal is to minimize the number of external dependencies required by core library to keep SoapySDR as easy to install as possible.

Any new dependencies should either be optional by way of the build system, or a requirement for a hardware support module and not the SoapySDR library.

⚠️ **GitHub.com Fallback** ⚠️