Generators as plugins with drift checking: interface stubs and ARXML from the model

Aperta
#373 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
20/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
javascript, rust
Ambito
devtools, tooling

Direzione di ricerca

Read issue #363 item 12 and the existing build-config, export-sysml, and structured export entry points to understand the current model outputs. Then review the import plugin contract and symbol drift check referenced as A. Done means a documented generator contract and manifest schema, plus one reference generator whose --check fails when a model operation changes and generated output is stale.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Part of #363 (item 12). Largest payoff, largest cost.

Current state

build-config generates build-system artifacts from a Configuration; export-sysml and the structured export give the model graph. Nothing generates interface stubs, glue or ARXML.

Proposal

  • A generator contract, symmetric to import plugins: syscribe generate <alias> [--config C] [--out <dir>] runs [generators.<alias>] (a subprocess reading the structured model JSON on stdin, writing files and a manifest), so generators live outside the core.
  • Drift check. The manifest records, per generated file, the hash of the model elements it came from and the hash of the content; generate --check and validate report a generated file edited by hand or a model change not reflected in the output (traceBaselines:-style).
  • Reference generators (examples): interface stubs for AIDL or C++ from operations:; ARXML from ports and interfaces.
  • Ownership rule: the model is the source of truth for the interface, the code for the implementation; generated files are marked and never hand-edited (a // GENERATED header with the element ids).

Acceptance

  • One reference generator with --check that fails when a model operation changes and the output is stale.
  • The contract is documented with the manifest schema.

Risks

Round-tripping (code edits that should flow back) is out of scope; the import plugins plus the symbol drift check (A) cover the reverse direction.

Part of #272 (executable MBSE / software design).


Generated by Claude Code

Lingua principale
Rust
Stelle
8
Fork
1
Merge medio
3h 35m
PR unite (30g)
69

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di sjames/syscribe

Tutte le issue di sjames/syscribe

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.