Define minimal portable device profile schema (v1.1.0 unblocker) #66
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
First concrete v1.1.0 issue, per §10.4 of issue #62 comment #273 and Jack's acceptance in comment #289.
Goal
Land a portable, minimal
device_profile.jsonschema and a working example derived from Jack's existingconfig/device_map.json. This is the foundation the rest of v1.1.0 (aura profile, animation pack, prompt generator) builds on.Scope (minimal — additions wait for the milestone that needs them)
Initial schema fields, per §10.4 of #273:
schema_version(string, semver) — explicit version tag so future schema evolutions can be detected and migrated.machine_name(string) — human-readable identifier for the machine.openrgb(object):host(string),port(integer).devices(array of objects), each containing:id(string, stable identifier)openrgb_name(string, name as OpenRGB reports it)type(enum: at minimumfan,motherboard,gpu,unknown)zones(array of objects):zone_index(integer, OpenRGB's index)led_count(integer, total LEDs in the zone)usable_leds(integer, LEDs RGB Aura should actually drive)Acceptance criteria
schemas/device_profile.schema.jsonor similar).device_profile.jsonfor Jack's machine, derived from the currentconfig/device_map.json. Roundtrip-equivalent — the runtime should be able to produce the same hardware behavior from either.Out of scope (deferred per #62 §8 cut list)
rgb-aura setup) — v1.1.X or v1.2.0.linear/unknown— v1.2.0.aura_profile.jsonand animation pack schemas — their own issues.rgb-aura migrate-profileCLI — its own issue (likely opened immediately after this one lands, since it's the path that turnsdevice_map.jsoninto the v1.1.X reality).rgb-aura pack diagnoseCLI itself — its own issue.Branch and PR plan
developasfeature/issue-<this-issue-number>-device-profile-schema.Notes
schema_versionfield starts at"1.0.0". Rationale: SemVer reserves0.x.yfor experimental APIs where anything can break; calling this schema experimental contradicts the "schema is the contract" framing from §4.1 of #273. Starting at1.0.0lets v1.1.X additions bump minor (additive, backward-compatible) and any breaking changes bump major — a distinction LLMs and validators can act on. Open to a different versioning scheme (e.g., integer-only) if you want to push back on this — say so before the PR opens.Implemented by PR #96.
Issue #66 is complete.
The PR targeted
developand stayed within the schema/profile validation scope for v1.1.0.What was added:
schemas/device_profile.schema.jsonconfig/device_profile.example.jsonsrc/rgb_aura/device_profile.pytests/test_device_profile.pyThe new device profile foundation supports:
linear/unknownzone layout classificationJack’s example profile preserves the current runtime behavior conceptually:
No runtime hardware behavior was changed.
config/device_map.jsonremains the active runtime mapping until a future migration/runtime issue explicitly changes that.Hardware verification was not required for this issue because the completed work does not change OpenRGB connection logic, RGB write paths, animation frame builders, runtime startup behavior, shutdown restore behavior, systemd ordering, or active device mapping behavior.
Verification performed: