Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extend safe mode #31927

merged 4 commits into from Feb 18, 2020

Extend safe mode #31927

merged 4 commits into from Feb 18, 2020


Copy link

balloob commented Feb 17, 2020

Breaking change

Proposed change

Extend safe mode to also activate if the current configuration results in a Home Assistant installation without the frontend loaded.

This will make sure users can no longer break the frontend by misconfiguring lovelace or person.

It's a bit messy because we will start a new hass object to make sure no other integrations are messing with Home Assistant. We fire the stop event to make integrations wrap up.

Did some fixes to zeroconf and logging util because I noticed they would not handle it well.

Type of change

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

Example entry for configuration.yaml:

# Example configuration.yaml
  break_frontend_with_invalid_option: true

Additional information

  • This PR fixes or closes issue: fixes #
  • This PR is related to issue:
  • Link to documentation pull request:


  • 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 Black (black --fast homeassistant tests)
  • Tests have been added to verify that the new code works.

If user exposed functionality or configuration variables are added/changed:

If the code communicates with devices, web services, or third-party tools:

  • The manifest file has all fields filled out correctly.
    Updated and included derived files by running: python3 -m script.hassfest.
  • New or updated dependencies have been added to requirements_all.txt.
    Updated by running python3 -m script.gen_requirements_all.
  • Untested files have been added to .coveragerc.

The integration reached or maintains the following Integration Quality Scale:

  • No score or internal
  • 馃 Silver
  • 馃 Gold
  • 馃弳 Platinum

This comment has been minimized.

Copy link

probot-home-assistant bot commented Feb 17, 2020

Hey there @robbiet480, @Kane610, mind taking a look at this pull request as its been labeled with a integration (zeroconf) you are listed as a codeowner for? Thanks!

@project-bot project-bot bot added this to Needs review in Dev Feb 17, 2020
@balloob balloob mentioned this pull request Feb 17, 2020
0 of 9 tasks complete

This comment has been minimized.

Copy link

codecov bot commented Feb 17, 2020

Codecov Report

Merging #31927 into dev will decrease coverage by <.01%.
The diff coverage is 93.1%.

Impacted file tree graph

@@            Coverage Diff             @@
##              dev   #31927      +/-   ##
- Coverage   94.69%   94.68%   -0.01%     
  Files         763      763              
  Lines       55184    55231      +47     
+ Hits        52256    52298      +42     
- Misses       2928     2933       +5
Impacted Files Coverage 螖
homeassistant/ 75.4% <100%> (+2.62%) 猬嗭笍
homeassistant/util/ 95.83% <77.77%> (-1.61%) 猬囷笍
homeassistant/components/template/ 96.34% <0%> (-1.37%) 猬囷笍
homeassistant/util/ 85.71% <0%> (+8.44%) 猬嗭笍

Continue to review full report at Codecov.

Legend - Click here to learn more
螖 = absolute <relative> (impact), 酶 = not affected, ? = missing data
Powered by Codecov. Last update 00ac7a7...991b2ef. Read the comment docs.

@balloob balloob merged commit beee129 into dev Feb 18, 2020
8 of 10 checks passed
8 of 10 checks passed
codecov/patch 93.1% of diff hit (target 94.69%)
codecov/project 94.68% (-0.01%) compared to 18dfb02
CI Build #20200217.88 succeeded
CI (FullCheck Mypy) FullCheck Mypy succeeded
CI (FullCheck Pylint) FullCheck Pylint succeeded
CI (Overview CheckFormat) Overview CheckFormat succeeded
CI (Overview Lint) Overview Lint succeeded
CI (Overview Validate) Overview Validate succeeded
CI (Tests PyTest Python37) Tests PyTest Python37 succeeded
cla-bot Everyone involved has signed the CLA
Dev automation moved this from Needs review to Done Feb 18, 2020
@balloob balloob deleted the extend-safe-mode branch Feb 18, 2020
safe_mode = True

elif "frontend" not in hass.config.components:
_LOGGER.warning("Detected that frontend did not load. Activating safe mode")

This comment has been minimized.

Copy link

MartinHjelmare Feb 18, 2020


How do we know that the user requested the frontend to load?

This comment has been minimized.

Copy link

balloob Feb 18, 2020

Author Member

We don't. But I don't know of any use case that runs without the frontend loaded.

This comment has been minimized.

Copy link

MartinHjelmare Feb 18, 2020


We haven't required the frontend to be loaded before this PR, as far as I know.

If you're relying mainly on automations the frontend is mostly used for configuration, and that can be done without frontend, I think. So there definitely are use cases.

I think this is a pretty big change to do without discussion 1 day before a beta cut.

This comment has been minimized.

Copy link

balloob Feb 19, 2020

Author Member

Addressed in #31969

@lock lock bot locked and limited conversation to collaborators Feb 21, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Linked issues

Successfully merging this pull request may close these issues.

None yet

5 participants
You can鈥檛 perform that action at this time.