Skip to content

Migrating to ovos-config 2.0.0

In a nutshell

Device and fleet operators with a customized core.pipeline list are affected, plus anyone comparing the lang config value as a literal string. ovos-config 2.0.0 renamed every pipeline stage ID to a plugin-id form and changed the default lang casing. Fix it by updating core.pipeline to the new plugin IDs and comparing lang case-insensitively.

ovos-config 2.0.0: pipeline renames and en-US casing

This is the single largest deployer-facing config break the ecosystem shipped: every short pipeline stage ID a deployer might have hand-listed in core.pipeline was replaced by a plugin-id form in one commit, and the old spellings were not rejected, just silently ignored. A customized pipeline written against the old IDs did not error after upgrading, it just quietly stopped registering some of its stages, and adapt_low and common_qa left the default list entirely. ovos-core 2.1.4a2 closed that gap with a migration map from every short ID to its plugin ID. The same commit also flipped the default lang casing from "en-us" to "en-US", breaking any code doing an exact string comparison against the old default.

ovos-config 2.0.0 (e24e9ce, #228, 2025-06-16) is the single largest deployer-facing config break in the ecosystem. If you have a customized core.pipeline list of short stage IDs in your mycroft.conf, ovos-core 2.1.4a2 and later map each one forward to its plugin ID, so the list keeps working. Between ovos-config 2.0.0 and that release the short IDs were skipped without an error.

Old core.pipeline, before 2.0.0:

["stop_high", "converse", "ocp_high", "padatious_high", "adapt_high",
 "ocp_medium", "fallback_high", "stop_medium", "adapt_medium",
 "adapt_low", "common_qa", "fallback_medium", "fallback_low"]

New core.pipeline, 2.0.0 and later:

["ovos-stop-pipeline-plugin-high", "ovos-converse-pipeline-plugin",
 "ovos-ocp-pipeline-plugin-high", "ovos-padatious-pipeline-plugin-high",
 "ovos-adapt-pipeline-plugin-high", "ovos-m2v-pipeline-high",
 "ovos-ocp-pipeline-plugin-medium", "ovos-fallback-pipeline-plugin-high",
 "ovos-stop-pipeline-plugin-medium", "ovos-adapt-pipeline-plugin-medium",
 "ovos-fallback-pipeline-plugin-medium", "ovos-fallback-pipeline-plugin-low"]

adapt_low and common_qa are dropped from the default list entirely — they are standalone opt-in plugins now. Add "ovos-adapt-pipeline-plugin-low" and the common-query plugin ID back explicitly if you still want them.

These are the pipeline stages as they stood at 2.0.0, already in the new plugin-id notation. The default list has since grown: ovos-padatious-pipeline-plugin-medium joined it in ovos-config 2.3.9a1. See Pipelines Overview for the current stage list and how the pipeline matcher chain works.

The same commit changed the default "lang" value in mycroft.conf from "en-us" to "en-US". Any code doing an exact string comparison against the lowercase default breaks. Compare case-insensitively or update the literal.

Also in this commit: skills.directory dropped from shipped defaults, gui.idle_display_skill renamed skill-ovos-homescreen.openvoiceosovos-skill-homescreen.openvoiceos, and the entire NLP-plugin config block (tokenization, segmentation, keyword_extract, coref, postag) was removed from mycroft.conf (no longer core-config-driven).

Lifecycle:

Change Active Deprecated but functional Dropped
Short pipeline stage IDs (stop_high, converse, ...) before 2.0.0 (2025-06-16) ovos-core 2.1.4a2+, mapped forward skipped between 2.0.0 and ovos-core 2.1.4a2
lang default "en-us" before 2.0.0 n/a 2.0.0 (now "en-US")
skills.directory default key before 2.0.0 unverified 2.0.0
NLP plugin config block before 2.0.0 unverified 2.0.0

Read next: Updating From Older OVOS Related: For Device & Fleet Operators · Version-Compatible Skills & Plugins