Skip to content

DO NOT MERGE: drop all backwards compatibility (BREAK train reference) - #436

Draft
JarbasAl wants to merge 1 commit into
devfrom
feat/break-train-reference
Draft

JarbasAl wants to merge 1 commit into
devfrom
feat/break-train-reference

Conversation

@JarbasAl

@JarbasAl JarbasAl commented Sep 2, 2026

Copy link
Copy Markdown
Member

🤖 Auto-generated by Claude Sonnet 5 via Claude Code — NOT human-reviewed. Verify before acting.

DO NOT MERGE — reference for the breaking release train; the owner merges when the time comes.

This branch removes every deprecated module, function, class, and re-export in ovos-utils that carries a DeprecationWarning or a documented deprecation notice, along with the tests that existed only to exercise that removed behavior. The goal is to show, in one place, how much of the package disappears once the ecosystem is ready to drop backward compatibility entirely.

A separate held PR, #412, is the kill-switch for the legacy namespace/intent-topic bridge in FakeBus and AsyncFakeBus — that bridge is deliberately left untouched here so the two PRs don't double-count the same removal. Everything else deprecated in the package is covered.

What is removed

Module Removed Kept
ovos_utils.messagebus the whole module (deprecated re-export of fakebus)
ovos_utils.dialog MustacheDialogRenderer, load_dialogs, get_dialog (superseded by ovos_spec_tools's dialog renderer) join_list
ovos_utils.bracket_expansion expand_template, expand_parentheses, expand_options, Fragment/Word/Sentence/Options/SentenceTreeParser (superseded by ovos_spec_tools.expand) expand_slots
ovos_utils.events EventSchedulerInterface (a duplicate of the class that moved to ovos_bus_client.apis.events) everything else
ovos_utils.lang standardize_lang_tag, get_language_dir (superseded by ovos_spec_tools) translate_word
ovos_utils.network_utils is_connected (alias for is_connected_http) everything else
ovos_utils.ocp available_extractors (superseded by ovos_plugin_manager.ocp; grepped ovos-bus-client source, it is no longer imported there) everything else
ovos_utils.security create_self_signed_cert (unmaintained, generates a 1024-bit RSA/SHA-1 cert modern OpenSSL rejects) everything else
ovos_utils.system ntp_sync, system_shutdown, system_reboot, ssh_enable, ssh_disable, restart_mycroft_service (superseded by ovos-PHAL-plugin-system) everything else
ovos_utils.xdg_utils the module-level XDG_* constants kept "for backward compatibility" (unused anywhere in-tree) the functions
ovos_utils.fakebus Message.publish and the deprecated Message alias wrapper — both unrelated to the legacy bridge, which stays the legacy namespace/intent-topic bridge (covered by #412)

Diffstat

45 files changed, 14 insertions(+), 2445 deletions(-).

Tests

The full unit suite passes after the removal: 916 passed, 1 skipped, no regressions. Nothing in dev was already red. Test files that only pinned the removed deprecated behavior were deleted (test_bracket_extra.py, test_messagebus.py, test_security_extra.py, the whole test/unittests/dialog/ fixture directory) or trimmed in place.

Needs a call

  • ovos_utils.ocp's legacy PlaybackMode/MediaState enum members marked # DEPRECATED - used in ovos 0.0.7 (PLAYING_AUDIOSERVICE, QUEUED_AUDIOSERVICE, AUDIO_SERVICE, FORCE_AUDIOSERVICE) were left in place — they are enum values, and removing them risks breaking comparisons against persisted/serialized state rather than live imports. Left for the owner to decide.
  • The LOG.warning("DEPRECATED: use dict2entry()...") runtime warning in ocp.py is a soft nudge, not an importable deprecated API surface, so it was left as-is.

…ing release)

Removes every deprecated module, function, class, and re-export in
ovos-utils that carries a DeprecationWarning or a documented deprecation
notice, plus the tests that exercised only that removed behavior:

- ovos_utils.messagebus (whole module, deprecated re-export of fakebus)
- ovos_utils.dialog: MustacheDialogRenderer, load_dialogs, get_dialog
  (superseded by ovos_spec_tools' dialog renderer); join_list kept
- ovos_utils.bracket_expansion: expand_template, expand_parentheses,
  expand_options, Fragment/Word/Sentence/Options/SentenceTreeParser
  (superseded by ovos_spec_tools.expand); expand_slots kept
- ovos_utils.events.EventSchedulerInterface, a duplicate of the class
  that moved to ovos_bus_client.apis.events
- ovos_utils.lang: standardize_lang_tag, get_language_dir (superseded
  by ovos_spec_tools); translate_word kept
- ovos_utils.network_utils.is_connected (alias for is_connected_http)
- ovos_utils.ocp.available_extractors (superseded by
  ovos_plugin_manager.ocp; grepped ovos-bus-client source, no longer
  imported there)
- ovos_utils.security.create_self_signed_cert (unmaintained, generates
  a cert modern OpenSSL rejects)
- ovos_utils.system: ntp_sync, system_shutdown, system_reboot,
  ssh_enable, ssh_disable, restart_mycroft_service (superseded by
  ovos-PHAL-plugin-system)
- ovos_utils.xdg_utils: the module-level XDG_* constants kept "for
  backward compatibility" (unused anywhere in-tree)
- ovos_utils.fakebus.Message.publish and the deprecated Message alias
  wrapper (both unrelated to the legacy namespace/intent-topic bridge,
  which stays untouched here — that bridge is the held kill-switch in
  ovos-utils#412 and duplicating it would double-count the diff)

This is a reference PR: it does not merge. Its only purpose is to show
the total code deleted once the breaking release train flips. 45 files
changed, 14 insertions(+), 2445 deletions(-). Full suite: 916 passed,
1 skipped (no regressions; nothing in dev was already red).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Greetings! The CI pipeline has delivered its findings. 🏗️

I've aggregated the results of the automated checks for this PR below.

📋 Repo Health

Checking if the repo is following its diet. 🥗

✅ All required files present.

Latest Version: 0.14.0a1

ovos_utils/version.py — Version file
README.md — README
LICENSE — License file
pyproject.toml — pyproject.toml
⚠️ setup.py — setup.py
CHANGELOG.md — Changelog
ovos_utils/version.py has valid version block markers

⚖️ License Check

Ensuring our copyright headers are in tip-top shape. ✍️

✅ No license violations found.

Policy: Apache 2.0 (universal donor). StrongCopyleft / NetworkCopyleft / WeakCopyleft / Other / Error categories fail. MPL allowed.

📊 Coverage

A detailed breakdown of what's being tested. 📊

84.5% total coverage

Files below 80% coverage (6 files)
File Coverage Missing lines
ovos_utils/log_parser.py 48.4% 225
ovos_utils/__init__.py 72.7% 6
ovos_utils/file_utils.py 74.4% 56
ovos_utils/security.py 76.4% 13
ovos_utils/thread_utils.py 76.9% 12
ovos_utils/geolocation.py 78.4% 22

Full report: download the coverage-report artifact.

🔍 Lint

I've checked the vitals of this contribution. 🩺

ruff: issues found — see job log

🔨 Build Tests

From source to binary, let's see how it holds up. 🧱

✅ All versions pass

Python Build Install Tests
3.10
3.11
3.12
3.13
3.14

Helping you push code with confidence 🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant