Upcoming changes to add-ons
GitHub Action
You can now use our builder as a GitHub action! 🎉
This is already in use in our hassio-addons repository, you can see an example on how we implemented it here.
It can be used to ensure that the add-on will still build with changes made to your repository and publish the images as part of a release workflow. How to use the action is documented in the builder repository.
Here is an example of how you can use it:
jobs:
build:
name: Test build
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v2
- name: Test build
uses: home-assistant/builder@master
with:
args: |
--test \
--all \
--target /data
This example will run a test build on all supported architectures of the add-on.
Your repository is mapped to /data
in the action, so if you have your add-on files in subdirectories, you need to supply --target /data/{directoryname}
as an argument to the builder action.
Documentation
Our API documentation has moved to the developer documentation site. During this move, it also got a style update to make it easier to navigate. Some of the endpoints are still missing some content. If you have not yet met your quota for Hacktoberfest, maybe you want to contribute some more details to our API descriptions?
API Changes
- Using the
/homeassistant/*
endpoints is deprecated and will be removed later this year. You need to use/core/*
instead. - Using
http://hassio/
is deprecated and will be removed later this year. You need to usehttp://supervisor/
instead. - Using
HASSIO_TOKEN
is deprecated and will be removed later this year. You need to useSUPERVISOR_TOKEN
instead. - Deleting snapshots with
POST
calling/supervisor/snapshots/<slug>/remove
is deprecated and will be removed later this year. You need to use theDELETE
method when calling/supervisor/snapshots/<slug>
instead. - Using
X-Hassio-Key
header as an authentication method is deprecated and will be removed later this year. You need to use an authorization header with aBearer
token instead.
The API documentation has been updated to reflect these changes.
Add-on options
The permissions of the /data/options.json
file, is changed from 644
to 600
. If your add-on is running as non-root and reading this file, it will now give you permission issues.
There are several steps you can do in your add-on to continue to use this information:
- If you are using S6-overlay in your add-on, you can use
/etc/fix-attrs.d
to ensure that the user you are running the add-on as, has access to the file. - You can change your add-on to run as
root
(default).
Releases
Until now, the Supervisor, our plugins and add-ons have been using a mix of the build number and Semantic Versioning (SemVer) as the versioning system. We have decided to replace that for these repositories and to adopt Calendar Versioning (CalVer) as our versioning system instead.
We are migrating the Supervisor from release based development to continuous development. This fits perfectly with our existing channel-based update strategy (stable, beta and dev). We are now leveraging automated pipelines to build and push out new Supervisor versions to the correct channels. There was no more need for a dual branch setup by moving to this structure, so both our dev
and master
branches have now been replaced with a new main
branch. Our plugins (DNS, Multicast, Observer, CLI) for the Supervisor will also follow this continuous development principle.
We made this move to provide higher software quality with an automatic test system. Every commit now triggers a new dev release, which gets tested by our test instances. Issues are imminently reported to sentry. This gives us the opportunity to test all changes before we create a release. When a release is created, the changes will come available in the beta channel. Once declared stable, we can promote the release to the stable channel.
We are using our builder action with GitHub actions to build and publish the Supervisor, our plugins and base images for our Docker containers. If you are interested in how we are doing this, you can look at the builder action for the Supervisor here, and the action helpers here.