The latest HA release, 2023.12.0, has 773 changes listed in its changelog.
Even for me, as someone that always try to review all the changes, it’s becoming quite hard to fully process this amount of information by reading.
To simplify things and save myself some time, I’ve quickly hacked some commands together to reduce this list to what’s relevant to my config.
But, please still read the main blog entry and especially the breaking changes section. They’re not that hard to process. This guide is to catch the smaller things you might miss.
I literally just made this over the past 30 min and haven’t refined it. There are obvious issues with it (e.g. words like file and integration being ambiguous). Improvements are more than welcome (this is a community guide). For now, it reduces the changelog to 185 changes for me. Much better.
On your server, from within the config directory, you can follow these steps:
From .storage
, extract all domains. This will create a new file in /tmp
.
find .storage -type f ! -name 'hacs.repositories' -exec sed -nr 's/[[:space:]]+"domain": "(.+)",/\1/p' {} + | sort | uniq > /tmp/ha.txt
From YAML config, extract all platforms. This will append to the previous file:
grep -ir "platform:" * |grep ".yaml" |grep -v community |grep -v custom_components |sed -r 's/.+platform: (.+)/\1/p' |sort |uniq >>/tmp/ha.txt
Now reduce this list:
sort /tmp/ha.txt |uniq > /tmp/ha_reduced.txt
Follow the full changelog link included at the end of every release page on the blog and copy and paste the bullet points into a text file named /tmp/changelog.txt
. The HTML should copy and paste just fine, creating one line per point. If there’s a better source like an existing text file or to get this from GitHub, please let me know.
Now we can find the lines from ha_reduced.txt
that occur in changelog.txt
:
sed 's/^/ /; s/$/ /' /tmp/ha_reduced.txt | grep -i -f - /tmp/changelog.txt
Extra:
Run this to count the number of changes:
wc -l /tmp/changelog.txt
Run this to count the number of changes in the reduced list:
grep -f /tmp/ha.txt /tmp/changelog.txt |wc -l
PS: I’m being forced to select a tag for this post, but there’s nothing relevant.
Caveats
Common terms like version, integration, time, etc. will yield false positives. Without a more structured changelog that includes the integration it is not currently possible to improve this.