Skip to content

Change addons to apps in all user-facing strings#6696

Open
mdegat01 wants to merge 3 commits intomainfrom
addon-to-app-in-strings
Open

Change addons to apps in all user-facing strings#6696
mdegat01 wants to merge 3 commits intomainfrom
addon-to-app-in-strings

Conversation

@mdegat01
Copy link
Copy Markdown
Contributor

@mdegat01 mdegat01 commented Apr 1, 2026

Proposed change

We're renaming addons to apps across the Home Assistant ecosystem. This PR gets the ball rolling for Supervisor by attempting to do the rename in all user-facing strings. Since Supervisor does not have a UI this really just means exception messages and log messages.

It does not encompass all possible non-breaking changes (ex. internal function and variable changes). And definitely not any breaking changes such as API path changes, API field changes, docker name changes, configuration file change, etc.

Type of change

  • Dependency upgrade
  • Bugfix (non-breaking change which fixes an issue)
  • New feature (which adds functionality to the supervisor)
  • Breaking change (fix/feature causing existing functionality to break)
  • Code quality improvements to existing code or addition of tests

Additional information

  • This PR fixes or closes issue: fixes Change add-ons to apps in strings #6651
  • This PR is related to issue:
  • Link to documentation pull request:
  • Link to cli pull request:
  • Link to client library pull request:

Checklist

  • The code change is tested and works locally.
  • Local tests pass. Your PR cannot be merged unless tests pass
  • There is no commented out code in this PR.
  • I have followed the development checklist
  • The code has been formatted using Ruff (ruff format supervisor tests)
  • Tests have been added to verify that the new code works.

If API endpoints or add-on configuration are added/changed:

@mdegat01 mdegat01 requested review from agners and Copilot April 1, 2026 19:04
@mdegat01 mdegat01 added the chore Other changes that don't modify src or test files label Apr 1, 2026
@@ -357,7 +357,7 @@ class AddonConfigurationInvalidError(AddonConfigurationError, APIError):
"""Raise if invalid configuration provided for addon."""

error_key = "addon_configuration_invalid_error"
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@agners One thing we do need to decide soon is whether changes to error_key and field names in extra_fields constitute a breaking change.

If we take a strict stance then they do. These are intended to be translation key identifiers and changing them would break translations. But the reality is we haven't adopted them anywhere yet in our code and i highly doubt any apps have either since we didn't publish anything about the effort yet.

I'll leave it for a separate PR but what do you think here? Treat it like a breaking change or no?

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR begins the “add-ons” → “apps” terminology transition in Home Assistant Supervisor by updating user-facing strings (logs, exceptions, API error text) while intentionally avoiding breaking changes to internal naming, API paths/fields, or Docker/container identifiers (per issue #6651).

Changes:

  • Updated Supervisor user-facing log and exception messages to use “app/apps” terminology.
  • Updated REST/API error strings (and related messages) to use “app/apps”.
  • Updated test assertions to match the new user-facing strings.

Reviewed changes

Copilot reviewed 38 out of 38 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
tests/store/test_store_manager.py Updates expected availability error strings to “App … not supported …”.
tests/store/test_custom_repository.py Updates repository removal error expectation to “installed apps”.
tests/resolution/fixup/test_addon_execute_restart.py Updates expected fixup log text to “restart app …”.
tests/resolution/fixup/test_addon_execute_rebuild.py Updates expected rebuild fixup log text to “app …”.
tests/resolution/check/test_check_docker_config.py Updates assertion messages referring to add-ons to “App …”.
tests/backups/test_manager.py Updates expected backup-skip log text to “app …”.
tests/backups/test_backup.py Updates test error message content to “Fake app backup error”.
tests/api/test_store.py Updates API/store-related expected strings to “App …” / “app repository …”.
tests/api/test_discovery.py Updates discovery API error/log expectations to “Apps …” / “maintainer of the app”.
tests/api/test_backups.py Updates pre/post backup command error text to “app …” and “app developer”.
tests/api/test_addons.py Updates add-on API error strings to “App …” and related messages.
tests/addons/test_manager.py Updates expected “Found … installed apps” log line.
tests/addons/test_config.py Updates expected config warning strings to “App config …”.
tests/addons/test_addon.py Updates expected startup/build error log strings to “app …”.
supervisor/store/git.py Updates store git repository log strings to “app … repository”.
supervisor/store/init.py Updates store manager strings: “valid app repository”, “installed apps”, “Loading apps from store …”.
supervisor/resolution/fixups/addon_execute_start.py Updates fixup log/error strings to “start app …”.
supervisor/resolution/fixups/addon_execute_restart.py Updates fixup log strings to “restart app …”.
supervisor/resolution/fixups/addon_execute_repair.py Updates fixup log strings to “repair app …” / “Installing image for app …”.
supervisor/resolution/fixups/addon_execute_remove.py Updates fixup log strings to “App … removed” / “Remove app …”.
supervisor/resolution/fixups/addon_execute_rebuild.py Updates fixup log strings to “rebuild app …” and container-state messages.
supervisor/resolution/fixups/addon_disable_boot.py Updates fixup log strings to “Cannot change app …”.
supervisor/misc/tasks.py Updates auto-update task log strings to “app …”.
supervisor/exceptions.py Updates message templates for addon-related API errors to use “App …” / “app repository …”.
supervisor/docker/addon.py Updates device-access and startup log strings to “App …” / “Docker app …”.
supervisor/bootstrap.py Updates bootstrap folder creation logs to “Supervisor app … folder …”.
supervisor/backups/validate.py Updates validation error text to “Invalid app list in backup!”.
supervisor/backups/manager.py Updates backup manager warning to “App … not found/installed”.
supervisor/backups/backup.py Updates backup/restore/uninstall log strings to “app …”.
supervisor/api/store.py Updates API error/response text for install/update/icon/logo/changelog/docs to “App …”.
supervisor/api/proxy.py Updates websocket proxy debug labeling from “add-on” to “app”.
supervisor/api/discovery.py Updates discovery logging and forbidden message text to “App …” / “Apps must …”.
supervisor/api/addons.py Updates addon API error/forbidden text to “App …” and related strings.
supervisor/addons/validate.py Updates config validation errors/warnings to use “App …” terminology.
supervisor/addons/utils.py Updates data removal error log to “Can’t remove App Data …”.
supervisor/addons/manager.py Updates manager logs/errors to “apps” terminology across lifecycle actions.
supervisor/addons/build.py Updates unsupported-arch error text to “App … is not supported …”.
supervisor/addons/addon.py Updates add-on class logs/errors to “app …” across lifecycle, backup, restore, watchdog, etc.

@mdegat01
Copy link
Copy Markdown
Contributor Author

mdegat01 commented Apr 1, 2026

I let the AI take the full first pass and figured we'd check and adjust wording as necessary in here. I did do a review first though and overall I think it did a pretty good job with it.

EDIT: OK clearly copilot has issues with it. But I think its mostly yelling about our existing grammatical errors rather then new ones we've created with the find and replace. Win-win 😆

Copy link
Copy Markdown
Member

@sairon sairon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's CI failure resulting of one error string changed. Also, we inconsistently use capitalized "App", let's stick to lowercase everywhere - I hope I caught all occurrences.

Also, I'm all-in for adjusting the ungrammatical sentences - I encounter them every now and then in logs but always give up to fix them one by one. This is a good opportunity to fix many of those in bulk.

@home-assistant home-assistant bot marked this pull request as draft April 2, 2026 07:41
@home-assistant
Copy link
Copy Markdown

home-assistant bot commented Apr 2, 2026

Please take a look at the requested changes, and use the Ready for review button when you are done, thanks 👍

Learn more about our pull request process.

@mdegat01 mdegat01 marked this pull request as ready for review April 2, 2026 20:24
@home-assistant home-assistant bot requested a review from sairon April 2, 2026 20:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore Other changes that don't modify src or test files cla-signed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Change add-ons to apps in strings

3 participants