Skip to content
This repository was archived by the owner on May 12, 2026. It is now read-only.

Latest commit

 

History

History
32 lines (19 loc) · 2.15 KB

File metadata and controls

32 lines (19 loc) · 2.15 KB

Contributing to AllSpark Edge Server

This document covers development rules and conventions specific to AllSpark Edge Server. These rules are mandatory for all contributors, including automated/agentic coding tools.

Development Rules

1. Unified Configuration (YAML)

All operational settings must be stored in python/config.yaml.

  • No local JSON: The local server has been refactored away from legacy JSON configurations. Do not write or rely on .json settings files, prefer .yaml format locally. JSON formatting is still used for send/receive to/from mobile clients.
  • Namespaces: Configurations must be split into two explicit namespaces: mobile_client (for device telemetry and synchronization endpoints) and control_plane (web dashboard and dashboard dependencies).
  • Auto-generation: The server must automatically handle fallback implementations and auto-generate any missing safe default configuration schemas upon launch.

2. Architecture & UI

  • Python First: The server backend and GUI are Python-based. Do not use legacy Node.js workflows.
  • NiceGUI Control Plane: The Edge server control plane is built using NiceGUI. Routing is natively managed by decorators (e.g. @ui.page('/route')). When creating pages, add a call inside the main process to initialize them dynamically.

3. File-System Signals

For anomaly event monitoring and signaling, utilize local native directory-watching mechanisms within the Control Plane GUI for tracking events and system logs.

4. Dependencies — Pin All Versions

All dependencies must use exact, pegged versions (no ^, ~, or * ranges). This prevents version drift across environments and ensures reproducible builds for security.

Code Style & Versioning

  • Enforce proper Python styling guides (flake8 / black when applicable).
  • Keep requirements updated using frozen requirements.txt.

The allspark-edge-server repository uses Release Please to automate CHANGELOG generation and semantic versioning. Your PR titles must follow Conventional Commit standards (e.g., feat:, fix:, chore:).