Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WestQuant Quantum Package Radar

Continuous discovery, analysis, and opportunity engine for the quantum computing software ecosystem.

Tests Python 3.10+ License: MIT


What is the Radar?

The WestQuant Quantum Package Radar is a permanent part of the WestQuant Open infrastructure. It continuously monitors PyPI and GitHub for new quantum computing packages, releases, repositories, features, and APIs — then analyzes each discovery to identify concrete opportunities for new WestQuant plugins, adapters, benchmarks, and training-data generators.

The radar does not just read release notes. Its primary purpose is to answer:

A new quantum feature was released. Can WestQuant use it? Do we already support it? Can we create a general interface? Can we generate training data from it? Can we benchmark it? Can this become a new WestQuant feature?


Architecture

PyPI updates ───────┐
PyPI new packages ──┤
GitHub search ──────┤
GitHub releases ────┤
GitHub tags/commits ┤
                    ▼
             ┌──────────────┐
             │ INGEST ENGINE│
             └──────┬───────┘
                    ▼
            Deduplicate / Normalize
                    │
                    ▼
             RELEVANCE FILTER
                    │
       ┌────────────┴─────────────┐
       │                          │
   irrelevant                 relevant
       │                          ▼
     archive                 DOWNLOAD / DIFF
                               │
                               ▼
                     SECURITY SANDBOX
                               │
                               ▼
                    CAPABILITY ANALYSIS
                               │
                               ▼
                      WESTQUANT GAP MAP
                               │
              ┌────────────────┼───────────────┐
              ▼                ▼               ▼
           Adapter          Plugin         Benchmark
              │                │               │
              ▼                ▼               ▼
        Data generator    Optimizer hook     Example
              └────────────────┬───────────────┘
                               ▼
                      OPPORTUNITY SCORE
                               │
                               ▼
                   PROPOSE WESTQUANT PR
                               │
                               ▼
                        Human approval
                               │
                               ▼
                     Package / Release

Key Design Principles

  1. Beyond monitoring — The radar identifies opportunities, not just news
  2. Security first — All third-party code is untrusted; execution only in isolated sandbox
  3. Structured output — All analysis is JSON, suitable for ML training data
  4. Human approval — The radar generates proposals, never publishes without approval
  5. Self-updating ecosystem — Radar and WestQuant packages form a closed loop

Opportunity Scoring

Every discovery gets an opportunity score:

O = 0.25R + 0.20G + 0.20U + 0.15F + 0.10D + 0.10N
Component Meaning
R Relevance to WestQuant
G Capability gap
U Estimated user value
F Implementation feasibility
D Training-data value
N Novelty

Action thresholds:

Score Action
0.00–0.30 Archive
0.30–0.50 Watch
0.50–0.70 Investigate
0.70–0.85 Prototype
0.85–1.00 Generate PR

What the Radar Automatically Detects

Radar detects WestQuant can create
New gate/operation Wrapper + compatibility layer
New optimizer WestQuant optimizer adapter
New transpiler Representation-scheduling integration
New backend Backend plugin
New QPU provider Provider adapter
New simulator Benchmark connector
New noise model Noise-analysis plugin
New QEC method QEC experiment adapter
New QML method ML data generator
New circuit transform WestQuant transformation primitive
Breaking API change Compatibility patch
New benchmark WestQuant benchmark implementation
New algorithm implementation Training-data generator
New circuit representation Representation scheduling candidate
Feature in one framework only Cross-framework abstraction

Installation

pip install westquant-radar

For development:

git clone https://github.com/WestQuantOpen/westquant-radar
cd westquant-radar
pip install -e ".[dev]"

Usage

Run the radar pipeline

# Run with default config
westquant-radar run

# Run with custom config and GitHub token
westquant-radar run --config registry/config.yaml --github-token "$GITHUB_TOKEN"

Generate daily report

westquant-radar report --format markdown
westquant-radar report --format json

List top opportunities

westquant-radar opportunities --limit 20

Configuration

All monitoring targets are configurable via YAML files in registry/:

File Purpose
config.yaml Main configuration (scheduling, enablement)
frameworks.yaml Quantum frameworks to track
packages.yaml PyPI packages (priority + watched)
github_repos.yaml GitHub repos and search queries
capabilities.yaml WestQuant capability registry

Scheduling cadence

Task Default
PyPI global discovery Every 30 min
Priority PyPI packages Every 15 min
Priority GitHub repos Every 30 min
GitHub ecosystem search Every 2 hours
Deep analysis On relevant event
Opportunity report Daily at 9 AM

Data Model

The radar persists:

  • Projects — discovered quantum projects
  • Repositories — GitHub repos being tracked
  • Packages — PyPI packages being tracked
  • Releases — version releases with diffs
  • Events — normalized discovery events
  • Capabilities — WestQuant capability registry
  • Analyses — full analysis results (JSON)
  • Opportunities — scored development opportunities
  • Generated proposals — implementation plans for high-scoring opportunities

Storage uses SQLite initially, with a storage interface that can be replaced by PostgreSQL.


Security Model

  • All downloaded packages and source repositories are treated as untrusted input
  • Package execution occurs only in an ephemeral isolated Docker container with:
    • No production credentials
    • No host filesystem access
    • Resource limits (memory, CPU)
    • Temporary filesystem
    • Restricted or disabled network access
    • Execution timeout
  • Never exposes GitHub tokens, PyPI credentials, or cloud credentials to analysis containers
  • Never executes arbitrary setup.py / install hooks outside the sandbox
  • The radar never publishes to PyPI without human approval

Output Schema

All analysis output is structured JSON:

{
  "project": "example-quantum-package",
  "version": "2.4.0",
  "event": "release",
  "quantum_relevance": 0.96,
  "changes": [
    {
      "type": "new_feature",
      "area": "circuit_optimization",
      "description": "New circuit transformation API"
    }
  ],
  "westquant": {
    "currently_supported": false,
    "compatibility_risk": "low",
    "training_data_value": 0.82
  },
  "opportunities": [
    {
      "type": "adapter",
      "score": 0.91,
      "suggested_package": "westquant-example",
      "prototype": true
    },
    {
      "type": "benchmark",
      "score": 0.78,
      "prototype": true
    }
  ]
}

This structured output is designed to become training data for future WQT models.


Initial Ecosystem

The radar seeds with the major quantum ecosystems:

Framework PyPI GitHub
Qiskit qiskit Qiskit/qiskit
PennyLane pennylane PennyLaneAI/pennylane
Cirq cirq quantumlib/cirq
Amazon Braket amazon-braket-sdk amazon-braket/amazon-braket-sdk-python
Q# qsharp microsoft/qsharp
CUDA-Q cudaquantum NVIDIA/cuda-quantum
pytket pytket CQCL/tket
Mitiq mitiq unitaryfund/mitiq
Stim stim quantumlib/Stim
PyMatching pymatching osm-quantum/PyMatching

Automatic discovery of previously unknown projects is supported via GitHub search.


Project Structure

westquant-radar/
├── radar/
│   ├── sources/           # PyPI + GitHub data sources
│   │   ├── pypi.py
│   │   ├── github_search.py
│   │   ├── github_releases.py
│   │   └── github_commits.py
│   ├── normalize/          # Event normalization
│   ├── classifiers/        # Quantum relevance + category classification
│   ├── diff/               # Release diff analysis
│   ├── sandbox/            # Security sandbox for untrusted code
│   ├── capability_map/     # WestQuant capability registry
│   ├── opportunity/        # Opportunity generation + scoring
│   ├── addon_generator/    # Implementation proposal generation
│   ├── reports/            # Daily and framework-change reports
│   ├── schemas.py          # Pydantic data models
│   ├── storage.py          # SQLite storage layer
│   ├── pipeline.py         # Main pipeline orchestrator
│   └── cli.py              # CLI entry point
├── registry/               # YAML configuration
│   ├── config.yaml
│   ├── frameworks.yaml
│   ├── packages.yaml
│   ├── github_repos.yaml
│   └── capabilities.yaml
├── tests/                  # Unit + integration + e2e tests
├── docker/
│   └── sandbox.Dockerfile  # Security sandbox image
└── .github/workflows/
    └── radar.yml           # CI + scheduled runs

Development

# Run tests
pytest tests/ -v

# Type check
mypy radar/ --ignore-missing-imports

# Lint
ruff check radar/ tests/

# Run end-to-end acceptance test
pytest tests/test_e2e_acceptance.py -v

License

MIT


Author

David Vesterlund — ORCID: 0009-0000-6455-1141 Vesterlund Ventures / WestQuant Open Source Project, Stockholm


The Closed Loop

The radar is the first step toward a self-expanding WestQuant ecosystem:

Discover → Understand → Invent → Implement → Test → Learn

Future evolution: the radar feeds discoveries to WQT10/WQT20, which attempts to construct the WestQuant adapter, runs it in the sandbox, benchmarks the result, and submits a ready PR. That is a closed loop — the beginning of a self-expanding quantum software ecosystem.

About

Continuous discovery, analysis, and opportunity engine for the quantum computing software ecosystem

Topics

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages