Skip to content

Commit ebbe9af

Browse files
avrabeclaude
andauthored
chore(release): bump to v0.8.0 + CHANGELOG entry (#176)
Promotes Track D Phase 1 + Track E commits 1-7 from "on main but unadvertised" (v0.7.1) to "officially released" (v0.8.0). Headlines: - Track D Phase 1 (TSN/Ethernet WCTT) — new spar-network crate, NC primitives, WcttAnalysis pass, latency.rs integration, Lean theorems. - Track E (migration oracle) — Spar_Migration property set, BindingOverlay, `spar moves verify`, `spar moves enumerate`, multi-objective ranking, rivet variant integration. - Track F (SysML v2 engagement strategy) — research-backed plan + audit. Phase 2 TSN-shaped service curves (TAS/CBS/preemption) deferred to v0.8.x. Track E commit 8 MCP tool surface deferred to v0.9.0 by design. Cargo.toml workspace + vscode-spar/package.json + Cargo.lock bumped. CHANGELOG.md gets the v0.8.0 entry. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent ed23290 commit ebbe9af

4 files changed

Lines changed: 113 additions & 20 deletions

File tree

CHANGELOG.md

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,99 @@ All notable changes to spar are documented here. Format follows
44
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and the project
55
follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
66

7+
## [0.8.0] — 2026-04-28
8+
9+
This release promotes the Track D Phase 1 (TSN/Ethernet WCTT analysis) and
10+
Track E (frozen-platform / mobile-application + hypothetical-rebinding
11+
oracle) features that have been on `main` since v0.7.1. Also adds the
12+
`spar moves verify` and `spar moves enumerate` user-facing CLIs.
13+
14+
### Added — Track D Phase 1: TSN/Ethernet WCTT analysis (6/6 commits)
15+
16+
- **New crate `spar-network`** — Network Calculus primitives, NetworkGraph
17+
extraction from `SystemInstance`, and supporting types. All values in
18+
`u64` picoseconds / bytes / bits-per-second — no floating-point drift.
19+
- **`Spar_Network::*` property set**`Switch_Type` (FIFO / Priority /
20+
TSN), `Queue_Depth`, `Forwarding_Latency` (Time_Range), `Output_Rate`,
21+
`WCTT_Budget`. Switches are modelled as `bus implementation` carrying
22+
the `Switch_Type` discriminator (Option C of the design — AADL-spec-
23+
conformant, no grammar extension).
24+
- **NC primitives**`ArrivalCurve`, `ServiceCurve`, `backlog_bound`,
25+
`delay_bound`, `residual_service`, `output_bound`. Closed-form for
26+
the affine + rate-latency case.
27+
- **`WcttAnalysis` pass** — per-stream end-to-end traversal-time bounds
28+
across the device/bus graph. New diagnostics: `WcttBound`,
29+
`WcttExceedsBudget`, `WcttUnservable`, `WcttSwitchOverloaded`.
30+
- **`latency.rs` integration** — RTA-derived WCET on compute hops
31+
alternates with WCTT-derived bounds on network hops, end-to-end.
32+
`Bus_Properties::Latency` scalar remains the fallback for unannotated
33+
buses, preserving v0.7.x behaviour.
34+
- **Lean theorems**`proofs/Proofs/Network/MinPlus.lean` mirrors classical
35+
NC closed-forms with monotonicity proved + `sorry`-with-`TODO(v1.0.0)` for
36+
the universally-quantified arithmetic statements.
37+
38+
Phase 2 (TSN-shaped service curves: TAS, CBS, frame preemption) is
39+
deferred to v0.8.x.
40+
41+
### Added — Track E: hypothetical-rebinding oracle (7/8 commits)
42+
43+
- **`Spar_Migration::*` property set**`Frozen`, `Mobile`,
44+
`Allowed_Targets`, `Pinned_Reason`. Plus `is_frozen` / `is_mobile`
45+
helpers for HIR-level mobility queries.
46+
- **`BindingOverlay`** — HIR-level overlay so any analysis can run on a
47+
hypothetical binding without mutating the `SystemInstance`. Validates
48+
against Frozen / Allowed_Targets returning structured `FrozenViolation` /
49+
`AllowedTargetsViolation` diagnostics.
50+
- **`spar moves verify --component X --to Y`** — first user-facing
51+
surface of the migration oracle. Builds a `BindingOverlay`, runs
52+
validation + analyses, returns structured pass/fail JSON. Exit codes
53+
0/1/2 distinguish ok / analysis-error / binding-violation.
54+
- **`spar moves enumerate --component X`** — design-space exploration.
55+
Lists every valid hypothetical rebinding target within `Allowed_Targets`
56+
with verification status and a multi-objective ranking metric.
57+
- **Multi-objective ranking** — `--objective max-response | total-load |
58+
total-power | total-weight | balanced`. Adds `Spar_Power::Power_Budget`
59+
property. Score uses the same RTA + property-accessor machinery as
60+
direct verification, so `verify` and `enumerate` stay consistent.
61+
- **Rivet variant integration** — both `verify` and `enumerate` accept
62+
`--variant NAME` (implicit; shells out to `rivet`) or
63+
`--variant-context PATH` (explicit; reads JSON blob). Variant filter
64+
applies before overlay validation per the v1 contract's intersection
65+
semantics.
66+
- **Documentation**`docs/cli/moves.md` with flags, exit codes,
67+
output schemas, candidate-set derivation, ranking semantics, worked
68+
example.
69+
70+
Commit 8 (MCP tool surface for `spar.verify_move` / `spar.enumerate_moves`)
71+
is v0.9.0 scope by design — read-only / idempotent only, deterministic
72+
apply stays CLI-exclusive.
73+
74+
### Added — Track F: SysML v2 / KerML community engagement strategy
75+
76+
- `docs/designs/track-f-sysml-kerml-engagement.md` — research-backed
77+
engagement plan for the OMG SysML v2 ecosystem. Anchors on the
78+
`Systems-Modeling/SysML-v2-AADL-Release` repo + named contacts at
79+
Galois / CMU-SEI / Ellidiss. Includes verified `spar-sysml2` audit
80+
(production-grade with full requirements roundtrip) + Rust ecosystem
81+
positioning (`syster`, `Sysand`, `tree-sitter-sysml`).
82+
83+
### Changed
84+
85+
- COMPLIANCE.md narrative updated for v0.8.0 release; v0.9.0 horizon
86+
noted (Track E commit 8 MCP, spar-insight, Track D Phase 2 conditional
87+
on demand, syster license clarification).
88+
- Test count: ~2200+ across 18 crates (previously ~1900+ across 17).
89+
90+
### Documentation
91+
92+
- `docs/cli/moves.md` — comprehensive `spar moves verify` / `enumerate` reference.
93+
- `docs/designs/v0.7.0-hierarchical-rta.md`, `track-d-tsn-wctt-research.md`,
94+
`track-e-migration-research.md`, `track-f-sysml-kerml-engagement.md`.
95+
- `docs/contracts/rivet-spar-variant-v1.md` — variant interchange contract.
96+
- `proofs/README.md` — proof tree overview.
97+
98+
---
99+
7100
## [0.7.1] — 2026-04-27
8101

9102
This release closes the v0.7.x line. Headline: full IRQ-aware response-time

Cargo.lock

Lines changed: 18 additions & 18 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ members = [
2222
]
2323

2424
[workspace.package]
25-
version = "0.7.1"
25+
version = "0.8.0"
2626
edition = "2024"
2727
license = "MIT"
2828
repository = "https://github.com/pulseengine/spar"

vscode-spar/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"displayName": "AADL (spar)",
44
"description": "AADL v2.2 language support with live architecture visualization",
55
"publisher": "pulseengine",
6-
"version": "0.7.1",
6+
"version": "0.8.0",
77
"license": "MIT",
88
"repository": {
99
"type": "git",

0 commit comments

Comments
 (0)