why does HA install dependencies after deployment?

Experienced web engineer here, setting up HA for the first time. I’m installing core via pip and Python venv. (Don’t worry, I’m not asking you for help with it.)

The install appeared to finish successfully and I ran hass to start the service. Moments later I start seeing build errors in the terminal, and the web application itself is displaying maintenance text— HA was apparently downloading and building dependencies /after/ it was booted and accepting connections.

So, I get that this behavior is normal for HA. Can someone explain why it works this way though, as opposed to building the entire application at once ahead of time? I’m coming from a world where we expect an application to be fully built/configured/runnable on first deployment. There may be good reasons that expectation doesn’t hold here. Can you help me understand? Thanks.

Everything in HA is piece meal, dependencies are only downloaded and installed if you use them. There’s almost 3k integrations in HA. Back when HA was first made, builds used to take 2+ hours to do, adding all the other dependencies would have lengthened that quite a bit.

1 Like

Ok. But doesn’t that imply your deployment might fail after installation? (And you don’t consider that a dealbreaker, engineering-wise?)