Skip to content

Epic: migrate OVOS repos onto ovos-spec-tools #7

@JarbasAl

Description

@JarbasAl

Epic — migrate OVOS repos onto ovos-spec-tools

Tracking epic for migrating the OVOS ecosystem onto ovos-spec-tools, the conformant reference implementation of the OVOS specifications. This is the concrete work behind the "all existing OVOS repos compliant" criterion of the adoption issue #5.

Why

The same machinery has been reimplemented and drifting across the ecosystem — template expansion duplicated in ~7 repos, the language-matching boilerplate (standardize_lang_tag + closest-match + distance < 10) in ~12, ad-hoc resource loaders in ~3, and the bus Message envelope re-implemented in ovos-bus-client alongside a separate FakeMessage in ovos-utils. ovos-spec-tools is the single conformant implementation each repo depends on.

Strategy

  • Each repo migrates directly onto ovos-spec-tools — no transitive routing through ovos-utils.
  • Waves by dependency order, so a repo lands before its dependents.
  • Conformance, not just refactor. The specs are prescriptive; migration may change behaviour (e.g. a malformed template now raises instead of silently degrading). Each such change is deliberate and tested.
  • Full normalised BCP-47 tag everywhere, no macro flag. Engines reconcile at match time via closest_lang.

Per-repo recipe

  1. Add the ovos-spec-tools dependency.
  2. Replace the local implementation with a call to ovos-spec-tools; delete the dead copy.
  3. Preserve the repo's public API as a thin wrapper (deprecation warning pointing at the spec-tools import).
  4. Run the repo's tests; reconcile divergences against the spec.
  5. For a repo shipping locale/, add ovos-spec-lint to CI.
  6. One PR per repo.

Progress

Wave 1 — foundation

Wave 1.5 — bus Message primitive consolidation

The Message class moves to ovos-spec-tools as the single source of truth; ovos-bus-client and ovos-utils.fakebus re-export it.

Wave 2 — core libraries

Wave 3 — pipeline plugins

Wave 4 — leaf consumers

  • ovos-lang-parser
  • ovos-option-matcher-fuzzy-plugin
  • ovos-solver-YesNo-plugin
  • skills shipping a locale/ folder

Forthcoming spec adoption

As the in-flight specs leave Draft, the per-repo recipe extends to adopting their topic names and conformance points. The topic-name catalogue belongs in ovos-pydantic-models, not in ovos-spec-tools; tracked separately.

Specs with pending implementation impact (open PRs — see issue #5):

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions