ci: configura pipeline di integrazione continua
Continuous Integration / Quality Assurance (push) Canceled after 0s
Continuous Integration / Quality Assurance (push) Canceled after 0s
This commit is contained in:
@@ -0,0 +1,47 @@
|
|||||||
|
name: Continuous Integration
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
quality:
|
||||||
|
name: Quality Assurance
|
||||||
|
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Setup Python
|
||||||
|
uses: actions/setup-python@v5
|
||||||
|
with:
|
||||||
|
python-version: "3.11"
|
||||||
|
|
||||||
|
- name: Upgrade pip
|
||||||
|
run: |
|
||||||
|
python -m pip install --upgrade pip
|
||||||
|
|
||||||
|
- name: Install project
|
||||||
|
run: |
|
||||||
|
python -m pip install -e ".[dev]"
|
||||||
|
|
||||||
|
- name: Ruff
|
||||||
|
run: |
|
||||||
|
python -m ruff check .
|
||||||
|
python -m ruff format --check .
|
||||||
|
|
||||||
|
- name: MyPy
|
||||||
|
run: |
|
||||||
|
python -m mypy .
|
||||||
|
|
||||||
|
- name: Test & Coverage
|
||||||
|
run: |
|
||||||
|
python -m coverage run -m pytest
|
||||||
|
python -m coverage report
|
||||||
@@ -1,34 +1,40 @@
|
|||||||
# SMAVS
|
# SMAVS
|
||||||
|
|
||||||
> **SMAVS (Su Misura Al Vostro Sistema)**
|
> **SMAVS (Su Misura Al Vostro Sistema)**
|
||||||
> The Composition Engine developed by **Spiral**.
|
> Il Composition Engine proprietario sviluppato da **Spiral**.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Overview
|
## Cos'è SMAVS
|
||||||
|
|
||||||
SMAVS is a deterministic composition engine designed to transform structured specifications into complete software artifacts through a modular composition pipeline.
|
SMAVS è un **Composition Engine deterministico** progettato per trasformare una specifica strutturata in un artefatto software completo attraverso una pipeline di composizione modulare.
|
||||||
|
|
||||||
Rather than generating code directly, SMAVS analyzes a specification, selects compatible modules, resolves dependencies, builds an execution plan, and composes the final artifact.
|
Il framework non genera semplicemente codice e non è un template engine o un website builder.
|
||||||
|
|
||||||
The framework is built around the principles of:
|
SMAVS analizza una specifica, seleziona i moduli compatibili, risolve automaticamente le dipendenze, costruisce un piano di esecuzione e compone l'artefatto finale in maniera completamente deterministica.
|
||||||
|
|
||||||
- Deterministic execution
|
---
|
||||||
- Modular architecture
|
|
||||||
- Composition over inheritance
|
## Principi
|
||||||
- Domain-Driven Design
|
|
||||||
|
L'intera architettura del framework è basata sui seguenti principi:
|
||||||
|
|
||||||
|
- Determinismo
|
||||||
|
- Modularità
|
||||||
|
- Composition over Inheritance
|
||||||
|
- Domain-Driven Design (DDD)
|
||||||
- Clean Architecture
|
- Clean Architecture
|
||||||
- Layer isolation
|
- Layer Isolation
|
||||||
- Dependency inversion
|
- Dependency Inversion
|
||||||
- Immutability
|
- Immutabilità
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Architecture
|
## Architettura
|
||||||
|
|
||||||
The composition pipeline follows the architecture defined by the Software Architecture Specification (SAS):
|
La pipeline di composizione segue l'architettura definita nella Software Architecture Specification (SAS).
|
||||||
|
|
||||||
```
|
```text
|
||||||
JSON
|
JSON
|
||||||
│
|
│
|
||||||
▼
|
▼
|
||||||
@@ -53,13 +59,13 @@ Composition
|
|||||||
Artifact
|
Artifact
|
||||||
```
|
```
|
||||||
|
|
||||||
Each layer communicates exclusively through Contracts.
|
Ogni layer comunica esclusivamente attraverso i **Contract** definiti dal framework.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Repository Structure
|
## Struttura della Repository
|
||||||
|
|
||||||
```
|
```text
|
||||||
smavs/
|
smavs/
|
||||||
|
|
||||||
├── api/
|
├── api/
|
||||||
@@ -76,84 +82,92 @@ smavs/
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Current Status
|
## Obiettivi
|
||||||
|
|
||||||
Current version:
|
SMAVS è progettato per:
|
||||||
|
|
||||||
```
|
- analizzare una specifica di progetto;
|
||||||
0.1.0 (Foundation)
|
- costruire il Composition Context;
|
||||||
```
|
- selezionare automaticamente i moduli;
|
||||||
|
- risolvere dipendenze e conflitti;
|
||||||
|
- generare un Execution Plan;
|
||||||
|
- comporre artefatti software riproducibili.
|
||||||
|
|
||||||
Current implementation phase:
|
A parità di:
|
||||||
|
|
||||||
```
|
- specifica;
|
||||||
PHASE 0 — Foundation
|
- versione del framework;
|
||||||
```
|
- versione dei moduli;
|
||||||
|
|
||||||
Current sprint:
|
SMAVS produrrà sempre lo stesso risultato.
|
||||||
|
|
||||||
```
|
|
||||||
Sprint 0.1 — Repository
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Project Goals
|
## Stack Tecnologico
|
||||||
|
|
||||||
SMAVS aims to provide a deterministic engine capable of:
|
- Python 3.11+
|
||||||
|
|
||||||
- analyzing project specifications;
|
|
||||||
- building composition contexts;
|
|
||||||
- resolving module dependencies;
|
|
||||||
- selecting compatible variants;
|
|
||||||
- composing software artifacts;
|
|
||||||
- producing reproducible outputs.
|
|
||||||
|
|
||||||
Given the same:
|
|
||||||
|
|
||||||
- specification;
|
|
||||||
- framework version;
|
|
||||||
- module versions;
|
|
||||||
|
|
||||||
SMAVS always produces the same artifact.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Technology Stack
|
|
||||||
|
|
||||||
- Python 3.12+
|
|
||||||
- Domain-Driven Design
|
- Domain-Driven Design
|
||||||
- Clean Architecture
|
- Clean Architecture
|
||||||
- SOLID
|
- SOLID
|
||||||
- Dataclasses
|
- Dataclass immutabili
|
||||||
- Protocols
|
- Protocol
|
||||||
- Pydantic v2 (API only)
|
- Pydantic v2 (solo API)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Documentation
|
## Stato del Progetto
|
||||||
|
|
||||||
Project documentation is organized under the `docs/` directory.
|
Versione corrente
|
||||||
|
|
||||||
It includes:
|
```text
|
||||||
|
0.1.0
|
||||||
|
```
|
||||||
|
|
||||||
- Architecture
|
Fase corrente
|
||||||
- Guides
|
|
||||||
|
```text
|
||||||
|
PHASE 0 — Foundation
|
||||||
|
```
|
||||||
|
|
||||||
|
Stato
|
||||||
|
|
||||||
|
```text
|
||||||
|
In sviluppo
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Documentazione
|
||||||
|
|
||||||
|
La documentazione del progetto è disponibile nella cartella `docs/` ed è organizzata nelle seguenti sezioni:
|
||||||
|
|
||||||
|
- Architettura
|
||||||
|
- Guide
|
||||||
- API
|
- API
|
||||||
- Contracts
|
- Contract
|
||||||
- Modules
|
- Moduli
|
||||||
- Examples
|
- Esempi
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## License
|
## Licenza
|
||||||
|
|
||||||
This project is licensed under the terms described in the `LICENSE` file.
|
SMAVS è un software proprietario sviluppato da **Spiral**.
|
||||||
|
|
||||||
|
L'utilizzo, la modifica e la distribuzione sono regolati dal file `LICENSE`.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Developed by
|
## Repository
|
||||||
|
|
||||||
**Spiral**
|
Repository ufficiale:
|
||||||
|
|
||||||
SMAVS is the proprietary Composition Engine powering the Spiral ecosystem.
|
```
|
||||||
|
https://gitea.netbird.smavs.duckdns.org/SMAVS/smavs
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Spiral
|
||||||
|
|
||||||
|
SMAVS costituisce il motore di composizione alla base dell'ecosistema **Spiral** ed è progettato per consentire la generazione deterministica di artefatti software modulari, estendibili e completamente componibili.
|
||||||
|
|||||||
@@ -180,3 +180,12 @@ exclude_lines = [
|
|||||||
|
|
||||||
[tool.mkdocs]
|
[tool.mkdocs]
|
||||||
config_file = "mkdocs.yml"
|
config_file = "mkdocs.yml"
|
||||||
|
|
||||||
|
|
||||||
|
[tool.coverage.paths]
|
||||||
|
source = [
|
||||||
|
".",
|
||||||
|
]
|
||||||
|
|
||||||
|
[tool.coverage.html]
|
||||||
|
directory = "htmlcov"
|
||||||
|
|||||||
Reference in New Issue
Block a user