Contributing - jcfitzpatrick12/spectre GitHub Wiki

Have an idea or found a bug? Start by creating an issue to suggest features, report bugs, or ask questions.

Contents

Project Structure

Spectre development spans a few repositories:

Repository Description
spectre Main application repository
spectre-core Python package containing server-side implementations
gr-spectre Custom GNU Radio blocks

Development Workflow

We follow GitHub flow and use containerised development environments. Every pull request merged with the main branch of spectre must be release-ready, and will be tagged and published. You can take a look at our PR templates in advance to understand what we expect with contributions.

Here's how to get started:

  1. Set up the development environment
    Fork the repository:

    git clone https://github.com/YOUR_USERNAME/spectre.git && cd spectre
    

    Then build and run the containers:

    docker compose --file docker-compose.dev.yml up --build
    

    Optional: Update the development stages in each Dockerfile to clone your own forks of spectre-core and gr-spectre before building the images.

  2. Make your changes

    • Use VS Code's Dev Containers extension for development
    • Develop inside the spectre-dev-server container for work on the backend directory, spectre-core, or gr-spectre
    • Develop inside the spectre-dev-cli container for work in the cli directory
  3. Submit your contribution

    • Push changes to your fork
    • Open a Pull Request in the appropriate repository

Note: While historical code may lack tests, all new contributions must include unit tests.