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:
-
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 eachDockerfile
to clone your own forks ofspectre-core
andgr-spectre
before building the images. -
Make your changes
- Use VS Code's Dev Containers extension for development
- Develop inside the
spectre-dev-server
container for work on thebackend
directory,spectre-core
, orgr-spectre
- Develop inside the
spectre-dev-cli
container for work in thecli
directory
-
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.