|
@@ -77,7 +77,11 @@ class Channel:
|
|
|
def get_version(self) -> AwesomeVersion:
|
|
|
return self.__version
|
|
|
|
|
|
- def __gt__(self, other: Channel) -> int:
|
|
|
+ def __gt__(self, other: Channel) -> bool:
|
|
|
+ if self.__track == 'latest':
|
|
|
+ return False
|
|
|
+ elif other.get_track() == 'latest':
|
|
|
+ return False
|
|
|
return self.__revision > other.get_revision() and self.__risk >= other.get_risk(False)
|
|
|
|
|
|
class Track:
|
|
@@ -245,7 +249,8 @@ async def async_setup(hass, config):
|
|
|
|
|
|
if snap_rev is None:
|
|
|
if AwesomeVersion(current_version).dev:
|
|
|
- snap_rev = 295
|
|
|
+ snap_rev = 327
|
|
|
+ _LOGGER.warning(f"Development, using SNAP_REVISION: {snap_rev}")
|
|
|
else:
|
|
|
raise update_coordinator.UpdateFailed(Exception("Missing SNAP_REVISION environment variable."))
|
|
|
|
|
@@ -253,13 +258,35 @@ async def async_setup(hass, config):
|
|
|
c_v = AwesomeVersion(current_version)
|
|
|
track = tracks.get_track(f"{c_v.section(0)}.{c_v.section(1)}")
|
|
|
if track is not None and len(track.get_channels()) != 0:
|
|
|
- snap_rev = track.get_latest().get_revision()
|
|
|
+ xsnap_rev = track.get_latest().get_revision()
|
|
|
else:
|
|
|
- snap_rev = default_track.get_latest().get_revision()
|
|
|
+ xsnap_rev = default_track.get_latest().get_revision()
|
|
|
+ _LOGGER.warning(f"Locally built ({snap_rev}), using SNAP_REVISION: {xsnap_rev}")
|
|
|
+ snap_rev = xsnap_rev
|
|
|
|
|
|
snap_rev = int(snap_rev)
|
|
|
current_channel = tracks.find_for_revision(snap_rev)
|
|
|
|
|
|
+ """
|
|
|
+ NOTE: This is just predictions - as a revision of a snap might be in several channels,
|
|
|
+ and always in latest. Therefore you can be on latest and reciving notification on new
|
|
|
+ releases in another channel, if they have the same revision available
|
|
|
+ """
|
|
|
+
|
|
|
+ if current_channel.get_track() == "latest":
|
|
|
+ _LOGGER.warning(
|
|
|
+ f"You're on the channel «{current_channel}», please consider switch to «{default_track.get_latest()}». "
|
|
|
+ f"Switch with: sudo snap switch --channel={default_track.get_latest()}"
|
|
|
+ f"Staying on {current_channel} will auto-upgrade your Home Assistant instance, which "
|
|
|
+ f"can cause your Home Assistant instance to stop working as of breaking changes."
|
|
|
+ )
|
|
|
+ return Updater(False, default_track.get_latest(), current_channel, None,
|
|
|
+ f"You're on the channel «{current_channel}», please consider switch to «{default_track.get_latest()}». "
|
|
|
+ f"Switch with: sudo snap switch --channel={default_track.get_latest()}"
|
|
|
+ f"Staying on {current_channel} will auto-upgrade your Home Assistant instance, which "
|
|
|
+ f"can cause your Home Assistant instance to stop working as of breaking changes."
|
|
|
+ )
|
|
|
+
|
|
|
if current_channel is not None:
|
|
|
newer_channel = current_channel.get_track().channel_with_higher_revision(current_channel)
|
|
|
if newer_channel is not None and newer_channel > current_channel:
|