Remove Stale Integrations from Core

With the implementation of ADR0007 and ADR0010 some integrations have been left in a stagnant state. I can speak personally for the SNMP integration. There have been multiple PRs to improve reliability, standardize the use of unique ids and add better device support that have been closed unmerged due to the interpretation that any changes would require the integration to be rewritten to support UI configuration. Since this is a non-trivial task for an integration with as many configuration options as SNMP as well as its low usage rate, 440 active users, there isn’t much impetuous for a developer to rewrite the integration. Thus, we are left with an integration that continues to fall further behind the other core integrations.

Since these two ADRs are now over four years old, I propose that we review the remaining integrations that are not in compliance and remove them from core. I’m certain that the SNMP integration isn’t the only one in this state. Much like was done with the RPI GPIO support, they can be moved to a custom integration and then development can continue or not, but it’s no longer tied to core.

The other option would be to exempt them from ADR0007 and ADR0010, but I can’t think of other examples where we’ve done that and it’s likely not in alignment with the current Home Assistant direction.

These integrations are not “stale”. They have recent updates.

Perhaps stale isn’t the best word, but they are stuck. For example, the SNMP integration supports unique id’s for sensors, but not switches, multiple PRs to add unique id’s to switches have been rejected since they didn’t include a rewrite to make the integration configurable via the UI. Yes there have been some minor PRs merged, but the reality is, this integration is stuck at the current feature state and that’s unlikely to change. If a PR was merged, that wasn’t a bug fix, it was a violation of policy and that’s not a sustainable state for an integration to be in.

If no one is willing to make the required rewrite changes what makes you think someone would be willing to take code-ownership of a 3rd party integration?