- commits:
    - subject: Add ability to stream logs from host services to cloud
      hash: fb6fa9b16caa33eabeb44414d4681cea52d11784
      body: >
        Add `os-power-mode.service`, `nvpmodel.service`, and
        `os-fan-profile.service`

        which report status from applying power mode and fan profile configs as
        read

        from config.json. The Supervisor sets these configs in config.json for
        these

        host services to pick up and apply.


        Also add host log streaming from `jetson-qspi-manager.service` as it

        will very soon be needed for Jetson Orins.
      footer:
        Relates-to: "#2379"
        relates-to: "#2379"
        See: balena-os/balena-jetson-orin#513
        see: balena-os/balena-jetson-orin#513
        Change-type: minor
        change-type: minor
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 16.9.0
  title: ""
  date: 2024-12-06T17:52:55.615Z
- commits:
    - subject: Take update locks for host-config changes
      hash: a2d4b31b231d7e7981d2032b0bb76d301088ca95
      body: |
        This adds update-lock support to hostname changes via the host-config
        endpoint, in addition to proxy changes as changing the hostname may
        cause an engine restart from the OS.
      footer:
        Change-type: minor
        change-type: minor
      author: Felipe Lalanne
      nested: []
  version: 16.8.0
  title: ""
  date: 2024-12-05T17:06:07.578Z
- commits:
    - subject: Clean up remaining locks on state settle
      hash: 9c09329b86f08523501d4fbc54511cb2051b4bea
      body: |
        Locks could remain from a previous supervisor run that didn't get to
        settle the state. This ensures that cleanup will happen for remaining
        locks every time the state is settled.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Refactor update-locks implementation
      hash: 3c6e9dd209a259211ed3fd2e7bbe00f3235f87aa
      body: |
        The refactor simplifies the implementation and ensures that locks per
        app can only be held by one supervisor task at the time.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Refactor lockfile module
      hash: d8f54c05e7536096576ada4db3294785bef6b0ff
      body: |
        Updated interfaces for clarity
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 16.7.8
  title: ""
  date: 2024-11-28T21:23:24.352Z
- commits:
    - subject: "Firewall: allow DNS requests from custom Docker bridge networks"
      hash: 7e1cafa866d7ce04d983a990aa219dbd23de26c7
      body: |
        We only allow DNS requests through `balena0` interface, but this
        is the default Docker bridge which is used for containers that
        don't have a custom bridge. However, the Supervisor creates a
        custom bridge for all containers unless another network mode is
        specified.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 16.7.7
  title: ""
  date: 2024-11-11T19:02:34.485Z
- commits:
    - subject: Update firewall documentation
      hash: 1b747f6d65372632a5491a0630e7de00f92c773f
      body: |
        Removes experimental warning and updates issues
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 16.7.6
  title: ""
  date: 2024-11-07T21:02:38.875Z
- commits:
    - subject: Delete apps not in target from db by appUuid instead of appId
      hash: 3d3f659f1616cc291824d1f46da08583c138f39c
      body: >
        Resolve an issue in balenaMachine instances that were installed at
        <v14.1.0,

        in which a Supervisor app with random UUID is kept in the target db due
        to its appId

        being the same, even after the BM instance has upgraded to v14.1.0 which
        patches

        the correct reserved Supervisor app UUIDs in. This results in two
        Supervisors running

        on devices under the BM instance which persists after BM upgrade.
      footer:
        See: https://balena.fibery.io/search/T7ozi#Inputs/Pattern/Two-supervisors-are-running-on-device-3370
        see: https://balena.fibery.io/search/T7ozi#Inputs/Pattern/Two-supervisors-are-running-on-device-3370
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 16.7.5
  title: ""
  date: 2024-11-07T13:34:05.062Z
- commits:
    - subject: Update express to v4.20.0 [SECURITY]
      hash: f2aaf7372d0716e3b62118ed3102a7eac0f169a5
      body: |
        Update express from 4.19.2 to 4.20.0
      footer:
        Change-type: patch
        change-type: patch
      author: balena-renovate[bot]
      nested: []
  version: 16.7.4
  title: ""
  date: 2024-10-28T14:40:42.702Z
- commits:
    - subject: Add NXP support to balenaOS secure boot
      hash: 619f64429931975a6f33f1ef444928962d82e200
      body: |
        On NXP iMX devices the partitions are not encrypted with LUKS but with
        the lower level dm-crypt subsystem.

        Adapt the partition mount script to use dmsetup which works for both
        LUKS and dm-crypt encrypted partitions.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Alex Gonzalez <alexg@balena.io>
        signed-off-by: Alex Gonzalez <alexg@balena.io>
      author: Alex Gonzalez
      nested: []
  version: 16.7.3
  title: ""
  date: 2024-10-28T14:04:22.141Z
- commits:
    - subject: Use bookworm image to source journalctl binaries
      hash: 57a17ea2075d7aadd440b7c2be78f52136988ad9
      body: |
        Debian no longer publishes linux/arm/v5 images for bullseye, breaking
        support for raspberry pi zero.

        This change might not solve the issue indefinitely
        as we don't know how long debian will continue publishing armv5 images.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 16.7.2
  title: ""
  date: 2024-10-18T15:20:52.555Z
- commits:
    - subject: Add support for init field from compose
      hash: ed1c18e3691e60bc22652e930be49e428d2ef1fe
      body: |
        Init supports boolean values, and is not included in the config when
        not defined.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 16.7.1
  title: ""
  date: 2024-09-26T14:28:03.356Z
- commits:
    - subject: Store rejected apps in the database
      hash: e9a52e6786e94f6be5e23c9410fc7b59df4726b5
      body: |
        This moves from throwing an error when an app is rejected due to unmet
        requirements (because of contracts) to storing the target with a
        `rejected` flag on the database.

        The application manager filters rejected apps when calculating steps to
        prevent them from affecting the current state. The state engine uses the
        rejection info to generate the state report.
      footer:
        Change-type: minor
        change-type: minor
      author: Felipe Lalanne
      nested: []
    - subject: Set the app update status when reporting state
      hash: 227fee9941b77ec5a7589231979b083fb62d4f00
      body: ""
      footer:
        Change-type: minor
        change-type: minor
      author: Felipe Lalanne
      nested: []
    - subject: Add update status to types
      hash: e9f460fd75e296fb295b9e1f7a7bb56f7929035d
      body: ""
      footer:
        Change-type: minor
        change-type: minor
      author: Felipe Lalanne
      nested: []
  version: 16.7.0
  title: ""
  date: 2024-09-02T15:33:39.300Z
- commits:
    - subject: Remove unused patchDevice function
      hash: 788afee9a1ebce3d1a319b0ca998ba4163f482ce
      body: |
        This function was a remainder of the dependent devices code that no
        was removed on #2105
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 16.6.1
  title: ""
  date: 2024-08-29T16:36:07.606Z
- commits:
    - subject: Add support for redsocks dnsu2t config
      hash: eaa07e97a9fd2089d1f6a2f3bdff74215cdee789
      body: |
        Users may specify dnsu2t config by including a `dns` field
        in the `proxy` section of PATCH /v1/device/host-config's body:
        ```
        {
          network: {
            proxy: {
              dns: '1.1.1.1:53',
            }
          }
        }
        ```

        If `dns` is a string, ADDRESS and PORT are required and should be
        in the format `ADDRESS:PORT`. The endpoint with error with
        code 400 if either ADDRESS or PORT are missing.

        `dns` may also be a boolean. If true, defaults will be configured.
        If false, the dns configuration will be removed.

        If `proxy` is patched to empty, `dns` will be removed regardless
        of its current or input configs, as `dns` depends on an active
        redsocks proxy to function.
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 16.6.0
  title: ""
  date: 2024-08-28T22:47:08.152Z
- commits:
    - subject: Update webpack to v5.94.0 [SECURITY]
      hash: a480266c5603dde4db0d1630cf5b21748c204d14
      body: |
        Update webpack from 5.76.0 to 5.94.0
      footer:
        Change-type: patch
        change-type: patch
      author: balena-renovate[bot]
      nested: []
  version: 16.5.8
  title: ""
  date: 2024-08-27T22:41:39.587Z
- commits:
    - subject: Add unit test for usingInferStepsLock
      hash: 51e59725f87b03e0e469e872373cf6088f0cb34a
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 16.5.7
  title: ""
  date: 2024-08-27T21:18:29.272Z
- commits:
    - subject: "Revert PR #2364"
      hash: 3cebfa9f789c973f94f285da2a4edcc4095e63c0
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 16.5.6
  title: ""
  date: 2024-08-23T00:24:26.769Z
- commits:
    - subject: Avoid unnecessary config calls during Supervisor init
      hash: fc6927e53d8460863ee495405750feb62ef0483c
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 16.5.5
  title: ""
  date: 2024-08-21T04:35:54.822Z
- commits:
    - subject: Add kmod to runtime-base
      hash: aeb9c621a545a2b6aeead64cdd467a9371d76414
      body: |
        balenaOS v6 enables zstd module compression by default. Add kmod to
        runtime-base to support loading of compressed modules.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Joseph Kogut <joseph@balena.io>
        signed-off-by: Joseph Kogut <joseph@balena.io>
      author: Joseph Kogut
      nested: []
  version: 16.5.4
  title: ""
  date: 2024-08-16T14:36:29.003Z
- commits:
    - subject: Do not write `noProxy` to redsocks.conf
      hash: b088b78a3e9ca135a9624a2d5be54a7c205fb03f
      body: |
        This fixes a regression introduced by the refactor in #2329 where
        `noProxy` was being included in the data added to redsocks.conf.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 16.5.3
  title: ""
  date: 2024-08-08T16:40:40.421Z
- commits:
    - subject: Verify that LED_FILE exists on blinking setup
      hash: a255001c2e71942dd57806688dd1fb90a59ba22a
      body: |
        Before v1, the blinking module would not throw when the passed led file
        does not exist. This change checks for file existence and defaults to
        `/dev/null` otherwise
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 16.5.2
  title: ""
  date: 2024-08-07T21:59:11.050Z
- commits:
    - subject: Avoid leaking memory on deep promise recursions
      hash: d789e5bb77e0337773c69ed9d4e24696c019c6ac
      body: >
        The following pattern

        ```ts

        async function longRunning() {
           // do something
           await setTimeout(delay);
           await longRunning();
        }

        ```


        Is regularly used for long running operations on the supervisor (e.g.

        polling target state). We have

        recently discovered that this pattern can slowly leak memory as it

        essentially creates an infinite promise chain. Using `void
        longRunning()` breaks

        the chain and avoids the issue.


        This commit fixes all those instances where the pattern was used.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 16.5.1
  title: ""
  date: 2024-08-05T19:17:30.564Z
- commits:
    - subject: Use promises for setup/writing for logging backend
      hash: 8bc08750e946a3eea5c7eba14182a9506823b559
      body: |
        The balena logging backend now uses async functions to setup the
        connection and write messages to the request stream. This adds some
        backpressure on `log` calls by by the log monitor module, to prevent a
        very agressive container causing the supervisor to waste CPU cycles just
        dropping messages.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Improve the LogBackend interface
      hash: f3fcb0db7a8478dfe9ffde342b683510ba49502f
      body: |
        This make the LogBackend `log` method into an async method in
        preparation for upcoming changes that will use backpressure from the
        connection to delay logging coming from containers.

        This also removes unnecessary imageId from the LogMessage type
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Use stream pipeline instead of pipe
      hash: 5af948483a69701ebe7db9933a695f85f29b62f3
      body: |
        This also removes the use of JSONStream from the monitor module
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Do not use DB to store container logs info
      hash: dbacca977a1f42ad4e3381112d3523cf7624d283
      body: |
        This removes the dependence of the supervisor on the containerLogs
        database for remembering the last sent timestamp. This commit instead
        uses the supervisor startup time as the initial time for log retrieval.
        This might result in some logs missing for services that may start
        before the supervisor after a boot, or if the supervisor restarts.
        However this seems like an acceptable trade-off as the current
        implementation seems to make things worst in resource contrained
        environments.

        We'll move storing the last sent timestamp to a better storage medium in
        a future commit.
      footer:
        Change-type: minor
        change-type: minor
      author: Felipe Lalanne
      nested: []
  version: 16.5.0
  title: ""
  date: 2024-07-30T18:48:22.422Z
- commits:
    - subject: Update semver to v7.6.3
      hash: 340e69d0c22e12281ac8608eda2b5a871e645e19
      body: |
        Update semver from 7.6.2 to 7.6.3
      footer:
        Change-type: patch
        change-type: patch
      author: Self-hosted Renovate Bot
      nested: []
  version: 16.4.6
  title: ""
  date: 2024-07-30T14:43:21.325Z
- commits:
    - subject: Update balena-io/deploy-to-balena-action action to v2.0.74
      hash: 92be067b0d2e408a526e55bd3a6a57e46dc52687
      body: |
        Update balena-io/deploy-to-balena-action from 2.0.72 to 2.0.74
      footer:
        Change-type: patch
        change-type: patch
      author: Self-hosted Renovate Bot
      nested: []
  version: 16.4.5
  title: ""
  date: 2024-07-25T14:31:14.222Z
- commits:
    - subject: Improve log message typing
      hash: 4976578a830f3db6484e940a710928544709511d
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 16.4.4
  title: ""
  date: 2024-07-17T14:48:47.790Z
- commits:
    - subject: "Logs: only truncate the message if it's possible it will need it"
      hash: c5d0eafea9016792d3eea04bf9d9df7886eb8bc0
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
    - subject: "Logs: skip setting default values if we're dropping as an invalid log"
      hash: 34cf8b67081d7d353319839eab129569a186cd71
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
    - subject: "Logs: only call `Date.now()` if a timestamp is not already present"
      hash: 0a817af10c7dc107b7524a63b2410ff84c275a8d
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 16.4.3
  title: ""
  date: 2024-07-16T22:28:15.802Z
- commits:
    - subject: Cleanup images after state-engine tests
      hash: f38714d40ffa0c1a885016e8fdfbca46aff4108f
      body: |
        Tests on GitHub started failing recently because of leftover images from
        the state engine test suite. This fixes that issue to allow tests to
        pass.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 16.4.2
  title: ""
  date: 2024-07-16T21:55:49.331Z
- commits:
    - subject: Remove custom typings for docker-delta
      hash: 28706510da4f3f09a12c4db6250dfe8f2a12eaa3
      body: |
        This are no longer needed since docker-delta migrated to typescript in
        v4 and the custom typings were actually masking some bugs
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 16.4.1
  title: ""
  date: 2024-07-05T21:13:40.384Z
- commits:
    - subject: Refactor host-config to be its own module
      hash: 53f5641ef1cd2e5374f55a50a601fb80d4872511
      body: >
        The host-config module exposes the following interfaces: get,

        patch, and parse.


        `get` gets host configuration such as redsocks proxy configuration

        and hostname and returns it in an object of type HostConfiguration.


        `patch` takes an object of type HostConfiguration or
        LegacyHostConfiguration

        and updates the hostname and redsocks proxy configuration, optionally

        forcing the patch through update locks.


        `parse` takes a user input of unknown type and parses it into type

        HostConfiguration or LegacyHostConfiguration for patching, erroring if

        parse was unsuccessful.


        LegacyHostConfiguration is a looser typing of the user input which does

        not validate values of the five known proxy fields of type, ip, port,

        username, and password. We should stop supporting it in the next

        major Supervisor API release.
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
    - subject: Add HostConfig.parse method
      hash: be986a62a5835116d58903fac9ffcf5c7d1fd0e1
      body: |
        Parses input from PATCH /v1/device/host-config into either
        type HostConfiguration, or if LegacyHostConfiguration if
        input is of an acceptable shape (for backwards compatibility).

        Once input has been determined to be of type HostConfiguration,
        we can easily extract ProxyConfig from the object for patching,
        stringifying, and writing to redsocks.conf.
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 16.4.0
  title: ""
  date: 2024-07-04T20:25:36.036Z
- commits:
    - subject: Fix engine deadlock on network+service change
      hash: ede27b63cecc2a9ae3139a905d9c6ab32418a72b
      body: >
        This fixes a regression on the supervisor state engine computation

        (added on v16.2.0) when

        the target state removes a network at the same time that a service

        referencing that network is changed. Example going from


        ```

        services:
           one:
              image: alpine: 3.18
              networks: ['balena']

        networks:
           balena:
        ```


        to


        ```

        services:
           one:
              image: alpine: latest
        ```


        Would never reach the target state as killing the service in order to

        remove the network is prioritized, but one of the invariants in the
        target state calculation is

        to not kill any services until all images have been downloaded. These

        two instructions were in contradiction leading to a deadlock.


        The fix involves only adding removal steps for services depending on a

        changing network or volume if the service container is not being removed

        already.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 16.3.17
  title: ""
  date: 2024-06-25T01:03:26.734Z
- commits:
    - subject: Update balena-io/deploy-to-balena-action action to v2.0.72
      hash: 170733422a7a8fb2e58482508fe74dc2fcb282a5
      body: |
        Update balena-io/deploy-to-balena-action from 2.0.71 to 2.0.72
      footer:
        Change-type: patch
        change-type: patch
      author: Self-hosted Renovate Bot
      nested: []
  version: 16.3.16
  title: ""
  date: 2024-06-17T01:56:08.257Z
- commits:
    - subject: Update balena-io/deploy-to-balena-action action to v2.0.71
      hash: 552f77cef5aa4ff0107c5bd558755e4ed4c81ab2
      body: |
        Update balena-io/deploy-to-balena-action from 2.0.70 to 2.0.71
      footer:
        Change-type: patch
        change-type: patch
      author: Self-hosted Renovate Bot
      nested: []
  version: 16.3.15
  title: ""
  date: 2024-06-10T01:57:02.800Z
- commits:
    - subject: Update got to v14.4.1
      hash: 11628cda16986b76f67969970fe708e24d3ab125
      body: |
        Update got from 14.3.0 to 14.4.1
      footer:
        Change-type: patch
        change-type: patch
      author: Self-hosted Renovate Bot
      nested: []
  version: 16.3.14
  title: ""
  date: 2024-06-09T13:29:56.248Z
- commits:
    - subject: Split target state set/get into separate module
      hash: 45d1f1f964e777b5168b089858af0cec33f98c68
      body: |
        This removes the circular dependency between device state index and
        preloading and cleans up the device state module code
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Move device-state.ts into the device-state/index.ts
      hash: fedeb518e5315a7cb593818c2e80a5d8e459cefa
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Move device-state/target state to api-binder/poll
      hash: 9497eed380e63f3b5d794071879ad9e8e4369178
      body: |
        This goes in the direction of grouping modules by responsibility. The
        api-binder module is the middleware between the device and the backend,
        thus the target state polling code makes more sense there.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 16.3.13
  title: ""
  date: 2024-06-05T20:43:08.205Z
- commits:
    - subject: Update balena-io/deploy-to-balena-action action to v2.0.70
      hash: d7a325b80a5c79d290b7bb232dabb4a7ac2737f9
      body: |
        Update balena-io/deploy-to-balena-action from 2.0.69 to 2.0.70
      footer:
        Change-type: patch
        change-type: patch
      author: Self-hosted Renovate Bot
      nested: []
  version: 16.3.12
  title: ""
  date: 2024-06-03T01:55:57.227Z
- commits:
    - subject: Move OS variant retrieval to config module
      hash: 027c2575b1147b5395c61e3d824f9dff95e7f1d0
      body: |
        This also deprecates the `getOSVariant` function of the `os-release`
        module, as the OS variant are no longer defined in `/etc/os-release`.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Do not export balenaApi on api-binder
      hash: 59689b27892a0bb3e6ec692c158070b6defb48a9
      body: |
        Instead, add `getBalenaApi` function to api-helper so other modules can
        access a balena API instance.

        Further reduces circular dependencies to 5
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Move api-keys module to src/lib
      hash: ac2db38742962a31af63549f0d9f257e6a1331f3
      body: |
        This removes circular dependencies between the device-api module and
        the compose module, reducing total circular dependencies to 15
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Do not re-export ContractObject on lib/contracts
      hash: 48f75e61b8c53c532c27eb0c3f0d878312b4f2e7
      body: |
        Further reduce circular dependencies to 10
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Move Compose(Network|Volume)Config to top level types
      hash: bef5e784400d13d2788748e059e36c761d956f23
      body: |
        This reduces dependencies from 80 to 47
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Move composition types to compose/types
      hash: 234e0de07599c1033d04c77d2df9a000d38f60dd
      body: |
        This reduces circular dependencies from 250 to 80 by ensuring that
        modules that only require types do not import the full module with all
        its dependencies.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Split compose types into interface and implementation
      hash: 94de4006a07baada9336721c4084a00f885a6572
      body: |
        This splits `App`, `Network`, `Service` and `Volume` which used to be
        defined as classes into an interface and a class implementation that is
        not exported. This will allow to work with just the types in some cases
        and prevent circular dependencies when importing.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 16.3.11
  title: ""
  date: 2024-05-27T20:04:25.017Z
- commits:
    - subject: Update got to v14.3.0
      hash: 4764bca2c4122a37f1f4c684e673ddca3812b4c9
      body: |
        Update got from 14.2.1 to 14.3.0
      footer:
        Change-type: patch
        change-type: patch
      author: Self-hosted Renovate Bot
      nested: []
  version: 16.3.10
  title: ""
  date: 2024-05-27T02:41:46.106Z
- commits:
    - subject: Update balena-io/deploy-to-balena-action action to v2.0.69
      hash: 9cdb363e4cf274e5506247cc55cebef0c676de7e
      body: |
        Update balena-io/deploy-to-balena-action from 2.0.68 to 2.0.69
      footer:
        Change-type: patch
        change-type: patch
      author: Self-hosted Renovate Bot
      nested: []
  version: 16.3.9
  title: ""
  date: 2024-05-27T01:59:21.096Z
- commits:
    - subject: Update balena-io/deploy-to-balena-action action to v2.0.68
      hash: 8a7972c783845576741c626f7ac543671ebf868b
      body: |
        Update balena-io/deploy-to-balena-action from 2.0.67 to 2.0.68
      footer:
        Change-type: patch
        change-type: patch
      author: Self-hosted Renovate Bot
      nested: []
  version: 16.3.8
  title: ""
  date: 2024-05-24T14:29:17.821Z
- commits:
    - subject: Update sinon to v18
      hash: 6b47c3572dea75c161e3931f05f37c46828d90a2
      body: |
        Update sinon from 17.0.1 to 18.0.0
      footer:
        Change-type: patch
        change-type: patch
      author: Self-hosted Renovate Bot
      nested: []
  version: 16.3.7
  title: ""
  date: 2024-05-24T13:45:20.892Z
- commits:
    - subject: Update balena-io/deploy-to-balena-action action to v2.0.67
      hash: 21f72b0ce9fd977517df3bf0ee5c186a17d432c9
      body: |
        Update balena-io/deploy-to-balena-action from 2.0.66 to 2.0.67
      footer:
        Change-type: patch
        change-type: patch
      author: Self-hosted Renovate Bot
      nested: []
  version: 16.3.6
  title: ""
  date: 2024-05-20T01:54:04.811Z
- commits:
    - subject: Update balena-io/deploy-to-balena-action action to v2.0.66
      hash: 0786f6d95bf67c5ba7002dd10bdde2578a4b28ea
      body: |
        Update balena-io/deploy-to-balena-action from 2.0.65 to 2.0.66
      footer:
        Change-type: patch
        change-type: patch
      author: Self-hosted Renovate Bot
      nested: []
  version: 16.3.5
  title: ""
  date: 2024-05-13T01:53:50.173Z
- commits:
    - subject: Update semver to v7.6.2
      hash: da5fdc5d781ce2c6dcf61f7344ef7a75aa5eb180
      body: |
        Update semver from 7.6.1 to 7.6.2
      footer:
        Change-type: patch
        change-type: patch
      author: Self-hosted Renovate Bot
      nested: []
  version: 16.3.4
  title: ""
  date: 2024-05-12T16:29:18.605Z
- commits:
    - subject: Update semver to v7.6.1
      hash: 6ebeab14c1f8484335c553de10e64f4bae109797
      body: |
        Update semver from 7.6.0 to 7.6.1
      footer:
        Change-type: patch
        change-type: patch
      author: Self-hosted Renovate Bot
      nested: []
  version: 16.3.3
  title: ""
  date: 2024-05-10T16:29:32.262Z
- commits:
    - subject: Update balena-io/deploy-to-balena-action action to v2.0.65
      hash: 9945629f0a9fde10ec23668d3fc793e696ef82fb
      body: |
        Update balena-io/deploy-to-balena-action from 2.0.63 to 2.0.65
      footer:
        Change-type: patch
        change-type: patch
      author: Self-hosted Renovate Bot
      nested: []
  version: 16.3.2
  title: ""
  date: 2024-05-06T01:53:45.002Z
- commits:
    - subject: Update @balena/contrato to 0.9.4
      hash: 1dcd156fc84376fcba8141f37c4901e176b5cdb4
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 16.3.1
  title: ""
  date: 2024-05-01T01:06:23.630Z
- commits:
    - subject: Add rpi support to balenaOS secure boot
      hash: 3017ca6308ad8fce9e65882441a9ef5e123e9c6f
      body: |
        - Loop through `rpi`, `efi` for crypt boot mount
        - Remove `exit 1` from dbus_get_mount
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 16.3.0
  title: ""
  date: 2024-04-30T21:13:08.847Z
- commits:
    - subject: Update balena-io/deploy-to-balena-action action to v2.0.63
      hash: 6c2a07bd776c27fda9d34e9205152b8aac0476eb
      body: |
        Update balena-io/deploy-to-balena-action from 2.0.62 to 2.0.63
      footer:
        Change-type: patch
        change-type: patch
      author: Self-hosted Renovate Bot
      nested: []
  version: 16.2.37
  title: ""
  date: 2024-04-29T22:28:45.427Z
- commits:
    - subject: Remove unused event-stream dependency
      hash: 23ba3e43849bca6172a3783c82216c360c986eb2
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
    - subject: Update io-ts to 2.2.20, io-ts-reporters to 2.0.1, fp-ts to 2.16.5
      hash: f510dd9a8068df4d0c14f6598388bf5c15e235b4
      body: >
        TODO: Upgrading io-ts to 2.2.21 will result in some unit tests for

        io-ts type validation breaking, due to a change in t.record's handling

        of decoding unknown objects. In <2.2.21, a record with a custom key type

        will decode an unknown object to Left if it has a key is not of the
        custom

        type. Whereas in io-ts@2.2.21, t.record will strip the invalid key and

        decode to Right. This is a breaking change for us.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 16.2.36
  title: ""
  date: 2024-04-29T19:54:50.854Z
- commits:
    - subject: Update @types dependencies
      hash: 4adf7105209a3aa407a93e22870100fe0b468015
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 16.2.35
  title: ""
  date: 2024-04-29T16:10:01.354Z
- commits:
    - subject: "Dev: update husky to v9"
      hash: 7df3c1f5fca8ae3e2a1a015b5698420c278e06c1
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 16.2.34
  title: ""
  date: 2024-04-29T15:09:50.951Z
- commits:
    - subject: Update docker related dependencies
      hash: ae823fea181e2b1680940538b04b5af37c1b3229
      body: |
        This bumps dockerode, removes resin-docker-build in favor of
        @balena/compose, and updates docker-delta and docker-progress packages.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 16.2.33
  title: ""
  date: 2024-04-26T19:51:36.874Z
- commits:
    - subject: Update balena-io/deploy-to-balena-action action to v2.0.62
      hash: 20f6cb07cb1989f99eaa54625d8e4b502e2e0919
      body: |
        Update balena-io/deploy-to-balena-action from 2.0.58 to 2.0.62
      footer:
        Change-type: patch
        change-type: patch
      author: Self-hosted Renovate Bot
      nested: []
  version: 16.2.32
  title: ""
  date: 2024-04-26T01:51:50.589Z
- commits:
    - subject: Move lib/fs-utils tests to testfs
      hash: 9c968b8d06a407e943d9f91eb5f89863280d7962
      body: |
        This removes mock-fs as a dependency
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 16.2.31
  title: ""
  date: 2024-04-26T00:40:13.656Z
- commits:
    - subject: Update supertest to v7
      hash: 35e17cf22c0e45c14daa2efa24eb07358d14fff6
      body: |
        This patches a `formidable` package vulnerability
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
    - subject: Update fork-ts-checker-webpack-plugin to v9
      hash: 73b71386fe00fdf9896ef6f14ead75920e9318bf
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
    - subject: Update yargs to v17, tar-stream to v3
      hash: 717c8cd6149eb46b8b7e39b3021fd86321f95089
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 16.2.30
  title: ""
  date: 2024-04-24T18:35:21.169Z
- commits:
    - subject: Refactor MDNS resolver into a module
      hash: 6f02b17968d02c2e27b523e40a25ef4c4815d20a
      body: |
        Also add integration tests for the resolver functionality to prevent
        regressions.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Fix mdnsResolver import
      hash: ad52561de548ef9f2dfec67187ae0d903e0bedfe
      body: |
        The `mdns-resolver` module does not provide a default export. Trying to
        use a default import notation, causes the `resolve` function to not be
        found, breaking MDNS resolution.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 16.2.29
  title: ""
  date: 2024-04-24T15:13:31.152Z
- commits:
    - subject: Gracefully handle multiple reboot/shutdown requests
      hash: 14bdc522c17c924ce560da81f735b96bac41bd4d
      body: |
        Since HTTP's server.close() is async, there is a slim chance
        for two instances of /v1/reboot or /v1/shutdown to be processed.
        If the server is already closed when server.close() is called,
        the call throws ERR_SERVER_NOT_RUNNING
        which doesn't need to be surfaced to the user. This change
        only allows one server.close() attempt to occur at a time.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 16.2.28
  title: ""
  date: 2024-04-23T20:19:12.030Z
- commits:
    - subject: Update ts-node to v10
      hash: d14824f2fddffb0292af94c001d90e816ddb94c6
      body: |
        Update ts-node from 8.10.2 to 10.9.2
      footer:
        Change-type: patch
        change-type: patch
      author: Self-hosted Renovate Bot
      nested: []
  version: 16.2.27
  title: ""
  date: 2024-04-23T19:33:02.255Z
- commits:
    - subject: Remove unnecessary @types packages
      hash: 8ebb26663880d879e5eb6528512822c99e1ef42b
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
    - subject: Update knex to 3.1.0
      hash: 17a7e60506f36403a98c0205d80989edcb1997f6
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
    - subject: Update json-mask to 2.0.0
      hash: 77f6f17042d9fda21d90dc5363824562f1ddd0f6
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
    - subject: Update lint-staged to 15.2.2
      hash: f3809dccfb3cf787da9ccd9fefab6d0f2554d895
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
    - subject: Update mocha-pod to 2.0.5
      hash: 9ca027ad486ecffac20f1cff714c493e92b7befc
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
    - subject: Update mocha to 10.4.0
      hash: 7c423958ea61c12f3786b9a52567dea75d2351c5
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
    - subject: Update rewire to 7, @balena/lint to 8
      hash: 5d6a73514165f4fc60b64d3eebafc0419e50e228
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
    - subject: Update nodemon to 3.1.0
      hash: d887809494ce27859ddd571048f4c7266c0c4bec
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
    - subject: Update sinon to 17
      hash: bd26d8877003aa751df0216f341e776d39370724
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
    - subject: Update systeminformation to 5.22.7
      hash: 7bb5900649b42ecd418dc21590b7359c2088cc5c
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 16.2.26
  title: ""
  date: 2024-04-23T18:58:25.318Z
- commits:
    - subject: Update copy-webpack-plugin to v12
      hash: dde0e86a1abfab8c8f0e954ed632d5b154dc5a55
      body: |
        Update copy-webpack-plugin from 11.0.0 to 12.0.2
      footer:
        Change-type: patch
        change-type: patch
      author: Self-hosted Renovate Bot
      nested: []
  version: 16.2.25
  title: ""
  date: 2024-04-19T15:46:46.217Z
- commits:
    - subject: Update webpack-cli to v5
      hash: 00f1610870497c4e2436d0fc022f4de30b90707b
      body: |
        Update webpack-cli from 4.10.0 to 5.1.4
      footer:
        Change-type: patch
        change-type: patch
      author: Self-hosted Renovate Bot
      nested: []
  version: 16.2.24
  title: ""
  date: 2024-04-19T14:55:50.059Z
- commits:
    - subject: Update got to v14
      hash: 148ba6e0c31ac09834cb8ad598bf1cac35ca1095
      body: |
        Update got from 12.6.1 to 14.2.1
      footer:
        Change-type: patch
        change-type: patch
      author: Self-hosted Renovate Bot
      nested: []
  version: 16.2.23
  title: ""
  date: 2024-04-19T13:34:13.665Z
- commits:
    - subject: Update @types/supertest to v6
      hash: e24691fa63c1f2b6f097e0bcb510bfc9da1eda7d
      body: |
        Update @types/supertest from 2.0.12 to 6.0.2
      footer:
        Change-type: patch
        change-type: patch
      author: Self-hosted Renovate Bot
      nested: []
  version: 16.2.22
  title: ""
  date: 2024-04-19T12:25:19.313Z
- commits:
    - subject: Remove unused `tmp` dependency
      hash: 12cc8eb91b52545d84a22e511ddd63ad4ac677ad
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 16.2.21
  title: ""
  date: 2024-04-18T02:44:36.677Z
- commits:
    - subject: Update rimraf
      hash: 5e5a803e26ac36a3085701c3c7055553be6d2fcb
      body: |
        Update @types/rimraf from 2.0.5 to 4.0.5
      footer:
        Change-type: patch
        change-type: patch
      author: Self-hosted Renovate Bot
      nested: []
  version: 16.2.20
  title: ""
  date: 2024-04-17T15:39:15.721Z
- commits:
    - subject: Update semver to v7.6.0
      hash: 52268d83fa6d8fd364e765b4c0d11128040e9410
      body: |
        Update semver from 7.5.4 to 7.6.0
      footer:
        Change-type: patch
        change-type: patch
      author: Self-hosted Renovate Bot
      nested: []
  version: 16.2.19
  title: ""
  date: 2024-04-17T14:38:48.064Z
- commits:
    - subject: Update event-stream to v3.3.5
      hash: 36e0fed219b041fa9695dd97629f710d52d76129
      body: |
        Update event-stream from 3.3.4 to 3.3.5
      footer:
        Change-type: patch
        change-type: patch
      author: Self-hosted Renovate Bot
      nested: []
  version: 16.2.18
  title: ""
  date: 2024-04-15T21:29:50.342Z
- commits:
    - subject: Add additional update lock tests for lockOverride & force
      hash: 57207c35398f147205fdc25d5010ec3fb51b132e
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 16.2.17
  title: ""
  date: 2024-04-15T20:57:03.828Z
- commits:
    - subject: Update @types/chai-things to v0.0.38
      hash: 28d583067193fd0bcdb56732faf659785389f248
      body: |
        Update @types/chai-things from 0.0.35 to 0.0.38
      footer:
        Change-type: patch
        change-type: patch
      author: Self-hosted Renovate Bot
      nested: []
  version: 16.2.16
  title: ""
  date: 2024-04-15T16:33:18.061Z
- commits:
    - subject: Update webpack to v5.76.0 [SECURITY]
      hash: 6517d7fdbd6185c448846f7265c411fb0a2d899c
      body: |
        Update webpack from 5.74.0 to 5.76.0
      footer:
        Change-type: patch
        change-type: patch
      author: Self-hosted Renovate Bot
      nested: []
  version: 16.2.15
  title: ""
  date: 2024-04-15T15:29:42.533Z
- commits:
    - subject: Disable automerge for major npm devDependencies
      hash: dfff74d21c1c05b0e9a4560db807887b079a73dc
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Kyle Harding <kyle@balena.io>
        signed-off-by: Kyle Harding <kyle@balena.io>
      author: Kyle Harding
      nested: []
  version: 16.2.14
  title: ""
  date: 2024-04-15T14:19:35.895Z
- commits:
    - subject: Update shell-quote to v1.7.3 [SECURITY]
      hash: 7398e53626f90d574ea5ce9b318e518fce8d0c19
      body: |
        Update shell-quote from 1.7.2 to 1.7.3
      footer:
        Change-type: patch
        change-type: patch
      author: Self-hosted Renovate Bot
      nested: []
  version: 16.2.13
  title: ""
  date: 2024-04-15T13:53:49.933Z
- commits:
    - subject: Update express to v4.19.2 [SECURITY]
      hash: 9dfb0c576429290c42754e64f27e86bbde8e23bf
      body: |
        Update express from 4.17.1 to 4.19.2
      footer:
        Change-type: patch
        change-type: patch
      author: Self-hosted Renovate Bot
      nested: []
  version: 16.2.12
  title: ""
  date: 2024-04-15T11:31:06.812Z
- commits:
    - subject: Enable npm package management via Renovate
      hash: 23c2f6ddf10216ad47935ff8bf894274299b0ba2
      body: |
        Settings are inherited from balena-io/renovate-config
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Kyle Harding <kyle@balena.io>
        signed-off-by: Kyle Harding <kyle@balena.io>
      author: Kyle Harding
      nested: []
  version: 16.2.11
  title: ""
  date: 2024-04-15T10:40:13.559Z
- commits:
    - subject: Update balena-io/deploy-to-balena-action action to v2.0.58
      hash: d7c14686cf22d9b82da1e3d7c8e52efb71da6ddc
      body: |
        Update balena-io/deploy-to-balena-action from 2.0.57 to 2.0.58
      footer:
        Change-type: patch
        change-type: patch
      author: Self-hosted Renovate Bot
      nested: []
  version: 16.2.10
  title: ""
  date: 2024-04-15T03:02:03.903Z
- commits:
    - subject: Don't follow symlinks when checking for lockfiles
      hash: 6e185fbd447bce46179f60a9e650a3a35937d990
      body: |
        The Supervisor should only care whether a lockfile exists or
        not. This also fixes an edge case where a user symlinked a lockfile
        to a nonexistent file, causing the Supervisor to enter an error
        loop as it was not able to `stat` the nonexistent file.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 16.2.9
  title: ""
  date: 2024-04-12T16:50:06.044Z
- commits:
    - subject: Update balena-io/deploy-to-balena-action action to v2.0.57
      hash: 97633816850f0d13d70cdfa2afb8bc9652e71fa2
      body: |
        Update balena-io/deploy-to-balena-action from 2.0.55 to 2.0.57
      footer:
        Change-type: patch
        change-type: patch
      author: Self-hosted Renovate Bot
      nested: []
  version: 16.2.8
  title: ""
  date: 2024-04-12T11:30:35.445Z
- commits:
    - subject: Add memory usage healthcheck
      hash: f863075bdc5714baebcce8b73ddd95240fd04583
      body: |
        This healthcheck fails when Supervisor memory usage is above a threshold
        based on initial memory measurements after device state has settled.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 16.2.7
  title: ""
  date: 2024-04-12T01:49:06.409Z
- commits:
    - subject: Update balena-io/deploy-to-balena-action action to v2.0.55
      hash: 6864ab329aa9879a2d12aa19b2e70cadfff5fb49
      body: |
        Update balena-io/deploy-to-balena-action from 2.0.54 to 2.0.55
      footer:
        Change-type: patch
        change-type: patch
      author: Self-hosted Renovate Bot
      nested: []
  version: 16.2.6
  title: ""
  date: 2024-04-10T16:30:09.955Z
- commits:
    - subject: Update balena-io/deploy-to-balena-action action to v2.0.54
      hash: 30351e5f12dbc7f0f2ea3633ad3e63c458adec4a
      body: |
        Update balena-io/deploy-to-balena-action from 2.0.53 to 2.0.54
      footer:
        Change-type: patch
        change-type: patch
      author: Self-hosted Renovate Bot
      nested: []
  version: 16.2.5
  title: ""
  date: 2024-04-09T18:43:49.721Z
- commits:
    - subject: Update balena-io/deploy-to-balena-action action to v2.0.53
      hash: 7d7391194876c5593733113ee23ff28d24eb3422
      body: |
        Update balena-io/deploy-to-balena-action from 2.0.52 to 2.0.53
      footer:
        Change-type: patch
        change-type: patch
      author: Self-hosted Renovate Bot
      nested: []
  version: 16.2.4
  title: ""
  date: 2024-04-09T17:32:28.461Z
- commits:
    - subject: Update balena-io/deploy-to-balena-action action to v2.0.52
      hash: 55de8ae4300a57776e9134218937fdf732a7f17a
      body: |
        Update balena-io/deploy-to-balena-action from 2.0.27 to 2.0.52
      footer:
        Change-type: patch
        change-type: patch
      author: Self-hosted Renovate Bot
      nested: []
  version: 16.2.3
  title: ""
  date: 2024-04-09T16:30:46.790Z
- commits:
    - subject: Inherit Renovate settings from balena-io
      hash: 58e05d0f63a9c789c4163a678b782cb56763250f
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Kyle Harding <kyle@balena.io>
        signed-off-by: Kyle Harding <kyle@balena.io>
      author: Kyle Harding
      nested: []
  version: 16.2.2
  title: ""
  date: 2024-04-08T14:36:45.050Z
- commits:
    - subject: Fix some RegEx io-ts types
      hash: b7922e687567899c668474c3ee5e6f2e89f0989d
      body: >
        io-ts types that were generated using `shortStringWithRegex` were
        testing

        against `VAR_NAME_REGEX`, instead of the Regex that was specified when

        generating the type. This affected `DockerName` such that service names
        with

        a dash in the middle were returning as false when passed through the

        `DockerName.is` type guard, affecting how `getServicesLockedByAppId` was

        returning a map of locked services.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 16.2.1
  title: ""
  date: 2024-04-06T08:22:13.914Z
- commits:
    - subject: Take lock before updating service metadata
      hash: af6359f7ae2db4a656598947120bb46d5d3730de
      body: ""
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 16.2.0
  title: ""
  date: 2024-04-05T02:35:13.875Z
- commits:
    - subject: Add revpi-connect-4 to RPi variants We need the supervisor to be able
        to manage config.txt changes for the RevPi Connect 4.
      hash: b5dbef82d75a701cc2accb8f52e5865641e416fc
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Shreya Patel <shreya@dynamicdevices.co.uk>
        signed-off-by: Shreya Patel <shreya@dynamicdevices.co.uk>
      author: Shreya Patel
      nested: []
  version: 16.1.10
  title: ""
  date: 2024-03-28T16:51:48.764Z
- commits:
    - subject: Log the full error on device state report failure as it is more useful
      hash: 20e57f7f168884ccbc048911be15cedc91334192
      body: |
        The message can be an empty string or similarly unhelpful, therefore
        logging the entire error means that we will have whatever the message
        may be along with the stack trace and other info that will be helpful
        even when the message is not
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 16.1.9
  title: ""
  date: 2024-03-25T18:36:42.735Z
- commits:
    - subject: Set @balena/es-version to es2022 to match tsconfig.json
      hash: 6b0500cdbcd24b718460f35f6f9412ba6093389c
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 16.1.8
  title: ""
  date: 2024-03-25T18:11:08.037Z
- commits:
    - subject: Increase the timeout for auto select family to 5000ms to avoid issues
      hash: 5cd37e73acb63a3bd705aea8e5edb4d255cd1c37
      body: |
        On slower networks the default of 250ms can cause problems as all
        attempts will fail rather than only the ones for interfaces that do not
        actually work correctly. Increasing this timeout to 5000ms will help to
        avoid these issues
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 16.1.7
  title: ""
  date: 2024-03-25T15:25:23.860Z
- commits:
    - subject: Pin iptables to 1.8.9 (legacy)
      hash: 3d881347e7d9721b00bcc41411996bd40b48d781
      body: |
        With Alpine 3.19, iptables gets bumped to 1.8.10 which uses nftables.
        The host OS still uses iptables 1.8.7 (legacy), and we should
        use legacy as well until the OS uses nftables.
      footer:
        See: https://balena.zulipchat.com/#narrow/stream/345889-balena-io.2Fos/topic/iptables.20host.20vs.2E.20nftables.20Supervisor
        see: https://balena.zulipchat.com/#narrow/stream/345889-balena-io.2Fos/topic/iptables.20host.20vs.2E.20nftables.20Supervisor
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 16.1.6
  title: ""
  date: 2024-03-18T21:37:24.676Z
- commits:
    - subject: Update fatrw to v0.2.21
      hash: 772702793c3ebf9bf3ac8119934436f2caa44bef
      body: |
        Update fatrw from 0.2.9 to 0.2.21
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 16.1.5
  title: ""
  date: 2024-03-12T13:33:05.116Z
- commits:
    - subject: Update balena-register-device and its deps
      hash: 790f6b71e4c127a6c6078e3f3797992e78995d3b
      body: |
        This bumps the related dependencies

        - balena-register-device
        - balena-request
        - balena-auth
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 16.1.4
  title: ""
  date: 2024-03-08T14:10:19.423Z
- commits:
    - subject: Remove dependency on @balena/happy-eyeballs
      hash: 08727ed2b5f67c55b2469d3ee5c5e2857119521b
      body: |
        Node 20 now implements the happy eyeballs algorithm as part of its core
        `net` module, with the [autoSelectFamily](https://nodejs.org/docs/latest-v20.x/api/net.html#netgetdefaultautoselectfamily) option of `socket.connect`. This option defaults to `true`, meaning that a separate
        implementation of happy eyeballs is no longer needed.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Update Node to v20
      hash: b77dba20462df90ca720dae3fcacb84628fd5069
      body: |
        This updates the supervisor runtime to latest Node LTS version. There
        are no breaking changes related to this bump.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 16.1.3
  title: ""
  date: 2024-03-07T16:10:24.150Z
- commits:
    - subject: Update typescript to v5
      hash: 6217546894e25c8216d305f231876fc888a6e407
      body: |
        This also updates code to use the default import syntax instead of
        `import * as` when the imported module exposes a default. This is needed
        with the latest typescript version.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 16.1.2
  title: ""
  date: 2024-03-06T14:06:45.274Z
- commits:
    - subject: Update @balena/lint to v7
      hash: 988a1c9e9a2317a66f2be0a1dbddb89f8084014f
      body: |
        This updates balena lint to the latest version to enable eslint support
        and unblock Typescript updates. This is a huge number of changes as the
        linting rules are much more strict now, requiring modifiying most files
        in the codebase. This commit also bumps the test dependency `rewire` as
        that was interfering with the update of balena-lint
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 16.1.1
  title: ""
  date: 2024-03-04T18:16:11.250Z
- commits:
    - subject: Add support for repeated overlays
      hash: bda1bac04c708ea0c35318604f926c035ff0883b
      body: >
        RPI firmware configuration allows repeating overlays to define

        configurations on multiple devices. For instance, for configuring

        multiple `ads` devices, `config.txt` needs to be setup this way


        ```

        dtoverlay=ads1115,addr=0x48

        dtoverlay=ads1115,addr=0x49

        ```


        Before this change, the supervisor would interpret both lines as

        belonging to the same overlay, preventing users from configuring
        multiple

        devices, and leading to a loop when trying to apply configurations with

        repeated overlays coming from the cloud side.
      footer:
        Change-type: minor
        change-type: minor
      author: Felipe Lalanne
      nested: []
  version: 16.1.0
  title: ""
  date: 2024-02-27T19:30:49.055Z
- commits:
    - subject: Fix support for rsync deltas
      hash: 24e222045ac511cd4fbb3be66e57eb678a29d854
      body: |
        Rsync (v2) deltas have been broken since [Supervisor v14](https://github.com/balena-os/balena-supervisor/commit/460c3ba0aab31d18a02e3f5dda1838691768c494). While considered legacy,
        they are still used by a few customers with devices running OS < 2.47.1.
        This should fix v2 delta support for those devices until we can
        completely remove rsync deltas from the supervisor
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 16.0.4
  title: ""
  date: 2024-02-27T15:06:23.251Z
- commits:
    - subject: Patch default dtparam handling in config.txt
      hash: 3fd035c5bdc88993af66c5f2bc3a6300c44f4ed4
      body: |
        This commit completes the list of default / board-wide dtparams
        to include some `baudrate` and `vc` i2c params.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 16.0.3
  title: ""
  date: 2024-02-21T21:03:18.619Z
- commits:
    - subject: Patch config.txt backend to return array configs correctly
      hash: e22253ce6ebc40e865b5bc26844901026f04ec4e
      body: |
        Previously, getBootConfig() of the config.txt backend was omitting
        array configurations such as gpio settings, thus resulting in the SV
        mistakenly assuming that boot config had not been applied, since gpio
        would not be in current config.txt config but would be in target config.
        This resulted in SV entering an infinite loop of attempting to apply the
        gpio config when it wasn't necessary.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 16.0.2
  title: ""
  date: 2024-02-17T02:44:51.708Z
- commits:
    - subject: Update balena-io/deploy-to-balena-action to v2.0.27
      hash: ac12d9a50c1569229ff97459b7306cd5f7f4faad
      body: Update balena-io/deploy-to-balena-action
      footer:
        Changelog-entry: Update balena-io/deploy-to-balena-action to v2.0.27
        changelog-entry: Update balena-io/deploy-to-balena-action to v2.0.27
        Change-type: patch
        change-type: patch
      author: Self-hosted Renovate Bot
      nested: []
  version: 16.0.1
  title: ""
  date: 2024-02-12T19:56:17.362Z
- commits:
    - subject: Add special case for base DTO params on RPI config
      hash: 6e6a796da5ecc846248eae4c8495bc626964c038
      body: |
        While ordering is important in the RPI firmware configuration file (config.txt),
        some dt params are by default considered part of the base dt overlay
        if they are not used by other overlays.
        Unfortunately the [list of dtparams](https://github.com/raspberrypi/firmware/blob/master/boot/overlays/README#L133)
        is too long to add all of them as exceptions, but we can add the params
        used in the default config.txt provided in OS images, to avoid reboots
        when updating to this new supervisor and correctly parsing the
        provisioning config.txt as variables.

        While this addition handles most common scenarios, there is still a
        chance a user may have use other base overlay dt params in the initial
        config, in which case those will be interpreted according to the
        relative ordering
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Fix processing of dtoverlay/dtparams on config.txt
      hash: 9546a1a3b1b919649dc401b63f0ff0dedad918b0
      body: |
        DT overlays and DT params need to be consumed in the order that they
        appear on the file. DT params apply to the last dtoverlay defined on the
        file, or to the base overlay.

        This commit updates config.txt parsing to consider this ordering, and it
        also ensures global dtparams are written first so they cannot be
        overriden by later overlays.

        Because of the more strict parsing method, it is possible that existing
        HOST_CONFIG vars do not match the interpretation of the parser. If
        that's the case, the supervisor will re-apply the target state which
        will cause the device to reboot.
      footer:
        Change-type: major
        change-type: major
      author: Felipe Lalanne
      nested: []
  version: 16.0.0
  title: ""
  date: 2024-02-08T21:45:41.648Z
- commits:
    - subject: Respect update strategies app-wide instead of at the service level
      hash: 3afcef296914840268356f7f98bc4bd8cce9427c
      body: >
        Fixes behavior for release updates which removes a service in current
        state

        and adds a new service in target state.
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#2095"
        closes: "#2095"
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 15.3.1
  title: ""
  date: 2024-02-01T19:31:12.515Z
- commits:
    - subject: Pin docker version to v24 for tests
      hash: 0500fe10bb1c35b01a4a46713c98165685a93433
      body: >
        Moby v25 adds the dynamically generated MAC address to the Config field,

        which breaks the state engine, preventing the state from settling as the

        current state never matches the target state (empty mac address). This

        seems to be a bug in Moby that we reported in moby/moby#47228


        The issue won't affect Balena devices until balenaEngine is updated, and
        this

        change fixes testing for now.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Fix docker utils tests for docker v25
      hash: 6ee606806d5bb7b1805baa67051eaa4d132e5a39
      body: |
        From docker 25, the engine will validate IPAM config. This would cause
        the docker utils test to fail since the network/subnet configuration was
        incorrect.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Enable nodemon when using test:env
      hash: 23fae633ca2351b37befbf1870e8749c7b03d906
      body: |
        This avoids the need to rebuild the environment when making code changes
        and running integration tests
      footer:
        Change-type: minor
        change-type: minor
      author: Felipe Lalanne
      nested: []
    - subject: Improve test:compose and test:env commands
      hash: 2f3e3d2e610160b7111024b597df6f2f6844ce9a
      body: |
        The commands now use docker-compose run instead of docker compose up
        for simplicity and also to match what flowzone does.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Add prettierrc for editor compatibility
      hash: e2f54e29faba4f74a59971fd66d64b7c38e9eb0f
      body: |
        The tsserver lsp doesn't seem to work well with .editorconfig. Using
        prettierrc will allow formatting to work correctly with editor plugins

        This also updates editorconfig to work well with json
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 15.3.0
  title: ""
  date: 2024-01-26T14:51:00.446Z
- commits:
    - subject: Try MDNS lookup only if regular DNS lookup fails
      hash: dec39a35d40532a82ac2f2bbcaa2c179b67d3d4a
      body: >
        This is meant to allow users to configure their device to

        resolve `.local` queries via dnsmasq by modifying config.json, e.g.
        `dnsServers":

        "/bob.local/172.17.0.33`.


        This would fail before as MDNS lookups would always come first
      footer:
        Change-type: minor
        change-type: minor
      author: Felipe Lalanne
      nested: []
    - subject: Refactor mdns lookup code in app entry
      hash: 7a39da92b7bb1537a6df3dec6ad665d35e891bcc
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 15.2.0
  title: ""
  date: 2024-01-08T13:25:37.100Z
- commits:
    - subject: "docs: api: start-service: specify this endpoint affects the device"
      hash: 096fdbc74ab4ca9a58603eec5774435ff07bedb1
      body: |
        The description incorrectly states the endpoint would start a service
        in the whole fleet while it only affects the device.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Alex Gonzalez <alexg@balena.io>
        signed-off-by: Alex Gonzalez <alexg@balena.io>
      author: Alex Gonzalez
      nested: []
  version: 15.1.1
  title: ""
  date: 2024-01-02T18:35:24.583Z
- commits:
    - subject: Force remove container if updateMetadata fails
      hash: 3ea8d4727a4f4b068b308d1f407b7cf0dae2733b
      body: |
        The `updateMetadata` step renames the container to match the target
        release when the service doesn't change between releases. We have seen
        this step fail because of an engine bug that seems to relate to the
        engine keeping stale references after container restarts. The only way
        around this issue is to remove the old container and create it again.
        This implements that workaround during the updateMetadata step to deal
        with that issue.
      footer:
        Change-type: minor
        change-type: minor
        Relates-to: balena-os/balena-engine#261
        relates-to: balena-os/balena-engine#261
      author: Felipe Lalanne
      nested: []
  version: 15.1.0
  title: ""
  date: 2023-11-22T20:12:13.595Z
- commits:
    - subject: Only build sqlite3 from source
      hash: d18292f68e09d5846eb0fa254d5205f07052dea8
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Update @balena/systemd to 0.5.0
      hash: 7981e6becd6b6d7e5317979277ab02eb7a24840a
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 15.0.4
  title: ""
  date: 2023-11-22T17:10:54.919Z
- commits:
    - subject: Cache last reported current state to /mnt/root/tmp
      hash: eb8ad11cd702e7d5ffba499c6b2d2fcadc030dd4
      body: >
        Whenever the Supervisor reports current state, it diffs the current
        state

        with its last reported current state. However, when the Supervisor
        starts

        up, there is no last reported state, since that last report is stored in

        process memory. Caching the last report in a location that survives

        Supervisor restarts will reduce the current report bandwidth used on
        startup.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 15.0.3
  title: ""
  date: 2023-11-22T00:32:48.806Z
- commits:
    - subject: Set applyInProgress to true while applying intermediate state
      hash: a993b3e7af9637ac4573786aa7d31eb7a16a4dbd
      body: |
        Intermediate state is utilized when executing device actions such as a
        volume purge. It's a type of state apply, but despite that,
        applyInProgress is not true.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 15.0.2
  title: ""
  date: 2023-11-01T22:16:57.319Z
- commits:
    - subject: Expose ports from port mappings on services
      hash: 9bd216327fda4526cd60ccf98178960242383769
      body: |
        PR #2217 removed the expose configuration but also caused a regresion
        where ports set via the `ports` configuration would no longer get
        exposed to the host, despite portmappings being set. This fixes that
        issue by exposing only those ports comming from port mappings.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 15.0.1
  title: ""
  date: 2023-10-25T13:04:05.171Z
- commits:
    - subject: Ignore `expose` service compose configuration
      hash: 416170bc05a9a725f5a7f8ecbab4f8b1c8da5ddf
      body: >
        The docker EXPOSE directive and corresponding docker-compose `expose`

        service configuration serves as documentation/metadata that a container

        listens on a certain port that may be used for service discovery but it
        doesn't

        have any real impact on the ability for

        other containers on the same network to access the exposed service via

        the port. In newer engine implementations, this property may conflict

        with other network configurations, and prevent the container from being

        started by the docker engine (see #2211).


        This PR removes code that would manage the expose property and takes the

        property out of the whitelist. A composition with the `expose` property

        will result in the log message `Ignoring unsupported or unknown compose
        fields: expose`.


        While this change should not have operational impact, it still removes

        a previously supported configuration and as such there is a chance of it

        being a breaking change for some applications. For this reason it is

        being published as a new major version.
      footer:
        Change-type: major
        change-type: major
        Closes: "#2211"
        closes: "#2211"
      author: Felipe Lalanne
      nested: []
  version: 15.0.0
  title: ""
  date: 2023-10-23T17:31:08.436Z
- commits:
    - subject: Add note regading API jitter on target state poll
      hash: b107868765563e26ec04746f84d1bc15dd211723
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 14.13.14
  title: ""
  date: 2023-10-23T13:34:41.452Z
- commits:
    - subject: Switch some _.includes usage to native versions
      hash: e15205301c345398873097b07869c191d1f09d08
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
    - subject: Switch _.assign usage to native versions
      hash: a4a9a17c1aba1a7611b000b2b440600331349a07
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
    - subject: Switch _.isNaN usage to native versions
      hash: d0cb54537f74c19f5262a6b1515e13cfb476dfd3
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
    - subject: Switch _.isFunction usage to native versions
      hash: c9f032e13ad0f2b31b8316c8334f2175f3af4014
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
    - subject: Switch _.isUndefined usage to native versions
      hash: 3bfdc4454e90732f17e8adaaadfe60c21a8f3748
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
    - subject: Switch _.isNull usage to native versions
      hash: 8e23091aa9c997dbcbce8faacd34c275239a746e
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
    - subject: Switch _.isNumber usage to native versions
      hash: ca3faebfc9ade3b720380b5f002a747ba4817b92
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
    - subject: Switch _.isArray usage to native versions
      hash: 20df54668ce12790320ec78cbc8044a4065f6a16
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
    - subject: Switch _.isString usage to native versions
      hash: 3fe8a22fb0158bf456bf3eba1b0a0b27ce004c8a
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 14.13.13
  title: ""
  date: 2023-10-16T21:43:19.070Z
- commits:
    - subject: Revert "Do not expose ports from image if service network mode"
      hash: 3e828dcc5262528639a7a039d62855d9607d1779
      body: |
        This reverts commit 0c7bad779291e15e419166a2c66c2a21dd06aa83, as that
        change causes a service restart loop. The supervisor cannot distinguish
        between ports exposed via the `EXPOSE` directive and the docker-compose
        `expose` property. Because of this, in the case of `network-mode:
        service:<...>` the current state and target state never match, leading
        to a service restart loop.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 14.13.12
  title: ""
  date: 2023-10-16T16:59:13.864Z
- commits:
    - subject: Fix husky config for automatic linting on commit
      hash: 23d5311a515755ba3171fc5d26dc4c6486eff9a2
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 14.13.11
  title: ""
  date: 2023-10-16T15:43:25.738Z
- commits:
    - subject: Convert multiple bluebird uses to native promises
      hash: 766cce89c772440d86472ff0a0a0efd884261188
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 14.13.10
  title: ""
  date: 2023-10-16T13:50:17.934Z
- commits:
    - subject: Do not expose ports from image if service network mode
      hash: 0c7bad779291e15e419166a2c66c2a21dd06aa83
      body: |
        The supervisor exposes ports configured using the `EXPOSE` directive in
        the dockerfile when configuring the container for runtime. This can
        cause issues if using `network_mode: service:<service name>` as the
        expose configuration is not compatible with that network mode. This
        fix now skips image exposed ports for that particular network mode.
      footer:
        Change-type: patch
        change-type: patch
        Relates-to: "#2211"
        relates-to: "#2211"
      author: Felipe Lalanne
      nested: []
  version: 14.13.9
  title: ""
  date: 2023-10-16T02:14:30.242Z
- commits:
    - subject: Move mdns-resolver to devDependencies
      hash: eb485cfde4a0a2adcbe00a1e107156e0711c1c67
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Move got to devDependencies
      hash: c3832cf06157eb93777a4d2c996ff8ac5dd308f9
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Move semver to dev-dependencies
      hash: dcef2ec78b8556a22c076fd7550e93394b8690b0
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Move happy-eyeballs to dev-dependencies
      hash: 50d2d59cd149475c9778bb8860b9988b1efe1e1a
      body: |
        This allows it to be tree-shaken
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Move systeminformation to devDependencies
      hash: a67a5a0f8f06856645bc54fd8c79ddc8950e75cb
      body: |
        devDependencies are tree-shaked, while dependencies are stored in the
        image. We reserve dependencies just for those that contain binary
        bindings
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 14.13.8
  title: ""
  date: 2023-10-12T19:28:38.969Z
- commits:
    - subject: Use mutation for adding service/image ids to logs to reduce allocations
      hash: 3d73bf3e915e9a33e7d9dbb2635d8a626df51ab3
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
    - subject: Keep the container lock for the entire duration of attaching logs
      hash: d685ccacb245f0f0e4e2c8cd04d5c202da0d551b
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
    - subject: Remove unnecessary async on handling journald stderr entries
      hash: 74d374b5ad974d8baf004d7378d151d226ff06a6
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
    - subject: Avoid unnecessary work in systemd log row handling for invalid logs
      hash: e3806ec018bd7d29bec15074a5c09494fe5e9d6b
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 14.13.7
  title: ""
  date: 2023-10-12T01:34:01.769Z
- commits:
    - subject: Remove unused docker logs logging code
      hash: 894bdeeeb66ff997c7e16157d932024ece5bea09
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 14.13.6
  title: ""
  date: 2023-10-11T14:12:02.642Z
- commits:
    - subject: Revert os-release path to /mnt/root
      hash: bc1d251e66b863abbd7829fecc4b618fca71d2c3
      body: >
        /mnt/boot/os-release isn't always accurate so /mnt/root should be the
        source of truth.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 14.13.5
  title: ""
  date: 2023-10-10T18:54:18.074Z
- commits:
    - subject: Add tmpfs for /mnt/root/tmp in test env
      hash: 5564a51acf4897c7981808d8bdd28e1c016caca1
      body: |
        This is to prevent the target state cache from getting written to host
        during tests.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 14.13.4
  title: ""
  date: 2023-10-02T21:38:10.350Z
- commits:
    - subject: Use `~=` to specify alpine package versions
      hash: 4a4a8a59bfd664e9683f60d4681a0c6583c68dd1
      body: |
        Alpine allows the `~=` syntax to match a part of the package version
        when installing. In this case we want to use it to specify node and
        npm major versions
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 14.13.3
  title: ""
  date: 2023-10-02T14:22:18.491Z
- commits:
    - subject: Use native structuredClone instead of _.cloneDeep
      hash: 06d4775178af40264d0dfe476ee11815235fc52e
      body: >
        Memory tests have shown performance improvements to using the native
        method.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 14.13.2
  title: ""
  date: 2023-09-30T00:37:03.496Z
- commits:
    - subject: Update balena-io/deploy-to-balena-action to v1.0.3
      hash: aa07a160e9fb7b94576b428064ff61b6de193170
      body: Update balena-io/deploy-to-balena-action
      footer:
        Changelog-entry: Update balena-io/deploy-to-balena-action to v1.0.3
        changelog-entry: Update balena-io/deploy-to-balena-action to v1.0.3
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Self-hosted Renovate Bot
      nested: []
  version: 14.13.1
  title: ""
  date: 2023-09-28T20:17:05.922Z
- commits:
    - subject: Update runtime-base image to alpine:3.18
      hash: 3766013cbdbb8864abf2f353332b27713c357818
      body: |
        We were still on 3.16, where the nodejs package was
        pointed at Node 16. 3.18 moves the pointer to Node 18.
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 14.13.0
  title: ""
  date: 2023-09-28T18:13:11.954Z
- commits:
    - subject: Dump target-state to hostOS tmp dir
      hash: ab513cc021d90b1337bd79b58e6bb9e0c91e11d0
      body: |
        This change is mainly for the hostOS
        to know if update locks should be ignored
        when updating to a newer version.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: jaomaloy <jao.maloy@balena.io>
        signed-off-by: jaomaloy <jao.maloy@balena.io>
      author: jaomaloy
      nested: []
  version: 14.12.2
  title: ""
  date: 2023-09-15T01:57:40.718Z
- commits:
    - subject: Bump sqlite3 to 5.1.6
      hash: 99962dc94f2356008c063ede08a2a71b4ef21630
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Bump knex to v2.5.1
      hash: 06e258ecad2e91f40c2b1602a59b0120bc5639c3
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 14.12.1
  title: ""
  date: 2023-08-21T16:17:32.755Z
- commits:
    - subject: Update README
      hash: c88d557aafc3088e4048a8cd9b9fc5fea8a45e01
      body: |
        Add the new dependency on RUST, reorganize the documentation
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Replace node-dbus with @balena/systemd
      hash: 327dc31ef02caa365e5a0c03597ba18d121c32a3
      body: |
        The node-dbus module is unmaintained and a blocker for the update to
        Node 18. Switching to our own node bindings for systemd solves this
        issue
      footer:
        Relates-to: Shouqun/node-dbus#241
        relates-to: Shouqun/node-dbus#241
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Replace dbus test service with mock-systemd-bus
      hash: 8f17c30de68f62477a52dd16a268e1d003c666ea
      body: |
        This avoids unnecessary mocking and tests against the real systemd API
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Update to nodejs 18
      hash: 2da691bcd5dd5ee8d8ee9460d93c895b73b4e2f4
      body: ""
      footer:
        Change-type: minor
        change-type: minor
      author: Pagan Gazzard
      nested: []
  version: 14.12.0
  title: ""
  date: 2023-08-17T00:38:30.372Z
- commits:
    - subject: Update balena-io/deploy-to-balena-action to v0.28.0
      hash: 4f54395be2cbbb7bcd1d0c1a9acef3b707f34691
      body: Update balena-io/deploy-to-balena-action
      footer:
        Changelog-entry: Update balena-io/deploy-to-balena-action to v0.28.0
        changelog-entry: Update balena-io/deploy-to-balena-action to v0.28.0
        Change-type: patch
        change-type: patch
      author: Self-hosted Renovate Bot
      nested: []
  version: 14.11.14
  title: ""
  date: 2023-08-14T23:47:06.985Z
- commits:
    - subject: "patch: Remove reference of override_lock variable"
      hash: 7560c70a085d27d8b44eb0dab8b3fa40ab0c9e94
      body: This is being done to keep the source of truth for this variable in one
        place and reduce confusion since it's better for dashboard users to
        reference the dashboard option rather than the actual variable name
      footer: {}
      author: Vipul Gupta
      nested: []
  version: 14.11.13
  title: ""
  date: 2023-08-10T16:51:23.863Z
- commits:
    - subject: "mount-partitions: do not hardcode partition types"
      hash: cc2ca84448e2a3894294c39b8078c050c0237b87
      body: |
        Query instead the device for its filesystem type before mounting.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Alex Gonzalez <alexg@balena.io>
        signed-off-by: Alex Gonzalez <alexg@balena.io>
      author: Alex Gonzalez
      nested: []
  version: 14.11.12
  title: ""
  date: 2023-07-19T07:55:53.054Z
- commits:
    - subject: "backends: Add Jetson Orin NANO custom device-tree support"
      hash: 512240c54490ccd0cb83c13f0c6e8cae43fe9a88
      body: ""
      footer:
        Signed-off-by: Alexandru Costache <alexandru@balena.io>
        signed-off-by: Alexandru Costache <alexandru@balena.io>
        Change-type: patch
        change-type: patch
      author: Alexandru Costache
      nested: []
  version: 14.11.11
  title: ""
  date: 2023-07-12T08:35:23.009Z
- commits:
    - subject: Add revpi-connect-s to Raspberry Pi variants
      hash: 8d2b310af840d86ed9b96ac5bb4c5bc74e52e7ff
      body: |
        We need the supervisor to be able to manage config.txt changes for the
        Revolution Pi Connect S.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Florin Sarbu <florin@balena.io>
        signed-off-by: Florin Sarbu <florin@balena.io>
      author: Florin Sarbu
      nested: []
  version: 14.11.10
  title: ""
  date: 2023-07-05T19:00:39.117Z
- commits:
    - subject: Remove the 'Stopped' status for services
      hash: 38fe8dae75cd05bf313626b968e208dcfb6f307c
      body: >
        It's not an official status from container inspects, and the Supervisor

        doesn't set it internally anywhere. It's better to remove it entirely as
        the

        method by which Supervisor sets internal service statuses is by using a
        global

        event emitter (reportNewStatus) which makes things difficult to test.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 14.11.9
  title: ""
  date: 2023-06-28T21:01:03.352Z
- commits:
    - subject: Parse container exit error message instead of status
      hash: 71d24d6e3366b28e1466e99322d58420b5ebbb67
      body: >
        The previous implementation in #2170 of parsing the container status was
        too general,

        because it relied on the mistaken assumption that a container would have
        a status of

        `Stopped` if it was manually stopped. This turned out to be untrue, as
        manually stopped

        containers were also getting restarted by the Supervisor due to their
        inspect status of

        `exited`. With this, parsing the exit message became unavoidable as
        there are no other

        clear ways to discern a container that has been manually stopped and
        shouldn't be started

        from a container experiencing the Engine-host race condition issue
        (again, see #2170).


        Since we're just parsing the exit error message, we don't need to worry
        about different behaviors

        amongst restart policies, as any container with the error message on
        exit should be started.
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#2178"
        closes: "#2178"
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina W
      nested: []
  version: 14.11.8
  title: ""
  date: 2023-06-23T18:46:22.881Z
- commits:
    - subject: Fix /v2/applications/state endpoint
      hash: 12eac04484e3c0a347b6f31783ed7973991046fa
      body: |
        It was returning stale information, particularly the download progress
        of the target release images never got updated.
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#2174"
        closes: "#2174"
      author: Felipe Lalanne
      nested: []
  version: 14.11.7
  title: ""
  date: 2023-06-19T21:54:56.093Z
- commits:
    - subject: Add fail-safe to test the image architecture
      hash: 1cf325d5c55bfb9d2ebb4cde7b9c448a6cfb2067
      body: |
        Verify that the target image architecture matches what is expected
        according to the balena app architecture.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Use multi-arch in dockerfile
      hash: c1b157971d5fe15f9b85cdc6f0eed90b8d2eb22f
      body: >
        This is necessary since the builder no longer passes the platform flag

        to the build. This would lead to dockerfiles that are mixing multi and
        single

        arch stages to pull the wrong architecture images, particularly when

        trying to build images in emulated builds (e.g. armv7hf built on
        aarch64).


        Moving the full build to multi-arch solves this as the docker engine is

        capable of chosing the right architecture from the manifest.
      footer:
        Relatest-to: balena-io/balena-builder#1010
        relatest-to: balena-io/balena-builder#1010
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 14.11.6
  title: ""
  date: 2023-06-19T20:53:34.395Z
- commits:
    - subject: Improve tests surrounding Engine-host race patch
      hash: 7eba48f8b832ec16465565f210e659a9f822e5b3
      body: ""
      footer:
        See: "#2170"
        see: "#2170"
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 14.11.5
  title: ""
  date: 2023-06-19T19:01:19.323Z
- commits:
    - subject: Specify fs type when mounting partitions to prevent "Can't open
        blockdev" warnings
      hash: e6662f664c15a16e4f36fa128510c5367b20a09f
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 14.11.4
  title: ""
  date: 2023-06-19T07:56:33.558Z
- commits:
    - subject: Update balena-io/deploy-to-balena-action to v0.27.0
      hash: 1675c16622d861ce6e6e445400b5440a447688f7
      body: |
        Update balena-io/deploy-to-balena-action
      footer:
        Change-type: patch
        change-type: patch
        Changelog-entry: Update balena-io/deploy-to-balena-action to v0.27.0
        changelog-entry: Update balena-io/deploy-to-balena-action to v0.27.0
      author: Self-hosted Renovate Bot
      nested: []
  version: 14.11.3
  title: ""
  date: 2023-06-15T19:49:42.493Z
- commits:
    - subject: Handle Engine-host race condition for "always" and "unless-stopped"
        restart policy
      hash: 7f3214195838a8bf3242ef7540b4487338687e4c
      body: >
        There exists a race condition between Engine and a host resource that
        may not

        be immediately created. In this race condition, if a container's compose
        config

        depends on the existence of that host resource, such as a network
        interface, and the

        Engine tries to create & start the container before the host resource is
        created, the

        Engine will not reattempt to start the container, regardless of the
        restart policy.

        This is undesireable behavior but seems to be the behavior as
        implemented by Docker.


        To rectify this, the Supervisor state funnel noops for a grace period of
        1 minute

        after starting a container to see that the container's status has become
        'running`.

        If the container exits because of the race condition, the status becomes
        'exited' and the

        Supervisor will attempt to generate another start step. This
        noop-wait-start step loop

        will repeat until the container is able to start.


        If the container is never able to start, there was a problem in the host
        in the creation of the

        host resource, and that should be fixed at the host level.


        This commit does not handle the case of services with restart policies
        "no" or "on-failure"

        which encounter this host race, as metadata from container inspects
        needs to be introduced

        during step calculation in order to figure out whether services with
        those restart policies

        need to be started. This will be fixed in a future PR.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 14.11.2
  title: ""
  date: 2023-06-05T18:53:18.287Z
- commits:
    - subject: Fix `sw.arch` typo when testing contracts
      hash: 2758e190b28ea07d5b40daaa9e59434f2bfc28e9
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 14.11.1
  title: ""
  date: 2023-05-11T22:07:32.863Z
- commits:
    - subject: Add `arch.sw` to the valid container requirements
      hash: 8656bd62f705624a5cb02a0b0677888b21dd4627
      body: ""
      footer:
        Change-type: minor
        change-type: minor
      author: Felipe Lalanne
      nested: []
    - subject: Allow using slug to validate hw.device-type contract
      hash: f1f09e0e27b1b538d0ca806cd1bb167303d65779
      body: |
        This also adds the hw.device-type test case to the unit tests.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Simplify and move lib/contract.spec.ts to tests/unit
      hash: a884a58b4cdbc9e06be01929138b4973e5e8ffd9
      body: |
        Improve contract tests to remove dependence on stubs and unnecessary
        system calls.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 14.11.0
  title: ""
  date: 2023-05-10T12:39:14.767Z
- commits:
    - subject: Add information about hdmi port 2 config vars
      hash: d5cc8238cbe7218d318cf1ce0375ab649a4495c6
      body: |
        Support for colon characters was added v14.6.0 which enabled
        configurations for HDMI port 2 (e.g on the RPi 4). These configurations
        are not documented anywhere else so this allows users to be able to
        better find the relevant information for working with HDMI.
      footer:
        Change-type: patch
        change-type: patch
        Relates-to: "#2090"
        relates-to: "#2090"
      author: Felipe Lalanne
      nested: []
    - subject: Update table formatting on configurations.md
      hash: ba39cf539ef381f6cb80f81408f8e4571fd61179
      body: |
        For better readability on text editor
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 14.10.11
  title: ""
  date: 2023-05-08T20:35:26.833Z
- commits:
    - subject: "mount-partitions.sh: Add support for encrypted partitions"
      hash: 004592894474676e3d024e5636b9fccce9f173f9
      body: |
        After a recent change enforcing all the partitions to be on the same
        block device, encrypted partitions are no longer being detected
        correctly. This is because the assumption that the parent block device
        is a substring of the actually mounted block device does not work
        for LUKS devices - the mount will either be /dev/mapper/luks-XXX
        or /dev/dm-X while the parent device is still e.g. /dev/sda.

        The usual balenaOS boot partition is also split in two - boot and efi.
        The boot partition (mounted under /mnt/boot) is encrypted and the efi
        partition (mounted under /mnt/efi) is not.

        This patch generalizes the detection of the parent device so that
        it works with both encrypted and unencrypted partitions.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Michal Toman <michalt@balena.io>
        signed-off-by: Michal Toman <michalt@balena.io>
      author: Michal Toman
      nested: []
  version: 14.10.10
  title: ""
  date: 2023-05-03T16:01:37.089Z
- commits:
    - subject: Run test supervisor under a different service name
      hash: 33b29cfa225959dd0a58564128017e04d019ea5f
      body: |
        The docker compose V2 spec no longer accepts `network_mode: bridge`,
        which means we can no longer override the network configuration of
        the `balena-supervisor` service for tests.

        For this reason we now create a separate service to run the built
        supervisor `balena-supervisor-sut` and run API tests against this
        service instead of the default `balena-supervisor`.
      footer:
        Change-type: patch
        change-type: patch
      author: Kyle Harding
      nested: []
  version: 14.10.9
  title: ""
  date: 2023-05-03T14:26:36.360Z
- commits:
    - subject: Fix service comparison when creating component steps
      hash: 5fdd689590d048685cc11e32a14ccf7faf3887ee
      body: |
        A bug in service comparison would make it that a device already running
        a service from a new release with network changes would never stop the
        running service so remaining services would forever get stuck in
        `Downloaded` state.

        This fixes the comparison so the service will get killed in this case,
        particularly allowing devices to recover from #1576
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: "Create tests with recovery from #1576"
      hash: 7b8b187c749c3390243b2246ba20d60ccc40db1f
      body: |
        Devices affected by the bug described in 1576, are also stuck with some
        services in the `Downloaded` state, because the state engine does not
        detect that the running services should be killed on a network change
        even if they belong to a new release. This is a bug, which can be
        replicated by the tests in this commit
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Skip updateMetadata step if there are network changes
      hash: 7aecaae8b02832afca3d52d233ecf5eaa8fa9ab8
      body: |
        Previous behavior would make it that an `updateMetadata` step would take
        precedence over a `kill` step when network changes are present. This
        would lead to an inconsistent state if an update included a
        network and a container change.
      footer:
        Closes: "#1576"
        closes: "#1576"
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Add replication of issue using unit tests
      hash: 0a358a4463717b53c3619432781a0ab568fb74c1
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Add integration tests for state-engine
      hash: 138aec5de418c7673285303d66d35b8cea43e4a8
      body: |
        These tests use the supervisor API to check that applying a target state
        allows the device to eventually get to the desired target configuration.

        This are high-level tests that work with real images and containers
        using dind.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Do not pass auth to images with no registry
      hash: c1207cbbff836f99fadb33dd5cf65baa2da0ecf8
      body: |
        The supervisor allows the target image to be an image without a
        registry (e.g. `alpine:latest`), while this really only happens while in
        local mode, we don't want to pass credentials to the default registry as
        those credentials are meant for balena registry and will otherwise fail.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 14.10.8
  title: ""
  date: 2023-04-26T18:49:41.754Z
- commits:
    - subject: Remove safeStateClone function
      hash: 6c031299d686cca9bb89f950b105ab5bf62fae97
      body: |
        This function is no longer needed with the latest changes to
        getCurrentState
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Get rid of targetVolatile in app manager
      hash: 36311ef7a1b9192879c4951fb7e4521ef3c4840b
      body: |
        Target volatile doesn't make sense now that we can use the
        current state as a target. It wasn't actually being used for anything
        anymore apparently
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Make pausingApply a private member of device-state
      hash: 1e0dd381f54efd31119454db592d5c047d829681
      body: |
        This simplifies this module interface and hides implementation details
        from the rest of the code.

        The function `applyIntermediateTarget` will now call `pausingApply`
        before applying the target

        API actions no longer need to call pausing apply
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Simplify doRestart and doPurge actions
      hash: 3d43f7e3b367636f01ac9b6388c933bab5c896e5
      body: |
        The actions now work by passing an intermediate state to the state
        engine.

        - doPurge first removes the user app from the target state and passes
          that to the state engine for purging. Since intermediate state doesn't
          remove images, this will have the effect of basically re-installing
          the app.

        - doRestart modifies the target state by first removing only the
          services from the current state but keeping volumes and networks. This
          has the same effect as before where services were stopped one by one
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Fix network appUuid inference in local mode
      hash: 43630e52674e82bf32792e2d15db35a9af332865
      body: |
        Local mode uses a numeric `appUuid` which was messing up parsing the
        network name. This fixes this issue so the current state can be used
        as a target state
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Get image name from DB when getting the app current state
      hash: b1fc4e1761e02edc84c1be344a91ef29e771aa28
      body: |
        The Service class in `compose/service.ts` cannot get the image name
        from the image id when building the object from the container metadata.

        We query the metadata in the application manager getCurrentApps method
        so the current state can be used as target by API methods
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Improve net alias comparison to prevent unwanted restarts
      hash: 27f0d2e655a5c11c89103847c485fa06babc1954
      body: |
        Network aliases are now compared checking that the target state is a
        subset of the current state. This will prevent service restarts due to
        additional aliases created by docker in the container.
      footer:
        Closes: "#2134"
        closes: "#2134"
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Exclude containerId from service network aliases
      hash: cb98133717b1c4c8f9e46c95ec7df996deae60e6
      body: |
        When getting the service from the docker container, remove the
        containerId from the list of aliases (which gets added by docker). This
        will make it easier to use the current service state as a target.

        This will help us remove the `safeStateClone` function in the API in a
        future commit
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Skip image delete when applying intermediate state
      hash: f2ca7dbb6ae465f361fc05fb42dc5ff7cfc8de4c
      body: >
        This replaces the previous flag `isApplyingIntermediate` on application

        manager and simplifies the interface of the state engine to make
        temporary changes to the

        general app state.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Make local mode image management work as in cloud mode
      hash: 967cb7747f187f70500f6393360df10b40fddebf
      body: |
        There were multiple places in the state engine that skipped some
        operations while in local mode. In reality, all it's needed while in
        local mode is to skip image and volume deletion.

        This commit simplifies application-manager and compose app to be more
        local mode agnostic and instead making the image deletion and volume
        deletion configurable via function arguments.

        This also has the benefit to make the treatment of local mode
        applications more similar to cloud mode applications, allowing for
        API endpoints to function the same way both modes.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Remove ignoreImages argument from getRequiredSteps
      hash: 76d5be64e56c63c01474cee2ead43d02470c1389
      body: |
        The argument was unused and hence unnecesary. This is just a bit of
        cleanup
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 14.10.7
  title: ""
  date: 2023-04-21T23:04:18.417Z
- commits:
    - subject: Do not restart balena-hostname on rename
      hash: 7b68ee4c4f03f464c762afc0b3da06e3f4620440
      body: |
        The OS since v2.82.6 will monitor changes to config.json and restart
        the relevant services to apply the changes. There is no need to trigger
        restart of the services via the supervisor. Users on older OS versions
        will need to update their OS or restart the services manually as OS
        loses support after 2y.
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#2160"
        closes: "#2160"
      author: Felipe Lalanne
      nested: []
  version: 14.10.6
  title: ""
  date: 2023-04-20T18:25:01.001Z
- commits:
    - subject: Remove anonymous build volume from Dockerfile
      hash: a3675651898f050eaefce0a9c4e02890ddc57b57
      body: |
        We don't need this anonymous volume as /data is bind mounted into
        the container from host (legacy), and will soon be mounted by the
        Supervisor itself on startup.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 14.10.5
  title: ""
  date: 2023-04-13T21:01:21.133Z
- commits:
    - subject: Log uncaught promise exceptions on the app entry
      hash: 676464142690da2e36a810cb35e4ea4d0d751636
      body: |
        Node 15 [changed the way it treats unhandled promise rejections](https://github.com/nodejs/node/blob/main/doc/changelogs/CHANGELOG_V15.md#throw-on-unhandled-rejections---33021) from a warning to a throw.
        For this reason errors like a corrupt migration directory, that happens when trying to
        roll back to a previous supervisor version were no longer showing a
        message but dumping the full minimized code into the journal logs.

        This PR adds a catchall on app.ts to log the exception and throw an exit
        code of 1.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 14.10.4
  title: ""
  date: 2023-04-10T18:15:41.878Z
- commits:
    - subject: Fix assertion error in restart-service
      hash: b9e1464d96824f5332c71324d753d94ddbdecf90
      body: |
        From: https://github.com/balena-os/balena-supervisor/pull/2153/commits/c0b4fafe842115933b1da9b4d68e601a19c3e4eb
        Restart-service checks that both services have restarted in its test assertion, which is
        incorrect as restart-service should only restart one service.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 14.10.3
  title: ""
  date: 2023-04-10T15:17:58.539Z
- commits:
    - subject: "backends: Add Jetson Orin NX custom device-tree support"
      hash: 6b67db98e54cd7756d7e31d9676d31ab305c4d56
      body: ""
      footer:
        Signed-off-by: Alexandru Costache <alexandru@balena.io>
        signed-off-by: Alexandru Costache <alexandru@balena.io>
        Change-type: patch
        change-type: patch
      author: Alexandru Costache
      nested: []
  version: 14.10.2
  title: ""
  date: 2023-04-07T18:35:17.559Z
- commits:
    - subject: Use dbus-send to get current boot block device instead of fdisk
      hash: 4ab8250c971e2f05d9dbf5870f9feb8dd298bdda
      body: ""
      footer:
        Closes: "#2150"
        closes: "#2150"
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 14.10.1
  title: ""
  date: 2023-04-07T00:15:59.534Z
- commits:
    - subject: Mount boot partition into container on Supervisor start
      hash: 49ee1042a87ce0b101054e32b84afaa324a371de
      body: >
        As the Supervisor is a privileged container, it has access to host /dev,
        and therefore has access

        to boot, data, and state balenaOS partitions. This commit sets up the
        framework for the following:


        - Finds the /dev partition that corresponds to each partition based on
        partition label

        - Mounts the partitions into set mountpoints in the device

        - Removes reliance on env vars and mountpoints provided by host's
        start-balena-supervisor script

        - Simplifies host path querying by centralizing these queries through
        methods in lib/host-utils.ts


        This particular changes env vars for and mounts the boot partition.


        Since the Supervisor would no longer rely on container `run` arguments
        provided by a host script,

        this change moves Supervisor closer to being able to start itself
        (Supervisor-as-an-app).
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 14.10.0
  title: ""
  date: 2023-03-28T19:13:49.886Z
- commits:
    - subject: Revert "Use multi-arch in dockerfile"
      hash: 75eeac5ed4b7ec076482c0cace2d2cfca8b6b2d4
      body: |
        This reverts commit 00e389e5f559dd10e49cfa411784b89498c3c0eb.

        Images generated using this dockerfile still don't have the right
        architecture. More testing is needed
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 14.9.8
  title: ""
  date: 2023-03-27T08:05:44.148Z
- commits:
    - subject: Add missing log backend field assignment in logger init
      hash: 37371d89dcea3e1d713b9bb806fc6866cdd5ae9f
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 14.9.7
  title: ""
  date: 2023-03-23T21:40:32.099Z
- commits:
    - subject: Update deploy-to-balena action to 0.26.2
      hash: 7cde98d7f7fb6a476dd14bbec5df7d45a1bfd3e8
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Use multi-arch in dockerfile
      hash: 00e389e5f559dd10e49cfa411784b89498c3c0eb
      body: >
        This is necessary since the builder no longer passes the platform flag

        to the build. This would lead to dockerfiles that are mixing multi and
        single

        arch stages to pull the wrong architecture images, particularly when

        trying to build images in emulated builds (e.g. armv7hf built on
        aarch64).


        Moving the full build to multi-arch solves this as the docker engine is

        capable of chosing the right architecture from the manifest.
      footer:
        Relatest-to: balena-io/balena-builder#1010
        relatest-to: balena-io/balena-builder#1010
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 14.9.6
  title: ""
  date: 2023-03-23T20:18:31.098Z
- commits:
    - subject: Use log endpoint subdomain if it exists in config.json
      hash: 36e46d80a6f147b95664ac052fd01cd438388555
      body: ""
      footer:
        See: https://github.com/balena-io/open-balena-api/pull/1288
        see: https://github.com/balena-io/open-balena-api/pull/1288
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 14.9.5
  title: ""
  date: 2023-03-20T19:21:47.709Z
- commits:
    - subject: Skip pin device step if release was deleted
      hash: f6435814cd86380dd3b02416f6f2199b483bb33c
      body: |
        Preloaded devices can require that the device is pinned to the preloaded
        release on provisioning. However if the provisioned release gets
        released in the future, that would lead to the device remaining in "VPN
        only" state forever as the provisioning process could not finish due to
        pinning failure.

        This commit changes the behavior so if the release does not exist, the
        pinning step is skipped and the device follows the fleet pinning state.
      footer:
        Closes: "#2133"
        closes: "#2133"
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 14.9.4
  title: ""
  date: 2023-03-13T20:49:30.509Z
- commits:
    - subject: Use single-arch in dockerfile
      hash: 17aa625d3b115103efa30bb98b83ee1fc54230c4
      body: >
        This is necessary since the builder no longer passes the platform flag

        to the build. This would lead to dockerfiles that are mixing multi and
        single

        arch stages to pull the wrong architecture images, particularly when

        trying to build images in emulated builds (e.g. armv7hf built on
        aarch64).


        Moving the full build to single-arch solves this as the docker engine is

        capable of chosing the right architecture from the manifest. Once some

        of the builder issues are fixed, we should move to #2141
      footer:
        Relates-to: balena-io/balena-builder#1010
        relates-to: balena-io/balena-builder#1010
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 14.9.3
  title: ""
  date: 2023-03-10T22:26:07.185Z
- commits:
    - subject: Replace BALENA-FIREWALL rule in INPUT chain instead of flushing
      hash: 84a9e7e9acd803b6b49d58ae3040694a5e2f823d
      body: >
        The issue with the original Supervisor implementation of the firewall is
        that

        on Supervisor start, the Supervisor flushes the INPUT chain of the
        filter table.

        This doesn't play well with services that add to the INPUT chain on
        startup that

        may start up before the Supervisor, such as certain NetworkManager
        connection

        profiles. This change only replaces the BALENA-FIREWALL rule in the
        INPUT chain,

        preserving the other rules as well as their order.
      footer:
        Closes: "#1482"
        closes: "#1482"
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 14.9.2
  title: ""
  date: 2023-03-02T21:48:06.727Z
- commits:
    - subject: Always lower case the cpu id to avoid bouncing between casing when
        reporting
      hash: d356f979d3addbf8b08933694b9e80f66af8d9e2
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 14.9.1
  title: ""
  date: 2023-02-15T14:13:57.161Z
- commits:
    - subject: Find and remove duplicate networks
      hash: 89175432af9beb9f9765a6cfdbc8914a8eae251e
      body: >
        We have seen a few times devices with duplicated network names for some

        reason. While we don't know the cause the networks get duplicates, this

        can be disruptive for updates as trying to create a container
        referencing a duplicate

        network results in a 400 error from the engine.


        This commit finds and removes duplicate networks via the state engine,

        this means that even if somehow a container could be referencing a

        network that has been duplicated later somehow, this will remove the

        container first.


        While thies doesn't solve the problem of duplicate networks being

        created in the first place, it will fix the state of the system to

        correct the inconsistency.
      footer:
        Change-type: minor
        change-type: minor
        Closes: "#590"
        closes: "#590"
      author: Felipe Lalanne
      nested: []
    - subject: Reference networks by Id instead of by name
      hash: 180c4ff31ad719fb2b00217548514d42a4b5c4cf
      body: |
        We have seen a few times devices with duplicated network names for some
        reason. While we don't know the cause the networks get duplicates,
        this is disruptive of updates, as the supervisor usually queries
        resource by name, resulting in a 400 error from the engine because of
        the ambiguity.

        This replaces those queries by name to queries by id. This includes
        network removal. If a `removeNetwork` step is generated, the supervisor
        opts to remove all instances of the network with the same name as it
        cannot easily resolve the ambiguity.

        This doesn't solve the problem of ambiguous networks, because even if
        networks are referenced by id when creating a container, the engine will
        throw an error (see https://github.com/balena-os/balena-supervisor/issues/590#issuecomment-1423557871)
      footer:
        Change-type: patch
        change-type: patch
        Relates-to: "#590"
        relates-to: "#590"
      author: Felipe Lalanne
      nested: []
  version: 14.9.0
  title: ""
  date: 2023-02-14T17:10:08.122Z
- commits:
    - subject: Remove dependent devices content in codebase
      hash: c4f9d72172ef678c73ee05e8766c9bcfddd47073
      body: >
        This includes:

        - proxyvisor.js

        - references in docs

        - references device-state, api-binder, compose modules, API

        - references in tests


        The commit also adds a migration to remove the 4 dependent device tables
        from the DB.
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 14.8.0
  title: ""
  date: 2023-02-10T23:01:03.277Z
- commits:
    - subject: "patch: Convert internal timestamp passed to journalctl from number to
        string"
      hash: 9b26fc263a683c0d2d372b5e0b88b179cff64f88
      body: ""
      footer:
        See: https://github.com/balena-os/balena-supervisor/pull/2084
        see: https://github.com/balena-os/balena-supervisor/pull/2084
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 14.7.1
  title: ""
  date: 2023-02-07T00:59:05.179Z
- commits:
    - subject: Support `since` and `until` in supervisor journalctl wrapper API.
      hash: 9a1cde7f44319940320746c6106ee965ff269459
      body: ""
      footer:
        Signed-off-by: Ruben Keulemans ruben.keulemans@protonmail.com
        signed-off-by: Ruben Keulemans ruben.keulemans@protonmail.com
        Change-type: minor
        change-type: minor
        Closes: "#2083"
        closes: "#2083"
      author: Ruben Keulemans
      nested: []
  version: 14.7.0
  title: ""
  date: 2023-02-03T00:06:04.096Z
- commits:
    - subject: Add SIGTERM listener on application start
      hash: 6683bca07da0e6b8f822dfcb22211b24a182dc16
      body: |
        As reported by issue #2100, the supervisor was not correctly reacting to
        `SIGTERM` sent by the engine when terminating the process (for instance
        before a reboot). This would lead to the supervisor requiring an
        additional 10 seconds to terminate (after which the engine will send a
        `SIGKILL`).

        The reason for this is explained by the following info coming from Node

        > Node.js was not designed to run as PID 1 which leads to unexpected behaviour when running inside of Docker. For example, a Node.js process running as PID 1 will not respond to `SIGINT` (`CTRL-C`) and similar signals. [reference](https://github.com/nodejs/docker-node/blob/main/docs/BestPractices.md#handling-kernel-signals)

        On internal testing, it was discovered that simply adding a listener for
        the signal on the Node process was enough to handle the signal, even
        when the process runs as PID 1.

        This adds a listener for `SIGTERM` before starting the supervisor main
        loop.
      footer:
        Closes: "#2100"
        closes: "#2100"
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 14.6.4
  title: ""
  date: 2023-01-31T19:43:26.722Z
- commits:
    - subject: Update deploy-to-balena action to 0.26.0
      hash: 2bd2879cc580cd5b6a7cba73bc10d8ba55a3cf4c
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 14.6.3
  title: ""
  date: 2023-01-30T18:59:37.957Z
- commits:
    - subject: "patch: Migrate Supervisor Debugging docs from masterclass"
      hash: a9045d5eda25683fe24afadefe0575eef55a7de1
      body: ""
      footer:
        Signed-off-by: Vipul Gupta (@vipulgupta2048) <vipul@balena.io>
        signed-off-by: Vipul Gupta (@vipulgupta2048) <vipul@balena.io>
      author: Vipul Gupta (@vipulgupta2048)
      nested: []
  version: 14.6.2
  title: ""
  date: 2023-01-26T20:58:34.050Z
- commits:
    - subject: Remove custom action restriction for external contributors
      hash: b945142caab20771dc0060f3c4054c7b5cfbc0a4
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 14.6.1
  title: ""
  date: 2023-01-24T20:34:00.000Z
- commits:
    - subject: Allow using colon character in config vars
      hash: 67d1503b54d7ec9517441e014ca1873ee491df80
      body: |
        The Raspberry Pi config.txt file defines the use of colon to configure
        variables of the same name in different ports, for instance on those
        devices with two hdmi ports. This syntax was previously not supported by
        the supervisor. This change relaxes the syntax validation on config vars
        to allow the use of the colon character.
      footer:
        Relates-to: "#1573, #2046"
        relates-to: "#1573, #2046"
        Change-type: minor
        change-type: minor
      author: Felipe Lalanne
      nested: []
  version: 14.6.0
  title: ""
  date: 2023-01-20T20:51:23.226Z
- commits:
    - subject: Allow external contribtions to execute checks
      hash: b26d2e0e7c6a8a8365782fb98c312408376e01e3
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Kyle Harding <kyle@balena.io>
        signed-off-by: Kyle Harding <kyle@balena.io>
      author: Kyle Harding
      nested: []
  version: 14.5.2
  title: ""
  date: 2023-01-19T19:40:01.765Z
- commits:
    - subject: Correctly use the extended got instance for target-state
      hash: 63cc4ad58ccce8ceba8879401be3bc0516811f45
      body: |
        In practice this fixes the missing user-agent
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 14.5.1
  title: ""
  date: 2023-01-18T11:58:54.402Z
- commits:
    - subject: Update host-config, route, and action tests for host config endpoints
      hash: e1bacda58076ab4d76f6fbe4da986ac9b87c8e30
      body: ""
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 14.5.0
  title: ""
  date: 2023-01-17T19:28:44.795Z
- commits:
    - subject: "Docs: clarify that Supervisor creates lockfiles as nobody UID"
      hash: 3a824448faec04fd139ceb9cbedc327ced117bf8
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 14.4.10
  title: ""
  date: 2023-01-04T20:25:53.656Z
- commits:
    - subject: Use `got` for fetching the target state in order to have brotli support
      hash: fd135214fe4c1c365ce8e2d67f272bd824adb1dd
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 14.4.9
  title: ""
  date: 2022-12-19T14:25:57.684Z
- commits:
    - subject: Fix journalctl to work with persistent logs
      hash: 55594274f78d20b2d86c3bc683d7c27d7cde60c2
      body: >
        v14.4.5 introduced a new way to retrieve the host logs by symlinking the

        log directories into the host /run/log/journal and using a local copy of

        the journalctl binary instead of chrooting into the host. This failed to

        account for the location of persistent logs when that option is turned

        on (/var/log/journal instead of /run/log/journal). This fixes the checks

        consider this case and also makes sure to remove the original symlink to

        avoid having nested links `/run/log/journal/journal/journal`, which was
        a

        bug in the previous implementation.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 14.4.8
  title: ""
  date: 2022-12-15T22:29:17.729Z
- commits:
    - subject: Update API.md
      hash: 24e5996b56464d5476c3a3940a967c25ba3a32da
      body: >
        Clarify that only containers on a single device will be restarted
        following API key refresh,

        not the whole fleet. Each device has its own distinct API key.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Wang
      nested: []
  version: 14.4.7
  title: ""
  date: 2022-12-15T20:39:47.886Z
- commits:
    - subject: Make readFromBoot behave more like Node readFile
      hash: 0605e996c9225380e39fd78b1c99cc7ad3c0f959
      body: >
        The `readFromBoot` function replaced calls to readFile in the codebase

        when the target location is under `/mnt/boot` in order to use `fatrw`

        to check for corruption. Unfortunately this function behaved a little

        differently with regards to errors. While `readFile` returns a code
        `ENOENT`

        when the file is not found, `readFromBoot` would just throw an exception

        with whatever code was given by fatrw. This would cause confusion for

        some calls that were behaving differently with a `ENOENT`, causing some

        issues.
      footer:
        Closes: "#2071"
        closes: "#2071"
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 14.4.6
  title: ""
  date: 2022-12-08T18:39:56.950Z
- commits:
    - subject: Stop using host journalctl
      hash: 91b119cbaec5c8f8a58ab0e2f724641195a1d316
      body: |
        The supervisor had to chroot into the host root in order to read the
        journal logs. This won't be possible anymore once the supervisor becomes
        an app. This commit copies the journalctl binary and necessary libraries
        from a debian image into the supervisor image in order to be able to use
        the tool on runtime.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 14.4.5
  title: ""
  date: 2022-12-07T19:29:23.028Z
- commits:
    - subject: Enable node16 module resolution in tsconfig to ease the ESM transition
      hash: 836f6ab7541b49776e23f143209257d9d0b18004
      body: |
        This means that dynamic import statements will emit actual `import`
        statements rather than being translated to `require`, the benefit being
        that we can now import ES modules via dynamic imports
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 14.4.4
  title: ""
  date: 2022-11-22T15:22:24.653Z
- commits:
    - subject: Use timers/promises for promisified setTimeout
      hash: b8891ebb08361c9579cc706036edef9d80fe3445
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 14.4.3
  title: ""
  date: 2022-11-22T02:54:20.484Z
- commits:
    - subject: Remove some unnecessary usage of `.reduce`
      hash: 3dea88c74ee6233c3d8d7fa0d163ee80ba1a690d
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 14.4.2
  title: ""
  date: 2022-11-21T20:02:26.524Z
- commits:
    - subject: Improve determination of when a state change may need to be reported
      hash: 599b5cf811eaf3fbc0d52ac1ca249b58e1f5d942
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Ken Bannister <kb2ma@runbox.com>
        signed-off-by: Ken Bannister <kb2ma@runbox.com>
      author: Ken Bannister
      nested: []
    - subject: Report must include a state change if sooner than metrics frequency
      hash: b1d4aa5159add5269999087507ef355def358f86
      body: |
        Export list of metrics properties from device state module for this
        determination.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Ken Bannister <kb2ma@runbox.com>
        signed-off-by: Ken Bannister <kb2ma@runbox.com>
      author: Ken Bannister
      nested: []
    - subject: Remove report frequency management from current state reporting function
      hash: d1dd53b5b6dd4b81e634c769a59ad3cf8111d343
      body: |
        Report frequency now managed completely by callers.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Ken Bannister <kb2ma@runbox.com>
        signed-off-by: Ken Bannister <kb2ma@runbox.com>
      author: Ken Bannister
      nested: []
    - subject: Move definition of maxReportFrequency to the reporting file
      hash: c67429f3e11158335a780778e04b2a94a5623788
      body: >
        Narrows scope to where it is used, like the new maxMetricsFrequency
        value.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Ken Bannister <kb2ma@runbox.com>
        signed-off-by: Ken Bannister <kb2ma@runbox.com>
      author: Ken Bannister
      nested: []
    - subject: Report metrics in target-state PATCH based on a max frequency
      hash: 45d71fa60d8da9bbf8071b359620de43a8ca15be
      body: |
        Adds maxMetricsFrequency, separate from maxReportFrequency.
        Also ensures most recent state change event is reported.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Ken Bannister <kb2ma@runbox.com>
        signed-off-by: Ken Bannister <kb2ma@runbox.com>
      author: Ken Bannister
      nested: []
  version: 14.4.1
  title: ""
  date: 2022-11-18T16:08:13.927Z
- commits:
    - subject: Use fatrw utility for writes to boot partition
      hash: dade5987370c68d639d698cc3e4a9d6ccf4df9c5
      body: >
        This PR changes the way the supervisor reads and writes files from
        /mnt/boot. Reads will

        now use the [fatrw utility](https://github.com/balena-os/fatrw/) as a
        way to minimize corruption of

        files in the boot partition, and thus preventing possible bricking of
        the device.


        Since this basically changes the way a lot of configurations are read,
        this work was being blocked because of

        the way tests were being done. While there still remain a couple of
        legacy tests to be migrated, this PR disables

        test:legacy tests when running npm run test, as the work on refactoring
        those tests is in progress (see #2048) and

        fatrw integration is of higher priority.
      footer:
        Change-type: minor
        change-type: minor
      author: Felipe Lalanne
      nested: []
  version: 14.4.0
  title: ""
  date: 2022-11-17T01:37:52.537Z
- commits:
    - subject: Simplify getting images for cleanup
      hash: 8174ea9643fb1059aad6fb05c68f42ade0579475
      body: |
        getImagesForCleanup used to query the Engine for the Supervisor
        image, which is unnecessary given that the Supervisor has access
        to constants.supervisorImage. Thus, this Engine query is removed.

        The method is simplified and made more clear, and
        imageManager.isCleanupNeeded doesn't need to be stubbed in tests.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 14.3.5
  title: ""
  date: 2022-11-16T22:29:57.342Z
- commits:
    - subject: Create default network as config-only when services have host networking
      hash: f558be0a167c679ed50eb46350d14176bc3b8d89
      body: |
        This eliminates chances of host-Docker address collision for apps such
        as the Supervisor where all services have host networking.
      footer:
        Closes: "#2062"
        closes: "#2062"
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 14.3.4
  title: ""
  date: 2022-11-16T18:55:00.377Z
- commits:
    - subject: Migrate all device config tests to integration.
      hash: 827f892c138dd05f9402d91e43125aa3a4dc35ac
      body: |
        This means that configuration backend tests no longer use stubs and
        (mostly) avoid internal dependencies in the tests. Instead of stubs and
        mock-fs, the tests use [testfs](https://github.com/balena-io-modules/mocha-pod#working-with-the-filesystem)
        which allows working with a real filesystem and ensuring everything is
        re-set between tests.

        This is the last change needed in order to be able to merge #1971. Here is the list of changes

        - [x] Migrate splash image backend tests
        - [x] Migrate extlinux backend tests
        - [x] Migrate config.txt backend tests
        - [x] Migrate extra-uenv config tests
        - [x] Migrate odmdata config tests
        - [x] Migrate config utils tests
        - [x] Migrate device-config tests
      footer:
        Change-type: patch
        change-type: patch
      author: pipex
      nested: []
  version: 14.3.3
  title: ""
  date: 2022-11-14T15:28:56.604Z
- commits:
    - subject: Fix locking stubs that were returning `Bluebird` rather than `Promise`
      hash: d587a323f2da396aa0f84e4720b73d61bfe5a88a
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 14.3.2
  title: ""
  date: 2022-11-11T17:14:04.145Z
- commits:
    - subject: Update blinking to 0.0.7
      hash: 9e154da76e74638f31b212ad45e296e444e45fe4
      body: |
        Update blinking from 0.0.5 to 0.0.7
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 14.3.1
  title: ""
  date: 2022-11-11T16:47:25.205Z
- commits:
    - subject: Convert ensureSupervisorNetwork to native Promises
      hash: 1034aa70e6a2e425fb4b5e0fa1155eec97b21ed2
      body: >
        Also remove system interface check from ensureSupervisorNetwork.


        Previously `ensure` was a Bluebird promise which wasn't awaited in

        its composition step. This has been here for some time and may
        contribute

        to issues with duplicate networks. The conversion to native Promises

        allows `ensure` to be awaited, hopefully reducing instances of duplicate

        networks.


        Removing the system interface check for /sys/class/net/supervisor0

        because it's superfluous given that the Engine creates the interface

        with NetworkManager. It also makes testing a lot more difficult to set
        up

        as /sys/class/net isn't a directory that can be written to for emulating

        system interface creation / removal.
      footer:
        Relates-to: https://github.com/balena-os/balena-supervisor/issues/1110
        relates-to: https://github.com/balena-os/balena-supervisor/issues/1110
        Change-type: minor
        change-type: minor
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 14.3.0
  title: ""
  date: 2022-11-10T01:09:38.686Z
- commits:
    - subject: Allow local target state to be applied in unmanaged mode
      hash: fd320f85b53ec83f54cd6ad83cdf685dcc6e0d20
      body: |
        An unmanaged Supervisor will not have a balenaApi defined, so any
        attempts to POST /v2/local/target-state will cause the Supervisor to
        crash loop. This fix allows for the Supervisor to apply local target
        state, which is useful for integration testing.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 14.2.21
  title: ""
  date: 2022-11-07T21:19:58.463Z
- commits:
    - subject: "patch: Update locks behavior for config changes"
      hash: 63bd9605cff7dc1b6656da2a71d557d44a760ceb
      body: ""
      footer:
        Signed-off-by: Vipul Gupta (@vipulgupta2048) <vipul@balena.io>
        signed-off-by: Vipul Gupta (@vipulgupta2048) <vipul@balena.io>
      author: Vipul Gupta (@vipulgupta2048)
      nested: []
  version: 14.2.20
  title: ""
  date: 2022-11-03T22:27:39.529Z
- commits:
    - subject: Run the built supervisor as part of docker-compose tests
      hash: 46fa7321c0f6e5fcee1a057214fad1903afd2e02
      body: >
        This allows to test that the supervisor build actually runs and opens up
        the

        possibility of running more exhaustive API tests against a working
        supervisor.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 14.2.19
  title: ""
  date: 2022-11-03T21:20:50.940Z
- commits:
    - subject: Update apt repositories before installing dbus
      hash: 574f2ffb14fccd0ad8965cf5304830fdbd7d2439
      body: |
        GitHub actions are erroring due to the package not being found;
        Updating the repository listings shoud fix this.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 14.2.18
  title: ""
  date: 2022-11-02T19:00:52.814Z
- commits:
    - subject: Migrate API tests to unit/integration
      hash: 532e75a77eb62f9df7756a98d2740736c885411b
      body: |
        This excludes route tests or refactoring. Also, created tests
        for API middleware.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 14.2.17
  title: ""
  date: 2022-11-01T21:47:54.358Z
- commits:
    - subject: "config/backends: Add Jetson AGX Orin Devkit to the list of DTs that
        support configurable device-tree"
      hash: ea92fa916253ffd0d2d2a908698e4b6c50dd01a4
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Alexandru Costache <alexandru@balena.io>
        signed-off-by: Alexandru Costache <alexandru@balena.io>
      author: Alexandru Costache
      nested: []
  version: 14.2.16
  title: ""
  date: 2022-10-27T15:00:44.805Z
- commits:
    - subject: Migrate docker-util tests
      hash: aa3002f9093ce72123022f628179c3e14f702690
      body: |
        Merged docker-utils and delta tests into a single test suite. They are
        now ran as part of the integration tests using the real engine.
      footer:
        Change-type: patch
        change-type: patch
      author: pipex
      nested: []
  version: 14.2.15
  title: ""
  date: 2022-10-20T14:43:04.770Z
- commits:
    - subject: Migrate simple legacy tests to test/unit and test/integration
      hash: 620bcae53a208069b9f314288381271804d62d27
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: pipex
      nested: []
  version: 14.2.14
  title: ""
  date: 2022-10-19T13:35:18.108Z
- commits:
    - subject: Convert common.js to TypeScript
      hash: 966d9574656bb393031ba64dd596f933eb972947
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 14.2.13
  title: ""
  date: 2022-10-18T22:58:18.023Z
- commits:
    - subject: Setup environment for dbus tests
      hash: 819e1840956fdcc71d0bd4d7e9e5d2f7831ab29c
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 14.2.12
  title: ""
  date: 2022-10-18T14:01:31.670Z
- commits:
    - subject: Allow most printable ASCII chars for service label key
      hash: 91f93952db4490aa63e9dbe420983591293c5143
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Ken Bannister <kb2ma@runbox.com>
        signed-off-by: Ken Bannister <kb2ma@runbox.com>
      author: Ken Bannister
      nested: []
  version: 14.2.11
  title: ""
  date: 2022-10-17T12:08:22.596Z
- commits:
    - subject: Use inherited secrets for flowzone
      hash: 080d112f3e5da540684a0c5102d47f9e899a7d11
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 14.2.10
  title: ""
  date: 2022-10-13T16:09:15.906Z
- commits:
    - subject: Start state engine and API binder in parallel
      hash: b4514631b11c24c58342021e1a5b62add5a8c476
      body: |
        The state engine and preloading is performed before the device gets a
        chance to register, while this is desirable for preloaded apps, it
        introduces a delay on registration which is known to cause issues since
        the VPN is also trying to connect at the same time.

        This triggers a simultaneous start of the device engine, the API binder
        and the supevisor API to avoid delays.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 14.2.9
  title: ""
  date: 2022-10-10T19:42:02.898Z
- commits:
    - subject: Update type dependencies
      hash: 0237bd7cf4f5adeb3611bc155b4fe09995e8771d
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 14.2.8
  title: ""
  date: 2022-10-03T20:37:34.074Z
- commits:
    - subject: Split compose/volume tests into unit/integration
      hash: 4113dde45d870f9369139da82e533343f55fe19f
      body: |
        This also needs to modify the test environment as database migrations
        will look for `config.json` in the location given by the variable
        `CONFIG_MOUNT_POINT`.

        The volume tests now run against the actual docker engine setup via dind
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 14.2.7
  title: ""
  date: 2022-09-28T15:37:44.538Z
- commits:
    - subject: Fix migrations hardcode to work with knex 0.95.15
      hash: bf0d9ee836cb32da89d7827771dc64b405d5b5fc
      body: >
        The latest upgrade of knex broke the webpack loader that hardcodes the

        migration paths in the built code, that cause supervisors 14.2.3 to

        14.2.5 (inclusive) to break anytime migrations needed to be ran (see
        linked issue).


        This commit fixes the loader to work with the included knex version.
      footer:
        Relates-to: "#2032"
        relates-to: "#2032"
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 14.2.6
  title: ""
  date: 2022-09-28T00:21:04.875Z
- commits:
    - subject: Add test troubleshooting case that appears after upgrading system
      hash: c6d5ad7a89714e74c6f3280bc2ed39168f0545f4
      body: >
        The error may be something to the effect of `failed to add the host

        (vethd6242de) <=> sandbox (veth8e47b1a) pair interfaces: operation not
        supported`.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Ying Wang <christina@balena.io>
        signed-off-by: Christina Ying Wang <christina@balena.io>
      author: Christina Ying Wang
      nested: []
  version: 14.2.5
  title: ""
  date: 2022-09-27T04:50:50.229Z
- commits:
    - subject: Add custom flowzone action to finalize staging releases
      hash: 943004cf4339e579bd696875a2584cb098c65a65
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 14.2.4
  title: ""
  date: 2022-09-26T20:17:26.039Z
- commits:
    - subject: Update dependencies to fix NPM build
      hash: 460659429d65f360b58ca0eb08ffbc8118a2a446
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 14.2.3
  title: ""
  date: 2022-09-26T19:24:13.215Z
- commits:
    - subject: Update typescript target to es2021
      hash: e8baa63fdd4afbd19cfdcdb0e6802aebdc263278
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
    - subject: Update to webpack 5
      hash: 47dca8604b5df1b2af559589946b2e52fc7e855d
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 14.2.2
  title: ""
  date: 2022-09-22T21:42:15.846Z
- commits:
    - subject: Publish to staging with a custom publish composite job
      hash: 29ae778e3971c2046f86f5cad3bf0ed8fd61e1d8
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 14.2.1
  title: ""
  date: 2022-09-22T20:07:26.525Z
- commits:
    - subject: Disable event tracking
      hash: e00687408ce9c1b20217f25b1c906b7855aab83f
      body: |
        The supervisor used to rely on specific event reporting for identifying
        issues at runtime. As the platform has grown, it has become much more
        difficult to get any signal from the event noise. Recently the API side
        for these events has been disabled, meaning these events only
        contribute to bandwidth consumption.  This commit disables the
        event reporting feature of the supervisor which will be most likely
        replaced by something like Sentry in the near future.
      footer:
        Change-type: minor
        change-type: minor
      author: Felipe Lalanne
      nested: []
  version: 14.2.0
  title: ""
  date: 2022-09-20T17:55:19.399Z
- commits:
    - subject: Update webpack dependencies to latest webpack 4.x compatible versions
      hash: 93893093ff75a17243b46020e836c765d634677e
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 14.1.3
  title: ""
  date: 2022-09-20T13:49:10.018Z
- commits:
    - subject: Update husky/lint-staged dev dependencies
      hash: b3d866699731eb2fe798bbf4a4aa5cc849ddece6
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 14.1.2
  title: ""
  date: 2022-09-20T12:57:51.883Z
- commits:
    - subject: Update balena-register-device to 8.0.0
      hash: 1baf972e162cb3f9bf8904f7e734f29e2afe6b6d
      body: |
        Update balena-register-device from 7.2.0 to 8.0.0
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Thodoris Greasidis <thodoris@balena.io>
        signed-off-by: Thodoris Greasidis <thodoris@balena.io>
      author: Thodoris Greasidis
      nested:
        - commits:
            - subject: Remove the travis & appveyor configurations
              hash: 32c19504ca79ec134b34e30a4e6a52157a7b0bd6
              body: ""
              footer:
                Change-type: patch
                change-type: patch
              author: Thodoris Greasidis
            - subject: "tsconfig: Enable strict type checking"
              hash: 77b5211af6f87c364302342f24f9f95bc6c8ba35
              body: ""
              footer:
                Change-type: patch
                change-type: patch
              author: Thodoris Greasidis
            - subject: Update devDependencies
              hash: 32a482be80c978b3c8f83a2335a17c70a224cb52
              body: ""
              footer:
                Change-type: patch
                change-type: patch
              author: Thodoris Greasidis
            - subject: Update the uuid package to v9
              hash: 4567f824d6f45c825594fda3ec7c4b8e5f3ea561
              body: ""
              footer:
                Change-type: patch
                change-type: patch
              author: Thodoris Greasidis
            - subject: Prevent creating a package-lock.json
              hash: 3c0e432980a30a1fb0678acd8d0459bd53d69565
              body: ""
              footer:
                Change-type: patch
                change-type: patch
              author: Thodoris Greasidis
            - subject: Drop support for node 10 in favor of 14 & 16
              hash: ea7c5670950918363380cff9576a082abad6dbb9
              body: |
                That's required in order to update uuid to v9.
              footer:
                Change-type: major
                change-type: major
                Signed-off-by: Thodoris Greasidis <thodoris@balena.io>
                signed-off-by: Thodoris Greasidis <thodoris@balena.io>
              author: Thodoris Greasidis
          version: balena-register-device-8.0.0
          title: "'Drop node 10 in favor of 14 & 16 & update the uuid package to v9'"
          date: 2022-09-06T12:49:29.202Z
  version: 14.1.1
  title: ""
  date: 2022-09-19T21:21:50.712Z
- commits:
    - subject: Update to nodejs 16
      hash: 5518eb17bd232d53d3fd73afd0cd565ad2d93ca4
      body: ""
      footer:
        Change-type: minor
        change-type: minor
      author: Pagan Gazzard
      nested: []
  version: 14.1.0
  title: ""
  date: 2022-09-19T20:36:45.949Z
- commits:
    - subject: Update @balena/lint to 6.2.0
      hash: 96418d55b5507d8352e612d4a8074e700ea0780a
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
    - subject: Update to typescript 4.8.2
      hash: a4c13aa2e925934db26b175876d492995dd4a519
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 14.0.26
  title: ""
  date: 2022-09-19T16:37:40.389Z
- commits:
    - subject: Update to nodejs 14
      hash: 65e69f3a83863af5967e2eefddbb7cafc1d601f7
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 14.0.25
  title: ""
  date: 2022-09-15T22:32:28.588Z
- commits:
    - subject: Split publish to balena-staging from flowzone
      hash: fa8f02006e19341417d5deaabe52448af0b19b79
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 14.0.24
  title: ""
  date: 2022-09-15T20:55:22.509Z
- commits:
    - subject: Switch from balenaCI to flowzone
      hash: 044fa5a0388b179e8ca02bdefb4e0a181c5684aa
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 14.0.23
  title: ""
  date: 2022-09-14T20:28:55.724Z
- commits:
    - subject: Only install service if running is set to false
      hash: c6f911c36b8f9afeff5003db44199c95f5bbd8a2
      body: |
        The supervisor supports target state `running: false` for services.
        This state indicates that the service should be stopped if already
        running, or that the container should just be created and never started
        if the container does not exist. This commit fixes the latter behavior.

        Although nothing in our platform currently sends this target state, this
        enables some potential use cases, e.g. only starting some services
        in manufacturing and starting the rest of the services when the device
        actually connects.
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#2014"
        closes: "#2014"
      author: Felipe Lalanne
      nested: []
  version: 14.0.22
  title: "'Only install service if running is set to false'"
  date: 2022-09-14T13:48:20.421Z
- commits:
    - subject: Fix withDefault type helper to work with boolean
      hash: 3e45e9561e109186ea038c6d3b67f54071ee8a67
      body: |
        `withDefault` is a type helper that allows to create a type that
        defaults to a default value when trying to decode a nullish value.
        That type was not correctly working with boolean types, causing `false`
        values to be replaced by true. This would specifically cause issues when
        parsing the target state, where a `running: false` in a service would
        become a `running: true` due to the type decoding.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 14.0.21
  title: "'Fix withDefault type helper to work with boolean'"
  date: 2022-09-13T20:13:18.136Z
- commits:
    - subject: Fix filtering of the supervisor app on the target state
      hash: 5a57647450aa594b7112da01b9d2fc89885b6fae
      body: >
        Under some conditions, an aarch64 device may get a reference to a
        armv7hf

        supervisor on the target state. One of the ways this can happen is if

        an aarch64 device is added to an armv7hf fleet and the target supervisor

        is set before the device fully provisions.


        If that happens, the previous filtering for the supervisor app (which

        relied on the architecture in device-type.json) would

        fail and the user would end up with two supervisor containers, one

        running correctly and the other crash looping.


        This fixes the filtering and just checks if the supervisor uuid/service

        name belongs to a group of known uuids.
      footer:
        Closes: "#2006"
        closes: "#2006"
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 14.0.20
  title: "'Fix filtering of the supervisor app on the target state'"
  date: 2022-09-12T19:32:49.204Z
- commits:
    - subject: Update blinking to 0.0.5
      hash: 45f71b38d0a69419fae19e9c1a628d023653fad5
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 14.0.19
  title: "'Update blinking to 0.0.5'"
  date: 2022-09-12T12:04:51.557Z
- commits:
    - subject: Set desired es-version for downstream modules that support it
      hash: fadd51446306164b63267d2d353ae6aa00224e0c
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Thodoris Greasidis
      nested: []
  version: 14.0.18
  title: "'Set desired es-version for downstream modules that support it'"
  date: 2022-09-07T15:42:42.655Z
- commits:
    - subject: Remove side effects for module imports
      hash: 48e0733c7e734b401f6072df5a396dfc04075d98
      body: |
        The supervisor uses the following pattern for async module
        initialization

        ```typescript
        // module.ts

        export const initialised = (async () => {
            // do some async initialization
        })();

        // somewhere else
        import * as module from 'module';

        async function setup() {
          await module.initialise;
        }
        ```

        The above pattern means that whenever the module is imported, the
        initialisation procedure will be ran, which is an anti-pattern.

        This converts any instance of this pattern into a function

        ```typescript
        export const initialised = _.once(async () => {
            // do some async initialization
        });
        ```

        And anywhere else on the code it replaces the call with a

        ```typescript
        await module.initialised();
        ```
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 14.0.17
  title: "'Remove side effects for module imports'"
  date: 2022-09-06T19:50:43.463Z
- commits:
    - subject: Add custom DTB support for imx8mm-var-som
      hash: 36544b7d6e53c8a501a6def40ac0370346e63b78
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Alexandru Costache <alexandru@balena.io>
        signed-off-by: Alexandru Costache <alexandru@balena.io>
      author: Alexandru Costache
      nested: []
  version: 14.0.16
  title: "'Add custom DTB support for imx8mm-var-som'"
  date: 2022-09-06T14:36:03.142Z
- commits:
    - subject: Create `test/unit` and `test/integration` folders
      hash: c1e6dadeb47c3c52958383a2fc775a821362f853
      body: |
        This sets up the new `test/unit` and `test/integration` folders
        and starts classification of some of the test files.

        Note that unit tests include, `fs-utils` and `system-info` tests.

        While these tests interact with the filesystem, the implementation
        of these modules is simple enough, and the tests are fast enough to
        allow these tests to fall under the `unit` test category (according to
        test/README)
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Move the current test suite under `test/legacy`
      hash: e1e35eb83b738040150ced1ee9500d780de4b632
      body: |
        We are refactoring the supervisor test suite into unit tests (for
        algorithms an domain model tests) and integration
        tests (for interaction with out-of-process dependencies).
        This means the current test suite needs to be classified into
        these two categories, and fixed whenever possible.

        This commit moves the test suite under the `test/legacy` folder, this
        folder should be progressively migrated and eventually removed.
        Subsequent commits will begin to split these files into unit and
        integration whenever possible.
      footer:
        Depends-on: "#1996"
        depends-on: "#1996"
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 14.0.15
  title: "'Split test suite into unit and integration tests'"
  date: 2022-08-24T20:09:59.828Z
- commits:
    - subject: Simplify test commands in package.json
      hash: 274503feb3f2f9cd5a8db551fd93b9cce8ae9b39
      body: |
        The supervisor used to perform tests both for the transpiled code (after
        tsc) and one for the typescript code (using
        ts-node/register/transpile-only). There is not really a reason for this
        and this added complexity to the test configuration. This used to make
        testing harder, as the built code didn't include source maps, meaning
        the tests did not point to the right code.

        Since we want to split tests in unit and integration tests as the next
        test improvement, it makes sense to simplify these commands before
        adding more complexity.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 14.0.14
  title: "'Refactor test suite to use tsconfig paths instead of relative paths'"
  date: 2022-08-22T20:24:43.124Z
- commits:
    - subject: Wait for Stopping services to stop before target apply success
      hash: 12b67742c8091280c2e74e97a7c7392021db542f
      body: >
        This mitigates an edge case bug introduced in v13.1.3 where services
        that

        are slow to exit may get stuck in a state of Downloaded if a service var
        is

        changed then reverted rapidly. More detailed description in linked
        issue.
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#1991"
        closes: "#1991"
        Signed-off-by: Christina Wang <christina@balena.io>
        signed-off-by: Christina Wang <christina@balena.io>
      author: Christina Wang
      nested: []
  version: 14.0.13
  title: "'Wait for Stopping services to stop before target apply success'"
  date: 2022-08-02T21:43:15.897Z
- commits:
    - subject: Disable healthchecks failing on report errors
      hash: 0c4e6ce4217fa17bd345483f61b27c1073327fef
      body: |
        State report errors contribute to the supervisor failing healthchecks
        and being restarted by the engine. There is not evidence of this
        improving the connectivity situation and it is likely to make things
        worst for the API as the first report is much more expensive than
        subsequent partial reports.
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#1986"
        closes: "#1986"
      author: Felipe Lalanne
      nested: []
  version: 14.0.12
  title: "'  Disable healthchecks failing on report errors'"
  date: 2022-07-18T20:28:38.790Z
- commits:
    - subject: Refactor supervisor Dockerfile to remove custom dependencies
      hash: 1722286a870d53acab9e5e8cfa372e07112f89e8
      body: >
        Restructure the supervisor image to remove the dependency on the custom
        `alpine-supervisor-base`

        image and the custom node build. The dockerfile is now a multi-stage

        build that splits the process into two build stages and two runtime

        stages.


        Here is the full list of changes


        - The node binary is now copied
        from  `balenalib/${ARCH}-alpine-node:12-run`, the node binary

        now supports running with a debugger.

        - The runtime image now inherits from the official `alpine:3.16` image

        - Tests are ran within the runtime image configuration instead of the
          build image
        - Livepush is ran within the runtime image context

        - Unnecessary packages have been removed

        - Removed avahi-daemon.conf as that service is not being used

        - Fix livepush to work with a multi-stage image. This also deprecates
        the `image-tag` argument to npm run sync as

        `SUPERVISOR_TAG` is no longer used by new OSs

        - Fix livepush build on old rpi devices. Allows passing a 'PREFIX'
          argument to let the builder pull images directly from docker hub arch
          repositories. Relates to https://github.com/balena-os/balena-engine/issues/269
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 14.0.11
  title: "'Refactor supervisor Dockerfile to remove custom dependencies'"
  date: 2022-07-18T17:29:46.661Z
- commits:
    - subject: Remove legacy build methods
      hash: 515b6297a089c13c80a751a303f7311b80ed15f1
      body: |
        Removes dindctl and `tools/sync.js` in favor of balenaos-in-container
        and SSH tunneling respectively.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Allow directories to be used as lockfiles
      hash: 861e902d7f460e9ed0320ff2f808d23ec53e4e30
      body: >
        Some libraries, like
        [proper-lockfile](https://www.npmjs.com/package/proper-lockfile)

        use directories instead of files for locking. This PR allows the
        supervisor to be able to

        work with those types of locks when lock override is requested.
      footer:
        Closes: "#1978"
        closes: "#1978"
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 14.0.10
  title: "'Remove legacy build methods'"
  date: 2022-07-13T20:44:45.828Z
- commits:
    - subject: Allow host config patch regardless of running applications
      hash: 0fc79e87d98e13c2c918ec89e28759447c51af56
      body: |
        Host config shouldn't be tied to applications in the first place, but
        needs to be done so because it uses update locks to determine when it's
        safe to patch host config, and update locks are tied to apps.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Wang <christina@balena.io>
        signed-off-by: Christina Wang <christina@balena.io>
      author: Christina Wang
      nested: []
  version: 14.0.9
  title: "'Allow host config patch regardless of running applications'"
  date: 2022-07-06T20:41:30.289Z
- commits:
    - subject: Specify that Supervisor will not restore previous lock status from user
        containers
      hash: ca140639c6a2b5f9f5a2e69b5611bb3902b78c18
      body: >
        There is no functionality which 1) stores the filesystem lock status
        when toggling override

        to on, and 2) restore the system to that status when toggling override
        to off.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Wang <christina@balena.io>
        signed-off-by: Christina Wang <christina@balena.io>
      author: Christina Wang
      nested: []
  version: 14.0.8
  title: "'Specify that Supervisor will not restore previous lock status from user
    containers'"
  date: 2022-06-27T15:50:08.481Z
- commits:
    - subject: Add missing docs for the containerId param of the journal-logs endpoint
      hash: ff526c18d85ad4876025692d85e343e7661a7906
      body: ""
      footer:
        Resolves: "#1975"
        resolves: "#1975"
        Change-type: patch
        change-type: patch
      author: Thodoris Greasidis
      nested: []
  version: 14.0.7
  title: "'Add missing docs for the containerId param of the journal-logs endpoint'"
  date: 2022-06-22T18:54:09.601Z
- commits:
    - subject: Read hostname from config.json with container /etc/hostname as backup
      hash: a7a0821a3e23142265904806df5d0a6ecd2ed4b5
      body: >
        We don't need to read the host's hostname through
        /mnt/root/etc/hostname,

        because the hostname is written to config.json on a change. When the
        hostname

        has never changed, it won't be found in config.json, so we can default
        to

        the Supervisor container's /etc/hostname as it will match the host's

        /etc/hostname, the network mode being `host`.
      footer:
        Closes: "#1968"
        closes: "#1968"
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Wang <christina@balena.io>
        signed-off-by: Christina Wang <christina@balena.io>
      author: Christina Wang
      nested: []
  version: 14.0.6
  title: "'Read hostname from config.json with container /etc/hostname as backup'"
  date: 2022-06-15T19:19:57.666Z
- commits:
    - subject: Add custom DTB support for Variscite Dart DT family
      hash: dfb6bcf0e6a5b32c2def588dde1a8849a11c683c
      body: ""
      footer:
        Closes: "#1963"
        closes: "#1963"
        Relates-to: https://github.com/balena-io/open-balena-api/issues/1033
        relates-to: https://github.com/balena-io/open-balena-api/issues/1033
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Wang <christina@balena.io>
        signed-off-by: Christina Wang <christina@balena.io>
      author: Christina Wang
      nested: []
  version: 14.0.5
  title: "'Add custom DTB support for Variscite Dart DT family'"
  date: 2022-06-14T19:29:37.702Z
- commits:
    - subject: Better document mocked-dbus, add missing dbus interface methods
      hash: ffa1c734182f49fabc818c95f3a1c231bf4e05f4
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Wang <christina@balena.io>
        signed-off-by: Christina Wang <christina@balena.io>
      author: Christina Wang
      nested: []
  version: 14.0.4
  title: "'Better document mocked-dbus, add missing test methods'"
  date: 2022-06-09T20:18:10.430Z
- commits:
    - subject: Do not send name as part of the current state
      hash: 99efd12acd05290b5fc2ae74da3226d150dc86e6
      body: |
        This fixes a race condition that could occur with the first current
        state report, where if the device managed to send the current state
        report first, then the device name on the cloud would be set to `local`
        (see #1959).
      footer:
        Closes: "#1959"
        closes: "#1959"
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 14.0.3
  title: "'Do not send name as part of the current state'"
  date: 2022-06-07T19:53:30.522Z
- commits:
    - subject: Don't use config.get for appId when checking locks in host config PATCH
      hash: be1c01039aea081e5beb01f72ef1c8880a736924
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Wang <christina@balena.io>
        signed-off-by: Christina Wang <christina@balena.io>
      author: Christina Wang
      nested: []
  version: 14.0.2
  title: "'Don't use config.get for appId when checking locks in host config PATCH'"
  date: 2022-06-06T19:18:06.984Z
- commits:
    - subject: Use locks before shutdown/reboot instead of stopping containers
      hash: aad5a9efc5da5ffcd6915ac6f395e154ee38cbf8
      body: ""
      footer:
        Closes: "#1940"
        closes: "#1940"
        Change-type: patch
        change-type: patch
        Signed-off-by: 20k-ultra <3946250+20k-ultra@users.noreply.github.com>
        signed-off-by: 20k-ultra <3946250+20k-ultra@users.noreply.github.com>
      author: 20k-ultra
      nested: []
    - subject: Refactor update-lock.lock to accept an array of applications to lock
      hash: 471f0f0615c7d46a182c2d396b832eb0df9ee95e
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: 20k-ultra <3946250+20k-ultra@users.noreply.github.com>
        signed-off-by: 20k-ultra <3946250+20k-ultra@users.noreply.github.com>
      author: 20k-ultra
      nested: []
    - subject: Refactor update-lock function to avoid callback hell
      hash: ef7371a7ef40f1e73bd2277bfe997c48f5e59284
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: 20k-ultra <3946250+20k-ultra@users.noreply.github.com>
        signed-off-by: 20k-ultra <3946250+20k-ultra@users.noreply.github.com>
      author: 20k-ultra
      nested: []
  version: 14.0.1
  title: "'Shutdown with locks'"
  date: 2022-06-02T04:34:24.480Z
- commits:
    - subject: Use Mounts API for engine socket feature label
      hash: 6ccd2178c18acded013e888a296e265bc0315728
      body: |
        When upgrading to this Supervisor version, containers using the
        engine feature label will be restarted.
      footer:
        Relates-to: https://github.com/balena-os/balena-supervisor/pull/1780
        relates-to: https://github.com/balena-os/balena-supervisor/pull/1780
        Closes: "#1933"
        closes: "#1933"
        Change-type: major
        change-type: major
        Signed-off-by: Christina Wang <christina@balena.io>
        signed-off-by: Christina Wang <christina@balena.io>
      author: Christina Wang
      nested: []
  version: 14.0.0
  title: "'Use Mounts API for engine socket feature label'"
  date: 2022-05-31T19:41:00.639Z
- commits:
    - subject: Only migrate apps.json on preload after target has been set
      hash: 95bf4718d6717630ab0bedabfeea209ce295acb0
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Felipe Lalanne <felipe@balena.io>
        signed-off-by: Felipe Lalanne <felipe@balena.io>
      author: Christina Wang
      nested: []
  version: 13.1.11
  title: "'Do not migrate apps.json if preload v2 to v3 fails'"
  date: 2022-05-26T21:02:56.665Z
- commits:
    - subject: Trim newlines from sysinfo files
      hash: 76553c6b4a70896482735a84d2c5ea1ca5e5b8fa
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 13.1.10
  title: "'Trim newlines from sysinfo files'"
  date: 2022-05-23T18:46:36.830Z
- commits:
    - subject: Fix serial number support for variscite boards
      hash: 29867ccf177b27f9dd27ca25c32168b4649c6d00
      body: |
        Closes: #1950
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 13.1.9
  title: "'Fix serial number support for variscite boards'"
  date: 2022-05-23T14:44:28.150Z
- commits:
    - subject: Add compose support for volumes defined with long syntax
      hash: 0a9c7282e8921f874315259919ba247236be5d52
      body: >
        balena-compose already supports this, and with this PR, Supervisor can

        have the option of using HostConfig.Mounts for internal bind mounts such
        as

        ones added by feature labels. This will be handled in a future PR.


        The only blocker to having users use long syntax is adding this feature

        to target state. This PR does not add that feature.
      footer:
        Relates-to: "#1933"
        relates-to: "#1933"
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Wang <christina@balena.io>
        signed-off-by: Christina Wang <christina@balena.io>
      author: Christina Wang
      nested: []
  version: 13.1.8
  title: "'Add compose support for volumes defined with long syntax'"
  date: 2022-05-17T18:16:30.482Z
- commits:
    - subject: Prevent throttling reports when nothing was sent
      hash: 67f9c44a6c7ccde29ee6e53442a74191b4f8eaea
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: 20k-ultra <3946250+20k-ultra@users.noreply.github.com>
        signed-off-by: 20k-ultra <3946250+20k-ultra@users.noreply.github.com>
      author: 20k-ultra
      nested: []
  version: 13.1.7
  title: "'Prevent throttling reports when nothing was sent'"
  date: 2022-05-16T19:22:50.596Z
- commits:
    - subject: Avoid splash image failures if image is corrupt
      hash: a5ede01b18abd5e079361d24f2f8f5368d23da6d
      body: |
        Splash image backend would throw if the image is not a valid png during
        the write step. This could prevent the device from provisioning if some
        corruption happens at some point.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 13.1.6
  title: "'Avoid splash image failures if image is corrupt'"
  date: 2022-05-06T18:46:18.641Z
- commits:
    - subject: Use write + sync when writing configs to /mnt/boot
      hash: c04955354a76ab32ab5dc52062fdf72d668f7c3b
      body: |
        This commit updates all backends that write to /mnt/boot to do it
        through a new `lib/host-utils` module. Writes are now done using write +
        sync as rename is not an atomic operation in vfat.

        The change also applies for writes through the `/v1/host-config`
        endpoint.

        Finally this change includes some improvements on tests.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 13.1.5
  title: "'Use write+sync when writing to '"
  date: 2022-05-03T15:28:52.610Z
- commits:
    - subject: Use delay instead of interval to recursively report state
      hash: 2e81a7328e6ff01c397bb1bced73010470520657
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: 20k-ultra <3946250+20k-ultra@users.noreply.github.com>
        signed-off-by: 20k-ultra <3946250+20k-ultra@users.noreply.github.com>
      author: 20k-ultra
      nested: []
  version: 13.1.4
  title: "'Use delay instead of interval to recursively report state'"
  date: 2022-04-28T03:19:33.567Z
- commits:
    - subject: Remove in memory storage of started/stopped containers
      hash: 5437aea786e6be4a908e2cb0c24faeca3282c37e
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: 20k-ultra <3946250+20k-ultra@users.noreply.github.com>
        signed-off-by: 20k-ultra <3946250+20k-ultra@users.noreply.github.com>
      author: 20k-ultra
      nested: []
    - subject: Only start a container once in its lifetime This will ensure the
        restart policy specified is not violated
      hash: ca9945bdfb716e1b14b24d3f3069f48cc7aff493
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#1668"
        closes: "#1668"
        Signed-off-by: 20k-ultra <3946250+20k-ultra@users.noreply.github.com>
        signed-off-by: 20k-ultra <3946250+20k-ultra@users.noreply.github.com>
      author: 20k-ultra
      nested: []
  version: 13.1.3
  title: "'Prevent restart policy violation'"
  date: 2022-04-20T03:29:57.844Z
- commits:
    - subject: Explain /v2/state/status's status field in its response
      hash: 27249c278555c46154d1e917e769dd3fb9d2dcfc
      body: >
        The status field does not indicate the current state of the Engine on
        the device.

        Rather, it only indicates whether the HTTP response returned
        successfully or not.


        To get the current state of the device, i.e. whether it has applied
        target state or not,

        use the `appState` field in the response.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Wang <christina@balena.io>
        signed-off-by: Christina Wang <christina@balena.io>
      author: Christina Wang
      nested: []
  version: 13.1.2
  title: "'Explain /v2/state/status's status field in its response'"
  date: 2022-04-18T20:20:06.946Z
- commits:
    - subject: Do not fail lockfile cleanup if files do not exist
      hash: 8681d6b5808142613931b4e9fe63fa94f04c65bc
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 13.1.1
  title: "'Do not fail lockfile cleanup if files do not exist'"
  date: 2022-04-13T17:08:20.101Z
- commits:
    - subject: Add lockfile binary and internal lib for interfacing with it
      hash: 51e63ea22b876580de276808eca891ff6ab2a6c5
      body: >
        The linked issue describes the Supervisor not cleaning up locks it
        creates due

        to crashing at just the wrong time. After internal discussion we decided
        to

        differentiate Supervisor-created lockfiles from user-created lockfiles
        by using

        the `nobody` UID (65534) for Supervisor-created lockfiles.


        As the existing NPM lockfile lib does not allow creating lockfiles
        atomically

        with different UIDs, we move to using the lockfile binary, which is part
        of the

        procmail package. To allow nonroot users to write to lock directories,
        permissions

        are changed to allow write access by nonroot users.
      footer:
        See: https://www.flowdock.com/app/rulemotion/r-resinos/threads/gWMgK5hmR26TzWGHux62NpgJtVl
        see: https://www.flowdock.com/app/rulemotion/r-resinos/threads/gWMgK5hmR26TzWGHux62NpgJtVl
        Change-type: minor
        change-type: minor
        Closes: "#1758"
        closes: "#1758"
        Signed-off-by: Christina Wang <christina@balena.io>
        signed-off-by: Christina Wang <christina@balena.io>
      author: Christina Wang
      nested: []
  version: 13.1.0
  title: "'Differentiate Supervisor-created lockfiles from userapp-created lockfiles'"
  date: 2022-04-12T19:07:17.817Z
- commits:
    - subject: Add system id/model support for Compulab IOT-gate
      hash: e6fa22306b9e2b55480772560e62bb8e8988b529
      body: |
        dmidecode for alpine 3.11 doesn't work in this device type. This change
        moves to using `/proc/device-tree/product-sn` and
        `/proc/device-tree/product-name` for these devices.
      footer:
        Resolves: "#1916"
        resolves: "#1916"
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 13.0.3
  title: "'Add system id/model support for Compulab IOT-gate'"
  date: 2022-04-08T16:06:29.933Z
- commits:
    - subject: Correctly evaluate downloadProgress when computing current state
      hash: c1b5e58ebd7a1c01c985f75c9a84ac22f7f090f0
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#1918"
        closes: "#1918"
        Signed-off-by: 20k-ultra <3946250+20k-ultra@users.noreply.github.com>
        signed-off-by: 20k-ultra <3946250+20k-ultra@users.noreply.github.com>
      author: 20k-ultra
      nested: []
  version: 13.0.2
  title: "'Correctly evaluate downloadProgress when computing current state'"
  date: 2022-04-08T01:24:44.461Z
- commits:
    - subject: Fix database migration for legacyApps
      hash: eee24604459440569dee455db918d6901ea86645
      body: >
        Migration `M00008` had a bug with the check for legacy apps, which

        resulted in devices that had at some point been updated from a single

        container supervisor to get the error


        ```

        Undefined binding(s) detected when compiling UPDATE. Undefined
        column(s): [appUuid] query

        ```


        This adds a new migration with the fix to ensure broken fix the

        inconsistent database state.
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#1913"
        closes: "#1913"
      author: Felipe Lalanne
      nested: []
  version: 13.0.1
  title: "'Fix database migration for legacyApps'"
  date: 2022-04-01T21:09:42.303Z
- commits:
    - subject: Add support for GET v3 target state
      hash: 7425d1110b719dffd132c681c6e0c28fcc218dea
      body: |
        This change updates types and database format in order to allow
        receiving the new format of the target state from the cloud and allow
        applications to keep working.

        This change also updates metadata in the containers, meaning services
        will need to be restarted on supervisor update
      footer:
        Change-type: major
        change-type: major
      author: Felipe Lalanne
      nested: []
  version: 13.0.0
  title: "'Update supervisor to use new v3 target state format'"
  date: 2022-03-23T18:15:27.194Z
- commits:
    - subject: Always add status to image download report
      hash: 21c1c006f7b8dfcf566f3e4a8e853e5e9978edf4
      body: |
        It seems that in some cases the supervisor can report
        an image without a `status` field leading to a cloud side 401 response.
        See #1905 for more details.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 12.11.43
  title: "'Always add status to image download report'"
  date: 2022-03-21T17:55:39.079Z
- commits:
    - subject: Moved test setup into file included for all tests
      hash: b068c209b0cd8cff4c2fb5218bd1d4c2116451e6
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: 20k-ultra <3946250+20k-ultra@users.noreply.github.com>
        signed-off-by: 20k-ultra <3946250+20k-ultra@users.noreply.github.com>
      author: 20k-ultra
      nested: []
  version: 12.11.42
  title: "'Moved test setup into file included for all tests'"
  date: 2022-03-18T22:22:27.948Z
- commits:
    - subject: Added PR template doc
      hash: edcbb622d84bc1290cc5ce0ef7929a9ef9195df4
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: 20k-ultra <3946250+20k-ultra@users.noreply.github.com>
        signed-off-by: 20k-ultra <3946250+20k-ultra@users.noreply.github.com>
      author: 20k-ultra
      nested: []
  version: 12.11.41
  title: "'Added PR template doc'"
  date: 2022-03-16T20:56:50.062Z
- commits:
    - subject: Only count report connectivity errors for healthcheck
      hash: e217ff9027dad3e2ab092d16290b2eca0ecf6c25
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: update packages for vulnerabilities
      hash: b5a2b8b7510860ba926f2e015e9294c824c700e1
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: 20k-ultra <3946250+20k-ultra@users.noreply.github.com>
        signed-off-by: 20k-ultra <3946250+20k-ultra@users.noreply.github.com>
      author: 20k-ultra
      nested: []
  version: 12.11.40
  title: "'Only count report connectivity errors for healthcheck'"
  date: 2022-03-16T19:01:20.454Z
- commits:
    - subject: Move report throttle out of reporting logic
      hash: 2fdb83839c2262b398deb77eb0fa4ae2c16c374a
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: 20k-ultra <3946250+20k-ultra@users.noreply.github.com>
        signed-off-by: 20k-ultra <3946250+20k-ultra@users.noreply.github.com>
      author: 20k-ultra
      nested: []
    - subject: Update npm dep sinon to v11.1.2
      hash: 5e5f1fb305d06399af37f1ce490a27f6e0289140
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: 20k-ultra <3946250+20k-ultra@users.noreply.github.com>
        signed-off-by: 20k-ultra <3946250+20k-ultra@users.noreply.github.com>
      author: 20k-ultra
      nested: []
  version: 12.11.39
  title: "'Move report throttle out of reporting logic'"
  date: 2022-03-16T02:57:26.149Z
- commits:
    - subject: Apply target state if loaded from file (apps.json)
      hash: b069d6b9d5ec2c9a45149e491fc49c489131e3c1
      body: ""
      footer:
        Closes: "#1895"
        closes: "#1895"
        Change-type: patch
        change-type: patch
        See: https://www.flowdock.com/app/rulemotion/r-supervisor/threads/tSN9BgLxkgJKapbQHQJr-R9yLPM
        see: https://www.flowdock.com/app/rulemotion/r-supervisor/threads/tSN9BgLxkgJKapbQHQJr-R9yLPM
        Signed-off-by: 20k-ultra <3946250+20k-ultra@users.noreply.github.com>
        signed-off-by: 20k-ultra <3946250+20k-ultra@users.noreply.github.com>
      author: 20k-ultra
      nested: []
  version: 12.11.38
  title: "'Apply target state if loaded from file (apps.json)'"
  date: 2022-03-14T22:53:42.114Z
- commits:
    - subject: Fix check for supervisor0 network
      hash: d1956b69cc67842ffd0ea1af4c7fa44aef4bfedc
      body: >
        The check for the docker network supervisor0 assumed that if the

        interface supervisor0 existed, then the network would exist too. However
        this is not

        true on the case of docker directory corruption, which would lead to a

        loop with `Error: (HTTP code 404) no such network - network supervisor0
        not found`.
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#1806"
        closes: "#1806"
      author: Felipe Lalanne
      nested: []
  version: 12.11.37
  title: "'Fix check for supervisor0 network'"
  date: 2022-02-25T22:57:01.032Z
- commits:
    - subject: Ignore selinux security opts when comparing services
      hash: 1b54ce8bfd5dd3d1f14f573a0bfe17ee1dd81630
      body: |
        The moby engine v20.x.y adds some selinux [security configurations](https://docs.docker.com/engine/reference/run/#security-configuration)
        depending on the [container configuration](https://github.com/moby/moby/blob/master/daemon/create.go#L214).
        This would cause the supervisor to enter a service restart loop as the
        current and target service configurations will never match. The
        supervisor now ignores selinux specific security options since those are
        not supported by balenaOS.
      footer:
        Closes: "#1890"
        closes: "#1890"
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 12.11.36
  title: "'Ignore selinux security opts when comparing services'"
  date: 2022-02-23T21:15:31.484Z
- commits:
    - subject: Add troubleshooting notice for macOS
      hash: 6ab314f8c0af647cdb0537b6a396ccb3d5ce060f
      body: |
        When developing on macOS (Darwin) DBus may have to be installed.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: fisehara <harald@balena.io>
        signed-off-by: fisehara <harald@balena.io>
      author: fisehara
      nested: []
  version: 12.11.35
  title: "'Add troubleshooting notice for macOS'"
  date: 2022-02-16T19:41:22.558Z
- commits:
    - subject: Create `touch` and `getBootTime` utility functions
      hash: a4d91d381a3e2dfda182bb7809a6d78b18aafebf
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Add update lock check to PATCH /v1/device/host-config
      hash: 5f1a77da25b9d0bd07c2fbec85cb5deefae18884
      body: >
        This is necessary with the changes as of balenaOS 2.82.6, which watches
        config.json

        and will restart balena-hostname and some other services automatically
        on file change.
      footer:
        Change-type: patch
        change-type: patch
        Relates-to: "#1876"
        relates-to: "#1876"
        Signed-off-by: Christina Wang <christina@balena.io>
        signed-off-by: Christina Wang <christina@balena.io>
      author: Christina Wang
      nested: []
  version: 12.11.34
  title: "'Make the supervisor more resistant to restarts during config changes'"
  date: 2022-02-15T15:58:42.783Z
- commits:
    - subject: Add support for local ipv6 reporting
      hash: 72f6cbe4c7225623ed99083d20c4a2cb2f3b70ac
      body: |
        With more and more devices in ipv6 only networks, this ensures the
        local addresses are reported to the cloud as part of the state patch.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 12.11.33
  title: "'Add support for local ipv6 reporting'"
  date: 2022-02-09T17:57:09.778Z
- commits:
    - subject: Use `writeAndSync` when writing to config.json
      hash: d071cd1507b8424628afa96ea1b1ed6b19225651
      body: |
        `/mnt/boot` is a vfat partition which does not support atomic file
        rename. The best course of action is to write and sync as fast as
        possible to prevent corruption (although it still may happen)
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 12.11.32
  title: Write sync config json
  date: 2022-02-01T21:58:22.824Z
- commits:
    - subject: Ensure the `finish` event is always reported when fetching images
      hash: ae501048f59646fc688fe0373f938096dab5bd7f
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 12.11.31
  title: Ensure the `finish` event is always reported when fetching images
  date: 2022-02-01T21:38:21.771Z
- commits:
    - subject: Throw if target states gets a 304 without an ETAG
      hash: f471ad736c40afe7e4b50cb0fc46e8894d8dcdd7
      body: |
        The API uses 304 as a mechanism for load management on target state
        requests. This may cause that the supervisor receives a 304 response
        without having received a copy of the target state first, leading to
        issues. This change checks for an etag when receiving a 304, throwing an
        exception otherwise.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 12.11.30
  date: 2022-01-26T14:30:25.966Z
- commits:
    - subject: "patch: Update fleet terminology for application update locks"
      hash: 6357d3541ea726db565be947b3f9e4484707389c
      body: ""
      footer: {}
      author: Vipul Gupta
      nested: []
    - subject: "patch: Update fleet terminology for the Supervisor API"
      hash: a631e86997624a562914e5a8c6c2c60c05470d13
      body: ""
      footer:
        Signed-off-by: Vipul Gupta (@vipulgupta2048) <vipul@balena.io>
        signed-off-by: Vipul Gupta (@vipulgupta2048) <vipul@balena.io>
      author: Vipul Gupta (@vipulgupta2048)
      nested: []
  version: 12.11.29
  date: 2022-01-20T12:51:52.460Z
- commits:
    - subject: Use dmidecode to read cpuid in non ARM devices
      hash: d06b8e053ea0a66ba9fba4552499c7393ceee5fc
      body: |
        Cpu id is set to null so far for non ARM devices (e.g. Intel NUC). This
        parses the output of dmidecode to get the cpu id and system model.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
    - subject: Use dmidecode to read cpuid in non ARM devices
      hash: c7fc7aacf838e8867890d16e77cfaa44bb62f700
      body: |
        Cpu id is set to null so far for non ARM devices (e.g. Intel NUC). This
        parses the output of dmidecode to get the cpu id and system model.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 12.11.28
  date: 2022-01-19T13:35:11.021Z
- commits:
    - subject: "docs: Clarify that update locks prevent restarts from env var changes"
      hash: 111db221772138048e16ba2b1a4f5d14a8a53aa0
      body: ""
      footer:
        Resolves: https://github.com/balena-io/docs/issues/2175
        resolves: https://github.com/balena-io/docs/issues/2175
        Change-type: patch
        change-type: patch
      author: Thodoris Greasidis
      nested: []
  version: 12.11.27
  date: 2022-01-18T12:22:23.682Z
- commits:
    - subject: Increase delta request timeout to 59s to better align with our backends
      hash: 157fd951960355f61f930581224bddb7828ebe37
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 12.11.26
  date: 2022-01-18T10:05:28.369Z
- commits:
    - subject: Fix memoization of registry token request
      hash: fd1f646073fafe8cb6e38661882c113a4c9f1a67
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 12.11.25
  date: 2022-01-17T16:56:17.228Z
- commits:
    - subject: Remove apps.json after initial preload
      hash: 9c6e5ee11f5014fd27c084e23b8fc2c8db7c3727
      body: >
        This avoids the supervisor trying to get back to the preloaded target

        state if the database is deleted by any reason. It does this by moving
        the

        used apps.json to a backup location.
      footer:
        Change-type: patch
        change-type: patch
        Depends-on: "#1841"
        depends-on: "#1841"
      author: Felipe Lalanne
      nested: []
  version: 12.11.24
  date: 2022-01-10T19:06:59.696Z
- commits:
    - subject: add-supervisor-update-info
      hash: 0c8c1864ae5e9b6dc2aaa9108d1f83bb592df1f5
      body: >
        Adding clarity to the supervisor /v1/update endpoint that the endpoint
        will not trigger a supervisor update itself.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: fisehara <harald@balena.io>
        signed-off-by: fisehara <harald@balena.io>
      author: fisehara
      nested: []
  version: 12.11.23
  date: 2021-12-28T19:02:08.272Z
- commits:
    - subject: Refactor `SUPERVISOR_POLL_INTERVAL` description to mention back off
      hash: 51ab2032641d07df695f4fc329cb8d9ec19b92c6
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 12.11.22
  date: 2021-12-22T04:19:34.979Z
- commits:
    - subject: Fix `.local` dns resolution when returning multiple addresses
      hash: 39c667803d93182c595870352a597b9c07e1c9d1
      body: |
        The supervisor performs its own local resolution for `.local`
        addresses due to a limitation in [musl](https://wiki.musl-libc.org/future-ideas.html).
        The resolution function was not following exactly the nodejs [dns.lookup
        specification](https://nodejs.org/api/dns.html#dnslookuphostname-options-callback)
        which could cause certain clients to fail (in this case happy-eyeballs). This
        updates the function to follow the specification.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 12.11.21
  date: 2021-12-16T15:03:16.595Z
- commits:
    - subject: Skip initial apply until a target has been set
      hash: 9015b0e22f7edf973798d5ace3d60e32d43bb042
      body: >
        The supervisor always applies target state on start to ensure that the

        device is at the correct in case of a crash or another reason. This had

        the side effect that if the database is deleted, the supervisor would

        apply target state (which is empty), stopping services and possibly

        causing volume data loss.


        This prevents that behavior and ensures that the supervisor only

        applies target state if a target has been set either by the cloud,
        preload or local

        mode.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 12.11.20
  date: 2021-12-13T12:33:34.693Z
- commits:
    - subject: Fix default value for BALENA_SUPERVISOR_POLL_INTERVAL The API typically
        passes its own value and overrides this default. This old value was the
        one the API passed not what the Supervisor source code had.
      hash: 201e74280566c735b2c20fb2ca3d7f109f5c9803
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 12.11.19
  date: 2021-12-10T21:59:53.428Z
- commits:
    - subject: Fix the "already delayed by" calculation
      hash: 32e3399f7c156574e35cbd6c6ec207972c7afe69
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 12.11.18
  date: 2021-12-10T15:58:06.889Z
- commits:
    - subject: Add exponential backoff on errors for logs reporting
      hash: 6554ff5a64230352b4cd77249861807f02feda87
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 12.11.17
  date: 2021-12-09T18:33:04.044Z
- commits:
    - subject: Improve validation messages for env vars and labels
      hash: f6b2ec967788a48bd70caf39c77502407861b0ce
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 12.11.16
  date: 2021-12-02T20:23:27.202Z
- commits:
    - subject: Convert target state types to io-ts for better validation
      hash: f6692ab918b3d1c1e032ec31a057d745ffca94dc
      body: |
        This simplifies target state validation and improves validation
        messages.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 12.11.15
  date: 2021-12-02T18:34:10.741Z
- commits:
    - subject: Add happy eyeballs
      hash: 9ed2685f63f9070dd6491bf1acae1e239b6bd557
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Zane Hitchcox
      nested: []
  version: 12.11.14
  date: 2021-11-30T17:47:07.133Z
- commits:
    - subject: Increase request timeout to 59s to better align with our backends
      hash: 2eb00fa0da15bb6fdc40421c3cf3800ed1815437
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 12.11.13
  date: 2021-11-29T17:17:29.399Z
- commits:
    - subject: "Fix broken local mode after PR #1824"
      hash: 6fd516a93024d2c5c8d95a4f424f1b6f949152ba
      body: |
        PR #1824 changed app update behavior to test that all images are there
        before moving between releases. This check always fails in local mode
        since local mode images are handled differently.

        This PR fixes local mode again by skipping the check when `localMode` is
        set.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 12.11.12
  date: 2021-11-17T21:00:34.142Z
- commits:
    - subject: "backends/extra-uEnv: Extend custom DTB support for Nano 2GB Devkit"
      hash: 3b9c68246e984aea99d03953060c435dad59d117
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Alexandru Costache <alexandru@balena.io>
        signed-off-by: Alexandru Costache <alexandru@balena.io>
      author: Alexandru Costache
      nested: []
  version: 12.11.11
  date: 2021-11-17T12:51:08.705Z
- commits:
    - subject: Fix `delete-then-download` strategy
      hash: 394377e0a183d5a26ae6527f5aafb1f29e7fa140
      body: |
        The strategy has been broken for a while but it was not clear how to
        fix it before the changes to image management. This PR fixes application
        manager to remove images before downloading the new image. This will
        only have an effect on changing images.
      footer:
        Closes: "#1233"
        closes: "#1233"
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 12.11.10
  date: 2021-11-16T19:43:14.531Z
- commits:
    - subject: Go back to `docker` repo type to fix versioning
      hash: 47eae7200edd5ce377a5f464e80d6758bf625c8b
      body: |
        Previous commit now changed ChangeLog format and skipped update of
        VERSION file.

        This reverts config back to `docker` and fixes changelog
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 12.11.9
  date: 2021-11-15T15:21:07.713Z
- commits:
    - subject: Re-add resinci config to control node checks
      hash: eb09ecd3653dc3d7d3f6d24de73c73f5a1437449
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 12.11.8
  date: 2021-11-12T19:02:59.834Z
- commits:
    - subject: Wait for images to be ready before moving between releases
      hash: 7aedc97ee185953a3068ce3ef9743989e32a75b2
      body: >
        For download-then-kill strategy, this waits for all changing images on
        the target

        release to be available on device before killing the old services. This

        will prevent that multicontainer applications get to a state where some

        services of the new release start runnning much before others have been

        downloaded.


        When adding new services to a multicontainer app, the supervisor will

        now wait for other changing services to be downloaded before starting

        the new service.
      footer:
        Closes: "#1812"
        closes: "#1812"
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 12.11.7
  date: 2021-11-11T17:12:51.738Z
- commits:
    - subject: Change repo type in repo.yml to skip concourse build
      hash: a57a5b354fb724392b8242c1f190311e9561e545
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 12.11.6
  date: 2021-11-11T16:28:07.398Z
- commits:
    - subject: Fix livepush to work with Dockerfile.template
      hash: 31dac598a8c86be3e2f244c90bb15051cf919384
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 12.11.5
  date: 2021-11-10T15:25:46.622Z
- commits:
    - subject: Remove .resinci.yml file
      hash: 22324885ea4f4eb51015654a01aa8fc9526b0096
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
    - subject: Move to balena-ci action for deployments
      hash: 959d425a5c8a2165057ec2b1c1b97cad96804c07
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 12.11.4
  date: 2021-11-09T06:15:34.957Z
- commits:
    - subject: Do not build for staging in circleci job
      hash: 24eea117091a95870ea8eeff885466055d45ee4d
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 12.11.3
  date: 2021-11-05T14:56:19.400Z
- commits:
    - subject: Check config for networks and volumes inside Service
      hash: 969f4225e54ded644d38315289e0cc84a0f3bb51
      body: |
        This removes the need for the app module to know about the naming
        conventions for networks and volumes since those exist now within the
        service itself. This also fixes a small bug where the volume would be
        removed before the service itself had been successfully stopped.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 12.11.2
  date: 2021-10-28T13:46:53.613Z
- commits:
    - subject: "patch: Fix relative links in docs"
      hash: 006acf1e8a2d8d4c617c1e563976dd80b5531a06
      body: ""
      footer: {}
      author: Kyle Harding
      nested: []
  version: 12.11.1
  date: 2021-10-25T17:14:39.516Z
- commits:
    - subject: Use balena-ci action to deploy releases
      hash: caf3c1fd5867c127346058742cfa4864e9072313
      body: ""
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 12.11.0
  date: 2021-10-20T00:02:30.030Z
- commits:
    - subject: "backends/extra-uEnv: Extend custom DTB support for Jetson TX2 NX"
      hash: 7d678fa8384908d7e57cfac150f32cd2025c1bdb
      body: |
        We just added support for the TX2 NX, which supports u-boot
        thus allows for using custom device-trees. Let's allow
        for Jetson TX2 NX and future TX2 NX derived
        device types to have device-trees configurable from the dashboard.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Alexandru Costache <alexandru@balena.io>
        signed-off-by: Alexandru Costache <alexandru@balena.io>
      author: Alexandru Costache
      nested: []
  version: 12.10.16
  date: 2021-10-12T10:07:12.680Z
- commits:
    - subject: Add supervisor docker-compose
      hash: 68d60d8aaadf17a06c66bf4f8f1f3261a0e93ccb
      body: |
        This will allow the supervisor service to be correctly named on the API
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 12.10.15
  date: 2021-09-30T01:10:09.305Z
- commits:
    - subject: Only deploy on commits from `balena-ci` and versionbot
      hash: f13221bbd86e5ce9e61e9bc0697cd27e0e970b9a
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 12.10.14
  date: 2021-09-29T12:45:50.373Z
- commits:
    - subject: Add backoff to state reporting when 503 is received
      hash: aab000209bdf7e98175a76372660ad4089ae28ec
      body: |
        Current state reporting had a backoff when network or inconsistency
        errors were found, but not on API errors. This change adds a backoff
        using RetryAfter header if present to reduce load on API
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 12.10.13
  date: 2021-09-28T18:56:07.205Z
- commits:
    - subject: Use balena CLI for pushing to balenaCloud
      hash: 458e2a16cfa8e963dba0198ae79935a304895f3a
      body: >
        Updates the circle CI configuration to use the balena CLI to build the

        supervisor image and deploy directly to the related balenaCloud app on
        merge

        to master. This allows to build the supervisor as any other app,

        including the posibility of creating a contract and a docker-compose
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 12.10.12
  date: 2021-09-27T15:33:52.758Z
- commits:
    - subject: Improve network interface filter
      hash: 802f26fe71fe98628759a120473865d40fb9575b
      body: |
        The supervisor filters out some network interfaces for mac address
        reporting, to remove (balena*,lo,tun*,etc). The previous filter was
        matching any interface containing in one of the defined filters, making
        it stricter than necessary. This commit fixes the issue
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 12.10.11
  date: 2021-09-24T16:07:26.813Z
- commits:
    - subject: "api-keys: Remove os variant parameter for authentication check"
      hash: 9e0cbe04c6d1c533c3e66183eca1d3abfb8c381d
      body: |
        The current code authenticates unmanaged production devices which makes
        no sense. Unmanaged devices do not need to authenticate with the API.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Alex Gonzalez <alexg@balena.io>
        signed-off-by: Alex Gonzalez <alexg@balena.io>
      author: Alex Gonzalez
      nested: []
    - subject: "os-release: Use developmentMode to ascertain OS variant in new releases"
      hash: 1abd10a12947f05ae328496e98fcbcdc6a834ce1
      body: |
        Newer BalenaOS releases have replaced OS variants for a developmentMode
        configuration setting. This commit uses this variable to set the OS
        variant in the absence of `VARIANT_ID` from the os-release file.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Alex Gonzalez <alexg@balena.io>
        signed-off-by: Alex Gonzalez <alexg@balena.io>
      author: Alex Gonzalez
      nested: []
    - subject: "config: Add developmentMode to schema"
      hash: 4ad7a3ae917c888f267463fd3d5b839439cf40e6
      body: >
        Add a `developmentMode` configuration variable to the schema. Do not
        expose

        this on the device target state until local key-based authentication is

        sorted.
      footer:
        Relates-to: https://jel.ly.fish/e9525e9e-aa74-478c-b931-52951c679f78
        relates-to: https://jel.ly.fish/e9525e9e-aa74-478c-b931-52951c679f78
        Change-type: patch
        change-type: patch
        Signed-off-by: Alex Gonzalez <alexg@balena.io>
        signed-off-by: Alex Gonzalez <alexg@balena.io>
      author: Alex Gonzalez
      nested: []
  version: 12.10.10
  date: 2021-09-07T13:47:51.206Z
- commits:
    - subject: Update URL to balena-proxy-config source code
      hash: 2bcc3aeb56cce11b21d411ee55492109ebaf259f
      body: |
        Use a GitHub permalink that includes the commit in
        case the file changes and the reference becomes out-of-date.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Kyle Harding <kyle@balena.io>
        signed-off-by: Kyle Harding <kyle@balena.io>
      author: Kyle Harding
      nested: []
  version: 12.10.9
  date: 2021-09-02T12:25:21.696Z
- commits:
    - subject: Bump path-parse from 1.0.6 to 1.0.7
      hash: 2e38356bf4f5157483017ea2e6670514cbca49c1
      body: >
        Bumps [path-parse](https://github.com/jbgutierrez/path-parse) from 1.0.6
        to 1.0.7.

        - [Release notes](https://github.com/jbgutierrez/path-parse/releases)

        - [Commits](https://github.com/jbgutierrez/path-parse/commits/v1.0.7)


        ---

        updated-dependencies:

        - dependency-name: path-parse
          dependency-type: indirect
        ...
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: dependabot[bot] <support@github.com>
        signed-off-by: dependabot[bot] <support@github.com>
      author: dependabot[bot]
      nested: []
  version: 12.10.8
  date: 2021-09-01T20:50:51.601Z
- commits:
    - subject: Bump tar from 4.4.13 to 4.4.19
      hash: b7cb494602fbd050bb9e31b5e8293a080349562c
      body: |
        Bumps [tar](https://github.com/npm/node-tar) from 4.4.13 to 4.4.19.
        - [Release notes](https://github.com/npm/node-tar/releases)
        - [Changelog](https://github.com/npm/node-tar/blob/main/CHANGELOG.md)
        - [Commits](https://github.com/npm/node-tar/compare/v4.4.13...v4.4.19)

        ---
        updated-dependencies:
        - dependency-name: tar
          dependency-type: indirect
        ...
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: dependabot[bot] <support@github.com>
        signed-off-by: dependabot[bot] <support@github.com>
      author: dependabot[bot]
      nested: []
  version: 12.10.7
  date: 2021-09-01T20:40:01.473Z
- commits:
    - subject: Remove "variable list" heading in configuration doc
      hash: 5205e8ce07375a7bf9ca18f0a28bd73c275acd96
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 12.10.6
  date: 2021-09-01T18:06:51.646Z
- commits:
    - subject: Clean up configurations.md
      hash: af51ef8eb54af96cf00657576908f020ac401488
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 12.10.5
  date: 2021-08-31T22:51:45.166Z
- commits:
    - subject: Include issues with downgrading versions in README
      hash: 1280ac365618eb4106e9c20dd4e738a22958d0b7
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 12.10.4
  date: 2021-08-31T18:51:02.478Z
- commits:
    - subject: Skip restarting services if they are part of conf targets
      hash: 669866b4c296529bd5392a0c48cd389a6d1f5770
      body: |
        Some recent changes to the OS allowed some services to restart
        automatically when the associated config files are changed.

        In these cases we want to avoid restarting the same services
        manually from the supervisor.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Kyle Harding <kyle@balena.io>
        signed-off-by: Kyle Harding <kyle@balena.io>
      author: Kyle Harding
      nested: []
  version: 12.10.3
  date: 2021-08-24T18:07:03.099Z
- commits:
    - subject: Removed fire emoji prefix for firewall logs.
      hash: 30c728fae23ee66f3c1612736bb0c300f0b0762d
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: peakyDicers
      nested: []
  version: 12.10.2
  date: 2021-08-02T21:27:42.412Z
- commits:
    - subject: Fix regression with local mode push
      hash: 6f5f3bc2f3aea1bf5e5772533be80c3bfbb4e3a9
      body: |
        PR #1749 introduced a bug when pushing local target state. An update to
        the [image name normalization](https://github.com/balena-os/balena-supervisor/blob/f1bd4b8d9bcef29e326cbf97eaddd837c2704d19/src/lib/docker-utils.ts#L81)
        failed to consider the local image name format. This results in mangling
        of image names in the database, i.e. the image `ubuntu:latest` is stored
        as `/ubuntu:latest`. This causes an exception to be returned by the
        dockerode `getImage('/ubuntu:latest').inspect()` call.

        This sends the supervisor into a crash loop and is shown on the supervisor
        journal logs as

        ```
        getaddrinfo ENOTFOUND images
            at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:64:26)
        ```

        Unfortunately if this happens on a user device, since the mangled image
        name is already on the database, the easiest way to fix is to remove the
        supervisor database and let the supervisor recreate it. Deleting the
        database should be side effect free.
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 12.10.1
  date: 2021-08-02T15:55:28.001Z
- commits:
    - subject: Remove comparison based on image, release, and service ids
      hash: b67f94802dd8c2e890121f6ca82eda8dff2c051c
      body: >
        Preparing for the new v3 target state, where the supervisor will make
        environment

        dependent ids optional and rely on using general UUIDs and user known
        identifiers

        for comparison. This PR moves forward in that direction by removing some
        of those

        comparisons for v2 target state.


        - imageId to be replaced with imageName

        - serviceId to be replace by serviceName

        - releaseId to be replaced by commit (future release_uuid)


        This is a backwards compatible change, meaning it doesn't completely get
        rid of

        these identifiers (which are still being used by supervisor API and for
        state

        patch), but will not depend on those identifiers for calculating steps
        to target state.
      footer:
        Change-type: minor
        change-type: minor
      author: Felipe Lalanne
      nested: []
  version: 12.10.0
  date: 2021-07-28T14:00:22.581Z
- commits:
    - subject: Use tags to track supervised images in docker
      hash: f1bd4b8d9bcef29e326cbf97eaddd837c2704d19
      body: >
        The image manager module now uses tags instead of docker IDs as the main

        way to identify docker images on the engine. That is, if the target

        state image has a name `imageName:tag@digest`, the supervisor will
        always use

        the given `imageName` and `tag` (which may be empty) to tag the image on

        the engine after fetching. This PR also adds checkups to ensure

        consistency is maintained between the database and the engine.


        Using tags allows to simplify query and removal operations, since now

        removing the image now means removing tags matching the image name.


        Before this change the supervisor relied only on information in the

        supervisor database, and used that to remove images by docker ID.
        However, the docker

        id is not a reliable identifier, since images retain the same id between

        releases or between services in the same release.


        List of squashed commits

        - Remove custom type NormalizedImageInfo

        - Remove dependency on docker-toolbelt

        - Use tags to traack supervised images in docker

        - Ensure tag removal occurs in sequence

        - Only save database image after download confirmed
      footer:
        Relates-to: "#1616 #1579"
        relates-to: "#1616 #1579"
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 12.9.6
  date: 2021-07-26T13:58:29.275Z
- commits:
    - subject: Log the delta URL that will be downloaded on update
      hash: c05c5803f08ddd31eeddb2000cc5f162fb916003
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#1755"
        closes: "#1755"
      author: Felipe Lalanne
      nested: []
  version: 12.9.5
  date: 2021-07-22T15:08:58.505Z
- commits:
    - subject: Fix db-helper module for tests
      hash: 357d1baf6188d89b8552fd9068dbea9ac50aa008
      body: >
        The previous module was using `rewire` to get the knex instance from the

        db module but that was leading to issues when running tests using
        `test:fast`.

        This provides a fix for the test module that just removes the destroy

        call entirely (it turns out it is not necessary).
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 12.9.4
  date: 2021-07-08T18:48:09.003Z
- commits:
    - subject: Allow users to override HUP lock if device is stuck in invalid state
      hash: 17e740a4ba3ca083a43a2b27fcaed8d79d64f1bc
      body: |
        This functionality is needed when breadcrumbs aren't deleted after a HUP
        rollback for whatever reason. Also rename HUP lock function.
      footer:
        Change-type: patch
        change-type: patch
        Connects-to: "#1459"
        connects-to: "#1459"
        Signed-off-by: Christina Wang <christina@balena.io>
        signed-off-by: Christina Wang <christina@balena.io>
      author: Christina Wang
      nested: []
  version: 12.9.3
  date: 2021-07-08T03:46:52.250Z
- commits:
    - subject: Point users to the configuration page for overriding update locks
      hash: 3e960f0f09267f901e10e3cbb28e167722a92756
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        See: https://www.flowdock.com/app/rulemotion/r-product/threads/9mk8QcdNp4UAwKeEUpXPHVxYM_c
        see: https://www.flowdock.com/app/rulemotion/r-product/threads/9mk8QcdNp4UAwKeEUpXPHVxYM_c
        Signed-off-by: Thodoris Greasidis thodoris@balena.io
        signed-off-by: Thodoris Greasidis thodoris@balena.io
        Co-authored-by: Kyle Harding <kyle@balena.io>
        co-authored-by: Kyle Harding <kyle@balena.io>
      author: Thodoris Greasidis
      nested: []
  version: 12.9.2
  date: 2021-07-07T12:52:15.919Z
- commits:
    - subject: Clarify that /v2/applications/:appId/stop-service is temporary
      hash: 3bc3274001132d4e2eb9ecdda9bd6dd8b372ae4d
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 12.9.1
  date: 2021-07-05T23:53:42.210Z
- commits:
    - subject: Improve testing for supervisor composition modules
      hash: e04e64763f3aeab9b5a91be8ad238ef763d82f22
      body: >
        This PR cleans up testing for supervisor compose modules. It also fixes
        broken

        tests for application manager and removes a lot of dependencies for
        those tests

        on DB and other unnecessary mocks. There are probably a lot of cases
        that tests

        are missing but this should make writing new tests a lot easier.


        This PR also creates a new mock dockerode (mockerode) module that should
        make it

        easier to test operations that interact with the engine. All references

        to the old mock-dockerode have not yet been removed but that should come

        soon in another PR


        List of squashed commits:

        - Add tests for network create/remove

        - Move compose service tests to test/src/compose and reorganize test
        descriptions

        - Add support for image creation to mockerode

        - Add additional tests for compose volumes

        - Update mockerode so unimplemented fake methods throw. This is to
        ensure
          tests using mockerode fail if an unimplemented method is used
        - Update tests for volume-manager with mockerode

        - Update tests for compose/images

        - Simplify tests using mockerode

        - Clean up compose/app tests

        - Create application manager tests
      footer:
        Change-type: minor
        change-type: minor
      author: Felipe Lalanne
      nested: []
  version: 12.9.0
  date: 2021-07-05T21:54:41.727Z
- commits:
    - subject: Bump color-string from 1.5.3 to 1.5.5
      hash: 4518c93fcaf77727663e4f91ed922b51a5d2f94f
      body: |
        Bumps [color-string](https://github.com/Qix-/color-string) from 1.5.3 to 1.5.5.
        - [Release notes](https://github.com/Qix-/color-string/releases)
        - [Changelog](https://github.com/Qix-/color-string/blob/master/CHANGELOG.md)
        - [Commits](https://github.com/Qix-/color-string/commits/1.5.5)

        ---
        updated-dependencies:
        - dependency-name: color-string
          dependency-type: indirect
        ...
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: dependabot[bot] <support@github.com>
        signed-off-by: dependabot[bot] <support@github.com>
      author: dependabot[bot]
      nested: []
  version: 12.8.12
  date: 2021-07-01T22:29:58.156Z
- commits:
    - subject: Remove codeowners file
      hash: 3d4c720d0bbfd66b8749b993cd94c33b00363587
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 12.8.11
  date: 2021-06-30T15:35:26.001Z
- commits:
    - subject: Prevent updates/reboots with locks when HUP breadcrumbs present
      hash: a9028e58ecb097f0106e74f6c4cd1b755fa9ece5
      body: |
        On HUP, some healthceck services need to complete before
        it's safe for the Supervisor to reboot the device when
        applying state changes. rollback-{health|altboot}-breadcrumb
        are the two files that Supervisor looks for and locks the device
        on when present in this patch.

        Not closing issue 1459 because there is a possible case where,
        on altboot rollback, the breadcrumbs are not present. 1459
        may be closed when this edge case is investigated.
      footer:
        Change-type: patch
        change-type: patch
        Connects-to: "#1459"
        connects-to: "#1459"
        See: https://www.flowdock.com/app/rulemotion/r-supervisor/threads/cL7YfNOLSfTPfw05h59GEW0kfOt
        see: https://www.flowdock.com/app/rulemotion/r-supervisor/threads/cL7YfNOLSfTPfw05h59GEW0kfOt
        Signed-off-by: Christina Wang <christina@balena.io>
        signed-off-by: Christina Wang <christina@balena.io>
      author: Christina Wang
      nested: []
  version: 12.8.10
  date: 2021-06-30T04:30:34.845Z
- commits:
    - subject: Fix supervisor using wrong source for deltas
      hash: 2fa0d3dc433aff620c28b41d05d739430c8d8922
      body: |
        This fixes a specific issue when the supervisor cannot find the right
        source for deltas (e.g. after the DB gets deleted), where legacy
        behavior was to look for any image in the app.
      footer:
        Change-type: patch
        change-type: patch
        Relates-to: "#1729"
        relates-to: "#1729"
      author: Felipe Lalanne
      nested: []
  version: 12.8.9
  date: 2021-06-25T20:31:04.130Z
- commits:
    - subject: Add revpi-connect, revpi-core-3 to Raspberry Pi variants
      hash: 7c26480ada7a413c530f076cbe2c703c28e68916
      body: |
        We need the supervisor to be able to manage config.txt changes for these
        Revolution Pi boards too.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Florin Sarbu <florin@balena.io>
        signed-off-by: Florin Sarbu <florin@balena.io>
      author: Florin Sarbu
      nested: []
  version: 12.8.8
  date: 2021-06-18T11:36:06.943Z
- commits:
    - subject: Bump normalize-url from 4.5.0 to 4.5.1
      hash: ece3be6d4503d15ffbac193479535d35bcd8030c
      body: >
        Bumps [normalize-url](https://github.com/sindresorhus/normalize-url)
        from 4.5.0 to 4.5.1.

        - [Release
        notes](https://github.com/sindresorhus/normalize-url/releases)

        - [Commits](https://github.com/sindresorhus/normalize-url/commits)


        ---

        updated-dependencies:

        - dependency-name: normalize-url
          dependency-type: indirect
        ...
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: dependabot[bot] <support@github.com>
        signed-off-by: dependabot[bot] <support@github.com>
      author: dependabot[bot]
      nested: []
  version: 12.8.7
  date: 2021-06-14T10:27:12.523Z
- commits:
    - subject: Document the current state of HOST_FIREWALL_MODE
      hash: 3961fbf1e714c594f730fe06fa3bbd3386f918bd
      body: |
        This set of docs can provide info for support agents until
        issue 1482 is resolved. Expect this document to change as firewall
        implementation is improved.
      footer:
        Connects-to: "#1525"
        connects-to: "#1525"
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Wang <christina@balena.io>
        signed-off-by: Christina Wang <christina@balena.io>
      author: Christina Wang
      nested: []
  version: 12.8.6
  date: 2021-06-09T08:03:27.422Z
- commits:
    - subject: Improve target state typings
      hash: ee4d919fca25be550306bc00197044144555361c
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 12.8.5
  date: 2021-06-08T12:49:21.878Z
- commits:
    - subject: Refactor debug log when unmanaged volume is found
      hash: ab4fb454e056d3a70b4c9e1041ebdd16b0d03dca
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 12.8.4
  date: 2021-06-02T17:10:32.272Z
- commits:
    - subject: Prevent a recursive loop when reporting current state
      hash: 55a344dceb826c5655067e6006e006846778b5e9
      body: ""
      footer:
        Closes: "#1673"
        closes: "#1673"
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 12.8.3
  date: 2021-05-28T20:23:03.757Z
- commits:
    - subject: Revert multiline bullet points in notes
      hash: 5524b5e986d448110c19a226f38e984e1d699f5d
      body: |
        Docs engine cannot support > - markdown pattern.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Wang <christina@balena.io>
        signed-off-by: Christina Wang <christina@balena.io>
      author: Christina Wang
      nested: []
  version: 12.8.2
  date: 2021-05-26T08:17:22.240Z
- commits:
    - subject: Specify that all restart API endpoints remove and recreate containers
      hash: 7c4d232439560d17c20584dc3b51f98944dedb37
      body: >
        This is intended behavior.


        Also add quotes around UUID in examples to reduce confusion, and format
        responses

        as multiline JSON for clarity.
      footer:
        Closes: "#1681"
        closes: "#1681"
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Wang <christina@balena.io>
        signed-off-by: Christina Wang <christina@balena.io>
      author: Christina Wang
      nested: []
  version: 12.8.1
  date: 2021-05-19T02:40:22.974Z
- commits:
    - subject: Add toggleable `SUPERVISOR_HARDWARE_METRICS` config
      hash: dcd863eed8b58cc7eae866c941597c7e0a9bfcb1
      body: |
        On devices with bandwidth sensitivity, this config var
        disables sending system information such as memory
        usage or cpu temp as current state.
      footer:
        Closes: "#1645"
        closes: "#1645"
        Change-type: minor
        change-type: minor
        Signed-off-by: Christina Wang <christina@balena.io>
        signed-off-by: Christina Wang <christina@balena.io>
      author: Christina Wang
      nested: []
  version: 12.8.0
  date: 2021-05-13T05:50:32.160Z
- commits:
    - subject: Upgrade mocha to v8, use mocha fixtures for chai plugins
      hash: 62375c907f2579873e590e2f05767ae6157bbc7b
      body: |
        Remove chai-events and add explicit chai devDependency
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Wang <christina@balena.io>
        signed-off-by: Christina Wang <christina@balena.io>
      author: Christina Wang
      nested: []
  version: 12.7.4
  date: 2021-05-12T08:16:22.915Z
- commits:
    - subject: Simplify/optimize filtering non-significant sys info changes
      hash: 74ae31fcfd392df901a12972332ecabce5ec62fd
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
    - subject: Avoid double `omit`s whilst filtering current state
      hash: 466ff58871cba029b881eb53c4c9cf2eb842eb16
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 12.7.3
  date: 2021-05-12T07:02:13.515Z
- commits:
    - subject: Bump lodash from 4.17.20 to 4.17.21
      hash: 90fe8359f10094863cf1940b591cfe46f4de1442
      body: >
        Bumps [lodash](https://github.com/lodash/lodash) from 4.17.20 to
        4.17.21.

        - [Release notes](https://github.com/lodash/lodash/releases)

        - [Commits](https://github.com/lodash/lodash/compare/4.17.20...4.17.21)
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: dependabot[bot] <support@github.com>
        signed-off-by: dependabot[bot] <support@github.com>
      author: dependabot[bot]
      nested: []
  version: 12.7.2
  date: 2021-05-10T04:10:57.334Z
- commits:
    - subject: Bump contrato from 0.5.0 to 0.6.3
      hash: 19a7ccb998bc86623eca204b9c67fddb3bd0a40f
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Micah Halter <micah@balena.io>
        signed-off-by: Micah Halter <micah@balena.io>
      author: Micah Halter
      nested: []
  version: 12.7.1
  date: 2021-05-07T14:51:33.669Z
- commits:
    - subject: Backwards compatility changes for old resin namespaces
      hash: 301aa52f032fecd29495894e828f21a93df60caa
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Kyle Harding <kyle@balena.io>
        signed-off-by: Kyle Harding <kyle@balena.io>
      author: Kyle Harding
      nested: []
    - subject: Change container name to balena_supervisor
      hash: 09615c9d8254d3f62ef1088d0da35485b0c18734
      body: ""
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Kyle Harding <kyle@balena.io>
        signed-off-by: Kyle Harding <kyle@balena.io>
      author: Kyle Harding
      nested: []
    - subject: Rename resin-supervisor to balena-supervisor
      hash: 5faf9d7686d7f03b5bb73ef9a234038e7e61037c
      body: ""
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Kyle Harding <kyle@balena.io>
        signed-off-by: Kyle Harding <kyle@balena.io>
      author: Kyle Harding
      nested: []
  version: 12.7.0
  date: 2021-05-07T12:05:43.135Z
- commits:
    - subject: Show warning instead of exception for invalid network config
      hash: 5197a1330d69cbff97f3c53a77f640638e074b8a
      body: >
        A previous PR (#1656) fixed validation for network ipam config,

        checking that both network and subnet are defined for each ipam config
        entry

        (as described in the docker documentation).


        After that PR, the validations throws an exception if the network target
        state is incorrect,

        but this turns out to be the wrong approach, because that exception is
        also triggered

        when querying target state.


        This isn't a problem in normal operation, but it is in local mode,
        because local

        mode queries the old target state before sending a new one. Since the
        query fails,

        the CLI can never push the new target state.


        This PR replaces the exception with a warning on the logs, since a

        misconfigured network won't cause any engine failures, it will just

        prevent containers to communicate through the provided network.


        A future improvement should move this validation to an earlier point in
        the process,

        so the target state can get rejected before it even gets to a point it

        can be used.
      footer:
        Relates-to: "#1693"
        relates-to: "#1693"
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 12.6.8
  date: 2021-05-06T20:30:52.075Z
- commits:
    - subject: Patch awaiting response when checking if supervisor0 network exists
      hash: 8b0c2347d8d04d3c7101016f6c885f31d9b3dc6a
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 12.6.7
  date: 2021-05-06T15:58:02.661Z
- commits:
    - subject: Fix parsing driver_opts from compose to docker network creation
      hash: 1408fd7bcb5f25b75679b7ce0e509adc7f8f6004
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: quentinGllmt <quentin@quentingllmt.fr>
        signed-off-by: quentinGllmt <quentin@quentingllmt.fr>
      author: quentinGllmt
      nested: []
  version: 12.6.6
  date: 2021-05-06T14:52:59.431Z
- commits:
    - subject: Update balena-register-device and send extra info at provision time
      hash: 9e52bb33ac931a035b4cd0fd80173bf10db771c0
      body: |
        This extra info will mean the API is able to immediately set default
        config vars based on the os/supervisor version so that they are
        available on the first target state fetch rather than having a delay
        whilst waiting for the supervisor to report them as part of a state
        patch

        Update balena-register-device from 6.1.6 to 7.2.0
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested:
        - commits:
            - subject: Support `supervisorVersion`/`osVersion`/`osVariant`/`macAddress` fields
              hash: 6f10fe77ba11ec57bb012777975423dda498a8bd
              body: ""
              footer:
                Change-type: minor
                change-type: minor
              author: Pagan Gazzard
          version: balena-register-device-7.2.0
          date: 2021-04-29T12:35:30.543Z
        - commits:
            - subject: Update dependencies
              hash: 8d78459d6cf6e0dcaa4721c38898eeb2d25c5674
              body: ""
              footer:
                Change-type: patch
                change-type: patch
              author: Pagan Gazzard
          version: balena-register-device-7.1.1
          date: 2021-04-29T12:23:50.655Z
        - commits:
            - subject: Switch from randomstring to uuid for generating device uuids
              hash: 596a76abcf0a76aef93d191e4c59b939701c80b8
              body: ""
              footer:
                Change-type: minor
                change-type: minor
              author: Pagan Gazzard
          version: balena-register-device-7.1.0
          date: 2020-07-13T14:38:52.915Z
        - commits:
            - subject: Add .versionbot/CHANGELOG.yml for nested changelogs
              hash: 7444f4ba2538180a5c75fa5f62de6f395ae28ba7
              body: ""
              footer:
                Change-type: patch
                change-type: patch
              author: Pagan Gazzard
          version: balena-register-device-7.0.1
          date: 2020-07-13T13:03:45.818Z
        - commits:
            - author: Pagan Gazzard
              body: ""
              hash: 8cfa23ebbe2915b2f37730972cf104cb47f68c65
              subject: Convert to type checked javascript
            - author: Pagan Gazzard
              body: ""
              footers:
                change-type: major
              hash: 0f3e9d26f375554f793dd632b94f33e3ee88933b
              subject: Drop callback interface in favor of promise interface
            - author: Pagan Gazzard
              body: ""
              footers:
                change-type: major
              hash: 67d46678e910c2c8b11f417fa40d00781a1a3905
              subject: Switch to a named export
            - author: Pagan Gazzard
              body: ""
              footers:
                change-type: major
              hash: faa9edc73cf243acd2abe1532e64aab8303031b5
              subject: Convert to typescript
            - author: Pagan Gazzard
              body: ""
              footers:
                change-type: major
              hash: 9e5bdbeaee325c8a523c8498ef023baeb49ef7c1
              subject: Update to typed-error 3.x
            - author: Pagan Gazzard
              body: ""
              footers:
                change-type: major
              hash: 27e78f2ea3f1a059a9fb2ba43dff55f32b0b2b4a
              subject: Switch to returning native promises
            - author: Pagan Gazzard
              body: ""
              footers:
                change-type: major
              hash: dc21eb20dba1a977e74ffadbece66720ced4c529
              subject: Update to balena-request 11.x
            - author: Pagan Gazzard
              body: ""
              hash: f4008dad3de415cc25987268b387848fc3ed1200
              subject: Use typescript import helpers
          date: 2020-07-06T18:11:23Z
          version: balena-register-device-7.0.0
  version: 12.6.5
  date: 2021-05-06T10:19:39.399Z
- commits:
    - subject: Log error responses from API when reporting state
      hash: 2203f78d517a9edf75a261dd3c77cdf5b609548c
      body: |
        This adds the error message from the API to journal logs to better
        identify those cases where patching to the API fails.
      footer:
        Change-type: patch
        change-type: patch
        Relates-to: "#1680"
        relates-to: "#1680"
      author: Felipe Lalanne
      nested: []
  version: 12.6.4
  date: 2021-05-05T19:06:49.805Z
- commits:
    - subject: Added configurations.md to document all configurable vars
      hash: 07a0344dc6ac15a67513080c63dffe0d6b811ebf
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#1646"
        closes: "#1646"
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 12.6.3
  date: 2021-05-04T02:10:52.553Z
- commits:
    - subject: Remove version tag from livepush generated image
      hash: 9c1d10dc318bb7c207608ed197c5713960642af3
      body: >
        The `start-resin-supervisor` script in newer OS version no longer uses
        the

        SUPERVISOR_TAG environment variable setup on supervisor.conf and

        update-supervisor.conf.


        This change removes the need for that variable with livepush supervisor

        to make it compatible with older and newer OS versions
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 12.6.2
  date: 2021-04-30T19:54:33.136Z
- commits:
    - subject: Remove mz, mkdirp, body-parser dependencies
      hash: 4a2ac557ef11d334154bafa0cab4e7272cbed749
      body: |
        'mz' can be safely replaced with fs.promises
        and util.promisify for faster native methods.
        'mkdirp' after Node v8 uses native fs.mkdir, thus
        is redundant. 'body-parser' is deprecated and
        contained within express v4.x.
      footer:
        Closes: "#1567"
        closes: "#1567"
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Wang <christina@balena.io>
        signed-off-by: Christina Wang <christina@balena.io>
      author: Christina Wang
      nested: []
  version: 12.6.1
  date: 2021-04-27T22:23:07.811Z
- commits:
    - subject: Bump dockerode types to 2.5.34
      hash: 95fb568aaeb0d5a0fa8b4b88f650b51d3b96786d
      body: >
        This commit updates dockerode types to the latest 2.x version, removing
        the need

        for custom composer types for network.


        This commit also modifies network tests to use the new types
      footer:
        Change-type: minor
        change-type: minor
      author: Felipe Lalanne
      nested: []
  version: 12.6.0
  date: 2021-04-27T17:10:23.382Z
- commits:
    - subject: Enable docker layer caching on CircleCI
      hash: dd2df215f0c62459f3e26c56efdfce26edbcc229
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 12.5.16
  date: 2021-04-27T16:42:23.485Z
- commits:
    - subject: Added clean step to remove previous builds before running tests
      hash: 6f4030634ad05f29f72cea11456a252570c470d7
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 12.5.15
  date: 2021-04-26T19:55:49.189Z
- commits:
    - subject: "balena-supervisor: replace references to resin-vars"
      hash: 6ca9507beb616c4b344e4927cb5db01534c8ae4b
      body: |
        Replace all references to the 'resin-vars' script with
        'balena-config-vars' as it has been renamed. Add a conditional
        test for compatibility with legacy systems.
      footer:
        Change-type: patch
        change-type: patch
        Changelog-entry: "balena-supervisor: replace references to resin-vars"
        changelog-entry: "balena-supervisor: replace references to resin-vars"
        Signed-off-by: Mark Corbin <mark@balena.io>
        signed-off-by: Mark Corbin <mark@balena.io>
      author: Mark Corbin
      nested: []
  version: 12.5.14
  date: 2021-04-26T18:12:32.752Z
- commits:
    - subject: Update supervisor to typescript 4
      hash: fd06c06092b61d349e8b40f66f847065368810e3
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 12.5.13
  date: 2021-04-25T23:09:44.241Z
- commits:
    - subject: Bump ssri from 6.0.1 to 6.0.2
      hash: ae8dc8ff227237444ae532cf7e817bfc463fbac5
      body: |
        Bumps [ssri](https://github.com/npm/ssri) from 6.0.1 to 6.0.2.
        - [Release notes](https://github.com/npm/ssri/releases)
        - [Changelog](https://github.com/npm/ssri/blob/v6.0.2/CHANGELOG.md)
        - [Commits](https://github.com/npm/ssri/compare/v6.0.1...v6.0.2)
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: dependabot[bot] <support@github.com>
        signed-off-by: dependabot[bot] <support@github.com>
      author: dependabot[bot]
      nested: []
  version: 12.5.12
  date: 2021-04-20T22:52:22.531Z
- commits:
    - subject: Refactor extra_uEnv to not match with intel nuc
      hash: e6eda0fca7b280aa5453972a26c36ab6895c227a
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 12.5.11
  date: 2021-04-14T05:27:23.056Z
- commits:
    - subject: "patch: Fix the sysInfo.getCpuId() test"
      hash: 50a2f3d313d8883c077aea7e57188b1354942edd
      body: ""
      footer:
        Signed-off-by: Vipul Gupta (@vipulgupta2048) <vipul@balena.io>
        signed-off-by: Vipul Gupta (@vipulgupta2048) <vipul@balena.io>
      author: Vipul Gupta (@vipulgupta2048)
      nested: []
    - subject: "patch: Fix substring end parameter for accurate CPU ID"
      hash: d058f43febe397857ddaa7e72a58310e89576e28
      body: ""
      footer:
        Signed-off-by: Vipul Gupta (@vipulgupta2048) <vipul@balena.io>
        signed-off-by: Vipul Gupta (@vipulgupta2048) <vipul@balena.io>
      author: Vipul Gupta (@vipulgupta2048)
      nested: []
  version: 12.5.10
  date: 2021-04-12T21:52:54.458Z
- commits:
    - subject: Fix broken IPAM network validation
      hash: fdb37191e7cd53d4731f9c75e2780959368b305c
      body: |
        Network validaton was failing to identify a bad IPAM network
        configuration leading to supervisor failures (see #1618)
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#1618"
        closes: "#1618"
      author: Felipe Lalanne
      nested: []
  version: 12.5.9
  date: 2021-04-09T21:52:12.779Z
- commits:
    - subject: Improved mutable (/data) file system detection
      hash: 204475d3dcbbb8a69b681d0348b39b5b486b628b
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#1609"
        closes: "#1609"
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 12.5.8
  date: 2021-04-08T21:37:33.210Z
- commits:
    - subject: Add message to refer to v2 endpoints
      hash: 732950fb9e106bf0d28d9cbb84c73c80d60e533e
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Vipul Gupta (@vipulgupta2048) <vipul@balena.io>
        signed-off-by: Vipul Gupta (@vipulgupta2048) <vipul@balena.io>
      author: Vipul Gupta (@vipulgupta2048)
      nested: []
  version: 12.5.7
  date: 2021-04-06T14:20:11.746Z
- commits:
    - subject: Prevent unintended image removal when calling purge endpoints to remove
        volumes
      hash: 31effed426750fabc30afb8503ec5b9feedf08b5
      body: >
        Using safeStateClone within doPurge to applyIntermediateTarget after

        successful volume purge has led to various type deficiencies being
        revealed

        in common.js. Add several inline types in common.js to satisfy

        the type checker (credit: Page <page@balena.io>). Delete common.d.ts

        since it's not required and might mistakenly mask true I/O types of

        functions in common.js.
      footer:
        Closes: "#1611"
        closes: "#1611"
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Wang <christina@balena.io>
        signed-off-by: Christina Wang <christina@balena.io>
      author: Christina Wang
      nested: []
  version: 12.5.6
  date: 2021-04-05T12:21:12.006Z
- commits:
    - subject: Update setup section to reflect switch to balena-os org
      hash: dc41a7fa51725c716653e5eb7164cc73492607e5
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Christina Wang <christina@balena.io>
        signed-off-by: Christina Wang <christina@balena.io>
      author: Christina Wang
      nested: []
  version: 12.5.5
  date: 2021-04-05T10:09:42.521Z
- commits:
    - subject: Patch list volumes to always return an array
      hash: ecbe9ee9f9f1105347dea320f5f356a956bf9395
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#1636"
        closes: "#1636"
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 12.5.4
  date: 2021-04-02T00:33:39.207Z
- commits:
    - subject: Bump y18n from 4.0.0 to 4.0.1
      hash: 9dd508b94d1bcf93801c698ee1286fd217b9d366
      body: |
        Bumps [y18n](https://github.com/yargs/y18n) from 4.0.0 to 4.0.1.
        - [Release notes](https://github.com/yargs/y18n/releases)
        - [Changelog](https://github.com/yargs/y18n/blob/master/CHANGELOG.md)
        - [Commits](https://github.com/yargs/y18n/commits)
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: dependabot[bot] <support@github.com>
        signed-off-by: dependabot[bot] <support@github.com>
      author: dependabot[bot]
      nested: []
  version: 12.5.3
  date: 2021-04-01T06:10:19.520Z
- commits:
    - subject: Removed upgrades.md doc
      hash: 711909d9155a38c52baba09ceef5fa8d12a6ed11
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 12.5.2
  date: 2021-03-31T23:02:14.501Z
- commits:
    - subject: Disable docker layer caching on CircleCI
      hash: 7a318f22274b4a72d23d743433edfc2a5d3ebd9d
      body: |
        Docker layer caching is a paid plan feature on Circle CI, it has started
        being enforced by Circle
      footer:
        Change-type: patch
        change-type: patch
      author: Felipe Lalanne
      nested: []
  version: 12.5.1
  date: 2021-03-31T13:47:33.254Z
- commits:
    - subject: Add cywang117 to CODEOWNERS
      hash: 0f064fb84aa029e55775123a3e22a9929280a323
      body: ""
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 12.5.0
  date: 2021-03-30T14:11:50.403Z
- commits:
    - subject: Enable strict options by default and only disable specific ones
      hash: 2ae22b4fbd36090e65d943ebe7e5a623d6286b8f
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 12.4.10
  date: 2021-03-22T17:49:15.699Z
- commits:
    - subject: Move chai-things and chai-like into dev dependencies
      hash: 18a8c1168dbb7f6154f07a76ca42f42ca2ccca1b
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 12.4.9
  date: 2021-03-22T14:39:13.881Z
- commits:
    - subject: Add explicit dockerode dependency
      hash: b83160ff4b16e4c432760ba88c30f3b1e4ab4318
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 12.4.8
  date: 2021-03-22T13:18:12.146Z
- commits:
    - subject: "typos: seperate -> separate"
      hash: f9a157c9ecfd8ea37a4ed3a5f123db9ec6828fdd
      body: |
        mainly to get the docs one, but figured i could hit them all
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Matthew McGinn <matthew@balena.io>
        signed-off-by: Matthew McGinn <matthew@balena.io>
      author: Matthew McGinn
      nested: []
  version: 12.4.7
  date: 2021-03-17T18:31:05.623Z
- commits:
    - subject: Infer legacy Volumes that do not have the supervised label
      hash: 183ea88a2ad3bbdf18ab96505920465f1a404df0
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#1604"
        closes: "#1604"
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 12.4.6
  date: 2021-03-15T23:49:25.274Z
- commits:
    - subject: Add nebra-hnt to raspberry pi variants
      hash: 8f9254b6b12503573386e8fb613a5f289473f662
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Felipe Lalanne <felipe@balena.io>
        signed-off-by: Felipe Lalanne <felipe@balena.io>
      author: Felipe Lalanne
      nested: []
  version: 12.4.5
  date: 2021-03-12T15:48:22.200Z
- commits:
    - subject: Bump elliptic from 6.5.3 to 6.5.4
      hash: f013f04e4d0ab502f87bde263ce3ef6217a84640
      body: >
        Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.3 to
        6.5.4.

        - [Release notes](https://github.com/indutny/elliptic/releases)

        - [Commits](https://github.com/indutny/elliptic/compare/v6.5.3...v6.5.4)
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: dependabot[bot] <support@github.com>
        signed-off-by: dependabot[bot] <support@github.com>
      author: dependabot[bot]
      nested: []
  version: 12.4.4
  date: 2021-03-09T18:05:32.658Z
- commits:
    - subject: Refactor journalctl monitor to only spawn new process on exit
      hash: 898b72c7f706ef9482b76b5acfa0ecd6d3ae6c99
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#1591"
        closes: "#1591"
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 12.4.3
  date: 2021-02-24T17:04:34.041Z
- commits:
    - subject: Call restore for each healthcheck stub in v1 tests
      hash: 2953f313e6c83ea5a9340c6143f38bc9c7a1e699
      body: ""
      footer:
        Signed-off-by: Christina Wang <christina@balena.io>
        signed-off-by: Christina Wang <christina@balena.io>
        Change-type: patch
        change-type: patch
      author: Christina Wang
      nested: []
  version: 12.4.2
  date: 2021-02-19T02:09:38.038Z
- commits:
    - subject: Refactor checkTruthy to return more predictable values
      hash: ec23d1d37141c81379fd9af487a4b3b7c907dad1
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#1595"
        closes: "#1595"
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 12.4.1
  date: 2021-02-18T17:38:51.848Z
- commits:
    - subject: Complete /v1/device/host-config unit tests, modify PATCH route
      hash: b3b1d47b34e0e2109f2d0b08551415f588457480
      body: ""
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Christina Wang <christina@balena.io>
        signed-off-by: Christina Wang <christina@balena.io>
      author: Christina Wang
      nested: []
  version: 12.4.0
  date: 2021-02-18T03:31:54.245Z
- commits:
    - subject: Patch killServicesUsingApi to not get stuck in noop loop
      hash: c602014617704d46710fcd7b7d96961e4f60cead
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#1594"
        closes: "#1594"
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 12.3.7
  date: 2021-02-16T23:36:37.734Z
- commits:
    - subject: Fix gpu label support
      hash: f009d3a3e99aa174b03b09eca39f9f6b773f0230
      body: >
        The device request object was created with untouched fields left unset.
        When

        comparing state to determine if a transition is required this would

        result in a mismatch between:

            {
              Driver: '',
              Count: 1,
              DeviceIDs: null,
              Capabilities: [Array],
              Options: null
            }

        and

            {
              Count: 1,
              Capabilities: [Array],
            }

        Which in turn resulted in the target service being continously
        restarted.

        The fix is to instantiate the object in full.
      footer:
        Connects-to: ae646a07ec6a6c96f7cb91f1d37898a94dbab47a
        connects-to: ae646a07ec6a6c96f7cb91f1d37898a94dbab47a
        Change-type: patch
        change-type: patch
        Signed-off-by: Robert Günzler <robertg@balena.io>
        signed-off-by: Robert Günzler <robertg@balena.io>
      author: Robert Günzler
      nested: []
  version: 12.3.6
  date: 2021-02-09T10:30:32.911Z
- commits:
    - subject: Prevent inserting null commit during DB migration
      hash: 277d984af20821cd87e3625a1c950555cbca0412
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#1581"
        closes: "#1581"
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 12.3.5
  date: 2021-02-03T15:50:27.087Z
- commits:
    - subject: Removed richbayliss from CODEOWNERS
      hash: 908be547e2e233acada029fcbdab8edf48c0c1cf
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 12.3.4
  date: 2021-01-25T17:54:56.728Z
- commits:
    - subject: Cancel pending apply target after /v1/update request
      hash: ba1c857c4f05f527316779b909b5f0819c63b1c3
      body: ""
      footer:
        Closes: "#1530"
        closes: "#1530"
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 12.3.3
  date: 2021-01-21T03:23:49.379Z
- commits:
    - subject: "patch: bump @types/yargs from 15.0.5 to 15.0.12"
      hash: 2c61a961c1ac2e7467ef84ac1c0896ef8c60d4be
      body: |
        Bumps [@types/yargs](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/yargs) from 15.0.5 to 15.0.12.
        - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
        - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/yargs)
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: dependabot[bot] <support@github.com>
        signed-off-by: dependabot[bot] <support@github.com>
      author: dependabot[bot]
      nested: []
  version: 12.3.2
  date: 2021-01-11T22:21:05.013Z
- commits:
    - subject: "patch: bump pretty-ms from 7.0.0 to 7.0.1"
      hash: 8a4369f8dfb5d8e77a022b82f25cbeb18edbf77e
      body: |
        Bumps [pretty-ms](https://github.com/sindresorhus/pretty-ms) from 7.0.0 to 7.0.1.
        - [Release notes](https://github.com/sindresorhus/pretty-ms/releases)
        - [Commits](https://github.com/sindresorhus/pretty-ms/compare/v7.0.0...v7.0.1)
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: dependabot[bot] <support@github.com>
        signed-off-by: dependabot[bot] <support@github.com>
      author: dependabot[bot]
      nested: []
  version: 12.3.1
  date: 2021-01-11T19:46:56.953Z
- commits:
    - subject: Add support for `BALENA_HOST_SPLASH_IMAGE` config
      hash: 4aa8090a56f6ece4a3a0425a378ec438c38629df
      body: >
        Setting this this variable to a base64 encoded string will replace the
        splash

        image on the device by rewriting `/mnt/boot/splash/balena-logo.png`.

        This will also make a copy of the default balena logo so the splash can

        be restored if the variable is removed.
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Felipe Lalanne <felipe@balena.io>
        signed-off-by: Felipe Lalanne <felipe@balena.io>
      author: Felipe Lalanne
      nested: []
  version: 12.3.0
  date: 2021-01-06T18:14:19.611Z
- commits:
    - subject: Bump systeminformation from 4.30.5 to 4.31.1
      hash: 7ccbde985ee72296b189ba338bfa7ff49c3e6866
      body: |
        Bumps [systeminformation](https://github.com/sebhildebrandt/systeminformation) from 4.30.5 to 4.31.1.
        - [Release notes](https://github.com/sebhildebrandt/systeminformation/releases)
        - [Changelog](https://github.com/sebhildebrandt/systeminformation/blob/master/CHANGELOG.md)
        - [Commits](https://github.com/sebhildebrandt/systeminformation/commits)
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: dependabot[bot] <support@github.com>
        signed-off-by: dependabot[bot] <support@github.com>
      author: dependabot[bot]
      nested: []
  version: 12.2.16
  date: 2020-12-21T19:07:54.345Z
- commits:
    - subject: Retired CameronDiver from CODEOWNERS
      hash: 98fa7509030edae46b8d46487be578f2e8c28542
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 12.2.15
  date: 2020-12-21T17:57:16.342Z
- commits:
    - subject: Revert "Add dependabot configuration"
      hash: 8767f145b228203c409d3972247f5a197c6a8e93
      body: >
        This reverts commit 153655b523af94d8192f0e0eb5574c67fbf85008.


        Dependabot does not allow to limit version updates to just patches or
        security

        updates. Adding this configuration results in excess noise from

        major and minor versions. We are reverting this change for the moment

        and look for another version managment tool.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Felipe Lalanne <felipe@balena.io>
        signed-off-by: Felipe Lalanne <felipe@balena.io>
      author: Felipe Lalanne
      nested: []
  version: 12.2.14
  date: 2020-12-16T18:31:21.038Z
- commits:
    - subject: Add dependabot configuration
      hash: 153655b523af94d8192f0e0eb5574c67fbf85008
      body: ""
      footer:
        Closes: "#1508"
        closes: "#1508"
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 12.2.13
  date: 2020-12-16T00:10:43.103Z
- commits:
    - subject: Bump ini from 1.3.5 to 1.3.8
      hash: b319c678ce3793d86ebe506867b34e54f227456a
      body: |
        Bumps [ini](https://github.com/isaacs/ini) from 1.3.5 to 1.3.8.
        - [Release notes](https://github.com/isaacs/ini/releases)
        - [Commits](https://github.com/isaacs/ini/compare/v1.3.5...v1.3.8)
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: dependabot[bot] <support@github.com>
        signed-off-by: dependabot[bot] <support@github.com>
      author: dependabot[bot]
      nested: []
  version: 12.2.12
  date: 2020-12-14T22:11:33.228Z
- commits:
    - subject: Improve supervisor API behavior when locks are set
      hash: 4cdf26f82fd25284f7a7496fc2d91232c64a3e2e
      body: >
        This PR adds the following


        * Supervisor v1 API application actions now return HTTP status code 423
        when locks
          are preventing the action to be performed. Previously this resulted in a
          503 error
        * Supervisor API v2 service actions now returns HTTP status code 423
        when locks are
          preventing the action to be performed. Previously, this resulted in an
          exception logged by the supervisor and the API query timing out
        * Supervisor API `/v2/applications/:appId/start-service` now does not
          check for a lock. Lock handling in v2 actions is now performed by each
          step executor
        * `/v1/apps/:appId/start` now queries the target state and uses that
          information to execute the start step (as v2 does). Previously start
          resulted in `cannot get appId from undefined`
        * Extra tests for API methods
      footer:
        Change-type: patch
        change-type: patch
        Connects-to: "#1523"
        connects-to: "#1523"
        Signed-off-by: Felipe Lalanne <felipe@balena.io>
        signed-off-by: Felipe Lalanne <felipe@balena.io>
      author: Felipe Lalanne
      nested: []
  version: 12.2.11
  date: 2020-12-14T13:50:07.081Z
- commits:
    - subject: Add config.txt support for Alliance rpi3
      hash: a8c4a6683ad07ac4d0f1f9aee28761cf2a846bdb
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Felipe Lalanne <felipe@balena.io>
        signed-off-by: Felipe Lalanne <felipe@balena.io>
      author: Felipe Lalanne
      nested: []
  version: 12.2.10
  date: 2020-12-11T12:54:34.175Z
- commits:
    - subject: Add config.txt support for Rocktech rpi
      hash: 2c1fb7110e1f025e511d22c08f58fdaef313851d
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
      nested: []
  version: 12.2.9
  date: 2020-12-10T11:16:16.619Z
- commits:
    - subject: Patched /v1/restart exception
      hash: 8b37df492b7e418890f5c7a8ec2d7ec08cc9d142
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#1509"
        closes: "#1509"
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
    - subject: Added test case for /v1/restart API
      hash: 7a4473f65bd0c556935ab005f33a158b608ecc96
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
    - subject: Consolidated Supervisor API tests into clearer files
      hash: 733a2c5dc068f01e803505822e03d09c59a2a3b8
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 12.2.8
  date: 2020-11-30T20:45:21.952Z
- commits:
    - subject: Bump systeminformation from 4.27.11 to 4.30.5
      hash: 8036d5147950a3dfb976aaceee46a75e0025c732
      body: |
        Bumps [systeminformation](https://github.com/sebhildebrandt/systeminformation) from 4.27.11 to 4.30.5.
        - [Release notes](https://github.com/sebhildebrandt/systeminformation/releases)
        - [Changelog](https://github.com/sebhildebrandt/systeminformation/blob/master/CHANGELOG.md)
        - [Commits](https://github.com/sebhildebrandt/systeminformation/compare/v4.27.11...v4.30.5)
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: dependabot[bot] <support@github.com>
        signed-off-by: dependabot[bot] <support@github.com>
      author: dependabot[bot]
      nested: []
  version: 12.2.7
  date: 2020-11-30T19:33:51.623Z
- commits:
    - subject: Update npm entry in package.json to match the npm version we use
      hash: cda1e9788d8d2016863effef796c62b1f72c58b8
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 12.2.6
  date: 2020-11-30T17:26:41.644Z
- commits:
    - subject: Bump bl from 1.2.2 to 1.2.3
      hash: caae8d0544245db777ee3abb31cb64873a825f11
      body: |
        Bumps [bl](https://github.com/rvagg/bl) from 1.2.2 to 1.2.3.
        - [Release notes](https://github.com/rvagg/bl/releases)
        - [Commits](https://github.com/rvagg/bl/compare/v1.2.2...v1.2.3)
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: dependabot[bot] <support@github.com>
        signed-off-by: dependabot[bot] <support@github.com>
      author: dependabot[bot]
      nested: []
  version: 12.2.5
  date: 2020-11-17T21:20:28.572Z
- commits:
    - subject: Bump systeminformation from 4.27.3 to 4.27.11
      hash: 00b1bf8a7a66d4370cf1c7128184cfc0e2808178
      body: |
        Bumps [systeminformation](https://github.com/sebhildebrandt/systeminformation) from 4.27.3 to 4.27.11.
        - [Release notes](https://github.com/sebhildebrandt/systeminformation/releases)
        - [Changelog](https://github.com/sebhildebrandt/systeminformation/blob/master/CHANGELOG.md)
        - [Commits](https://github.com/sebhildebrandt/systeminformation/commits)
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: dependabot[bot] <support@github.com>
        signed-off-by: dependabot[bot] <support@github.com>
      author: dependabot[bot]
      nested: []
  version: 12.2.4
  date: 2020-11-17T20:42:40.817Z
- commits:
    - subject: "fix: Scoped keys breaking livepush with existing cloud images on the
        device"
      hash: 02aeb4fc1c5c5ba5b2e0fb19f1788edfc914d9bd
      body: ""
      footer:
        Closes: "#1512"
        closes: "#1512"
        Change-type: patch
        change-type: patch
        Signed-off-by: Rich Bayliss <rich@balena.io>
        signed-off-by: Rich Bayliss <rich@balena.io>
      author: Rich Bayliss
      nested: []
  version: 12.2.3
  date: 2020-11-17T03:09:32.058Z
- commits:
    - subject: Ensure the first target state request is applied
      hash: e4e895630f53ce5f00ebc5c1486a90b0f9ca9998
      body: |
        During first time run of the supervisor, the target state is queried
        by `reportInitialEnv`. Since this happens early on the initialization
        process, this target state report is missed by any listeners and this
        can lead to the initial target state not beeing applied (see #1455).

        This PR ensures that target state is re-emitted if there were no
        listeners setup on call to update.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Felipe Lalanne <felipe@balena.io>
        signed-off-by: Felipe Lalanne <felipe@balena.io>
        Connects-to: "#1455"
        connects-to: "#1455"
      author: Felipe Lalanne
      nested: []
  version: 12.2.2
  date: 2020-11-13T13:28:01.378Z
- commits:
    - subject: "validation: Ensure commit lookup has a bound value"
      hash: bc9bdd10948105f3e92df89ea5772428a0d5766b
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Rich Bayliss <rich@balena.io>
        signed-off-by: Rich Bayliss <rich@balena.io>
      author: Rich Bayliss
      nested: []
    - subject: "fix: Scoped keys not working in LocalMode"
      hash: 591598e102599316e4c74e12e322d301073f44b5
      body: |
        Some endpoints filter data based on the scope of the API key
        used to make the request. When in LocalMode the check was not
        being made correctly and all apps were considered out of scope.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Rich Bayliss <rich@balena.io>
        signed-off-by: Rich Bayliss <rich@balena.io>
      author: Rich Bayliss
      nested: []
  version: 12.2.1
  date: 2020-11-11T11:05:11.060Z
- commits:
    - subject: Allow storing commits against their appIds
      hash: f08316dc57aaf15300f7810bc700345534a3368b
      body: |
        This paves the way for running multiple applications and storing
        information related to the application against the application itself. A
        couple of hacks have been added to v1 and v2 endpoints to maintain
        compatability but these should eventually be removed with the addition
        of a v3 api.
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
      nested: []
  version: 12.2.0
  date: 2020-11-10T10:53:17.869Z
- commits:
    - subject: Add more test coverage for compose/images
      hash: cd0d53c39da3bcd1ccefeeb6c527974825de6ac5
      body: ""
      footer:
        Closes: "#1492"
        closes: "#1492"
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 12.1.5
  date: 2020-11-03T18:11:27.355Z
- commits:
    - subject: Clarify when `update_pending` in /v1/device is true
      hash: c64d3cb2164c356711d1722c124bd9711e18a336
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 12.1.4
  date: 2020-10-30T22:49:20.862Z
- commits:
    - subject: Add pipex to codeowners
      hash: d016f7a13cde070ce95e717e9ce8a9a356150a2f
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 12.1.3
  date: 2020-10-30T21:52:51.348Z
- commits:
    - subject: Mount docker socket under `/host/run` for services
      hash: 01477e41b8d3b12aebd5460bec9ed1991fbbb270
      body: |
        Currently, when the label `io.balena.features.balena-socket` is set,
        the balena engine socket is mounted under `/run/balena-engine.sock`.

        This causes a problem when using systemd inside the container, since
        this service remounts `/run` and `/run/lock` as tmpfs, causing the
        socket to become unavailable.

        Making a mount of the socket into `/host/run` solves this issue. This is
        the same approach taken with DBUS.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Felipe Lalanne <felipe@balena.io>
        signed-off-by: Felipe Lalanne <felipe@balena.io>
        Connects-to: "#1494"
        connects-to: "#1494"
      author: Felipe Lalanne
      nested: []
  version: 12.1.2
  date: 2020-10-29T19:19:51.135Z
- commits:
    - subject: Use root mount point to find device-type.json
      hash: 9d19a457017b1f696579f57569ec4cfadab3b385
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
      nested: []
  version: 12.1.1
  date: 2020-10-28T13:03:20.901Z
- commits:
    - subject: Change log source from docker to journalctl
      hash: 2c83864f22b01e7196f6ed321c96f6cb9f40593b
      body: ""
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Thomas Manning <thomasm@balena.io>
        signed-off-by: Thomas Manning <thomasm@balena.io>
      author: Thomas Manning
      nested: []
  version: 12.1.0
  date: 2020-10-28T06:12:20.363Z
- commits:
    - subject: Change source of deviceType to device-type.json
      hash: f5183df35677f091f1374c3f6e86706b141471f3
      body: |
        The source of truth for the device-type should be
        device-type.json instead of config.json
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Felipe Lalanne <felipe@balena.io>
        signed-off-by: Felipe Lalanne <felipe@balena.io>
        Connects-to: "#1472"
        connects-to: "#1472"
      author: Felipe Lalanne
      nested: []
  version: 12.0.9
  date: 2020-10-27T12:43:11.383Z
- commits:
    - subject: Fixed evaluating if updates are needed to reach target state
      hash: 77333f1e110070f17f4bf95c1554075c94a35d63
      body: ""
      footer:
        Closes: "#1476"
        closes: "#1476"
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 12.0.8
  date: 2020-10-26T18:56:16.649Z
- commits:
    - subject: Improved log message when networks do not match
      hash: edf23871d9a057b9bae8837f3ee39d7401247514
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 12.0.7
  date: 2020-10-19T16:04:51.506Z
- commits:
    - subject: Fixes check allowing preloading in local (unmanaged) mode
      hash: 0fd9b6376251c73f2adfd37ec80d2145178683d6
      body: |
        * adds apiEndpoint empty string check
      footer:
        Change-type: patch
        change-type: patch
      author: ab77
      nested: []
    - subject: Handle delete of multiple images with same dockerImageId
      hash: 4795c336d055862706be42ebb544caef93d55e35
      body: |
        A docker-compose.yml with the following structure

        ```
        version: '2.1'
        services:
          app_1:
            build: ./noisy-1
            image: noisy1
          app_2:
            build: ./noisy-1
            image: noisy1
          app_3:
            build: ./noisy-1
            image: noisy1
        ```

        Will lead to the supervisor creating multiple image database entries
        with the same dockerId (this is because of how the engine handles this
        particular case). This case is not handled by the removal process
        leading to image pile up and increased disk usage.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Felipe Lalanne <felipe@balena.io>
        signed-off-by: Felipe Lalanne <felipe@balena.io>
        Connects-to: "#1434"
        connects-to: "#1434"
      author: Felipe Lalanne
      nested: []
  version: 12.0.6
  date: 2020-10-16T22:32:07.462Z
- commits:
    - subject: Improve calculation for used system memory
      hash: dd5f62227a0b0d2024db924e7028c9fec8b2b1d9
      body: >
        The memory information reported by the supervisor currently

        estimates the value of used memory as `MemTotal - MemFree`.

        However, linux systems will try to cache and buffer as much

        memory as possible, which will affect the output of `MemFree`

        (from /proc/meminfo) and in consequence the memory usage seen

        by the user on the dashboard, which will appear much greater than

        it is.


        The correct calculation should be `MemTotal - MemFree - Buffers -
        Cached`,

        which the calculation performed by `htop` and the `free` commands.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Felipe Lalanne <felipe@balena.io>
        signed-off-by: Felipe Lalanne <felipe@balena.io>
        Connects-to: "#1471"
        connects-to: "#1471"
      author: Felipe Lalanne
      nested: []
  version: 12.0.5
  date: 2020-10-14T16:19:41.551Z
- commits:
    - subject: Don't require an existing supervisor container to sync
      hash: 629b410e10fb6590806d546ff94101951ec6c9a2
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
      nested: []
  version: 12.0.4
  date: 2020-10-13T09:49:51.370Z
- commits:
    - subject: Refactor system information filtering
      hash: a2ceb5c93189704beaf8b4f5c8b71c46d8e2a966
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
      nested: []
    - subject: "tests: Clean up and consistify naming scheme"
      hash: 9e0c99e797fa379c66b7312b40a17d9d31f5ce79
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
      nested: []
  version: 12.0.3
  date: 2020-10-12T14:46:39.730Z
- commits:
    - subject: Attempt a state report once every maxReportFrequency
      hash: 0e3c0263922043b9d53a7eb3545622106f10100c
      body: |
        With the addition of the system information feature (CPU temp) etc if
        there wasn't any changes in the docker or config state of the device,
        updates in system information would not be sent to the API. Now we
        attempt to send data once every maxReportFrequency (although this does
        not mean that we will be sending data that often, we still only send the
        delta, if one exists)
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#1481"
        closes: "#1481"
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
      nested: []
    - subject: Remove superfluous current state reporting code from api-binder
      hash: 975129188a9fcb11a081f7ba75a1b8b973499a21
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
      nested: []
  version: 12.0.2
  date: 2020-10-12T10:55:40.890Z
- commits:
    - subject: Add features label `io.balena.features.journal-logs`
      hash: 1eeff698aca56558fa09832b9bcb02c99e275dbe
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Thomas Manning <thomasm@balena.io>
        signed-off-by: Thomas Manning <thomasm@balena.io>
      author: Thomas Manning
      nested: []
  version: 12.0.1
  date: 2020-10-12T05:41:14.895Z
- commits:
    - subject: "version: drop SUPERVISOR_VERSION env var"
      hash: 8e65466f2d8540918b1fa8d8af88d0c21fcbf7f8
      body: >
        In order to make supervisor upgrades more transparent, lets move away

        from this env var since it requires a container restart any time the
        supervisor

        is upgraded. We should ultimately move towards providing the supervisors

        set of capabilities, but that can come later
      footer:
        Connects-to: "#1447"
        connects-to: "#1447"
        Change-type: major
        change-type: major
        Signed-off-by: Matthew McGinn <matthew@balena.io>
        signed-off-by: Matthew McGinn <matthew@balena.io>
      author: Matthew McGinn
      nested: []
  version: 12.0.0
  date: 2020-09-29T15:25:15.693Z
- commits:
    - subject: Fix supervisor deadlock during migration
      hash: adffde932ec28b114a5821b9ae332a42bb330be2
      body: |
        Due to the singleton work, when performing migration M00005 and there
        are apps with services created in the database, a deadlock occurs
        during database initialization due to a circular
        dependency for generating scoped keys.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Felipe Lalanne <felipe@balena.io>
        signed-off-by: Felipe Lalanne <felipe@balena.io>
        Connects-to: "#1468"
        connects-to: "#1468"
      author: Felipe Lalanne
      nested: []
  version: 11.14.8
  date: 2020-09-29T03:00:51.902Z
- commits:
    - subject: Correctly evaluate if scheduledApply.delay is not set
      hash: 90981a00bed100e1496dc71bf0631bc0ab04ffa7
      body: ""
      footer:
        Closes: "#1428"
        closes: "#1428"
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 11.14.7
  date: 2020-09-25T17:16:42.247Z
- commits:
    - subject: Fix config checks for ConfigFS backend
      hash: a5f3002e708c949b6de3c8ba495b2a89c13214fc
      body: |
        When trying to apply SSDT overlays in Up Board, the supervisor currently
        gets stuck in a loop trying to apply target state. See #1465

        This was due to a bug in parsing the configuration, which lead to
        the method bootConfigChangeRequired returning true when no change was
        needed.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Felipe Lalanne <felipe@balena.io>
        signed-off-by: Felipe Lalanne <felipe@balena.io>
        Connects-to: "#1465"
        connects-to: "#1465"
      author: Felipe Lalanne
      nested: []
  version: 11.14.6
  date: 2020-09-24T19:51:09.936Z
- commits:
    - subject: "mixpanel: superisor_version -> supervisor_version"
      hash: eebadebb53af68d9b63c948e59c1c78fb38302aa
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Matthew McGinn <matthew@balena.io>
        signed-off-by: Matthew McGinn <matthew@balena.io>
      author: Matthew McGinn
      nested: []
  version: 11.14.5
  date: 2020-09-24T14:47:47.663Z
- commits:
    - subject: "api: Implement scoped Supervisor API keys"
      hash: c08de8701e49f417d2fc5849d237b9ed69b438e2
      body: |
        Each service, when requesting access to the Supervisor API, will
        now get an individual key which can be scoped to specific resources.
        In this iteration the default scope will be to the application that
        the service belongs to.

        We also have a `global` scope which is used by the cloud API when in
        managed mode.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Rich Bayliss <rich@balena.io>
        signed-off-by: Rich Bayliss <rich@balena.io>
      author: Rich Bayliss
      nested: []
  version: 11.14.4
  date: 2020-09-18T13:02:39.469Z
- commits:
    - subject: Clarify docs for toggling update lock override from dashboard
      hash: 1b51db06c118ab4c60296f394e854436584c6437
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: M. Casqueira
      nested: []
  version: 11.14.3
  date: 2020-09-17T22:25:21.020Z
- commits:
    - subject: Refactor extra_uEnv backend to match with more devices
      hash: 07e644d0b69f412fb14aeaba17914b9eacd6477f
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 11.14.2
  date: 2020-09-15T18:25:31.240Z
- commits:
    - subject: "application-manager: Convert to a singleton"
      hash: 96c68166a1e1d9b400fca84d33910d526009ecfd
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Rich Bayliss
      nested: []
    - subject: "device-state: Convert to a singleton"
      hash: e3864915bcf3b8c2865f3c14d2ad85023218db3c
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Rich Bayliss
      nested: []
    - subject: "api-binder: Convert to a singleton"
      hash: d50f7791e1f89750a35791c1ea3bd4a7472da9a1
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Rich Bayliss
      nested: []
  version: 11.14.1
  date: 2020-09-14T10:26:09.557Z
- commits:
    - subject: Add device system information to state endpoint patch
      hash: f305a333ba70e90d098decdf81c220bfcbeec899
      body: ""
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
      nested: []
  version: 11.14.0
  date: 2020-09-03T13:43:00.299Z
- commits:
    - subject: added support for configuring ODMDATA
      hash: 662826d3495f551a5451395d0eb6660bfb65b599
      body: ""
      footer:
        Closes: "1206"
        closes: "1206"
        Change-type: minor
        change-type: minor
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 11.13.0
  date: 2020-08-29T13:07:31.541Z
- commits:
    - subject: "bug: Resolve mDNS API URLs"
      hash: f0c2a3cba7a6879a506d9151c7c0d9ea89544dae
      body: |
        Due to switching to Alpine the ability to resolve mDNS
        hostnames was lost. This patch overrides the lookup and
        manually resolves the names.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Rich Bayliss <rich@balena.io>
        signed-off-by: Rich Bayliss <rich@balena.io>
      author: Rich Bayliss
      nested: []
  version: 11.12.11
  date: 2020-08-27T10:36:31.040Z
- commits:
    - subject: Preventing removing all configurations if device has no backends
      hash: 7ea49bf4fb317346badf141e6eea8910e599c837
      body: ""
      footer:
        Closes: "#1437"
        closes: "#1437"
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 11.12.10
  date: 2020-08-24T17:43:41.125Z
- commits:
    - subject: Don't enforce the vc4-fkms-v3d dtoverlay on rpi4
      hash: de4c1b25385630b6f9fadb7a362d5556c2cc5008
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#1404"
        closes: "#1404"
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
      nested: []
  version: 11.12.9
  date: 2020-08-20T09:24:11.110Z
- commits:
    - subject: Update dependencies
      hash: ea34a2d10a3acd19cfefe4c847eb96579315429a
      body: |
        Update docker-delta from 2.2.9 to 2.2.11
        Update docker-progress from 3.0.5 to 4.0.3
        Update docker-toolbelt from 3.3.8 to 3.3.10
        Update livepush from 3.3.0 to 3.5.1
        Update resin-docker-build from 1.1.4 to 1.1.6
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested:
        - commits:
            - subject: Add .versionbot/CHANGELOG.yml for nested changelogs
              hash: b0f552f9a21d350cb9fdca77d4f7c309f88bf68b
              body: ""
              footer:
                Change-type: patch
                change-type: patch
              author: Pagan Gazzard
          version: node-docker-delta-2.2.11
          date: 2020-08-19T11:52:46.348Z
        - commits:
            - author: Pagan Gazzard
              body: ""
              footers:
                change-type: patch
              hash: 70b5359fedc100907c0086f7d25b7ad19cc210ad
              subject: Removed unused dependencies
            - author: Pagan Gazzard
              body: ""
              hash: 8670e850ba5d97fbaecc938fc2060ea3b4f157ed
              subject: "circleci: update docker"
          date: 2020-08-05T15:20:21Z
          version: node-docker-delta-2.2.10
        - commits:
            - subject: Update to balena-lint 5.x
              hash: 9563bf5150c39c6d6f298a9ed24f7969650273f7
              body: ""
              footer:
                Change-type: patch
                change-type: patch
              author: Pagan Gazzard
          version: docker-progress-4.0.3
          date: 2020-08-17T12:03:45.249Z
        - commits:
            - subject: Add .versionbot/CHANGELOG.yml for nested changelogs
              hash: 2cec0f2ef1eb24797b650024873c91c942e74017
              body: ""
              footer:
                Change-type: patch
                change-type: patch
              author: Pagan Gazzard
          version: docker-progress-4.0.2
          date: 2020-08-17T11:47:14.543Z
        - commits:
            - author: Pagan Gazzard
              body: ""
              footers:
                change-type: patch
              hash: 9bb049ea3be13fb1362e39b057f78b19d8e3153d
              subject: Update dependencies
          date: 2020-03-04T14:17:04Z
          version: docker-progress-4.0.1
        - commits:
            - author: Paulo Castro
              body: >-
                The change type is considered 'major' because, by default,
                errors are

                now thrown for relatively common occurrences such as
                authentication

                failures when pulling from private registries, and library users
                may

                have to adapt.
              footers:
                change-type: major
                signed-off-by: Paulo Castro <paulo@balena.io>
              hash: 3eef3685262e6bae8de064b9c50129e5597f4318
              subject: Detect error events in push/pull progress streams
          date: 2019-03-26T16:03:31Z
          version: docker-progress-4.0.0
        - commits:
            - subject: Add .versionbot/CHANGELOG.yml for nested changelogs
              hash: ccd1e99c5501257f1304f4cb68dd02383411e0b8
              body: ""
              footer:
                Change-type: patch
                change-type: patch
              author: Pagan Gazzard
          version: docker-toolbelt-3.3.10
          date: 2020-08-19T12:10:49.102Z
        - commits:
            - author: Pagan Gazzard
              body: ""
              footers:
                change-type: patch
              hash: e89aedf563c4158894265c885cb86a834b5c9c7f
              subject: Update to balena-lint 5.x
          date: 2020-08-17T12:49:42Z
          version: docker-toolbelt-3.3.9
        - commits:
            - subject: Add .versionbot/CHANGELOG.yml for nested changelogs
              hash: 580a4229374fc96fc3f7aeb80e6b5a09aa958d7f
              body: ""
              footer:
                Change-type: patch
                change-type: patch
              author: Pagan Gazzard
          version: livepush-3.5.1
          date: 2020-08-19T12:27:19.448Z
        - commits:
            - author: Roman Mazur
              body: ""
              footers:
                change-type: minor
                signed-off-by: Roman Mazur <roman@balena.io>
              hash: c180b489f3a537468f3347398824ca285354caaa
              subject: Allow setting ENV variables in the live image
            - author: Roman Mazur
              body: ""
              footers:
                change-type: patch
                signed-off-by: Roman Mazur <roman@balena.io>
              hash: 7a053dd801ee5bdc8e5b0792044be611d8981a58
              subject: Bump dockerode types dependency
          date: 2020-07-13T11:46:04Z
          version: livepush-3.5.0
        - commits:
            - author: Cameron Diver
              body: ""
              footers:
                change-type: patch
                signed-off-by: Cameron Diver <cameron@balena.io>
              hash: 68ebf4a50acb2b451770f79a44e256dc14adbde0
              subject: Update README with information about live directives
          date: 2020-05-05T10:39:11Z
          version: livepush-3.4.1
        - commits:
            - author: Cameron Diver
              body: ""
              footers:
                change-type: minor
                closes: "#76"
                signed-off-by: Cameron Diver <cameron@balena.io>
              hash: f4caa2052af2a820f8bf86d202b21b2fe6680af9
              subject: 🔭 Add a file watcher which can be used by library users
          date: 2020-04-15T10:50:17Z
          version: livepush-3.4.0
        - commits:
            - subject: Add .versionbot/CHANGELOG.yml for nested changelogs
              hash: 139561ad61ca4f0e2a6203fe3c5f3345ba32cf83
              body: ""
              footer:
                Change-type: patch
                change-type: patch
              author: Pagan Gazzard
          version: resin-docker-build-1.1.6
          date: 2020-08-19T12:14:05.986Z
        - commits:
            - author: CameronDiver
              body: ""
              footers:
                change-type: patch
                signed-off-by: Cameron Diver <cameron@balena.io>
              hash: 0e84ec3d48268c0ae1a2390a2dad2cf8ec9e0eec
              subject: Update README with correct instantiation method
          date: 2020-04-02T16:54:05Z
          version: resin-docker-build-1.1.5
  version: 11.12.8
  date: 2020-08-19T12:38:52.114Z
- commits:
    - subject: Update typed-error to 3.x
      hash: 379730a9e1d6530ea8bc13715a46fe895b0d4ec8
      body: |
        Update typed-error from 2.0.0 to 3.2.1
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested:
        - commits:
            - subject: Update dependencies
              hash: dc41949015399154efb4529183daa0dfc9269b52
              body: ""
              footer:
                Change-type: patch
                change-type: patch
              author: Pagan Gazzard
          version: typed-error-3.2.1
          date: 2020-08-05T12:34:06.377Z
        - commits:
            - subject: update deps and specify minimum engine requirements
              hash: 22f293afc187e67b88dab280951eb6e2bb504b24
              body: ""
              footer:
                Change-type: minor
                change-type: minor
                Signed-off-by: Will Boyce <will@balena.io>
                signed-off-by: Will Boyce <will@balena.io>
              author: Will Boyce
          version: typed-error-3.2.0
          date: 2019-11-20T09:52:39.017Z
        - commits:
            - subject: "dev: Enforce prettier coding standards"
              hash: 47c07a641fa39ddb833b41aff7a918accad08289
              body: ""
              footer:
                Change-type: minor
                change-type: minor
                Signed-off-by: Will Boyce <will@balena.io>
                signed-off-by: Will Boyce <will@balena.io>
              author: Will Boyce
            - subject: "npm: Update dependencies and remove `package-lock.json`"
              hash: 067bceb5c8dfd46f7e4ff0f58dead46fd9626167
              body: ""
              footer:
                Change-type: patch
                change-type: patch
                Signed-off-by: Will Boyce <will@balena.io>
                signed-off-by: Will Boyce <will@balena.io>
              author: Will Boyce
            - subject: "codeowners: Add top contributors @wrboyce, @Page-, and @dfunckt"
              hash: 6acc8757a594f74f264c8d68ea4501c61bda9951
              body: ""
              footer:
                Change-type: patch
                change-type: patch
                Signed-off-by: Will Boyce <will@balena.io>
                signed-off-by: Will Boyce <will@balena.io>
              author: Will Boyce
            - subject: "versionbot: Add CHANGELOG.yml (for nested changelogs)"
              hash: 2b684a0bb0c95a5dbd3b130ba0f184d3464d298f
              body: ""
              footer:
                Change-type: patch
                change-type: patch
                Signed-off-by: Will Boyce <will@balena.io>
                signed-off-by: Will Boyce <will@balena.io>
              author: Will Boyce
          version: typed-error-3.1.0
          date: 2019-04-01T10:20:01.427Z
        - commits:
            - author: CameronDiver
              body: ""
              footers:
                change-type: patch
                signed-off-by: Cameron Diver <cameron@balena.io>
              hash: aaa9391dc463c1037f85e845d30f6f9434bb4dc1
              subject: Update README with new import style
          date: 2018-11-01T12:08:25Z
          version: typed-error-3.0.2
        - commits:
            - author: Pagan Gazzard
              body: ""
              footers:
                change-type: patch
              hash: 627cdd281d7b086df8fe5ed1ccb0e0e0df3df062
              subject: Update to typescript 3
            - author: Pagan Gazzard
              body: ""
              footers:
                change-type: patch
              hash: 00d182bb2bc29bd82adb4e8ea4527f6bda6c5278
              subject: Update dev dependencies
            - author: Pagan Gazzard
              body: ""
              hash: 94adac5d747f16b9228b39e56007ee0126c6f99c
              subject: Add node-10 to the circle test suite
          date: 2018-10-29T14:05:23Z
          version: typed-error-3.0.1
        - commits:
            - author: Will Boyce
              body: |-
                * Switch to `export ...` syntax (from `export = ...`)
                * Fix invalid export of class inheriting non-exported class
              footers:
                change-type: major
              hash: a6307b8c04d3456ad7d8a6ac19035b5e718c4311
              subject: Distribute generated typescript declaration
            - author: Will Boyce
              body: ""
              footers:
                change-type: patch
              hash: 37c4b700baadba8cdd6bc0c40df74b30b1a6301c
              subject: use circle for build/publish and add package-lock
            - author: Will Boyce
              body: ""
              footers:
                change-type: patch
              hash: 83e809281f5172ca1ff71bdf0ee663cd504f1428
              subject: add lint scripts/requirements
            - author: Will Boyce
              body: ""
              footers:
                change-type: minor
              hash: da9431d08e501a0d4d0db3a7fb2c0bd06d76d064
              subject: Remove `BaseError` class and  directly subclass `Error`
            - author: Will Boyce
              body: ""
              footers:
                change-type: patch
              hash: e46a36b54498b68f513c6cb947e217c11525e160
              subject: Update dependencies, clean up package/tsconfig
          date: 2018-04-17T08:19:27Z
          version: typed-error-3.0.0
        - commits:
            - author: Akis Kesoglou
              body: ""
              footers:
                change-type: patch
              hash: d35c44f1e57f6386c6f769f8cafc28e0886719cc
              subject: Add LICENSE
          date: 2017-12-15T17:19:00Z
          version: typed-error-2.0.1
  version: 11.12.7
  date: 2020-08-19T09:09:56.021Z
- commits:
    - subject: Update pinejs-client-request to 7.2.1
      hash: 90fab43022c91bce7cea5ce6cd3b4440a6f707a0
      body: |
        Update pinejs-client-request from 7.1.0 to 7.2.1
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested:
        - commits:
            - subject: Update dependencies
              hash: f4502c9364bb5dd3ac4cb7242b8d08dca047b8ee
              body: |
                Update pinejs-client-core from 6.6.1 to 6.7.1
              footer:
                Change-type: patch
                change-type: patch
              author: Pagan Gazzard
              nested:
                - commits:
                    - subject: Fix prepare $count typings
                      hash: fe63b2ba648b0ef545afe9fd18d433faca4af6a2
                      body: ""
                      footer:
                        Change-type: patch
                        change-type: patch
                      author: Pagan Gazzard
                  version: pinejs-client-js-6.7.1
                  date: 2020-08-12T14:30:20.061Z
                - commits:
                    - subject: Improve typings for request/post/put/patch/delete
                      hash: 32c0d5b40c14e44155391099a9051255c38b1c05
                      body: ""
                      footer:
                        Change-type: minor
                        change-type: minor
                      author: Pagan Gazzard
                  version: pinejs-client-js-6.7.0
                  date: 2020-08-12T13:42:49.438Z
          version: pinejs-client-request-7.2.1
          date: 2020-08-18T17:01:01.637Z
        - commits:
            - subject: Update pinejs-client-core to 6.6.1
              hash: 8b45f326d07939279b5c4271c74579cdf5da3bb3
              body: |
                Update pinejs-client-core from 6.1.0 to 6.6.1
                Update typed-error from 3.2.0 to 3.2.1
              footer:
                Change-type: minor
                change-type: minor
              author: Pagan Gazzard
              nested:
                - commits:
                    - subject: Update dependencies
                      hash: dc41949015399154efb4529183daa0dfc9269b52
                      body: ""
                      footer:
                        Change-type: patch
                        change-type: patch
                      author: Pagan Gazzard
                  version: typed-error-3.2.1
                  date: 2020-08-05T12:34:06.377Z
                - commits:
                    - subject: Fix typing when id is specified to be `AnyObject | undefined`
                      hash: c4802cb748b1552345f036120c3aa6254e6cc946
                      body: ""
                      footer:
                        Change-type: patch
                        change-type: patch
                      author: Pagan Gazzard
                  version: pinejs-client-js-6.6.1
                  date: 2020-08-11T17:10:09.498Z
                - commits:
                    - subject: "Deprecate `$expand: { 'a/$count': {...} }`"
                      hash: 8be33ad064905476e3f21978b7e1d760f5e27f4e
                      body: ""
                      footer:
                        Change-type: minor
                        change-type: minor
                      author: Pagan Gazzard
                    - subject: "Deprecate `resource: 'a/$count'` and update typings to reflect it"
                      hash: 779cc424cb6d2562aa9a98a3ff083b68308d9797
                      body: ""
                      footer:
                        Change-type: minor
                        change-type: minor
                      author: Pagan Gazzard
                  version: pinejs-client-js-6.6.0
                  date: 2020-08-11T16:18:59.088Z
                - commits:
                    - subject: "Add `options: { $count: { ... } }` sugar for top level $count"
                      hash: 13072f715da6c0ca3eab08584eaa48f39ea985b2
                      body: ""
                      footer:
                        Change-type: minor
                        change-type: minor
                      author: Pagan Gazzard
                    - subject: "Add `$expand: { a: { $count: { ... } } }` sugar for $count in expands"
                      hash: b2afb397c09a31c9ab3c1c370846c1b8762db32d
                      body: ""
                      footer:
                        Change-type: minor
                        change-type: minor
                      author: Pagan Gazzard
                  version: pinejs-client-js-6.5.0
                  date: 2020-08-11T10:25:19.860Z
                - commits:
                    - subject: Improve return typing of `subscribe` method
                      hash: 2311fe03b04f4e6149693a9e5c392f9f0bb2a549
                      body: ""
                      footer:
                        Change-type: minor
                        change-type: minor
                      author: Pagan Gazzard
                  version: pinejs-client-js-6.4.0
                  date: 2020-08-11T10:16:40.301Z
                - commits:
                    - subject: Fix Poll.on typings
                      hash: 315697d9c2c0e59652bcceddb7f36cb498269f64
                      body: ""
                      footer:
                        Change-type: patch
                        change-type: patch
                      author: Pagan Gazzard
                    - subject: Improve return typing when id is passed to GET methods
                      hash: 2d174f758314a20c01a171ac5826b71e4f623dcc
                      body: ""
                      footer:
                        Change-type: minor
                        change-type: minor
                      author: Pagan Gazzard
                    - subject: Remove `PromiseResult` type, use `Promise<PromiseResultTypes>` instead
                      hash: 905f275731af6ce2560c37f41343052f05365cd1
                      body: ""
                      footer:
                        Change-type: minor
                        change-type: minor
                      author: Pagan Gazzard
                    - subject: Remove `PromiseObj` type, use `Promise<{}>` instead
                      hash: 78aa2410aa86bf73cc4831f2149fc85e28a6ea23
                      body: ""
                      footer:
                        Change-type: minor
                        change-type: minor
                      author: Pagan Gazzard
                  version: pinejs-client-js-6.3.0
                  date: 2020-08-11T08:57:09.655Z
                - commits:
                    - subject: "Add `$filter: { a: { $count: 1 } }` sugar for $count in filters"
                      hash: f2fef3833f321bf81543c62a9a3db09d7fbc0a4a
                      body: ""
                      footer:
                        Change-type: minor
                        change-type: minor
                      author: Pagan Gazzard
                  version: pinejs-client-js-6.2.0
                  date: 2020-08-10T16:44:49.238Z
                - commits:
                    - subject: Remove redundant ParamsObj/SubscribeParamsObj types
                      hash: f5fc6762aa8f1918424fb5e1c1a05435f07af285
                      body: ""
                      footer:
                        Change-type: patch
                        change-type: patch
                      author: Pagan Gazzard
                  version: pinejs-client-js-6.1.2
                  date: 2020-08-10T16:32:09.666Z
                - commits:
                    - subject: Make use of `mapObj` helper in more places
                      hash: 2189f9918cb515071d2f6ecb941b0d838ee6c5ea
                      body: ""
                      footer:
                        Change-type: patch
                        change-type: patch
                      author: Pagan Gazzard
                    - subject: Use `Object.keys` in preference to `hasOwnProperty` where applicable
                      hash: 2ea0e9549974150ef9e7f82206f25000407e37ba
                      body: ""
                      footer:
                        Change-type: patch
                        change-type: patch
                      author: Pagan Gazzard
                  version: pinejs-client-js-6.1.1
                  date: 2020-08-10T15:42:09.364Z
          version: pinejs-client-request-7.2.0
          date: 2020-08-12T07:00:59.754Z
  version: 11.12.6
  date: 2020-08-18T17:30:40.807Z
- commits:
    - subject: Refactor configurable backend class names
      hash: ff404456b3c3edaf33fe2199387db47d9be03503
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 11.12.5
  date: 2020-08-12T19:06:59.672Z
- commits:
    - subject: "bug: Firewall not blocking supervisor access from outside the device"
      hash: 5aecd94e243ee55cffbb9aa47e7adfc437401de3
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Rich Bayliss <rich@balena.io>
        signed-off-by: Rich Bayliss <rich@balena.io>
      author: Rich Bayliss
      nested: []
  version: 11.12.4
  date: 2020-08-12T12:45:26.689Z
- commits:
    - subject: "bug: Allow DNS through firewall for local containers"
      hash: e9b536a889542588e2f79247ed7937c709fdf3d2
      body: |
        We provide a local DNS server for containers to use and this
        was not allowed through the firewall when enabled.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Rich Bayliss <rich@balena.io>
        signed-off-by: Rich Bayliss <rich@balena.io>
      author: Rich Bayliss
      nested: []
  version: 11.12.3
  date: 2020-08-11T14:19:40.945Z
- commits:
    - subject: Fix device-tag fetching function
      hash: aa823c1cfca7a026b1c4cf3580e690625fee0d58
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
      nested: []
  version: 11.12.2
  date: 2020-08-05T12:33:50.608Z
- commits:
    - subject: Update resumable-request
      hash: abf5cac4a3d784a6ad1f545f14b15b5149f13afa
      body: |
        Update resumable-request from 2.0.0 to 2.0.1
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested:
        - commits:
            - subject: Add .versionbot/CHANGELOG.yml for nested changelogs
              hash: e11bf1fd3f505a83eb1c0bd872d3a90ee1ba4137
              body: ""
              footer:
                Change-type: patch
                change-type: patch
              author: Pagan Gazzard
            - subject: Optimize lodash dependency
              hash: 40146b216300b0b16f7004e8266d16696928ea14
              body: ""
              footer:
                Change-type: patch
                change-type: patch
              author: Pagan Gazzard
          version: resumable-request-2.0.1
          date: 2020-08-05T09:48:49.433Z
  version: 11.12.1
  date: 2020-08-05T11:28:50.822Z
- commits:
    - subject: Update contrato to 0.5
      hash: 17c370863cca6bf5ddfaceffdbae96b92db24bbc
      body: |
        Update contrato from 0.2.1 to 0.5.0
      footer:
        Change-type: minor
        change-type: minor
      author: Pagan Gazzard
      nested:
        - commits:
            - subject: Remove handlebars-helpers to shrink bundle size
              hash: 1305553f48747e0e450c89254790e67674c252b7
              body: >
                We can re-add specific helpers as necessary without needing to
                bloat

                with the entirety of the helpers package
              footer:
                Change-type: minor
                change-type: minor
              author: Pagan Gazzard
              nested: []
          version: contrato-0.5.0
          date: 2020-08-05T08:38:30.030Z
        - commits:
            - subject: Update skhema to 5.x
              hash: 1eb7058e8e34d708c03c5270e849aff4576773e7
              body: |
                Update skhema from 2.3.0 to 5.3.2
              footer:
                Change-type: minor
                change-type: minor
              author: Pagan Gazzard
              nested:
                - commits:
                    - subject: Switch to typed-error
                      hash: 234c6da3d4b2ca6784d7714a7b7d46813b43310a
                      body: ""
                      footer:
                        Change-type: patch
                        change-type: patch
                      author: Pagan Gazzard
                  version: skhema-5.3.2
                  date: 2020-08-04T21:33:19.366Z
                - commits:
                    - subject: Add .versionbot/CHANGELOG.yml for nested changelogs
                      hash: 7c61cf2f1e120944c3aef29dfe208f2e37139a6a
                      body: ""
                      footer:
                        Change-type: patch
                        change-type: patch
                      author: Pagan Gazzard
                  version: skhema-5.3.1
                  date: 2020-08-04T21:07:49.365Z
                - commits:
                    - author: Juan Cruz Viotti
                      body: ""
                      footers:
                        change-type: minor
                        signed-off-by: Juan Cruz Viotti <juan@balena.io>
                      hash: 7e3fd20fb84d71c67e2f11206c4cf60b4b2866c1
                      subject: "filter: Throw a custom error if the schema is invalid"
                  date: 2020-05-05T15:22:49Z
                  version: skhema-5.3.0
                - commits:
                    - author: StefKors
                      body: ""
                      footers:
                        change-type: patch
                        signed-off-by: Stef Kors <stef@balena.io>
                      hash: e90802b28b908dfcd4c54e432e72cd36ba390b09
                      subject: Add test to show .filter() not working correctly
                    - author: StefKors
                      body: ""
                      footers:
                        change-type: patch
                        signed-off-by: Stef Kors <stef@balena.io>
                      hash: 4ff1988ca8c78192ad0f92afb7f2bb3d2679fdd2
                      subject: When combining with baseSchema merge enum with AND operator
                  date: 2019-12-12T11:38:32Z
                  version: skhema-5.2.9
                - commits:
                    - author: Juan Cruz Viotti
                      body: ""
                      footers:
                        change-type: patch
                        signed-off-by: Juan Cruz Viotti <juan@balena.io>
                      hash: 2f8725cde8fc23de39346860a4fc283ada408eab
                      subject: Ensure values in "enum" are unique
                  date: 2019-11-27T20:30:03Z
                  version: skhema-5.2.8
                - commits:
                    - author: Juan Cruz Viotti
                      body: ""
                      footers:
                        change-type: patch
                        signed-off-by: Juan Cruz Viotti <juan@balena.io>
                      hash: 5afd0f25d791fe1f0d85957369a46292212de79e
                      subject: 'filter: Correctly handle "enum" inside "anyOf"'
                  date: 2019-11-27T19:34:08Z
                  version: skhema-5.2.7
                - commits:
                    - author: Juan Cruz Viotti
                      body: ""
                      footers:
                        change-type: patch
                        signed-off-by: Juan Cruz Viotti <juan@balena.io>
                      hash: 0bb8c525b58dc358b80ddd7a2ed53dc95fe662ae
                      subject: "merge: Be explicit about additionalProperties"
                  date: 2019-11-19T09:19:11Z
                  version: skhema-5.2.6
                - commits:
                    - author: Lucian
                      body: ""
                      footers:
                        change-type: patch
                        signed-off-by: Lucian <lucian.buzzo@gmail.com>
                      hash: 864db6644a2cddfada888c3cb979498b2107eabe
                      subject: Add a resolver for the const keyword
                  date: 2019-05-09T15:49:10Z
                  version: skhema-5.2.5
                - commits:
                    - author: Juan Cruz Viotti
                      body: >-
                        This is very similar to the cache class they use by
                        default, with the

                        difference that it has a limit and won't grow
                        indefinitely, causing

                        memory leaks on long running applications like
                        Jellyfish.
                      footers:
                        change-type: patch
                        signed-off-by: Juan Cruz Viotti <juan@balena.io>
                      hash: 8dcdde578bdae9dad5786270b451bd45a7204115
                      subject: Configure AJV instances with an LRU cache
                  date: 2019-04-15T15:32:41Z
                  version: skhema-5.2.4
                - commits:
                    - author: Juan Cruz Viotti
                      body: So we don't leak `SchemaObject` in the AJV `_refs` object.
                      footers:
                        change-type: patch
                        signed-off-by: Juan Cruz Viotti <juan@balena.io>
                      hash: f55993458fe587fa2884f116506bd27cb2aa3e87
                      subject: Set addUsedSchema to false in all AJV instances
                  date: 2019-04-15T15:15:23Z
                  version: skhema-5.2.3
                - commits:
                    - author: Lucian
                      body: "Fixes #43"
                      footers:
                        change-type: patch
                        signed-off-by: Lucian <lucian.buzzo@gmail.com>
                      hash: 90dd1490303d06c0e44be715464ddc4f598f4adb
                      subject: Fix bug in scoreMatch when handling arrays
                  date: 2019-03-20T10:24:26Z
                  version: skhema-5.2.2
                - commits:
                    - author: Lucian
                      body: ""
                      footers:
                        change-type: patch
                        signed-off-by: Lucian <lucian.buzzo@gmail.com>
                      hash: 846dc2265f73018870d88c704630578e6715afa8
                      subject: Fix bad require name and .only in tests
                  date: 2019-03-19T15:47:17Z
                  version: skhema-5.2.1
                - commits:
                    - author: Lucian Buzzo
                      body: >-
                        Only match elements with .filter() if the base schema
                        (the schema with no

                        anyOf branches) matches the element.
                      footers:
                        change-type: patch
                        signed-off-by: Lucian Buzzo <lucian.buzzo@gmail.com>
                      hash: 9652d825d07fd8de0b51a5ae2645f3f6f79ee860
                      subject: ".filter(): Only match if the base schema matches"
                  date: 2020-04-30T16:22:18Z
                  version: skhema-5.2.10
                - commits:
                    - author: Lucian
                      body: ""
                      footers:
                        change-type: minor
                        signed-off-by: Lucian <lucian.buzzo@gmail.com>
                      hash: 647943a9d7fad1338ad800509a85636b150d576e
                      subject: Add ability to provide custom resolvers to merge()
                  date: 2019-03-19T12:14:12Z
                  version: skhema-5.2.0
                - commits:
                    - author: Lucian
                      body: ""
                      footers:
                        change-type: patch
                        signed-off-by: Lucian <lucian.buzzo@gmail.com>
                      hash: c00be29c12b14858982cd2997088d065ff173870
                      subject: Split up and optimize lodash dependencies
                  date: 2019-02-08T11:58:56Z
                  version: skhema-5.1.1
                - commits:
                    - author: Lucian Buzzo
                      body: ""
                      footers:
                        change-type: minor
                        signed-off-by: Lucian Buzzo <lucian.buzzo@gmail.com>
                      hash: 5c48f980bfad6eb0a15d6c18d0898fbe226ddddd
                      subject: "feature: Implement method for restricting a schema by another schema"
                  date: 2019-01-08T11:00:52Z
                  version: skhema-5.1.0
                - commits:
                    - author: Lucian
                      body: Using a strictly defined API allows us to improve performance
                      footers:
                        change-type: major
                        signed-off-by: Lucian <lucian.buzzo@gmail.com>
                      hash: 04f497a509e4129977e696a6637fe2724a7fb7e0
                      subject: Remove ability to add custom keywords or formats
                  date: 2018-12-31T07:38:57Z
                  version: skhema-5.0.0
                - commits:
                    - author: Lucian
                      body: ""
                      footers:
                        change-type: patch
                        signed-off-by: Lucian <lucian.buzzo@gmail.com>
                      hash: 219f90ed5751e2211d9acb0bbd3311c39e12a180
                      subject: Improve performance of clone operations
                  date: 2018-12-31T07:20:46Z
                  version: skhema-4.0.4
                - commits:
                    - author: Lucian
                      body: ""
                      footers:
                        change-type: patch
                        signed-off-by: Lucian <lucian.buzzo@gmail.com>
                      hash: 61318967874690eb3b85a9921fe27d3ce5c2494d
                      subject: Don't bust AJV cache
                  date: 2018-12-10T12:09:43Z
                  version: skhema-4.0.3
                - commits:
                    - author: Giovanni Garufi
                      body: ""
                      footers:
                        change-type: patch
                        signed-off-by: Giovanni Garufi <giovanni@balena.io>
                      hash: 1f6c87de94ef905ea39972630364c74beb55057a
                      subject: Add benchmark tests
                  date: 2018-12-10T11:47:01Z
                  version: skhema-4.0.2
                - commits:
                    - author: Lucian
                      body: "Fixes #30"
                      footers:
                        change-type: patch
                        signed-off-by: Lucian <lucian.buzzo@gmail.com>
                      hash: d59a81567bf84a90182687a5385538ff7a599ce0
                      subject: Recurse through nested `anyOf` statements when filtering
                  date: 2018-12-04T13:29:31Z
                  version: skhema-4.0.1
                - commits:
                    - author: Lucian
                      body: This better follows the way that JSON schema works
                      footers:
                        change-type: major
                        signed-off-by: Lucian <lucian.buzzo@gmail.com>
                      hash: 7c479564ca6c611c1576c32b63ac9dba06c8b2c7
                      subject: Treat undefined additionalProperties as true instead of false
                  date: 2018-12-03T13:40:59Z
                  version: skhema-4.0.0
                - commits:
                    - author: Juan Cruz Viotti
                      body: ""
                      footers:
                        change-type: patch
                        signed-off-by: Juan Cruz Viotti <juan@balena.io>
                      hash: 842aaf252085b9a80a1cd84776b0c871c8c949aa
                      subject: "stryker: Increase test timeout"
                    - author: Juan Cruz Viotti
                      body: ""
                      footers:
                        change-type: patch
                        signed-off-by: Juan Cruz Viotti <juan@balena.io>
                      hash: 781b74d9ca847acfbfa3883fda66f4828824e3bc
                      subject: "test: Configure Stryker for mutative testing"
                  date: 2018-11-30T16:58:05Z
                  version: skhema-3.0.1
                - commits:
                    - author: Giovanni Garufi
                      body: >-
                        Merge multiple anyOf subschemas that match into a single
                        one.

                        Add axioms in test
                      footers:
                        change-type: minor
                        signed-off-by: Giovanni Garufi <giovanni@balena.io>
                      hash: 23cec34382d98b6c10a1d5483113a1155ba6565a
                      subject: Define additionalProperty inheritance in anyOf
                    - author: Lucian
                      body: ""
                      footers:
                        change-type: major
                        signed-off-by: Lucian <lucian.buzzo@gmail.com>
                      hash: 93a65b6edb10397b3417a3719d4471cd0eeb4f68
                      subject: Formalising filtering logic
                    - author: Lucian
                      body: ""
                      hash: d55a7cac6bd9ce238918eea99ed64894e5e7d066
                      subject: Added failing test case with mutation
                  date: 2018-11-29T17:53:28Z
                  version: skhema-3.0.0
                - commits:
                    - author: Juan Cruz Viotti
                      body: >-
                        This is a hack, and should be reverted once we get to
                        the bottom of it.

                        It will impact performance, but right now there are
                        things that should

                        be filtered and are not, so lets get this merged for
                        security purposes.

                        Hopefully this library will be re-written soon.
                      footers:
                        change-type: patch
                        see: https://github.com/balena-io/jellyfish/pull/878
                        signed-off-by: Juan Cruz Viotti <juan@balena.io>
                      hash: fd9841b296007e1ddc04d092c3b28c61a438be6c
                      subject: "hotfix: Make sure things that should be filtered are filtered"
                  date: 2018-11-07T13:42:47Z
                  version: skhema-2.5.2
                - commits:
                    - author: Juan Cruz Viotti
                      body: ""
                      footers:
                        change-type: patch
                        see: https://github.com/balena-io/jellyfish/issues/845
                        signed-off-by: Juan Cruz Viotti <juan@balena.io>
                      hash: 3ef59f5e552a11dffa72c6ff758210aebfe35bcb
                      subject: "filter: Force additionalProperties: true on match schemas"
                  date: 2018-11-06T17:26:53Z
                  version: skhema-2.5.1
                - commits:
                    - author: Lucian Buzzo
                      body: ""
                      footers:
                        change-type: minor
                        signed-off-by: Lucian Buzzo <lucian.buzzo@gmail.com>
                      hash: 3536e75a128f7b79d13727d3a5562df48e6f9d00
                      subject: Validate against just the schema if `options.schemaOnly` is true
                  date: 2018-10-16T11:59:41Z
                  version: skhema-2.5.0
                - commits:
                    - author: Lucian Buzzo
                      body: ""
                      footers:
                        change-type: patch
                        signed-off-by: Lucian Buzzo <lucian.buzzo@gmail.com>
                      hash: 513eeb6d006270ac25a2fb9a802df9c398658548
                      subject: "merge: When merging an empty array, return a wildcard schema"
                  date: 2018-10-09T20:19:28Z
                  version: skhema-2.4.1
                - commits:
                    - author: Lucian Buzzo
                      body: ""
                      footers:
                        change-type: minor
                        signed-off-by: Lucian Buzzo <lucian.buzzo@gmail.com>
                      hash: 5a3844a72a7bb0bad355d6a991a9a2f005c3a3b9
                      subject: "validate: Make object optional"
                  date: 2018-10-09T16:52:53Z
                  version: skhema-2.4.0
          version: contrato-0.4.0
          date: 2020-08-04T21:58:55.782Z
        - commits:
            - subject: Add .versionbot/CHANGELOG.yml for nested changelogs
              hash: 783273aac70fd631d5a80e33b55ef468be4c3ec7
              body: ""
              footer:
                Change-type: patch
                change-type: patch
              author: Pagan Gazzard
          version: contrato-0.3.1
          date: 2020-08-04T21:46:25.163Z
        - commits:
            - author: Stevche Radevski
              body: >-
                Handlebars supports very basic if condition checking, but it
                only checks for

                existence of a field. There are times when we want to combine
                conditions in order

                to generate something as part of a blueprint, without defining a
                completely separate

                blueprint for it (like generating network config schema if a dt
                has a wifi chip or

                a usb port to which we can connect a dongle).
              footers:
                change-type: minor
                signed-off-by: Stevche Radevski <stevche@balena.io>
              hash: 90c3356b356920b8a6dd95a478dd6cb39e6ad148
              subject: Add logical operator support in templates
          date: 2020-07-17T12:02:34Z
          version: contrato-0.3.0
  version: 11.12.0
  date: 2020-08-05T09:55:18.695Z
- commits:
    - subject: Bump elliptic from 6.5.2 to 6.5.3
      hash: c11004cd24fe66e6af7f16a79c0cc9e8847eb415
      body: >
        Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.2 to
        6.5.3.

        - [Release notes](https://github.com/indutny/elliptic/releases)

        - [Commits](https://github.com/indutny/elliptic/compare/v6.5.2...v6.5.3)
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: dependabot[bot] <support@github.com>
        signed-off-by: dependabot[bot] <support@github.com>
      author: dependabot[bot]
      nested: []
    - subject: Update pinejs-client-request and make use of a named key
      hash: 511cbbe74e9dce51490234c66035ded873091b4e
      body: |
        Update pinejs-client-request from 7.0.0 to 7.1.0
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested:
        - commits:
            - subject: Update dependencies
              hash: c46281f165eb6b05def4bd9eed82df37629c56e7
              body: |
                Update pinejs-client-core from 6.0.0 to 6.1.0
              footer:
                Change-type: minor
                change-type: minor
              author: Pagan Gazzard
              nested:
                - commits:
                    - subject: Add support for using named ids
                      hash: f6035bf5240e8aea1b92997d976cebd9a1857a61
                      body: ""
                      footer:
                        Change-type: minor
                        change-type: minor
                      author: Pagan Gazzard
                  version: pinejs-client-js-6.1.0
                  date: 2020-07-21T10:31:09.457Z
                - commits:
                    - subject: Drop unnecessary async from request()
                      hash: dfd4c8c39327fe2e1706a8180e3c3f56d4229b77
                      body: |
                        This allows consumers like pinejs-client-supertest
                        to have all the methods returning different Promise
                        types based solely on the implementation of the
                        request() method.
                      footer:
                        Change-type: patch
                        change-type: patch
                        Signed-off-by: Thodoris Greasidis <thodoris@balena.io>
                        signed-off-by: Thodoris Greasidis <thodoris@balena.io>
                      author: Thodoris Greasidis
                  version: pinejs-client-js-6.0.1
                  date: 2020-06-19T16:55:46.305Z
          version: pinejs-client-request-7.1.0
          date: 2020-07-28T10:43:21.213Z
        - commits:
            - subject: Increase default timeout to 59s
              hash: fc17266fe147bf40086feb81b6c96a344bf74f29
              body: ""
              footer:
                Change-type: patch
                change-type: patch
              author: Pagan Gazzard
              nested: []
          version: pinejs-client-request-7.0.1
          date: 2020-07-28T10:29:41.385Z
  version: 11.11.7
  date: 2020-08-04T09:33:41.743Z
- commits:
    - subject: Fixes documentation - ping doesn't need apiKey and minor documentation
        formatting changes.
      hash: 82dda7d852773a58ddbdc4a614ef3a3b7ff15462
      body: ""
      footer:
        Change-Type: patch
        change-type: patch
        Signed-off-by: Nitish Agarwal <1592163+nitishagar@users.noreply.github.com>
        signed-off-by: Nitish Agarwal <1592163+nitishagar@users.noreply.github.com>
        Co-authored-by: xginn8 <xginn8@users.noreply.github.com>
        co-authored-by: xginn8 <xginn8@users.noreply.github.com>
      author: Nitish Agarwal
      nested: []
  version: 11.11.6
  date: 2020-07-31T18:10:27.470Z
- commits:
    - subject: "Fixes #1299 v1 start/stop endpoint issue with service access."
      hash: 11cac2dd696dc267758351be131c3db8eae4470e
      body: ""
      footer:
        Change-Type: patch
        change-type: patch
        Signed-off-by: Nitish Agarwal <1592163+nitishagar@users.noreply.github.com>
        signed-off-by: Nitish Agarwal <1592163+nitishagar@users.noreply.github.com>
      author: Nitish Agarwal
      nested: []
  version: 11.11.5
  date: 2020-07-31T17:42:23.827Z
- commits:
    - subject: "bug: Fix undefined containerId object"
      hash: 59561132cc11074d2acf4ac06b477196b42cf569
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Rich Bayliss <rich@balena.io>
        signed-off-by: Rich Bayliss <rich@balena.io>
      author: Rich Bayliss
      nested: []
  version: 11.11.4
  date: 2020-07-31T10:53:18.364Z
- commits:
    - subject: fix matching extra_uEnv backend with unsupported devices
      hash: 9b37ce96f959ccf27963ebb1c3e9eccd2ed998c7
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 11.11.3
  date: 2020-07-30T18:15:41.698Z
- commits:
    - subject: Fix an issue with reporting initial config using a stale target state
      hash: ffe3da6261e486b875c5c1792b7bdc8e0a0f996e
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested: []
  version: 11.11.2
  date: 2020-07-30T09:50:26.292Z
- commits:
    - subject: fix up "atleast" -> "at least"
      hash: 15c57a86b47c4df3dbf5e20c5dbbbd40a6344812
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Matthew McGinn <matthew@balena.io>
        signed-off-by: Matthew McGinn <matthew@balena.io>
      author: Matthew McGinn
      nested: []
  version: 11.11.1
  date: 2020-07-29T15:57:59.129Z
- commits:
    - subject: Support setting device/fleet configuration in extra_uEnv.txt
      hash: cac2e3612c978b5fbcf837d78a4a0bff5ba5166a
      body: ""
      footer:
        Closes: "#1385"
        closes: "#1385"
        Change-Type: minor
        change-type: minor
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 11.11.0
  date: 2020-07-28T20:38:18.462Z
- commits:
    - subject: Extract current state reporting to its own module
      hash: eeda7e3ab17dc68d592acc2e4f58f20dad9a677a
      body: ""
      footer:
        Change-type: minor
        change-type: minor
      author: Pagan Gazzard
      nested: []
  version: 11.10.0
  date: 2020-07-24T16:39:30.078Z
- commits:
    - subject: log detection of changes to VPN status
      hash: 41987d8e7600550da2d09e050db58c3ad969210e
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: dt-rush <nickp@balena.io>
        signed-off-by: dt-rush <nickp@balena.io>
      author: dt-rush
      nested: []
  version: 11.9.10
  date: 2020-07-23T23:22:47.297Z
- commits:
    - subject: "common: Fix bug where aliases might be undefined"
      hash: 60132134deffd770a40d1e6f18fdd87cb2f9f52e
      body: |
        Should handle the scenario where the network aliases are undefined.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Rich Bayliss <rich@balena.io>
        signed-off-by: Rich Bayliss <rich@balena.io>
      author: Rich Bayliss
      nested: []
  version: 11.9.9
  date: 2020-07-23T15:45:31.161Z
- commits:
    - subject: Bump lodash from 4.17.15 to 4.17.19
      hash: 01655b595555ae63ea1b70d623451c9ad3ec03dd
      body: >
        Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to
        4.17.19.

        - [Release notes](https://github.com/lodash/lodash/releases)

        - [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: dependabot[bot] <support@github.com>
        signed-off-by: dependabot[bot] <support@github.com>
      author: dependabot[bot]
      nested: []
  version: 11.9.8
  date: 2020-07-22T14:44:00.974Z
- commits:
    - subject: "docker-utils: Test network gateway determination logic"
      hash: 6ef3bd2362ebd185053a351490f6561ec10b84d8
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Rich Bayliss <rich@balena.io>
        signed-off-by: Rich Bayliss <rich@balena.io>
      author: Rich Bayliss
      nested: []
    - subject: Fix docker-util using incorrect reference for function
      hash: 3b3babfd62868e986788d6c2f4fcede915fb4711
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
      nested: []
  version: 11.9.7
  date: 2020-07-22T12:19:06.693Z
- commits:
    - subject: Fix purge and restart invocations by providing instanced apps
      hash: d14d8f31ccee62fa8cec88209cc3674a1b280e34
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
      nested: []
    - subject: Fix purge invocations of new singletons
      hash: d2a7d3b9653a2afbd8eca009b75871cf54dbf3ac
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
      nested: []
  version: 11.9.6
  date: 2020-07-20T17:25:37.311Z
- commits:
    - subject: Update ESR version information
      hash: c2b534a51b3863bf3c787db00c7299517224464f
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
      nested: []
  version: 11.9.5
  date: 2020-07-14T14:31:17.340Z
- commits:
    - subject: "bug: Fix unhandled promise rejection"
      hash: 898c7e71dae28aa046bdd3e075ecf0d6aa364142
      body: |
        When invoking iptables-restore it can fail. This wasn't handled
        and this makes sure that it fails gracefully.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Rich Bayliss <rich@balena.io>
        signed-off-by: Rich Bayliss <rich@balena.io>
      author: Rich Bayliss
      nested: []
  version: 11.9.4
  date: 2020-07-13T12:07:37.513Z
- commits:
    - subject: Fix bug where a promise was not resolved in db-format
      hash: 270f9f854add8db84fadc0a96e127a6035128aef
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Convert deviceConfig module to a singleton
      hash: 5337c0102cd9bdbaaa41812fb1b8c44796ae9898
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 11.9.3
  date: 2020-07-08T11:07:16.427Z
- commits:
    - subject: "avahi: Control with HOST_DISCOVERABILITY"
      hash: 03ca0ee9add9872b5577833971b43682ae6cc427
      body: |
        The host config variable HOST_DISCOVERABILITY can be set to
        true or false, controlling the state of the avahi service. This
        determines if the device advertises it's presence over mDNS.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Rich Bayliss <rich@balena.io>
        signed-off-by: Rich Bayliss <rich@balena.io>
      author: Cameron Diver
  version: 11.9.2
  date: 2020-07-06T12:04:46.333Z
- commits:
    - subject: "firewall: Add Host Firewall functionality"
      hash: 28c5a44e714a3f155fbd528d0ec672dec1d96ef8
      body: |
        Controlled by BALENA_HOST_FIREWALL_MODE, the firewall can
        either be 'on' or 'off'.

        - In the 'off' state, all traffic is allowed.
        - In the 'on' state, only traffic for the core services provided
          by Balena is allowed.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Rich Bayliss <rich@balena.io>
        signed-off-by: Rich Bayliss <rich@balena.io>
      author: Rich Bayliss
  version: 11.9.1
  date: 2020-07-01T17:45:22.146Z
- commits:
    - subject: Added support for configuring FDT directive in extlinux.conf
      hash: 59fc589eb23bdf8c79c677734d2792b93380c94c
      body: ""
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
  version: 11.9.0
  date: 2020-06-23T19:58:27.412Z
- commits:
    - subject: "state: Report device MAC address to the API"
      hash: 1b91ef3405d1d2013cbdd6381ed69256c6432d18
      body: |
        When reporting device information, send the MAC address of any
        interfaces on the system. Also expose in the Supervisor API at
        the route GET /v1/device.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Rich Bayliss <rich@balena.io>
        signed-off-by: Rich Bayliss <rich@balena.io>
      author: Rich Bayliss
  version: 11.8.4
  date: 2020-06-22T09:43:53.370Z
- commits:
    - subject: Update pinejs-client-request to 7.x
      hash: c15f77434ba3b957dc55f5df207026eb2028bd57
      body: |
        Update pinejs-client-request from 5.2.0 to 7.0.0
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
      nested:
        - commits:
            - subject: Empty commit to attempt republish
              hash: 72c0214672a1e552cb8fa63f9a96aa47b5db19b1
              body: ""
              footer:
                Change-type: patch
                change-type: patch
              author: Pagan Gazzard
            - subject: Switch from bluebird-lru-cache to lru-cache for caching
              hash: e69b9cb202140de25f5b6cc9258cccb71854fd6f
              body: ""
              footer:
                Change-type: major
                change-type: major
              author: Pagan Gazzard
            - subject: Update target to es2018
              hash: 1c2e8725305219f0c144cca583a1e8225d64c503
              body: ""
              footer:
                Change-type: major
                change-type: major
              author: Pagan Gazzard
            - subject: Remove bluebird dependency
              hash: b066e578427c179c9cb7fca6dda2e2e17da01a46
              body: ""
              footer:
                Change-type: patch
                change-type: patch
              author: Pagan Gazzard
            - subject: Convert to async/await
              hash: 3ca7a939c2e25861cf3484b1ef31f7ccbec9369a
              body: ""
              footer:
                Change-type: major
                change-type: major
              author: Pagan Gazzard
            - subject: Update to pinejs-client-core 6.x
              hash: 33f1f63efbb0a4a1c9fae0f45c4f2e00e59572f2
              body: |
                Update pinejs-client-core from 5.8.0 to 6.0.0
              footer:
                Change-type: major
                change-type: major
              author: Pagan Gazzard
              nested:
                - commits:
                    - subject: Increase minimum es version to es2015
                      hash: 52f3a97dc2b5aba07090a688fcd7afa2d2d789d8
                      body: ""
                      footer:
                        Change-type: major
                        change-type: major
                      author: Pagan Gazzard
                    - subject: Convert to async/await
                      hash: b6c6d1f1dc9e9b05e60964a87e1677b0b4cc74eb
                      body: ""
                      footer:
                        Change-type: major
                        change-type: major
                      author: Pagan Gazzard
                    - subject: Remove now unnecessary PinejsClientCoreFactory
                      hash: 35adea3c7c33a74920652ea547e8d649592e86fc
                      body: ""
                      footer:
                        Change-type: major
                        change-type: major
                      author: Pagan Gazzard
                    - subject: Switch to using native promises
                      hash: d87e4570be580dccb1e511068beaf79878e66d06
                      body: ""
                      footer:
                        Change-type: major
                        change-type: major
                      author: Pagan Gazzard
                    - subject: Drop support for deprecated request overrides
                      hash: 5aa89779bb06b9437382439b324f91d5fa9061b7
                      body: ""
                      footer:
                        Change-type: major
                        change-type: major
                      author: Pagan Gazzard
                    - subject: Drop support for deprecated `query` method
                      hash: 2a0d315b111832c0a15a4cc581cd3f3cb5c32cd7
                      body: ""
                      footer:
                        Change-type: major
                        change-type: major
                      author: Pagan Gazzard
                    - subject: Drop support for deprecated string based requests
                      hash: 493a2bc970923eb8d79e684e10d4ec433803a20c
                      body: ""
                      footer:
                        Change-type: major
                        change-type: major
                      author: Pagan Gazzard
                    - subject: Use `;` for expand options instead of `&`
                      hash: 62f0f4c406ce87b2ba6d4a7f74c88107ac3144cb
                      body: ""
                      footer:
                        Change-type: major
                        change-type: major
                      author: Pagan Gazzard
                  version: pinejs-client-js-6.0.0
                  date: 2020-06-04T12:58:07.304Z
          version: pinejs-client-request-7.0.0
          date: 2020-06-16T10:57:45.926Z
        - commits:
            - subject: Lazy load bluebird-lru-cache and lodash
              hash: a2b6b74600b9ddecc98cb90a5d2d9ca28495b835
              body: ""
              footer:
                Change-type: minor
                change-type: minor
              author: Pagan Gazzard
          version: pinejs-client-request-6.2.0
          date: 2020-06-08T15:32:03.904Z
        - commits:
            - subject: Convert some lodash usage to native versions
              hash: 93aaa1f518859bbe08a5746fbb1668c9fd446ae3
              body: ""
              footer:
                Change-type: patch
                change-type: patch
              author: Pagan Gazzard
          version: pinejs-client-request-6.1.4
          date: 2020-06-08T11:53:33.697Z
        - commits:
            - subject: Remove unused dependencies
              hash: 58a13f0fbe9692be029812db19f22aac7bd6f0f9
              body: ""
              footer:
                Change-type: patch
                change-type: patch
              author: Pagan Gazzard
          version: pinejs-client-request-6.1.3
          date: 2020-06-04T15:00:55.621Z
        - commits:
            - subject: Update dependencies
              hash: 0087b900328f1ba02699fc75664b0d23eb433e67
              body: |
                Update pinejs-client-core from 5.6.11 to 5.8.0
              footer:
                Change-type: patch
                change-type: patch
              author: Pagan Gazzard
              nested:
                - commits:
                    - subject: Generate optional builds for es2015/es2018 as well as the default es5
                      hash: 510682b0e2a9d2a338aa977bd4782ec60fc5b196
                      body: ""
                      footer:
                        Change-type: minor
                        change-type: minor
                      author: Pagan Gazzard
                  version: pinejs-client-js-5.8.0
                  date: 2020-05-29T13:12:21.476Z
                - commits:
                    - subject: Update dependencies
                      hash: 8141a6dfe6edd4c7e432d85c3533e6e02a43e2ff
                      body: ""
                      footer:
                        Change-type: patch
                        change-type: patch
                      author: Pagan Gazzard
                  version: pinejs-client-js-5.7.1
                  date: 2020-05-25T16:57:46.154Z
                - commits:
                    - subject: Make transformGetResult a method , to ease overriding the get method
                      hash: f267d4bfc006d1aabfb0ed1f79c9234ecb5c7d5f
                      body: ""
                      footer:
                        Change-type: minor
                        change-type: minor
                        See: https://github.com/balena-io/balena-api/pull/2532
                        see: https://github.com/balena-io/balena-api/pull/2532
                      author: Thodoris Greasidis
                  version: pinejs-client-js-5.7.0
                  date: 2020-04-15T13:13:28.186Z
          version: pinejs-client-request-6.1.2
          date: 2020-06-02T15:55:01.003Z
        - commits:
            - subject: Add linting
              hash: 988d58f708da1bd1a4389a1a2129fa5d30706065
              body: ""
              footer:
                Change-type: patch
                change-type: patch
              author: Pagan Gazzard
          version: pinejs-client-request-6.1.1
          date: 2020-03-19T21:47:11.959Z
        - commits:
            - subject: Move require-npm4-to-publish to dev dependencies
              hash: 084a19f61c408643d9a9448c1d656bed7791fec5
              body: ""
              footer:
                Change-type: patch
                change-type: patch
              author: Pagan Gazzard
            - subject: Update dependencies
              hash: 1b06cd6c26b60a4d043ad1aaaf6e4ab9b822ace2
              body: |
                Update pinejs-client-core from 5.3.6 to 5.6.11
                Update typed-error from 3.1.0 to 3.2.0
              footer:
                Change-type: minor
                change-type: minor
              author: Pagan Gazzard
              nested:
                - commits:
                    - subject: update deps and specify minimum engine requirements
                      hash: 22f293afc187e67b88dab280951eb6e2bb504b24
                      body: ""
                      footer:
                        Change-type: minor
                        change-type: minor
                        Signed-off-by: Will Boyce <will@balena.io>
                        signed-off-by: Will Boyce <will@balena.io>
                      author: Will Boyce
                  version: typed-error-3.2.0
                  date: 2019-11-20T09:52:39.017Z
                - commits:
                    - subject: "🐛: Fix missing `deprecated.getStringParams` function"
                      hash: 53edb7e7485acd4310e9b04291894f6ab746285a
                      body: |
                        The function `deprecated.getStringParams` was used, but
                        not defined.
                      footer:
                        Change-type: patch
                        change-type: patch
                        Signed-off-by: Andreas Fitzek <andreas@balena.io>
                        signed-off-by: Andreas Fitzek <andreas@balena.io>
                      author: Andreas Fitzek
                  version: pinejs-client-js-5.6.11
                  date: 2020-02-21T13:35:51.993Z
                - commits:
                    - subject: Update to resin-lint 3.x
                      hash: f1b415154cc21b9880ad8ee1134ea9340220aba2
                      body: ""
                      footer:
                        Change-type: patch
                        change-type: patch
                      author: Pagan Gazzard
                  version: pinejs-client-js-5.6.10
                  date: 2020-02-14T15:37:12.741Z
                - commits:
                    - subject: "CircleCI: Remove deploy job as it's handled by balenaCI"
                      hash: d6c9a485e0da5f6aa600597b6d076a8dce411df7
                      body: ""
                      footer:
                        Change-type: patch
                        change-type: patch
                      author: Pagan Gazzard
                  version: pinejs-client-js-5.6.9
                  date: 2020-02-14T15:27:02.200Z
                - commits:
                    - subject: Add the missing `method` on the post method
                      hash: 2f649c3157a50277f6e168a64abb1593ac9d7a4f
                      body: |
                        Fixes a regression of v5.6.7.
                      footer:
                        Change-type: patch
                        change-type: patch
                        Signed-off-by: Thodoris Greasidis <thodoris@balena.io>
                        signed-off-by: Thodoris Greasidis <thodoris@balena.io>
                      author: Thodoris Greasidis
                  version: pinejs-client-js-5.6.8
                  date: 2020-02-14T14:59:02.633Z
                - commits:
                    - subject: Deprecate request overrides
                      hash: 84fa00ab60a98bbe56885ee5fabcccfc876a86d6
                      body: ""
                      footer:
                        Change-type: patch
                        change-type: patch
                      author: Pagan Gazzard
                    - subject: Deprecate queries using a string url
                      hash: 8cd9be6b0642ff5b1cba0596f827a74fd76bbff5
                      body: ""
                      footer:
                        Change-type: patch
                        change-type: patch
                      author: Pagan Gazzard
                    - subject: Deprecate `query` in favor of `get`
                      hash: ab77d10cad0a57914018b76c9755deddb3e078ef
                      body: ""
                      footer:
                        Change-type: patch
                        change-type: patch
                      author: Pagan Gazzard
                  version: pinejs-client-js-5.6.7
                  date: 2020-02-14T12:52:12.207Z
                - commits:
                    - subject: Allow resource/$count in $filter
                      hash: 7eac38f1ed6a3bcdf1e6c4be5dde50aca953359e
                      body: ""
                      footer:
                        Change-type: patch
                        change-type: patch
                      author: Pagan Gazzard
                  version: pinejs-client-js-5.6.6
                  date: 2020-02-14T12:35:22.507Z
                - commits:
                    - subject: Remove `defaults` helper in favour of `??`
                      hash: 806852bceb07a858572511609dc88ea0b748038e
                      body: ""
                      footer:
                        Change-type: patch
                        change-type: patch
                      author: Pagan Gazzard
                  version: pinejs-client-js-5.6.5
                  date: 2020-01-30T17:09:03.006Z
                - commits:
                    - subject: Avoid allocations when destroying a poll
                      hash: 8f397a83803ae43d19331f4c32952384ba9e7fe6
                      body: ""
                      footer:
                        Change-type: patch
                        change-type: patch
                      author: Pagan Gazzard
                  version: pinejs-client-js-5.6.4
                  date: 2020-01-30T16:25:12.292Z
                - commits:
                    - subject: Improve `RawFilter` typing
                      hash: 2006d4e7f0fecbb99357b82215da28978194db41
                      body: ""
                      footer:
                        Change-type: patch
                        change-type: patch
                      author: Pagan Gazzard
                  version: pinejs-client-js-5.6.3
                  date: 2020-01-30T12:59:22.535Z
                - commits:
                    - subject: Update dependencies
                      hash: e7314acbdd029ece267a4568bf15cb5dc333eec1
                      body: ""
                      footer:
                        Change-type: patch
                        change-type: patch
                      author: Pagan Gazzard
                  version: pinejs-client-js-5.6.2
                  date: 2020-01-29T21:12:32.246Z
                - commits:
                    - subject: Switch most CODEOWNERS entries to a team
                      hash: 3ef7e0db285ae54f96aee3f52319ac8d8c4d61e8
                      body: ""
                      footer:
                        Change-type: patch
                        change-type: patch
                      author: Pagan Gazzard
                  version: pinejs-client-js-5.6.1
                  date: 2020-01-22T16:38:22.045Z
                - commits:
                    - subject: Add 'upsert' method supporting natural keys, requires Pinejs ^10.19.1
                      hash: c8ebfceec3ecc1cc57ee6942db35730c6d993192
                      body: |
                        Detects unique constrain errors by 409 statusCodes.
                        Because of this, the upsert() method is only
                        supported when Pinejs ^10.19.0 is used.
                      footer:
                        Resolves: "#77"
                        resolves: "#77"
                        Change-type: minor
                        change-type: minor
                        Signed-off-by: Thodoris Greasidis <thodoris@balena.io>
                        signed-off-by: Thodoris Greasidis <thodoris@balena.io>
                      author: Thodoris Greasidis
                  version: pinejs-client-js-5.6.0
                  date: 2019-07-12T20:46:17.091Z
                - commits:
                    - subject: Remove unnecessary `string` type that is handled by the `Params` type
                      hash: 0ab1242860aa8b3ed4162a5ee25081c640297676
                      body: ""
                      footer:
                        Change-type: patch
                        change-type: patch
                      author: Pagan Gazzard
                  version: pinejs-client-js-5.5.4
                  date: 2019-06-18T14:46:38.983Z
                - commits:
                    - subject: Use an .npmrc to prevent creating a package-lock on each install
                      hash: 993c4ae09c3ba50e1d48e4156e86a7c890e54749
                      body: ""
                      footer:
                        Change-type: patch
                        change-type: patch
                        Signed-off-by: Thodoris Greasidis <thodoris@balena.io>
                        signed-off-by: Thodoris Greasidis <thodoris@balena.io>
                      author: Thodoris Greasidis
                  version: pinejs-client-js-5.5.3
                  date: 2019-06-18T10:24:38.995Z
                - commits:
                    - subject: Add some type casting so that it compiles on TypeScript 3.5
                      hash: 695c053ceab9b146a8b755f9b041eb03e70b5914
                      body: ""
                      footer:
                        Resolves: "#79"
                        resolves: "#79"
                        Change-type: patch
                        change-type: patch
                        Signed-off-by: Thodoris Greasidis <thodoris@balena.io>
                        signed-off-by: Thodoris Greasidis <thodoris@balena.io>
                      author: Thodoris Greasidis
                  version: pinejs-client-js-5.5.2
                  date: 2019-06-10T10:48:07.772Z
                - commits:
                    - subject: Fix downstream declaration creation errors due to `Dictionary`
                      hash: a8a39edff8cc7e1d05fb9b67037718970e94296c
                      body: ""
                      footer:
                        Change-type: patch
                        change-type: patch
                      author: Pagan Gazzard
                  version: pinejs-client-js-5.5.1
                  date: 2019-05-15T13:32:13.920Z
                - commits:
                    - subject: Add a prepare method that prepares a query into a function
                      hash: eb7eccca7d90c453710575ebdf3adb9ef56835a7
                      body: ""
                      footer:
                        Change-type: minor
                        change-type: minor
                      author: Pagan Gazzard
                  version: pinejs-client-js-5.5.0
                  date: 2019-05-15T11:51:46.450Z
                - commits:
                    - subject: Add CODEOWNERS
                      hash: e01174008f812e0c24ec1036aa1f9ff0bc716e85
                      body: ""
                      footer:
                        Change-type: patch
                        change-type: patch
                        Signed-off-by: Gergely Imreh <gergely@balena.io>
                        signed-off-by: Gergely Imreh <gergely@balena.io>
                      author: Gergely Imreh
                  version: pinejs-client-js-5.4.1
                  date: 2019-05-10T10:14:00.677Z
                - commits:
                    - subject: Add support for parameter aliases in resource ids
                      hash: a4e6a640a3ced56bcd3ef7bf22770338e089a90d
                      body: ""
                      footer:
                        Change-type: minor
                        change-type: minor
                      author: Pagan Gazzard
                  version: pinejs-client-js-5.4.0
                  date: 2019-05-10T09:57:46.863Z
                - commits:
                    - subject: Deduplicate transformation of GET results
                      hash: dd856e24072f652684adf63af97408ee0ba7389c
                      body: ""
                      footer:
                        Change-type: patch
                        change-type: patch
                      author: Pagan Gazzard
                  version: pinejs-client-js-5.3.10
                  date: 2019-05-10T09:44:09.422Z
                - commits:
                    - subject: Simplify how we expose types, which means `subscribe` is now exposed
                      hash: f81e0cc59e75e0f9ffc71d9f122b9cfab9c05165
                      body: ""
                      footer:
                        Change-type: patch
                        change-type: patch
                      author: Pagan Gazzard
                  version: pinejs-client-js-5.3.9
                  date: 2019-05-10T08:57:16.276Z
                - commits:
                    - subject: Add automatic formatting via prettier
                      hash: a345d32f295acfa8ed4e5b815c24e1e7fdb335f2
                      body: ""
                      footer:
                        Change-type: patch
                        change-type: patch
                      author: Pagan Gazzard
                  version: pinejs-client-js-5.3.8
                  date: 2019-05-09T17:38:43.260Z
                - commits:
                    - subject: Remove node 4 build, add node 12
                      hash: 8d549277d80746feadbdd8a6bba37eb076270440
                      body: ""
                      footer:
                        Change-type: patch
                        change-type: patch
                      author: Pagan Gazzard
                    - subject: Add .versionbot/CHANGELOG.yml for downstream changelogs
                      hash: 067bedf65e86a902b7334ed6e5f117d6ac41afde
                      body: ""
                      footer:
                        Change-type: patch
                        change-type: patch
                      author: Pagan Gazzard
                  version: pinejs-client-js-5.3.7
                  date: 2019-05-08T15:41:50.201Z
          version: pinejs-client-request-6.1.0
          date: 2020-03-19T12:19:09.392Z
        - commits:
            - subject: Add CODEOWNERS
              hash: efc40c853d4392b866eb3784839871fad086fccd
              body: ""
              footer:
                Change-type: patch
                change-type: patch
              author: Pagan Gazzard
          version: pinejs-client-request-6.0.3
          date: 2020-01-22T16:35:52.630Z
        - commits:
            - subject: Add node 12 tests
              hash: 624b1efadfbb920d718bd2f54f99e8eef0e5c645
              body: ""
              footer:
                Change-type: patch
                change-type: patch
              author: Pagan Gazzard
            - subject: Add upstream for pinejs-client-core
              hash: 33dc1299939483534686f52e903bb27f8a08b543
              body: ""
              footer:
                Change-type: patch
                change-type: patch
              author: Pagan Gazzard
          version: pinejs-client-request-6.0.2
          date: 2019-05-08T15:57:24.879Z
        - commits:
            - subject: Update target to es2016, part of/fixing the typed-error bump
              hash: 6025bf882f6f2675b321571f327f59a4908da539
              body: ""
              footer:
                Change-type: patch
                change-type: patch
              author: Pagan Gazzard
          version: pinejs-client-request-6.0.1
          date: 2019-04-23T20:43:52.266Z
        - commits:
            - subject: "typed-error: Update to v3.1.0"
              hash: 82e50ac9992b3a157360eef5163f43a90fa9feea
              body: |
                Update typed error from 2.0.0 to 3.1.0
              footer:
                Change-type: major
                change-type: major
                Signed-off-by: Will Boyce <will@balena.io>
                signed-off-by: Will Boyce <will@balena.io>
              author: Will Boyce
          version: pinejs-client-request-6.0.0
          date: 2019-04-17T15:08:00.745Z
  version: 11.8.3
  date: 2020-06-18T12:26:43.171Z
- commits:
    - subject: Make service-manager module a singleton
      hash: 0e8d92e08af5f18fce9aa9e3e1e7057c98dee1c3
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Make volume-manager module a singleton
      hash: adaad786af161a7a3cdf61f2c63926e702fef790
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Make network-manager module a singleton
      hash: 8fc97b9de89392bb9e6fd562e12d261ced3990cb
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Add supervisor upgrade document
      hash: 989ec83a27621cab6c53dd026c2407dfe1b1b179
      body: ""
      footer:
        Connects-to: https://github.com/balena-io/balena-io/issues/2157
        connects-to: https://github.com/balena-io/balena-io/issues/2157
        Change-type: patch
        change-type: patch
        Signed-off-by: Hugh Brown <hugh@balena.io>
        signed-off-by: Hugh Brown <hugh@balena.io>
      author: Hugh Brown
  version: 11.8.2
  date: 2020-06-17T14:59:07.731Z
- commits:
    - subject: Update webpack dependencies
      hash: e1fb8683f4687aa0844bf73780916db34e3ebd3d
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
  version: 11.8.1
  date: 2020-06-16T12:08:37.495Z
- commits:
    - subject: Use API v6
      hash: 1dccbaecd8a6cd8bf551e3b56131066e9de9ed35
      body: ""
      footer:
        See: https://github.com/balena-io/open-balena/issues/80
        see: https://github.com/balena-io/open-balena/issues/80
        Change-type: minor
        change-type: minor
      author: Akis Kesoglou
  version: 11.8.0
  date: 2020-06-16T09:16:47.483Z
- commits:
    - subject: Db-format module code fixups
      hash: 695d91d4948aa5b89c602135ccc8fba8321fd8bd
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 11.7.3
  date: 2020-06-15T09:55:57.277Z
- commits:
    - subject: Add label to expose gpu to container
      hash: ae646a07ec6a6c96f7cb91f1d37898a94dbab47a
      body: |
        In the absence of an upstream implementation of the DeviceRequest API introduced
        as part of Docker API v1.40 we roll our own using a feature label.

        As per my comment in the code, we fall back to the default behavior of
        docker cli's `--gpu` and request single device with the `gpu` capabilty.
        The only implementation at the moment is the NVIDIA driver; here:
        https://github.com/balena-os/balena-engine/blob/master/daemon/nvidia_linux.go

        Background on the composefile implementation:
        https://github.com/compose-spec/compose-spec/issues/74
        https://github.com/docker/compose/issues/6691
      footer:
        Change-type: patch
        change-type: patch
        Connects-to: https://github.com/balena-os/balena-jetson/pull/75
        connects-to: https://github.com/balena-os/balena-jetson/pull/75
        Signed-off-by: Robert Günzler <robertg@balena.io>
        signed-off-by: Robert Günzler <robertg@balena.io>
      author: Robert Günzler
  version: 11.7.2
  date: 2020-06-11T12:11:35.793Z
- commits:
    - subject: Move database app processing out to its own module
      hash: b31d5007fba001fcb71f5103447823f9a27bbfaa
      body: |
        This is part of the work to make the application-manager module much
        less monolithic, in preperation for system apps and more generally
        multi-app.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Make target-state-cache a singleton
      hash: c0e170c61f05a8fc01dc167276ccb041d6d2d846
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 11.7.1
  date: 2020-06-11T10:57:36.941Z
- commits:
    - subject: Respect an initialDeviceName field in the config.json
      hash: b5918f0d84cea641c7ab9aae58aff99454d10253
      body: ""
      footer:
        Closes: "#909"
        closes: "#909"
        Change-type: minor
        change-type: minor
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 11.7.0
  date: 2020-06-10T12:30:37.459Z
- commits:
    - subject: Make images module a singleton
      hash: 2b3dc2fbcef63ae2024fe5fe41f30b0d56357943
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 11.6.6
  date: 2020-06-10T10:32:38.006Z
- commits:
    - subject: "fix: API auth missing on state GET/PATCH"
      hash: b89425c6079b74c709ef9872c6fc53726ffda6d3
      body: |
        When performing a state GET/PATCH the authentication header was being
        missed off.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Rich Bayliss
        signed-off-by: Rich Bayliss
      author: Rich Bayliss
  version: 11.6.5
  date: 2020-06-09T14:06:37.184Z
- commits:
    - subject: Refactored @ts-ignore to @ts-expect-error in test file
      hash: ffe814e4479a962979e759dfec8618dbfb53008b
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
  version: 11.6.4
  date: 2020-06-08T17:28:46.843Z
- commits:
    - subject: Make logger module a singleton
      hash: 651e48b1bd8e9a9d356b63f8cb05aaeba622840d
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Fix exponential backoff for state polling
      hash: e37b52dd689692eeca818907cf0d7e5876bec0b3
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
  version: 11.6.3
  date: 2020-06-08T16:21:57.822Z
- commits:
    - subject: Make the event-tracker module a singleton
      hash: 389e14ec6b63cf4a997f0d25f8bbe6a6a435dd5c
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 11.6.2
  date: 2020-06-08T09:15:03.107Z
- commits:
    - subject: Convert all test files to TS and add .spec to all filenames
      hash: 9fc2e86322249cfbc17db446bcd204f617b0a63e
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
    - subject: "fix: Pin alpine python version"
      hash: 846545648bdc98392da7972558390f1ea26bfd24
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Rich Bayliss <rich@balena.io>
        signed-off-by: Rich Bayliss <rich@balena.io>
      author: Rich Bayliss
  version: 11.6.1
  date: 2020-06-05T22:42:07.292Z
- commits:
    - subject: Isolate target state fetching to its own module which emits on update
      hash: 17a5d8dd4918916c954990cfb9666754434ef527
      body: ""
      footer:
        Change-type: minor
        change-type: minor
      author: Pagan Gazzard
  version: 11.6.0
  date: 2020-06-03T21:39:57.630Z
- commits:
    - subject: Make docker module a singleton
      hash: aad20e2c2f9bf62dfb2e3092d898b100f911ecc5
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 11.5.3
  date: 2020-06-02T16:59:27.552Z
- commits:
    - subject: Make the config module a singleton
      hash: ff4a31a0e6269b823a04eeda2f433665617f583c
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Co-authored-by: Pagan Gazzard <page@balena.io>
        co-authored-by: Pagan Gazzard <page@balena.io>
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 11.5.2
  date: 2020-06-02T13:31:37.056Z
- commits:
    - subject: Remove unused dependencies and dedupe
      hash: 6290993a79aa2231ac19bbe80a72af72cd8ae72e
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 11.5.1
  date: 2020-06-01T08:52:49.304Z
- commits:
    - subject: Refactor device-state healthchecks to log reason for failure
      hash: 5550a3a330b6a27addd940c185dc7d489cd89464
      body: ""
      footer:
        Closes: "#1292"
        closes: "#1292"
        Change-type: minor
        change-type: minor
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
  version: 11.5.0
  date: 2020-05-29T20:26:07.486Z
- commits:
    - subject: Update dependencies
      hash: 1decd87c21de6c6b2baf7cb9a93141c8d097b874
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
  version: 11.4.17
  date: 2020-05-29T18:26:52.490Z
- commits:
    - subject: Make the db module a singleton
      hash: 1d7381327e3114c0d005316846429d26b01a3e4c
      body: >
        We were treating the database class as a singleton, but still having to
        pass

        around the db instance. Now we can simply require the db module and have

        access to the database handle.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 11.4.16
  date: 2020-05-29T14:03:57.770Z
- commits:
    - subject: Check for ApiError before using it as such
      hash: 972b896c95daf1305468137aefe1e12ead0d59ee
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 11.4.15
  date: 2020-05-26T13:47:47.339Z
- commits:
    - subject: check for 409 status code, rather than string matching uuid conflicts
      hash: eaaa9c257e750295ab6d464a7e1d2578297df84f
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 11.4.14
  date: 2020-05-21T19:01:36.060Z
- commits:
    - subject: Use safeStateClone to avoid call-stack exceeding errors
      hash: 87278c0d8c56a9c05511db83499f7476efca0edd
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 11.4.13
  date: 2020-05-21T15:49:55.857Z
- commits:
    - subject: Improved handling of invalid appId in V2 state endpoint
      hash: db7c27037cb3cc1e5f3ef8fbc676e0ee4a2ac0a1
      body: ""
      footer:
        Closes: "#1294"
        closes: "#1294"
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
  version: 11.4.12
  date: 2020-05-19T14:58:36.939Z
- commits:
    - subject: Switch to balenaApi for the state patch as patching cannot be cached
      hash: fb90042c3955e9a1a177076a711a12e226e0ab49
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
  version: 11.4.11
  date: 2020-05-18T18:20:33.615Z
- commits:
    - subject: Fix leftover spurious return from typescript conversion
      hash: 6972dcd92d36576517681685a129e89a8a06f722
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 11.4.10
  date: 2020-05-18T14:23:19.048Z
- commits:
    - subject: Catch errors in the target state poll so polling will always continue
      hash: dc187f0036875345ab489d14889c488eead24dc2
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
  version: 11.4.9
  date: 2020-05-18T13:17:23.537Z
- commits:
    - subject: Avoid querying `instantUpdates` on every state poll
      hash: afae5d15d49a75168ebe6d4f8911e96918d0da5e
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
  version: 11.4.8
  date: 2020-05-18T12:25:53.833Z
- commits:
    - subject: Fix default request options
      hash: b05d597ade83fcb1a58021ade0c11f70d232a39f
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
  version: 11.4.7
  date: 2020-05-16T13:08:14.505Z
- commits:
    - subject: Remove CoffeeScript tests and all CoffeeScript tools
      hash: 466c7999dbbe19acf7bfc2dff260778d229b5524
      body: ""
      footer:
        Closes: "#1318"
        closes: "#1318"
        Change-Type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
  version: 11.4.6
  date: 2020-05-15T17:04:23.719Z
- commits:
    - subject: Update to @balena/lint 5.x
      hash: 758f3caa48a53c00dd3230fe97e2f704968c4eb6
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
  version: 11.4.5
  date: 2020-05-15T11:11:04.464Z
- commits:
    - subject: Add a random offset to the poll interval with each poll
      hash: 58c6a69e5a6045e898ce5748089f4dcad7d12bc3
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#1242"
        closes: "#1242"
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 11.4.4
  date: 2020-05-15T09:36:33.693Z
- commits:
    - subject: Cache service names in local log backend
      hash: 0bceffffb61a5970db0293a8f6d83fe8015163ef
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 11.4.3
  date: 2020-05-14T08:43:43.453Z
- commits:
    - subject: Update engine information in package.json
      hash: bbfd87d3257dec064f62dc05ee7d523593e8f415
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 11.4.2
  date: 2020-05-13T08:49:32.854Z
- commits:
    - subject: Correctly check if value is a valid Integer
      hash: 838c1ebba4c3d4cba31f5ef233f09020fa3d03f7
      body: ""
      footer:
        Closes: "#1180"
        closes: "#1180"
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
  version: 11.4.1
  date: 2020-05-12T16:50:20.376Z
- commits:
    - subject: Added endpoint to check if VPN is connected
      hash: 8295858b328d885782c6f0cead44248b1f17fd50
      body: ""
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
  version: 11.4.0
  date: 2020-05-12T01:24:43.749Z
- commits:
    - subject: Fixed stubs for test suite
      hash: f6aa4dd015e8bd07c795f6c1e70adf99a6ffec94
      body: ""
      footer:
        Closes: "#1280"
        closes: "#1280"
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
  version: 11.3.11
  date: 2020-05-11T22:19:04.161Z
- commits:
    - subject: Added more documentation to help new contributors start developing
      hash: 856e7cba2cc767ded0eeb5186a1cce19ea447735
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
  version: 11.3.10
  date: 2020-05-11T19:32:42.867Z
- commits:
    - subject: Fix dindctl script and update balenaos-in-container
      hash: c317b02aef0bd2496f39ab245fa7c670e806f2e3
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#1306"
        closes: "#1306"
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 11.3.9
  date: 2020-05-11T13:16:55.781Z
- commits:
    - subject: Remove unnecessary config.json keys
      hash: 913418bb37aafe1e66dcc9cd6e1f84e89dee4712
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
  version: 11.3.8
  date: 2020-05-08T11:59:18.907Z
- commits:
    - subject: "CI: Use node 12 for tests to match runtime version"
      hash: 095f67c83011b60a06d75c5f0432937b93049ad5
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
    - subject: "CI: Use docker 18 client to match remote"
      hash: 8c1838fd5ea0d36787857d7040f8359d9618c061
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
  version: 11.3.7
  date: 2020-05-08T11:43:11.578Z
- commits:
    - subject: Move SupervisorAPI state change logs to appropriate functions
      hash: 60c07fc2fc2c352091995c2e599752fb12c05148
      body: ""
      footer:
        Closes: "#1277"
        closes: "#1277"
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
  version: 11.3.6
  date: 2020-05-07T17:53:21.140Z
- commits:
    - subject: Add 20k-ultra to codeowners
      hash: 74d012dc7f972ad30896007e78386a9c03224a05
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
  version: 11.3.5
  date: 2020-05-07T16:11:47.494Z
- commits:
    - subject: Don't use the openvpn alias to check VPN status
      hash: 8f09022d1fd85f63d760017e19150b0f23a2884a
      body: ""
      footer:
        Closes: "#1293"
        closes: "#1293"
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 11.3.4
  date: 2020-05-06T16:19:09.090Z
- commits:
    - subject: Use lstat rather than stat to avoid error with symlinks in sync
      hash: a7399fd78b914e6dccacd2935cd98f77176d65d8
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#1301"
        closes: "#1301"
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 11.3.3
  date: 2020-05-06T12:51:38.623Z
- commits:
    - subject: Move build files into build-conf and rename to build-utils
      hash: 02d088d351327ee5cab46029efb3ca7dce067fd6
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Fix knex migration require translation
      hash: 585bd803134db999425fae322fd4e7259caaa27a
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#1274"
        closes: "#1274"
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 11.3.2
  date: 2020-05-05T16:58:04.403Z
- commits:
    - subject: Remove legacy fallback to DROP rule in iptables
      hash: 31957566e5f5b21910988319472721ce2a931a38
      body: |
        This has not been necessary for a long time, and wwe can now remove it.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Add an ESTABLISHED flag to API iptables rules
      hash: 7b1f03ced509cdbdbea950e079ba2fab5c3699bb
      body: |
        This allows a response to an input with dport=`supevisor api port` and
        is required when the host OS is doing stateful firewalling.

        This should not affect things when stateful firewalling is not in
        effect, as the standard OUTPUT chain policy is ACCEPT, so we're just
        being explicit about it.
      footer:
        Change-type: patch
        change-type: patch
        Backport-to: next, current, sunset
        backport-to: next, current, sunset
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Add ESR information to repo.yml
      hash: 7f5395da885146ccf707fa52f0916afa7c832eeb
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 11.3.1
  date: 2020-05-05T11:18:20.667Z
- commits:
    - subject: Added Bearer Authorization spec
      hash: 2007a98940ea93f8064b045fce52133a4b48bac0
      body: ""
      footer:
        Closes: "#1249"
        closes: "#1249"
        Change-type: minor
        change-type: minor
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
  version: 11.3.0
  date: 2020-05-04T17:26:19.216Z
- commits:
    - subject: Added explanation README for running specific tests
      hash: a8ac3d0bc9344653d68c43fe3298171b379823d7
      body: ""
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
  version: 11.2.0
  date: 2020-04-30T19:05:08.820Z
- commits:
    - subject: Remove coverage running and modules
      hash: 6c360c2273ad2ab66ed254a1172f138d4c1430d8
      body: |
        The coverage no longer works with es2020, and nobody really pays any
        attention to the coverage as it is.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 11.1.11
  date: 2020-04-28T12:56:50.014Z
- commits:
    - subject: Update balena-register-device to fix provisioning
      hash: 7c27a561a8401054304fb967d5805b446e0cb3a1
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 11.1.10
  date: 2020-04-27T17:48:09.624Z
- commits:
    - subject: Added protocol to semver.org link
      hash: f9d7951cc5c1b20e989d04471a73d491118b3dfe
      body: ""
      footer:
        Closes: "#1256"
        closes: "#1256"
        Change-type: patch
        change-type: patch
        Signed-off-by: Miguel Casqueira <miguel@balena.io>
        signed-off-by: Miguel Casqueira <miguel@balena.io>
      author: Miguel Casqueira
  version: 11.1.9
  date: 2020-04-22T21:42:29.017Z
- commits:
    - subject: Actually remove dbus-native dependency
      hash: 508708aa32a56f23cc3a8df9e8071d340879a936
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 11.1.8
  date: 2020-04-21T13:30:10.250Z
- commits:
    - subject: Fix livepush predicate for POSIX sh in entry.sh
      hash: e2eba6280d19e5d74c9e3bb7bbfeea797378b08d
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 11.1.7
  date: 2020-04-21T11:59:25.840Z
- commits:
    - subject: Remove double printing of API status error
      hash: f599799950c9182cf97ef40dd894feb25c833e67
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 11.1.6
  date: 2020-04-21T08:57:07.074Z
- commits:
    - subject: ⤴️ Upgrade migrations to work with knex
      hash: f79142482921bf925e8bbf879b04ea533b5e01cd
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: 📄 Upgrade knex to avoid CVE-2019-10757
      hash: a43d71d1ac6d6d09b3fb6375a5ad97690fd979c1
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 11.1.5
  date: 2020-04-15T12:40:19.254Z
- commits:
    - subject: 🔎 Also watch js files during livepush
      hash: aa46be93d43540793245c0f6c2e895f32fb44e1e
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Clear changed files after successful livepush invocation
      hash: 4f2a534075ae2c6037070ef90f38a3066d08c53e
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Use livepush commands for copying and running dev specific steps
      hash: 67c3055fd4be341248a213828550b2b04ccc2677
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 11.1.4
  date: 2020-04-14T09:53:51.068Z
- commits:
    - subject: 🚀 Update supervisor to node12
      hash: 826eec2e4fe29860d23cf6c2276390b5c7f26a09
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 11.1.3
  date: 2020-04-13T13:40:05.787Z
- commits:
    - subject: Move from dbus-native to dbus
      hash: 37feb7e325ccf8639680e9a1f274b5755e5d35a2
      body: ""
      footer:
        Closes: "#1049"
        closes: "#1049"
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 11.1.2
  date: 2020-04-13T09:36:34.724Z
- commits:
    - subject: Update copy-webpack-plugin
      hash: e5f1a6b6ed7473ebfaa9f67ec0d258e9edef38b7
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
    - subject: Update ts-loader to 6.x
      hash: 59f300df629422284665b19b5cf9d931bfc30fcf
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
    - subject: Update fork-ts-checker-webpack-plugin to 4.x
      hash: 9ed36ec00651199dc92afee1a41e6ef5bb8534c7
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
  version: 11.1.1
  date: 2020-04-10T11:51:52.777Z
- commits:
    - subject: Support matching on device type within contracts
      hash: c9c0e650cb0f6655ac5a6c545e6b009c6fe6fa1c
      body: ""
      footer:
        Closes: "#1191"
        closes: "#1191"
        Change-type: minor
        change-type: minor
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 11.1.0
  date: 2020-04-09T09:47:30.853Z
- commits:
    - subject: Workaround a circular dependency
      hash: a59af6abe894000cd9cdc43d6963bdfc572e2f2b
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
  version: 11.0.9
  date: 2020-04-08T16:43:14.411Z
- commits:
    - subject: Link sqlite with a system sqlite for quicker builds
      hash: b6dde69c4f8b52fa4928242d5b04d9c203f64c65
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 11.0.8
  date: 2020-04-08T13:06:43.833Z
- commits:
    - subject: Convert application-manager.coffee to javascript
      hash: a2ec35456b8bc23641144fb0f7136d1d364f1fce
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
  version: 11.0.7
  date: 2020-04-08T11:18:00.532Z
- commits:
    - subject: Don't sync test files with livepush
      hash: 6dda0efa1fc54765450aac235393883f293b9bc5
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 11.0.6
  date: 2020-04-08T07:44:13.444Z
- commits:
    - subject: Add newTargetState event and use it for backup loading
      hash: 0a429f60a5dc93a428e5e88932e7d2bbcdb81b36
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 11.0.5
  date: 2020-04-07T13:53:23.726Z
- commits:
    - subject: Don't wrap UpdatesLockedErrors with a detailed error
      hash: dda627021991f45818ce723e0ee83c085b2c785d
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 11.0.4
  date: 2020-04-07T12:15:24.426Z
- commits:
    - subject: Allow spaces in volume definitions
      hash: 0950b66c52f2af10fcd44cb60f1b18007dd8aef0
      body: ""
      footer:
        Closes: "#1247"
        closes: "#1247"
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 11.0.3
  date: 2020-04-07T09:38:43.764Z
- commits:
    - subject: Update to balena-register-device 6.0.1
      hash: 81927d78612aa5944aab8a1322735e32c311d927
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
  version: 11.0.2
  date: 2020-04-06T16:47:10.397Z
- commits:
    - subject: Don't mangle names when minimising with webpack
      hash: 6fe3bfa4f2668fd364a977ccf4830e91b07fd47a
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 11.0.1
  date: 2020-04-06T12:39:03.990Z
- commits:
    - subject: ⚡ Update synchronisation scripts for supervisor development
      hash: 8ab63656bd483645fe0238fee2a1824158f3f453
      body: |
        We move the old sync.js script to tools/, and delete the now-broken
        sync-debug.js.

        We add a command `npm run sync`, which starts a livepush process
        with the supervisor on a device.
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: 🔧 Move to an alpine base image and drop i386-nlp support
      hash: 3690acbd70df726030b648a1c32a9b2b21015232
      body: >
        We also remove the Makefile to go to a simpler build system, as long
        with

        the retry_docker_push.sh file. We remove the rest of the automation
        tools

        as they're no longer used and update the circle.yml file.


        We also remove debug builds, as these aren't needed moving forward, and
        were

        only to enable livepush builds.
      footer:
        Change-type: major
        change-type: major
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 11.0.0
  date: 2020-04-06T12:07:51.757Z
- commits:
    - subject: Convert test/18-startup.coffee to typescript
      hash: d3221ca235aa0bd22191516f3eeebcabdf32e94b
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
    - subject: Convert test/19-compose-utils.coffee to javascript
      hash: 70b07055513f8948bf4c9867718ed4df3df61bc1
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
    - subject: Convert test/18-compose-network.coffee to javascript
      hash: 98e956831a4f8dc9e7e08bc98b21c0f8dd89e263
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
    - subject: Convert test/17-config-utils.spec.coffee to javascript
      hash: d3cf650ac48e94a1f7040b72b497e11945671015
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
    - subject: Convert test/16-ports.spec.coffee to typescript
      hash: dcb01cb8632c6a438e3989e6cbcdf2639d0367ba
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
    - subject: Convert test/15-conversions.spec.coffee to javascript
      hash: 515fb059f409ba33b0537c778e7d8191bf387a48
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
    - subject: Convert test/12-logger.spec.coffee to javascript
      hash: fd4cec31e7473d53ffa6a8650b341e7dec49a2cf
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
  version: 10.11.3
  date: 2020-04-02T13:29:44.498Z
- commits:
    - subject: Pass in deviceId when fetching device tags
      hash: 3c59944ce126570cc814626f20a9d67d6e67ff4d
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#1237"
        closes: "#1237"
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.11.2
  date: 2020-03-31T11:48:13.361Z
- commits:
    - subject: 🔧 Update resin-lint -> balena-lint in lintstaged
      hash: 2433f9a343d26233fff3d5bed14a548feded23ad
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.11.1
  date: 2020-03-30T17:41:43.882Z
- commits:
    - subject: Add BALENA_DEVICE_ARCH environment variable for containers
      hash: 3af89cd13fce04f43332c1d4502e2edf07a22141
      body: ""
      footer:
        Closes: "#1232"
        closes: "#1232"
        Change-type: minor
        change-type: minor
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.11.0
  date: 2020-03-30T15:42:53.398Z
- commits:
    - subject: Don't throw an error when getting an unhealthy state
      hash: 6b827a3f57f242e36e2a008632a28199ba569f63
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.10.15
  date: 2020-03-30T09:10:59.937Z
- commits:
    - subject: Convert src/device-api/common.coffee to javascript
      hash: 15fca80d2ddb16b368f0d2c34fb56b5b9bb6217f
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
  version: 10.10.14
  date: 2020-03-28T13:43:13.705Z
- commits:
    - subject: Switch to mz for the proxyvisor
      hash: 6ab69e1a69cf839538812aff3b9dc72c5a7937ef
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
    - subject: Convert proxyvisor to javascript
      hash: c1e5b98ae562851be61f74583743298803bf5195
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
  version: 10.10.13
  date: 2020-03-27T17:53:13.782Z
- commits:
    - subject: Remove unnecessary code from application-manager
      hash: 686f72ecf78d3f7a1b93102fd161cca8c562bfb7
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
    - subject: Switch to a named export for application-manager
      hash: 968e2ba0fb1dc99b826e8f32a23d10945697f340
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
  version: 10.10.12
  date: 2020-03-26T23:53:03.757Z
- commits:
    - subject: Convert device-api/v1 to javascript
      hash: 56c13fb96346e9100a60f1da881f6cf670c2793f
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
  version: 10.10.11
  date: 2020-03-25T12:19:20.194Z
- commits:
    - subject: Update livepush
      hash: 2ff8fccb5e71a851634f8bd668f63526f48ea4c4
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.10.10
  date: 2020-03-24T18:10:13.063Z
- commits:
    - subject: Add type checking for javascript files
      hash: 9c3295c91248f125e20ccfb10a064f2a2def0431
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
  version: 10.10.9
  date: 2020-03-24T16:40:43.161Z
- commits:
    - subject: Pin resin-cli-visuals to avoid build error of lzma-native
      hash: 35e73941c57ff63164cf0876fbb9509107e5e3f2
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Update dependencies
      hash: f2c606e1f9d37b6fefc345e42659b9ed364cba40
      body: |
        We also pin livepush in place while
        https://github.com/balena-io-modules/livepush/issues/67
        is fixed.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.10.8
  date: 2020-03-24T14:54:44.950Z
- commits:
    - subject: Avoid any transpilation of node_modules
      hash: 8fccc4a107fa965dfd60a861ba5e831c12632631
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
  version: 10.10.7
  date: 2020-03-24T12:46:30.864Z
- commits:
    - subject: Add transpilation for javascript files to ease node 6 compatibility
      hash: 8fc11df95912c6fd15d05c1cdc9fcdba854b2727
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
    - subject: Add a precheck that linting/tests work on node 10
      hash: 7945bb5a77f29775233dea2695e1c20d79545f57
      body: |
        This allows us to avoid re-linting for every arch
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
    - subject: Update to balena-lint and enable javascript linting
      hash: 81966446d97b3989e65be22b7d2dec379d3bcb32
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
  version: 10.10.6
  date: 2020-03-24T09:31:13.247Z
- commits:
    - subject: "Tests: Add missing await"
      hash: 7e6d32516de84dbaed222651e48895dc0136b2e7
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
  version: 10.10.5
  date: 2020-03-23T19:05:23.280Z
- commits:
    - subject: "docs: Clarify update locks for multicontainer applications"
      hash: a6b0c50d8effc9c63fe92d68cb4efbe397a1e05f
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Gareth Davies <gareth@balena.io>
        signed-off-by: Gareth Davies <gareth@balena.io>
      author: Gareth Davies
  version: 10.10.4
  date: 2020-03-16T21:12:52.849Z
- commits:
    - subject: "logging: fix up some typos"
      hash: ab7e8b55140cc3169e9337f8c29a77468b13be7c
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Matthew McGinn <matthew@balena.io>
        signed-off-by: Matthew McGinn <matthew@balena.io>
      author: Matthew McGinn
  version: 10.10.3
  date: 2020-03-16T19:31:23.505Z
- commits:
    - subject: Bump acorn from 5.7.3 to 5.7.4
      hash: f8363fc72b21386cc3561be576d8f21ec0463c89
      body: |
        Bumps [acorn](https://github.com/acornjs/acorn) from 5.7.3 to 5.7.4.
        - [Release notes](https://github.com/acornjs/acorn/releases)
        - [Commits](https://github.com/acornjs/acorn/compare/5.7.3...5.7.4)
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: dependabot[bot] <support@github.com>
        signed-off-by: dependabot[bot] <support@github.com>
      author: dependabot[bot]
  version: 10.10.2
  date: 2020-03-16T15:05:54.513Z
- commits:
    - subject: Update dependencies
      hash: 6e3db3bd602d30ae3d377a1526c9b904c90a6cf3
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
  version: 10.10.1
  date: 2020-03-13T17:21:22.854Z
- commits:
    - subject: Allow semver comparison on l4t versions in contracts
      hash: 5c50f656c33954de6f4c07f8b6c892b4bf9953cf
      body: |
        We add an implicit .0 to the end of l4t versions which do not fulfill
        semver, which allows us to always match using comparison operators, such
        as < and <=.
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Allow l4t versions with three numbers as well as two
      hash: 7d47661928288160c0a636cb630cb0ccc2292d91
      body: ""
      footer:
        Closes: "#1210"
        closes: "#1210"
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.10.0
  date: 2020-03-06T15:56:42.924Z
- commits:
    - subject: "config: Support loading SSDT via ConfigFS"
      hash: e0d2bdfaa98fe8c8d56fe981e530e6c96aef92a6
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Rich Bayliss <rich@balena.io>
        signed-off-by: Rich Bayliss <rich@balena.io>
      author: Rich Bayliss
  version: 10.9.2
  date: 2020-03-05T13:33:03.818Z
- commits:
    - subject: Convert device-state module to typescript
      hash: c21da8f3dbafe965ad0fae12b027066208debd12
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Improve application-manager typings
      hash: 23094425555f0d1ef9c04c2bc500c19f62984503
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Improve and extend internal typings
      hash: e161888516e7f234154245cfc8c9f82b6e2b656b
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.9.1
  date: 2020-02-25T07:53:23.189Z
- commits:
    - subject: Add a containerId request parameter for journal-logs api endpoint, and
        pass it along to journalctl process options.
      hash: b5772740ae3685fceceeda513fca4ff86a183d14
      body: ""
      footer:
        Change-Type: minor
        change-type: minor
        Signed-off-by: Ivan <ivanign04.alt@gmail.com>
        signed-off-by: Ivan <ivanign04.alt@gmail.com>
      author: Ivan
  version: 10.9.0
  date: 2020-02-24T00:17:42.799Z
- commits:
    - subject: Add procfs label
      hash: 89a9d85e8743926cecbc82e8c53d37bca6f845b9
      body: ""
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Add a sysfs feature label
      hash: 947deb3cc62ddabb5f7309eb4ccaefaed1379b08
      body: |
        The new label `io.balena.features.sysfs` will mount the host /sys into
        the container at /sys.

        Relates to issue: #743
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Clean up the feature label function
      hash: 7dcb4fa887a6141475d40583f08acd500731a3f5
      body: |
        Bring the labels into a more declarative format and run through them to
        apply the various labels and env vars.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.8.0
  date: 2020-02-13T04:03:23.393Z
- commits:
    - subject: Add a noinit option to sync-debug
      hash: c47ef6d42abfe840cfa833a9f8f3789e142299e6
      body: |
        The noinit option will avoid doing a complete sync to the supervisor
        on startup. This is useful when there has only been code changes, and no
        modules etc have been added. It can be helpful when running on a network
        with no external internet access, as everything needed is already inside
        the container.

        To aid this we also move to yargs, rather than try to do all of the
        parsing ourselves.
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.7.0
  date: 2020-02-12T09:36:50.912Z
- commits:
    - subject: Update balenaos-in-container to pickup aufs2overlay changes
      hash: 4da1faced6746b9a9d90a90aa00bee18d581bc1e
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.6.37
  date: 2020-02-10T16:36:43.597Z
- commits:
    - subject: Switch to using resin-lint for automatic lint fixing
      hash: ab63f46b7e2c308e3cfd0b1a886d0a03bc577de6
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
  version: 10.6.36
  date: 2020-02-10T10:46:23.653Z
- commits:
    - subject: Dont error on a target state with multiple apps
      hash: a27ce4f1dce2d157366b350e37caf86d871b1f52
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.6.35
  date: 2020-02-10T05:09:03.570Z
- commits:
    - subject: "bug: Delay sending logs until the device is provisioned"
      hash: fe5fd2b7ef5f40d688ee85c874934487d0c2d702
      body: ""
      footer:
        Connects-to: "#1189"
        connects-to: "#1189"
        Change-type: patch
        change-type: patch
        Signed-off-by: Rich Bayliss <rich@balena.io>
        signed-off-by: Rich Bayliss <rich@balena.io>
      author: Rich Bayliss
  version: 10.6.34
  date: 2020-02-06T10:43:04.222Z
- commits:
    - subject: Allow getting the target state when not in local mode
      hash: 3ff3bce605ebf9e53a6df4e2646031cde2a8831c
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#1176"
        closes: "#1176"
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.6.33
  date: 2020-01-30T11:27:33.298Z
- commits:
    - subject: Set docker type and update CHANGELOG.md to the correct format
      hash: d1a3663d47b5e79c611929802c3a63b375e1a24f
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Giovanni Garufi <giovanni@balena.io>
        signed-off-by: Giovanni Garufi <giovanni@balena.io>
      author: Giovanni Garufi
  version: 10.6.32
  date: 2020-01-28T00:22:10.551Z
- commits:
    - subject: Update docker used for CI builds
      hash: 9dc9e0704b69f3e8980c8747cb341004b9be8399
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
    - subject: Update the deprecated `reusable` key to `docker_layer_caching` for CI
      hash: f4f7af042d49d8b5c3720883d5fe41b2e6b6664f
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
    - subject: Push all images in parallel for CI builds
      hash: 7e794629289756dc42bcc459c5c715b6a2dfce34
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
  version: 10.6.31
  date: 2020-01-17T17:03:23.152Z
- commits:
    - subject: Update knex types
      hash: 027701297b5366dd512ff31e7896d0a33065c52e
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
    - subject: Update lodash types
      hash: 1a393dbb1934e5821aa778c9316838adf0e429f5
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
    - subject: Update types and fix issue with treating string as a number
      hash: 0ef9cc189b66b66815d965591c31c05904bd815c
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
  version: 10.6.30
  date: 2020-01-17T14:55:05.405Z
- commits:
    - subject: ⌛Increase minimum backoff delay and use poll interval as max
      hash: 53b6e8f1bbd94228a170f581f3d38963143dd436
      body: |
        This change will start the minimum backoff from 15s (up from 500ms) and
        will use the appUpdatePollInterval configuration variable as the max.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.6.29
  date: 2020-01-17T12:34:53.143Z
- commits:
    - subject: Ensure that we always have the pi4 overlay assigned
      hash: 426d8cd10ad22fcf79b019dc49e2c2f6c27cd06d
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#1171"
        closes: "#1171"
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.6.28
  date: 2020-01-08T17:08:33.840Z
- commits:
    - subject: Throttle state report patches to once per 10 seconds
      hash: 4b0f431f9b4eadcec30a21483a5ee5e3c2ecb14b
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#1158"
        closes: "#1158"
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.6.27
  date: 2019-12-19T12:35:53.720Z
- commits:
    - subject: Report the correct error when we cannot remove a network
      hash: 2d4ac244031bdaccace508c0ca3a77df77e4c368
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.6.26
  date: 2019-12-18T15:05:24.037Z
- commits:
    - subject: Fix healthcheck on supervisor debug builds
      hash: 4ff54f45c189b62124d8de9293fac23b0bb32835
      body: |
        We were relying on wget which was not brought into the image, so we
        switch this to curl, which is present.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.6.25
  date: 2019-12-18T14:39:21.218Z
- commits:
    - subject: Always do a standard docker download on first pull
      hash: 8317a1843b3d3365b362cc90b2aad1e5e61a463f
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.6.24
  date: 2019-12-17T10:36:33.272Z
- commits:
    - subject: Don't allow cross-app delta requests
      hash: 4a74dffea96328b44cb6a4efa1938e3fb756f99a
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.6.23
  date: 2019-12-16T13:00:29.779Z
- commits:
    - subject: "fix: ⬇️ Force a regular pull when moving from v2 to v3 deltas"
      hash: 6db1f03411897ec6f8bcf6433782557c75864bd7
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Fixes: "#1072"
        fixes: "#1072"
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.6.22
  date: 2019-12-16T10:45:23.315Z
- commits:
    - subject: Add steps info to applyState error message
      hash: 4895bb300a9675c70f5baa31ec04c91088a8d443
      body: |
        This helps to debug/diagnose problems with state application faster.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Roman Mazur <roman@balena.io>
        signed-off-by: Roman Mazur <roman@balena.io>
      author: Roman Mazur
  version: 10.6.21
  date: 2019-12-12T14:27:33.589Z
- commits:
    - subject: Hide init method in configJson
      hash: d9c669ebad7b115f018a922f6b329950fd86b6b1
      body: |
        ConfigJson users now don't need to worry about initialization.
        It's done lazily on the first public method call.

        Implementation is also rewritten to follow async/await pattern.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Roman Mazur <roman@balena.io>
        signed-off-by: Roman Mazur <roman@balena.io>
      author: Roman Mazur
  version: 10.6.20
  date: 2019-12-11T18:14:09.414Z
- commits:
    - subject: Always filter environment configuration
      hash: 03a701cdedf6a40aa707ca5ca22af8f1c9a14d40
      body: |
        This means that if an image is created with a committed container, we
        won't assume that it does not contain the balena env vars
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.6.19
  date: 2019-12-09T11:33:43.344Z
- commits:
    - subject: "volumes: Allow the use of the 'driver' setting in volumes"
      hash: c3cf8fbca25d3f6dae5c58cf29f11b2c89d10353
      body: |
        A compose file can now contain a volume which uses a different driver
        from the default one; local.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Rich Bayliss <rich@balena.io>
        signed-off-by: Rich Bayliss <rich@balena.io>
      author: Rich Bayliss
  version: 10.6.18
  date: 2019-12-02T12:02:23.535Z
- commits:
    - subject: Set a mock l4t version for use with optional containers
      hash: 8cece238a9a7d552d5366ffa4170ba8998bb8bbf
      body: |
        Before this change a mixed device fleet with a subset using l4t would
        not be able to have containers which only run on the l4t based boards.
        We add a mock l4t version so the contracts will always be denied on
        non-l4t boards, but the release itself won't fail to validate.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.6.17
  date: 2019-11-29T11:09:22.902Z
- commits:
    - subject: "codeowners: Add richbayliss as a code owner"
      hash: c816b863f82dc4d73b67a69220ebbbddab3573ea
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Rich Bayliss <rich@balena.io>
        signed-off-by: Rich Bayliss <rich@balena.io>
      author: Rich Bayliss
  version: 10.6.16
  date: 2019-11-29T10:13:03.432Z
- commits:
    - subject: Handle cancelDelay not being a function
      hash: f4605d897eea8286a3923060aea999a8eab9bc91
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#1080"
        closes: "#1080"
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.6.15
  date: 2019-11-28T11:31:03.427Z
- commits:
    - subject: Add regression test for app manager init
      hash: f487711ba496328ea69ac815c68870975facf186
      body: >
        If we had it eearlier, it would have prevented #1148.

        When init is called, withImagesFromDockerAndDB in images.ts is called as
        well.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Roman Mazur <roman@balena.io>
        signed-off-by: Roman Mazur <roman@balena.io>
      author: Roman Mazur
  version: 10.6.14
  date: 2019-11-27T18:04:03.732Z
- commits:
    - subject: Consider linux4tegra versions in container contracts
      hash: 1a6c9d489ae1417d20a61c4240ba84bee6c8df29
      body: |
        Also remove ability to match on OS versions
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Upgrade prettier and resin-lint
      hash: bba6d3d728a2f96977694a2c70f76da9d7b7629d
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.6.13
  date: 2019-11-27T10:25:23.493Z
- commits:
    - subject: Fix retrieval of container log timestamp from db
      hash: e44c7073f990c42336e4914e9926f4205520cfee
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.6.12
  date: 2019-11-20T19:26:49.334Z
- commits:
    - subject: Bump js-yaml from 3.12.0 to 3.13.1
      hash: 9c88d8fb722c6005465754dff900379d091eb324
      body: >
        Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 3.12.0 to
        3.13.1.

        - [Release notes](https://github.com/nodeca/js-yaml/releases)

        -
        [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)

        - [Commits](https://github.com/nodeca/js-yaml/compare/3.12.0...3.13.1)
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: dependabot[bot] <support@github.com>
        signed-off-by: dependabot[bot] <support@github.com>
      author: dependabot[bot]
  version: 10.6.11
  date: 2019-11-19T20:14:15.729Z
- commits:
    - subject: Update balenaos-in-container
      hash: 072a2f951a653f56f3f01532706897c3a15b9c01
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
  version: 10.6.10
  date: 2019-11-19T11:30:09.713Z
- commits:
    - subject: Create config.txt if there isn't one already
      hash: 1570fd424b8c192844ce308761ac8f329dac48f5
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Theodor Gherzan <theodor@balena.io>
        signed-off-by: Theodor Gherzan <theodor@balena.io>
      author: Theodor Gherzan
  version: 10.6.9
  date: 2019-11-19T09:52:10.573Z
- commits:
    - subject: Extract backup logic to migration
      hash: 659697ff795c4f9282321223c7963a6d8932a8d1
      body: |
        Part of device-state refactor
        Fix the wrong usage of TargetState as DeviceApplicationState
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Theodor Gherzan <theodor@balena.io>
        signed-off-by: Theodor Gherzan <theodor@balena.io>
      author: Theodor Gherzan
  version: 10.6.8
  date: 2019-11-15T17:42:19.314Z
- commits:
    - subject: Rebase start-resin-supervisor on latest meta-balena
      hash: a1ddf3682d18bdd7c8dad0dd5d46cb2eb27110b7
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
  version: 10.6.7
  date: 2019-11-13T20:25:49.837Z
- commits:
    - subject: Switch to balenaos-in-container
      hash: 05a566dcb595ccacc432de1290ab2500ac380b6f
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
  version: 10.6.6
  date: 2019-11-12T13:52:25.726Z
- commits:
    - subject: Allow specifying an absolute path for the dind config.json
      hash: 9e660f1081cdb3da561a410b04c91807dab13133
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
    - subject: Fix dindctl when run from another dir
      hash: 57d4a19f1d6c077cca5cb966de185c6a3cca695f
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
    - subject: Fix dindctl unknown arg error message
      hash: b4ad29ec14a9fdffe038116b98ee293210b5d34e
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
  version: 10.6.5
  date: 2019-11-12T11:36:45.442Z
- commits:
    - subject: Check if appId is a number before purging
      hash: 597f95e1696f3934b6072a775949e7fd7010340e
      body: ""
      footer:
        Change-Type: patch
        change-type: patch
        Signed-off-by: Michel Wohlert <michel@1012consulting.io>
        signed-off-by: Michel Wohlert <michel@1012consulting.io>
      author: Michel Wohlert
  version: 10.6.4
  date: 2019-11-11T11:00:29.945Z
- commits:
    - subject: Extract normaliseLegacy as normalise to migration module
      hash: cf79ed8cdb96431a5a5fbe94885c1e96680df75c
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Theodor Gherzan <theodor@balena.io>
        signed-off-by: Theodor Gherzan <theodor@balena.io>
      author: Theodor Gherzan
  version: 10.6.3
  date: 2019-11-07T17:52:39.365Z
- commits:
    - subject: Define the database type of the application
      hash: 053e111626330ab4cc7a7dc545c94aa0674405ee
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Extract loadTargetFromFile function to preload module
      hash: 09a8231fdee467b8b726269a2ef1bc8338733a19
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Define TargetApplicationState in types and remove Application type
      hash: fea80c52059752fe7d97ce9032828243355c9981
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Upgrade typescript to 3.7
      hash: 1d89174caf116236e856ee849369f35445f29d9d
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.6.2
  date: 2019-11-07T09:49:48.602Z
- commits:
    - subject: "event-tracker: Use std mixpanel types"
      hash: 2143180d27d9ba0939a365ebcfd56fa069f6e2c8
      body: >
        Custom type definitions are removed for mixpanel module since they are
        embedded

        into their npm package.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Roman Mazur <roman@balena.io>
        signed-off-by: Roman Mazur <roman@balena.io>
      author: Roman Mazur
  version: 10.6.1
  date: 2019-11-05T21:14:55.593Z
- commits:
    - subject: Report any optional containers that aren't being run
      hash: 8223bf2ccb8e3c50a79860088b5d12607ad71671
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Support optional containers based on their contract
      hash: f75b8aad2bc7661de803b80dc7008de9a2c6a6af
      body: ""
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.6.0
  date: 2019-11-05T14:48:39.493Z
- commits:
    - subject: Bump lodash from 4.17.11 to 4.17.13
      hash: 835ef7908e8daba1c0362fae8aaa4b592b2d1b2f
      body: >
        Bumps [lodash](https://github.com/lodash/lodash) from 4.17.11 to
        4.17.13.

        - [Release notes](https://github.com/lodash/lodash/releases)

        - [Commits](https://github.com/lodash/lodash/compare/4.17.11...4.17.13)
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: dependabot[bot] <support@github.com>
        signed-off-by: dependabot[bot] <support@github.com>
      author: dependabot[bot]
  version: 10.5.5
  date: 2019-10-31T16:08:50.326Z
- commits:
    - subject: "docs: update lockfile Python snippet"
      hash: d12c10b0c2092615ac5d94168db703b23744006b
      body: >
        Port over the downstream changes from
        https://github.com/balena-io/docs/pull/1184
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Matthew McGinn <matthew@balena.io>
        signed-off-by: Matthew McGinn <matthew@balena.io>
      author: Matthew McGinn
  version: 10.5.4
  date: 2019-10-30T13:04:37.635Z
- commits:
    - subject: Convert some coffeescript tests to typescript
      hash: b5a427f2b984114e93a02233efb85df125dbbec5
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Bump mixin-deep from 1.3.1 to 1.3.2
      hash: d0f35359b3f32a87804f760c1d5303c380ea730f
      body: |
        Bumps [mixin-deep](https://github.com/jonschlinkert/mixin-deep) from 1.3.1 to 1.3.2.
        - [Release notes](https://github.com/jonschlinkert/mixin-deep/releases)
        - [Commits](https://github.com/jonschlinkert/mixin-deep/compare/1.3.1...1.3.2)
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: dependabot[bot] <support@github.com>
        signed-off-by: dependabot[bot] <support@github.com>
      author: dependabot[bot]
  version: 10.5.3
  date: 2019-10-30T11:00:45.668Z
- commits:
    - subject: Bump handlebars from 4.0.12 to 4.5.1 Bumps
        [handlebars](https://github.com/wycats/handlebars.js) from 4.0.12 to
        4.5.1. - [Release
        notes](https://github.com/wycats/handlebars.js/releases) -
        [Changelog](https://github.com/wycats/handlebars.js/blob/v4.5.1/release-notes.md)
        -
        [Commits](https://github.com/wycats/handlebars.js/compare/v4.0.12...v4.5.1)
      hash: d767bada4eb5fd14c30a4fbd1e890848598318ff
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: dependabot[bot] <support@github.com>
        signed-off-by: dependabot[bot] <support@github.com>
      author: dependabot[bot]
  version: 10.5.2
  date: 2019-10-29T11:48:48.695Z
- commits:
    - subject: Ensure that we reset rate limits after a successful target apply
      hash: 9651bc70281afc885a6ae11d1fb7bf668611181c
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#1117"
        closes: "#1117"
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.5.1
  date: 2019-10-28T12:03:08.990Z
- commits:
    - subject: Add a cache around the database application target state
      hash: 7b8e7ea8ca32849be29e4103ce8c215e99a2bac9
      body: ""
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.5.0
  date: 2019-10-07T13:18:33.096Z
- commits:
    - subject: Correctly validate container contracts
      hash: d16403f65496cc94dc2839de7e38b3c3173005eb
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.4.1
  date: 2019-10-02T14:51:35.443Z
- commits:
    - subject: Add support for container contracts
      hash: 14e442f94376f4589f9d469ad823d92d9af9818d
      body: |
        These contracts can specify an OS version and supervisor version that
        they require. If any of the containers in a release have requirements
        that are not met, the release is rejected, and the previous release
        continues to run.
      footer:
        Change-type: minor
        change-type: minor
        Closes: "#1086"
        closes: "#1086"
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Upgrade io-ts and fp-ts to 2.0.0
      hash: 9843f62e2475225e3f66cfe3a6847f8c8428f79b
      body: ""
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Add contract resolution code, which checks release requirements
      hash: 5ce8ba8acfb05e8035c340f80442edcb5237d13a
      body: ""
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Avoid synchronous file accesses for os release info
      hash: 2d168784b2987a96993a256970174ff88f8c36f3
      body: |
        This also required refactoring the request library to be generated with
        a promise, as we now no longer get the information synchronously.

        We also cache the release info, to avoid grabbing it again within the
        same runtime, which does not make sense.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Add test number to test files name
      hash: 487e2c54a1bf2b2df535ff99b5563c866da5ac2f
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Add a cache around the database application target state
      hash: 7239b93f4a04851e4adbf1478af95c4a337aaadd
      body: ""
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.4.0
  date: 2019-10-01T15:19:51.369Z
- commits:
    - subject: Unify API errors processing
      hash: 8b4c9837fa39bcb6642f7fd3208afa8d26b9af46
      body: >
        With this change, we define a custom error handler as express middleware

        which renders 503 error with JSON response that includes status and
        message

        fields.


        The handler also logs the error, so the stack can be inspected in
        supervisor

        logs. It's also a point where we can report the error to analytics
        services.


        This removes a bunch of error handlers written in every request handler

        function. Behaviour should remain unchanged except the fact that

        /healthy endpoint now returns 503 in case of failure instead of 500.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Roman Mazur <roman@balena.io>
        signed-off-by: Roman Mazur <roman@balena.io>
      author: Roman Mazur
  version: 10.3.8
  date: 2019-09-23T14:24:38.467Z
- commits:
    - subject: "ping: move /ping out from authentication"
      hash: 8d5633a11f15cee356854e9c21502ada4b89e7c7
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Matthew McGinn <matthew@balena.io>
        signed-off-by: Matthew McGinn <matthew@balena.io>
      author: Matthew McGinn
  version: 10.3.7
  date: 2019-09-20T13:19:51.070Z
- commits:
    - subject: Explicitly remove volumes when purging
      hash: 15a1f45fd70117c4d819af436b95cb6f796dccba
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#1083"
        closes: "#1083"
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Catch and report cloud stream writing errors
      hash: 7d1da3818479e33141890a8f3d09557303331872
      body: |
        If an error fires when writing to the cloud stream, it can stop any
        calling processes from completing. Given that a logging failure should
        not cause other processes to cancel, we catch and report the error but
        otherwise do nothing else.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.3.6
  date: 2019-09-18T07:50:28.062Z
- commits:
    - subject: Correctly handle partial IPAM configurations for networks
      hash: e78f8eccdc2fe23b02da15b8c469979a8146db41
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.3.5
  date: 2019-09-16T11:30:37.265Z
- commits:
    - subject: "device-state: correctly call volume creation on backup restore step"
      hash: ca9f8ffca1e306d4f4551a505b93b0bc7c679c81
      body: |
        The `createFromPath` method takes 3 parameters, while in a previous
        version it was only 2 (the new format splits the old format's first
        parameter into two, and keeping the last), before the refactor in commit
        23e564389daaa29feb231d1b091e07df82a7a300 (supervisor v9.18.4)
        The backup restoration call has not been updated and thus calls that
        function the old (wrong) way, resulting in failed restore, and volume
        management errors on a device that attempted a restore.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Gergely Imreh <gergely@balena.io>
        signed-off-by: Gergely Imreh <gergely@balena.io>
      author: Gergely Imreh
  version: 10.3.4
  date: 2019-09-11T11:15:16.606Z
- commits:
    - subject: "entry.sh: conform to shellcheck syntax"
      hash: cda39ab9e16cb6e3d0979b1727792bd7e55917ec
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Matthew McGinn <matthew@balena.io>
        signed-off-by: Matthew McGinn <matthew@balena.io>
      author: Matthew McGinn
  version: 10.3.3
  date: 2019-09-02T16:41:17.966Z
- commits:
    - subject: Modification to unpacking volume backup
      hash: e3c1c333f0ff1658e2dc9f9699d0f818599199b7
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Thomas
  version: 10.3.2
  date: 2019-09-02T12:30:57.957Z
- commits:
    - subject: Pin debug builds to stretch base images to match non-debug builds
      hash: 93e3bc620ae07f30a3f28c6c40f72516d702ea5b
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.3.1
  date: 2019-08-22T08:50:34.612Z
- commits:
    - subject: Add usage example repo to documentation
      hash: da0534b3c8f239f8c6f1ded911d2509fb0230b05
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Add journald format flag
      hash: 48bccd34dba569a574110a045cc264201d26f4a1
      body: ""
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Update documentation and explicitly unpipe journald stream
      hash: 2d924b83fcfedc84b1d0ea2325a53cd7e89fc5c5
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.3.0
  date: 2019-08-21T17:36:24.736Z
- commits:
    - subject: Correctly generate network or volume creation steps
      hash: ded828da9a284c28f1617cd49ba6fbbd09f489a9
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.2.7
  date: 2019-08-21T09:51:54.225Z
- commits:
    - subject: Extract composition step work out to typescript compose module
      hash: 4f31b1867059d944469073551687da6ac25100c9
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Remove unused local mode parameter from images.getAvailable
      hash: 55ee5a468f088612c5df3629cf1a7216d000bb94
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.2.6
  date: 2019-08-19T16:02:20.801Z
- commits:
    - subject: Only consider certain array fields without order
      hash: 76de276b924edbbeb30cdad41ed491ad20129492
      body: |
        Various fields returned from the docker daemon don't retain order (for
        example the volumes field). We now only select certain array values to
        compare taking order into account.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.2.5
  date: 2019-08-19T14:02:34.739Z
- commits:
    - subject: Take order into account when comparing service config arrays
      hash: 86e8a8564054b15003ec75440e6dd94507f64708
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#1060"
        closes: "#1060"
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.2.4
  date: 2019-08-15T16:09:11.152Z
- commits:
    - subject: "meta: remove pcarranzav as codeowner"
      hash: c3fe0f4d37a5d5a665dd64e8424eab8ff7f372b3
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Matthew McGinn <matthew@balena.io>
        signed-off-by: Matthew McGinn <matthew@balena.io>
      author: Matthew McGinn
  version: 10.2.3
  date: 2019-08-14T17:59:58.749Z
- commits:
    - subject: 'docs: fix up typo "sucess" -> "success"'
      hash: 8c9f974b072364283520e43bb3d0969eb8122d3d
      body: |
        Related to https://github.com/balena-io/docs/pull/1065
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Matthew McGinn <matthew@balena.io>
        signed-off-by: Matthew McGinn <matthew@balena.io>
      author: Matthew McGinn
  version: 10.2.2
  date: 2019-08-09T14:39:08.547Z
- commits:
    - subject: Fix version documentation for journald endpoint
      hash: 1794b334a0c806b516745a4544d4af75111b390a
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.2.1
  date: 2019-08-09T11:50:43.023Z
- commits:
    - subject: Add an endpoint and module for reading journald logs
      hash: 43cbf7dbba20f9a84697ad24cf532fc20e6384b7
      body: ""
      footer:
        Change-type: minor
        change-type: minor
        Closes: "#1003"
        closes: "#1003"
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.2.0
  date: 2019-08-09T10:10:42.609Z
- commits:
    - subject: "api: Avoid cloneDeep when copying target state."
      hash: c62f4afe8d5bbf2803359b804372e512d70b3745
      body: |
        This can cause issues where the stack is exhausted
        on large applications.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Heds Simons <heds@balena.io>
        signed-off-by: Heds Simons <heds@balena.io>
      author: Cameron Diver
  version: 10.1.5
  date: 2019-07-25T14:43:36.876Z
- commits:
    - subject: Filter both null and omitted values
      hash: 4688524e4564b4f55870ce7a44a7a5c7d90c21ce
      body: |
        The docker daemon can sometimes return null for various fields,
        or omit the field altogether. The best thing to do with using
        the docker api is to always use == null to cover both instances.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Roman Mazur <roman@balena.io>
        signed-off-by: Roman Mazur <roman@balena.io>
      author: Roman Mazur
    - subject: Use typed error to report inspection problems
      hash: 4b56022d93812852d9771e8c4ed1fa4f8e414d7f
      body: |
        This will throw a typed error in case when supervisor cannot inspect
        its own container.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Roman Mazur <roman@balena.io>
        signed-off-by: Roman Mazur <roman@balena.io>
      author: Roman Mazur
    - subject: Prevent supervisor from deleting itself
      hash: 4846acb25ebd5b1400e3a74bc3a3c607ae98be8e
      body: >
        With recent changes to local mode behavior, supervisor removes all
        engine objects

        that were not present before entering local mode.

        With this change, supervisor also detects its own resources and does not
        delete them

        if it was updated during local mode operations.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Roman Mazur <roman@balena.io>
        signed-off-by: Roman Mazur <roman@balena.io>
      author: Roman Mazur
  version: 10.1.4
  date: 2019-07-25T10:06:17.925Z
- commits:
    - subject: "docs: update APPID to BALENA_APP_ID as exposed from the env"
      hash: f2bb8a768e655513cc72a4bd286f7803745c0f07
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Matthew McGinn <matthew@balena.io>
        signed-off-by: Matthew McGinn <matthew@balena.io>
      author: Matthew McGinn
  version: 10.1.3
  date: 2019-07-24T22:42:58.009Z
- commits:
    - subject: "api: Perform network checks if device is unmanaged"
      hash: f9aa4681fa07a28cd5b9d63e697d76cff0faf4e6
      body: |
        Without these checks the API GET /v1/device doesn't return a
        value for `ip_address`.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Rich Bayliss <rich@balena.io>
        signed-off-by: Rich Bayliss <rich@balena.io>
      author: Rich Bayliss
  version: 10.1.2
  date: 2019-07-24T14:44:11.596Z
- commits:
    - subject: Fix invocation of livepush with sync-debug
      hash: 37ea6a92836faaf819a77568f43b3efc05e460a5
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.1.1
  date: 2019-07-23T14:03:26.898Z
- commits:
    - subject: Support network_modes of service:<servicename>
      hash: c109a24874650f5f8d5a80fa11c8a62163e4d36b
      body: |
        That way that this is performed is by first adding a depends_on entry
        for the target service if it appears in a network mode. Then when we
        generate the docker container for this service, we use the containerId
        of the target container and replace the network_mode with
        `container:<id>`.

        When comparing state, we check that the containerId still points to the
        contianerId of the target container, and in this way we ensure that
        when a network mode target container changes, we change the dependent
        container too.
      footer:
        Change-type: minor
        change-type: minor
        Closes: "#851"
        closes: "#851"
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.1.0
  date: 2019-07-23T12:55:18.311Z
- commits:
    - subject: "fix: Always reboot when applying boot config"
      hash: e91fa6e7b33f4c859a47bd97ec837ff85049164f
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#1037"
        closes: "#1037"
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.0.5
  date: 2019-07-22T15:10:57.680Z
- commits:
    - subject: Pre-emptively pull required images in parallel
      hash: 565ef27b1b2c7e86d1b26571cec140e9da0ac14c
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
    - subject: Avoid unnecessary else in Makefile
      hash: 3945bb3a87eb18c6bcd175123d1cfa5afea78faf
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
    - subject: Fix installing the specified npm version in debug builds
      hash: 34983651d059de7e57cbb7171cf916bb1c033622
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
    - subject: Remove the dummy node-build step for debug images
      hash: ec816d115e98f0309ab0accbb69a45ba7c54fbab
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
    - subject: Reduce differences between the debug and standard dockerfiles
      hash: 31257f8f391e3a3500ca3772f0ab7cccb904b622
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
    - subject: Run image cleanup in parallel
      hash: 34af6e9b2a1306111033578632e5483ff5e07e66
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
    - subject: Do intermediate build pushing in parallel
      hash: 39e87414027525bc46467ea27cf864a49b89e8fc
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
    - subject: Minimise the amount of cache busted by a changed ARG
      hash: 1366abc7b113216fc007c78797a6c4e34d267a45
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
    - subject: Fix cache usage for builds
      hash: 0ad5d8688c2c09dc48cacd4a4af5bf7d8118709c
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
  version: 10.0.4
  date: 2019-07-19T18:00:31.121Z
- commits:
    - subject: "fix: Don't consider volume supervised labels when comparing"
      hash: cbb079e8dc03b9ef85336a8fbd22b85574c7db7e
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#1039"
        closes: "#1039"
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.0.3
  date: 2019-07-19T11:20:19.861Z
- commits:
    - subject: "device-api: fix up small typos"
      hash: 2cb6ecc150c207704c08dee52cf8940a16d760c6
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Matthew McGinn <matthew@balena.io>
        signed-off-by: Matthew McGinn <matthew@balena.io>
      author: Matthew McGinn
  version: 10.0.2
  date: 2019-07-18T12:11:27.099Z
- commits:
    - subject: Don't attempt to cleanup any target state referenced volumes
      hash: a796777967facb96ade32f5a06e256b3b92d1e4b
      body: |
        The code before this change could potentially remove a volume which
        should not be removed if a container was deleted before the call that
        references said volume.

        To avoid this, we additionally filter the list of volumes to cleanup by
        any that are referenced in the target state. This means that cleanup
        will never remove it, as long as it's still supposed to be there,
        regardless of if a container references it or not.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.0.1
  date: 2019-07-11T15:40:11.157Z
- commits:
    - subject: Don't remove volumes when switching into local mode
      hash: e076622fe627d936f0b8e8c8f9ec9f9fba25de4f
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Add volume tests and fix test fixture setup for applications
      hash: 050c10dbb03dbd13adf6f5ad8447eb8460e327df
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Add a supervisor endpoint to cleanup orphaned volumes
      hash: 3304825216ad10fab15fcc1491c00671a144d142
      body: ""
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Only remove volumes when we're moving between applications
      hash: 5357d4729d777b48edeb4230bfab7b81ed67b460
      body: ""
      footer:
        Change-type: major
        change-type: major
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Reorder debug dockerfile to faster livepushes
      hash: 9fdd1d7427b77f0d38820c0f2150b63f8f7c6312
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Dont try to set the commit if it's undefined
      hash: bb549a445be3109308be123ba703d7de29d02b62
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 10.0.0
  date: 2019-07-10T13:27:43.106Z
- commits:
    - subject: "docs: fix up broken meta-balena proxy link"
      hash: baa0e875134e56418083962f40028f6a4dcb892e
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Matthew McGinn <matthew@balena.io>
        signed-off-by: Matthew McGinn <matthew@balena.io>
      author: Matthew McGinn
  version: 9.18.8
  date: 2019-07-10T08:13:42.514Z
- commits:
    - subject: Don't attempt to setup a log stream to the cloud before provision
      hash: 37945b4aa5325dba3b17aec19075f87b9ca9d20e
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Add more typescript conversions and export utilities from existing
      hash: 20a83e8e0a1e128e82a54fc05665c923d8e3d6d1
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.18.7
  date: 2019-07-09T12:23:09.900Z
- commits:
    - subject: Apply targetState immediately after update request Cancel delayed
        promise if exists and schedule a new one without delay, when /v1/update
        is called
      hash: 7a42b6719a25275363b458b4e2fac07298b73b59
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Michel Wohlert
  version: 9.18.6
  date: 2019-07-09T11:52:07.902Z
- commits:
    - subject: Use resin-lint for mocha tests check
      hash: bea97f47a7c2b5748ca50632a7de93f7f18af5fd
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Roman Mazur <roman@balena.io>
        signed-off-by: Roman Mazur <roman@balena.io>
      author: Roman Mazur
  version: 9.18.5
  date: 2019-07-08T16:23:26.845Z
- commits:
    - subject: Fix network composition parsing, and correctly report compose config
      hash: 89807c21fa599d952b0fd5f61302f94539f3b3ea
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Keep the network and volume models consistent across usage
      hash: e5d7379b74861c31b0cd2b6a94b4fdecf23cd35a
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Pass around instantiated Network objects when comparing state
      hash: eaff3a2ee574a404c0ebf610867556f4afead176
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Seperate volume handling into manager and object classes
      hash: 23e564389daaa29feb231d1b091e07df82a7a300
      body: |
        This change also makes sure that in the application-manager workflow we
        pass around instances of the Volume class, rather than just the config.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: 'fix: When reporting initial config, avoid creating a "VPN enabled"
        unnecessary override'
      hash: 743c8406c973af7ef85ff31ea8bb0bc99d4592fb
      body: >
        Since we were comparing the VPN's value before adding the explicit
        "true", there were cases

        were the VPN is off, and therefore "value" didn't match the default, so
        the supervisor would

        create a device specific SUPERVISOR_VPN_CONTROL = true, which is
        unnecessary and causes issues if

        users don't expect this and move the device to an app that has VPN
        disabled. The correct behavior

        is to compare "varValue" and only create a device config var if this
        value differs from the default.


        (This was the behavior before the TS conversion in
        01ed7bb103b4df8fb0679cf858220db42d4a0b92 )
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Pablo Carranza Velez <pablo@balena.io>
        signed-off-by: Pablo Carranza Velez <pablo@balena.io>
      author: Pablo Carranza Velez
  version: 9.18.4
  date: 2019-07-04T10:49:36.786Z
- commits:
    - subject: Add mocha tests linter
      hash: 36fa23ab7dcd76e7eb207e59b2ebcca8560a015f
      body: >
        A simple script that detects presence of .only statements in tests.

        The idea is to avoid comitting them, so that all the tests are run with
        npm test.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Roman Mazur <roman@balena.io>
        signed-off-by: Roman Mazur <roman@balena.io>
      author: Roman Mazur
  version: 9.18.3
  date: 2019-06-29T13:44:31.994Z
- commits:
    - subject: Use jessie base images for i386-nlp
      hash: 92aa9b40ab77316f052533cf7d0b12ec96000d0b
      body: |
        This fixes potential SIGILL errors with the supervisor on i386-nlp.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Ensure that all architectures use a node version that supports ci
      hash: 557f88965a8f076cf7a1a02ad965264f1c5beab9
      body: |
        We do this by using the standalone installer pinned at v6.9.0. We use
        the standalone installer because npm itself fails to upgrade on the
        i386-nlp build (npm v3). The standalone installer is installed in /tmp,
        and then to avoid mysterious CI errors, we use the original npm to run
        the tests.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.18.2
  date: 2019-06-27T16:13:21.666Z
- commits:
    - subject: Fix tests run removing .only
      hash: aad1129f2619f3de48d577f107fa17be7589e556
      body: >
        The issue was introduced with one of the recent changes related to local
        mode cleanup.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Roman Mazur <roman@balena.io>
        signed-off-by: Roman Mazur <roman@balena.io>
      author: Roman Mazur
  version: 9.18.1
  date: 2019-06-27T12:01:21.922Z
- commits:
    - subject: Ensure we get input on parsing errors
      hash: 645bc6c185b804df0e6d2088c5239eabcfa4ce80
      body: >
        We wrap JSON and date parsing code to ensure input data is logged in
        case of an error.
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Roman Mazur <roman@balena.io>
        signed-off-by: Roman Mazur <roman@balena.io>
      author: Roman Mazur
    - subject: Ensure local mode switch runs before target state
      hash: 7c4d8d765348425559115b0b8bf08903bef84f52
      body: >
        This change makes DeviceState to wait until local mode switch is
        definitely

        completed before actually applying the state, which avoids races in
        state cleanup.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Roman Mazur <roman@balena.io>
        signed-off-by: Roman Mazur <roman@balena.io>
      author: Roman Mazur
    - subject: Clean up local mode engine objects using snapshots
      hash: 4974c9200c3955d40bfb0348d8972eb9c6dba02d
      body: >
        Snapshot is collected to compare with engine state when local mode is
        turned off.
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Roman Mazur <roman@balena.io>
        signed-off-by: Roman Mazur <roman@balena.io>
      author: Roman Mazur
    - subject: Add sinon types
      hash: bc3c56da4e86941e4c143f066fb4e179ae21ba6b
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Roman Mazur <roman@balena.io>
        signed-off-by: Roman Mazur <roman@balena.io>
      author: Roman Mazur
  version: 9.18.0
  date: 2019-06-26T15:01:34.535Z
- commits:
    - subject: Change to https for cloning resinos-in-container submodule
      hash: 81b0d3142ec7209f75f5b6b009d295b95bb920a4
      body: |
        May require a `git submodule sync` to update existing local config
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
  version: 9.17.2
  date: 2019-06-25T13:26:00.531Z
- commits:
    - subject: Update the resinos version for the dind supervisor
      hash: f5aedffa055baa4037dc912db8962468e5f42b8b
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
  version: 9.17.1
  date: 2019-06-21T12:35:30.821Z
- commits:
    - subject: Report device state in local mode
      hash: 024b9c45f493526d135a3e6926d0eda39c259446
      body: |
        In local mode, we now update device status on the backend,
        but omit applications info in our updates.
      footer:
        Closes: "#959"
        closes: "#959"
        Change-type: minor
        change-type: minor
        Signed-off-by: Roman Mazur <roman@balena.io>
        signed-off-by: Roman Mazur <roman@balena.io>
      author: Roman Mazur
  version: 9.17.0
  date: 2019-06-20T12:45:10.472Z
- commits:
    - subject: Don't drop failed api patch data
      hash: 8c69ae7645763cca7af90b500076f8d176265b02
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.16.7
  date: 2019-06-20T11:58:45.206Z
- commits:
    - subject: Remove mochainon dependnecy
      hash: 3f5239b07f247e9da8a6fe03a4fa4251d12cd296
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Roman Mazur <roman@balena.io>
        signed-off-by: Roman Mazur <roman@balena.io>
      author: Roman Mazur
  version: 9.16.6
  date: 2019-06-19T20:37:15.140Z
- commits:
    - subject: Allow writing test files in typescript
      hash: 9dab00d1566bdff6c2a3b74a3c86865aa69cb415
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.16.5
  date: 2019-06-19T09:57:54.774Z
- commits:
    - subject: Make sync-debug much more reliable with logs
      hash: 6c7234f84bb8a46c01b8c7eb870d5031c7401213
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.16.4
  date: 2019-06-18T12:34:25.345Z
- commits:
    - subject: Fix typo in image selection
      hash: 65019bb5bc11a31817a6ade7f904d02376146aef
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.16.3
  date: 2019-06-11T12:12:37.928Z
- commits:
    - subject: Re-parallelise current image retrieval code
      hash: b1e4e8399b69c1c817a615b4e9b7f219d30538bc
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.16.2
  date: 2019-06-11T06:50:59.287Z
- commits:
    - subject: Revert "Add a controlling variable for mixpanel reporting"
      hash: 9c486275c9fcc1f7d1c322ff8142bd994d94117c
      body: |
        This reverts commit 1a7ed0f95bb24474ef7326309696da091e68a3d9.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.16.1
  date: 2019-06-10T19:53:04.103Z
- commits:
    - subject: Upgrade typescript and fix warnings
      hash: ea64f0b0b3c57e6bd2e01ef4483e73d037288fc8
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Pin prettier version to avoid changes in non-ci installs
      hash: 0593aadcacaedc9d358e0bfbd23cf3cc05613f4c
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Standardise all supervisor output logging
      hash: 2276dd54e12915cf2a505a56e971231c45e58328
      body: |
        Also use the supervisor's own container logging monitoring code when
        running livepush on the supervisor container.
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.16.0
  date: 2019-06-10T14:39:11.669Z
- commits:
    - subject: Update and improve debug and development tools
      hash: 392c56b4d38bab367429d4b9bdaf2ee2c7fa18e6
      body: |
        Add a debounce to the livepush invocations, execute on start and also
        add a wait on the supervisor CMD line for those rare occassions where
        the supervisor enters a restart loop.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.15.9
  date: 2019-05-29T14:07:45.253Z
- commits:
    - subject: Add a controlling variable for mixpanel reporting
      hash: 1a7ed0f95bb24474ef7326309696da091e68a3d9
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#990"
        closes: "#990"
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.15.8
  date: 2019-05-29T10:55:14.997Z
- commits:
    - subject: Update balena-supervisor-base to v1.4.7
      hash: a4563a78c39a20e815e5347229445df29282008e
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.15.7
  date: 2019-05-29T09:04:10.686Z
- commits:
    - subject: Add wrapper around container logs saving, to reduce db load
      hash: 827967805246f6bc890df90dadf1c58b313521ad
      body: |
        Changes are collected together and exist in memory, for querying and
        saving. Once every 10 mins, every changed timestamp is flushed to the
        database.
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#987"
        closes: "#987"
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.15.6
  date: 2019-05-28T14:57:25.572Z
- commits:
    - subject: "docs: remove legacy waffle link & gitter chat from README"
      hash: e0f875f07ba10098bd29e6d748dafc50fa6d02d3
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Matthew McGinn <matthew@balena.io>
        signed-off-by: Matthew McGinn <matthew@balena.io>
      author: Matthew McGinn
  version: 9.15.5
  date: 2019-05-27T14:12:14.369Z
- commits:
    - subject: Fix regression where node_modules stayed in resulting image
      hash: 99c08c807b6f0af02ef65e11aba5abaeeacdad44
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.15.4
  date: 2019-05-27T12:45:26.298Z
- commits:
    - subject: Move to resin-lint 3 and fix lint errors
      hash: 2a27b1d51f4d82ff79ca7ed2c5e36d981a400c44
      body: |
        This is a massive commit, but nothing related to runtime has actually
        changed, only the lint errors have changed.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.15.3
  date: 2019-05-26T17:57:21.428Z
- commits:
    - subject: Dont check config.gz for loaded i6tables module
      hash: 1b1e0ce2f358f2e640aefa7628ad2d575117b0e9
      body: |
        We also dont fail the initialisation if we cannot load the module.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.15.2
  date: 2019-05-17T16:52:36.048Z
- commits:
    - subject: Fix circle deploying of images
      hash: 954434fc4c3872e4cae53ce249b6d86b97e265c6
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.15.1
  date: 2019-05-16T10:51:11.858Z
- commits:
    - subject: Add livepush capabilities for debug builds
      hash: 73f207a76faaafbb60694304194a981c1a5018fe
      body: ""
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Change install step to not mask errors
      hash: 6bfeaf7ae77f08b89941867fa452a19fbe40d884
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Update sqlite3 to 4.0.9 to avoid arm build errors
      hash: 0428ca31b0a2953f674d023ccaf104624a6f536d
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Use balenalib base image for i386 base
      hash: 3ff9c5a9b17d7a9a9357d8b28dcad19e440800df
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Upgrade debug builds to node 10 for supported architectures
      hash: 2e6f03006317616f5c2884196c904399994ec87d
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Add debug build infrastructure and configuration
      hash: 4e779608a395a6e59bb413ef4e1f66597623ebc1
      body: ""
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Make delta application logs easier to parse for multicontainer
      hash: 1155d757e4937436a8fffb2ef81d1535e4579882
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Upgrade to node 10 for supported architectures
      hash: 56bac3a7ea90077dfce69d55cf90ce9a4b3a0997
      body: ""
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Upgrade to node 8 for supported architectures
      hash: b84f354ded674a1af127975f0ed9ec1cb9328678
      body: ""
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.15.0
  date: 2019-05-15T11:51:30.227Z
- commits:
    - subject: Allow system messages to not be tracked
      hash: 4e783fcd86c3058ccf28477730e2d269d8f2cca8
      body: |
        Also don't track update lock events
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Format update lock logs with pretty-ms
      hash: 50fdee429055fd94db868b76ab89a0ff7a1d2ea8
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Display update lock notification in dashboard logs
      hash: 27b68b584583ebbdfc9864d59b320660d6d45329
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Show better logs for UpdatesLockedError
      hash: 5894a9baf3c243b1c9647530da3ca68d65bc6cfb
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Clear backoff counter on new target state
      hash: 5ace459ad2ff35718cf3b986c0bf737343d667bc
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.14.12
  date: 2019-05-15T09:23:24.953Z
- commits:
    - subject: Fix supervisor tests for node v10.12.0 and above
      hash: 932a6f29973547b1e9fd6b8bbbb1f075cc13669f
      body: |
        Changes in the node engine related to streams would cause the gzip
        streams flush function to be called at the wrong times. The sinon fake
        timers were also interacting with this.

        We use setImmediate to call the flush function, and remove sinon timers
        for the logging tests.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.14.11
  date: 2019-05-10T11:36:26.579Z
- commits:
    - subject: Cache delta auth token request results for 10 minutes
      hash: 51703621a572ae4bd71b7f0ef01cf53364b97939
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.14.10
  date: 2019-05-10T10:17:52.132Z
- commits:
    - subject: "docs: make headers consistent"
      hash: acb38dfcfa8a7a658f083fe66455295bed503c51
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Matthew McGinn <matthew@balena.io>
        signed-off-by: Matthew McGinn <matthew@balena.io>
      author: Matthew McGinn
  version: 9.14.9
  date: 2019-05-06T16:49:56.428Z
- commits:
    - subject: "docs: fix up some stray resin references"
      hash: 331b109a6473fe880ad70522c54fb527c1c2b15d
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Matthew McGinn <matthew@balena.io>
        signed-off-by: Matthew McGinn <matthew@balena.io>
      author: Matthew McGinn
  version: 9.14.8
  date: 2019-05-03T11:01:56.292Z
- commits:
    - subject: Perform case-insensitive checking when converting booleans from strings
      hash: 8424fb44f6524fc745b47bce6e517b9d18133ef9
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.14.7
  date: 2019-05-03T10:34:42.043Z
- commits:
    - subject: "fix: Run db log cleanup on init - after migrations"
      hash: 9fae4bab620cebfc974b4e19464fa0c4ccb9a295
      body: |
        Before this change the first time the cleanup code runs would be before
        the migrations have had a chance to execute. This change makes it so
        that the cleanup code always runs once the migrations have finished.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.14.6
  date: 2019-04-25T15:59:45.568Z
- commits:
    - subject: "fix: Correctly handle multiple hosts ports pointing to a container port"
      hash: 0fa47f635bc9a05fea2d0f9b20a6cdc5a1797855
      body: |
        When assigning multiple host ports to a single container port before
        this change, the supervisor would incorrectly take only the first host
        port into consideration. This change makes it so that every host port
        per container port is considered.
      footer:
        Closes: "#986"
        closes: "#986"
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.14.5
  date: 2019-04-25T12:51:16.516Z
- commits:
    - subject: "compose: Remove unique expose entries after adding all entries"
      hash: 9e3fae585236c464fd25ab591b00d278c7d6463f
      body: |
        Prior to this change, we would `_.uniq` the expose value before adding
        values from the port mappings. This could cause ports to get added
        twice, which would cause the supervisor to think that there is a
        configuration mismatch.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.14.4
  date: 2019-04-11T09:41:48.891Z
- commits:
    - subject: Don't attempt to report any state during local mode
      hash: 892cf1961e5f86589f875e86294990dc8c6ed3bb
      body: |
        Even though this would never have attempted to report the state to the
        api during local mode, it leaves behind artifacts which would cause the
        state to be sometimes reported when exiting local mode. This would cause
        the api to reject the update unecessarily.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.14.3
  date: 2019-04-10T14:43:23.197Z
- commits:
    - subject: "types: Upgrade dockerode types, and remove fixes which are superceded"
      hash: 80031b76e4e27fb39b4c5cdaf9d131a503a3d124
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.14.2
  date: 2019-04-08T09:48:10.111Z
- commits:
    - subject: "avahi: Remove default service definitions"
      hash: 24ba07571c388e33720d8c3c9911dcc0ca33d297
      body: |
        Removes default 'example' service definitions that
        are included by Avahi 0.7+. These conflict with
        our balenaOS advertised services, causing potential
        issues.
      footer:
        Connects-to: "#957"
        connects-to: "#957"
        Change-type: patch
        change-type: patch
        Signed-off-by: Heds Simons <heds@balena.io>
        signed-off-by: Heds Simons <heds@balena.io>
      author: Heds Simons
  version: 9.14.1
  date: 2019-04-05T12:38:07.278Z
- commits:
    - subject: Run database cleanup on startup in addition to once a day
      hash: 5943d3117c36b18466cc91c02be3a1805d34020f
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: "fix: Fix non-tty container message parsing"
      hash: 760b18dd2aaa725bc283af29623ed3c913ec7d21
      body: |
        This had a bug where it was using the `in` operator on a list. It may
        have worked for some cases, but would have failed for others.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Report all logs from a container's runtime
      hash: e148ce052903460ae369b23e67abe54cf22769b6
      body: |
        We add a database table, which holds information about the last
        timestamp of a log successfully reported to a backend (local or remote).
        We then use this value to calculate from which point in time to start
        reporting logs from the container. If this is the first time we've seen
        a container, we get all logs, and for every log reported we save the
        timestamp. If it is not the first time we've seen a container, we
        request all logs since the last reported time, ensuring no interruption
        of service.
      footer:
        Change-type: minor
        change-type: minor
        Closes: "#937"
        closes: "#937"
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Refactor container logging interface and rename logging-backends
      hash: 25fd11bed3a9f3b59db85b7c647765e371a50a74
      body: |
        Container logging is now handled by a class which attaches and emits
        information from the container. We add these to the directory
        logging-backends/, and rename it to logging/.
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: "ux: Show a supervisor starting log message in dashboard"
      hash: 196f173e13b7bd12c7f95cf7cd1273438a1d4fd7
      body: ""
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: "ux: Remove service already running log message"
      hash: 0504776169be98894a213315095602ecc7e4882d
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.14.0
  date: 2019-04-05T09:07:32.071Z
- commits:
    - subject: In /v1/update, return 202 when we're not updating immediately
      hash: 9961ebb41d37c14b18b2bf4545eefae343a2c026
      body: >
        We also add a catch to any errors when getting configuration, and send
        503 in this case, even if it's

        unlikely.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Pablo Carranza Velez <pablo@balena.io>
        signed-off-by: Pablo Carranza Velez <pablo@balena.io>
      author: Pablo Carranza Velez
    - subject: Add a random jitter to target state polls, and a config var to ignore
        update notifications and not poll immediately after startup
      hash: 8f07bf62de4a509ac74380af8be42b2acf3c1b76
      body: >
        This commit does two related things:


        * We make the poll interval a random time between 0.5 and 1.5 times the
        configured interval.

        * We introduce the BALENA_SUPERVISOR_INSTANT_UPDATE_TRIGGER
        configuration variable, that defaults to true. If this variable is set

        to false, then calls to /v1/update are ignored, and on startup the
        supervisor waits for a poll interval before getting the target state.


        This will help especially on cases where there's a large number of
        devices on a single network. By disabling instant updates and setting a
        large

        poll interval, we can now achieve a sitation where not all devices apply
        an update at the same time, which can help avoid

        overwhelming the network.
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Pablo Carranza Velez <pablo@balena.io>
        signed-off-by: Pablo Carranza Velez <pablo@balena.io>
      author: Pablo Carranza Velez
  version: 9.13.0
  date: 2019-04-03T16:18:11.345Z
- commits:
    - subject: Fix service comparison when starting a stopped service
      hash: 9a343316b21522e34a94a66f2391e63a96516114
      body: |
        When comparing a stopped container after a start request, the container
        ID will be present in the target state (where usually it is not). We
        were already filtering this value out of the current state, but
        neglected to do so for the target state. This change now ensures we
        remove it from both alias lists if it exists.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.12.7
  date: 2019-04-03T12:12:48.672Z
- commits:
    - subject: Fix migration of legacy apps when there's more than one app in the
        local DB
      hash: c90270660000a0043b3f48751ea5186e69904368
      body: >
        In an edge case observed in the field, a supervisor's database held two
        applications

        because the device had been moved and the update lock was set in the old
        app. This causes

        the updated supervisor to be unable to start, logging "No compatible
        releases found in API",

        because it can't fetch the release for the app it was moved from.


        This commit changes the migration code to iterate through all apps, and
        remove any for which

        we can't get a release.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Pablo Carranza Velez <pablo@balena.io>
        signed-off-by: Pablo Carranza Velez <pablo@balena.io>
      author: Pablo Carranza Velez
  version: 9.12.6
  date: 2019-03-29T00:18:13.744Z
- commits:
    - subject: "test: Add a test case for deviceConfig.getDefaults"
      hash: ea6ebf822312665280903424d3f4bff1edd0476c
      body: |
        This would help avoid bugs like the one fixed in 9.11.1.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Pablo Carranza Velez <pablo@balena.io>
        signed-off-by: Pablo Carranza Velez <pablo@balena.io>
      author: Pablo Carranza Velez
  version: 9.12.5
  date: 2019-03-28T23:05:09.952Z
- commits:
    - subject: Only modprobe ip6_tables if it's necessary
      hash: de051653166f3ad3388b76e305f18efe6db1768b
      body: >
        If the kernel was built with support for ip6tables, there's no need to
        load the module. This is the case when running

        balenaOS in a container in Mac OS, which also can't do modprobes easily.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Pablo Carranza Velez <pablo@balena.io>
        signed-off-by: Pablo Carranza Velez <pablo@balena.io>
      author: Pablo Carranza Velez
  version: 9.12.4
  date: 2019-03-28T18:15:29.681Z
- commits:
    - subject: Parallelise cache pulling for builds
      hash: 9af416c7c01a70feb2c67b625ad45b8dce6dbc4f
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
  version: 9.12.3
  date: 2019-03-28T14:15:13.930Z
- commits:
    - subject: Fix typo in delta request error message
      hash: 175cbfee500332b47d55350c7a5c89eae211be06
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.12.2
  date: 2019-03-28T12:34:19.072Z
- commits:
    - subject: "fix: Correctly compare and generate network membership aliases"
      hash: b3192679c765940d3d6401efd85c845652b1f0f8
      body: |
        Before this change, service name resolution would only occur in the
        default network. This was because we were not explicitly adding aliases
        of the service names to the aliases fields.

        We also fix the comparison, which would do funny things based on
        container IDs, which was correct but unnecessary.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.12.1
  date: 2019-03-28T10:28:41.386Z
- commits:
    - subject: "misc: Update build stages to debian stretch"
      hash: 1191b39ee50ab5c8d7135733d55e498dc1b4e3fd
      body: |
        Jessie recently had the jessie-updates repos dropped. We upgrade to
        stretch to avoid a 404 on update (and to update things anyway).
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: "device-config: Show invalid values in dashboard logs"
      hash: c7499a6b128582e540d2e0d3e51f4acc698ea7f1
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: "events: Allow system messages to not be tracked"
      hash: 83d53cfb563c83b24f856279466859edeb06c4af
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: "device-config: Use default values for any invalid target values"
      hash: c211efe399d642840b7abd751c3ea1dce01935cd
      body: |
        If a value is requested which does not pass validation, we instead set
        it to the default value, to ensure that the state engine continues to
        work and move towards the target state.
      footer:
        Change-type: minor
        change-type: minor
        Closes: "#938"
        closes: "#938"
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.12.0
  date: 2019-03-27T14:20:21.282Z
- commits:
    - subject: "fix: When pinning a preloaded device, ensure the pinning is done when
        retrying after a failure"
      hash: 22a5b331969af7e8f84bc8b5054ff80ff6c33dad
      body: >
        Without this patch, if for some reason device pinning fails (e.g.
        connectivity goes down) or anything

        interrupts the initialization after provisioning completes but before
        pinning is completed, after a retry

        the supervisor would just skip the pinning code, leaving the device
        unpinned. This patch ensures that the

        pinning procedure is run even if the device was already provisioned (as
        long as the pinning flag has been set,

        of course). This matches the behavior that the CoffeeScript code had
        from before the TypeScript conversion.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Pablo Carranza Velez <pablo@balena.io>
        signed-off-by: Pablo Carranza Velez <pablo@balena.io>
      author: Pablo Carranza Velez
    - subject: "fix: Return a promise when retrying provisioning to avoid continuing
        after a failure"
      hash: 6e3bedeb1d1fe8e1facb2bb3330d2ecc499118b1
      body: >
        Otherwise we'll keep doing the rest of the APIBinder init steps, like
        reporting initial config,

        potentially before completing the provisioning.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Pablo Carranza Velez <pablo@balena.io>
        signed-off-by: Pablo Carranza Velez <pablo@balena.io>
      author: Pablo Carranza Velez
  version: 9.11.3
  date: 2019-03-21T00:56:45.740Z
- commits:
    - subject: "fix: Await reporting the initial config before continuing APIBinder
        initialization"
      hash: b374bd81dd2a8829078e2ae97d96700eebd63dce
      body: >
        This avoid a race condition, in which config.txt can be cleared if a
        target state is fetched before the

        initial values have been created as config vars.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Pablo Carranza Velez <pablo@balena.io>
        signed-off-by: Pablo Carranza Velez <pablo@balena.io>
      author: Pablo Carranza Velez
  version: 9.11.2
  date: 2019-03-20T19:32:19.214Z
- commits:
    - subject: Fix typo when getting device config default values
      hash: f32de99aff525db866500c19a8bd24b8f216852e
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Pablo Carranza Velez <pablo@balena.io>
        signed-off-by: Pablo Carranza Velez <pablo@balena.io>
      author: Pablo Carranza Velez
  version: 9.11.1
  date: 2019-03-19T20:50:22.269Z
- commits:
    - subject: "fix: Correct use of $expand to avoid an exception when updating from a
        legacy OS"
      hash: d64dcb4b4060d3e6fd84382d3b12c6d8a3fe2310
      body: >
        The last update of pinejs-client to pinejs-client-request made the way
        we were

        using $expand on the migration break. This switches to the correct way
        of doing it now.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Pablo Carranza Velez <pablo@balena.io>
        signed-off-by: Pablo Carranza Velez <pablo@balena.io>
      author: Pablo Carranza Velez
    - subject: "device-api: Add v2/device/tags api endpoint"
      hash: b922789deeb29568b7105ef2ffc3b6ec8900f97f
      body: |
        This endpoint will fetch the device tags from the balena api
      footer:
        Change-type: minor
        change-type: minor
        Closes: "#890"
        closes: "#890"
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: "device-api: Add v2/device/name endpoint"
      hash: 3f231e8ff3af80fd6006064d951013858bddcba3
      body: |
        This endpoint returns the last known device name from the API. This
        differs from the BALENA_DEVICE_NAME_AT_INIT env var because this will
        not change throughout the runtime of the container.
      footer:
        Closes: "#908"
        closes: "#908"
        Change-type: minor
        change-type: minor
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.11.0
  date: 2019-03-18T16:56:09.031Z
- commits:
    - subject: "state-engine: Return a noop when waiting for a dependency"
      hash: 84356b82b814b10c14c12a285ffe71dac278ea19
      body: |
        We run the risk of the state engine exiting early when a dependency is
        not ready, especially in local mode. This changes forces a noop to be
        returned when we are waiting on another service, which is the process
        used elsewhere in the state engine.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Skip dependency check on kill in local mode
      hash: 8f2d6f4d7b8293518600260acd986b8cb4ba53fe
      body: |
        This function would usually check that an image is present for a
        dependency, but in local mode the images would have never been inserted
        into the database.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.10.2
  date: 2019-03-13T10:36:16.473Z
- commits:
    - subject: Pin lodash types to avoid compile error
      hash: af734ad00800d8d845042f761754db6750cd9c20
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.10.1
  date: 2019-03-12T13:39:15.973Z
- commits:
    - subject: "docs: Standardise naming and json in api documentation"
      hash: d9bc26bd83b12f15bf099359e5425f4d956247a0
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: "docs: Add documentation for v2/state/status endpoint"
      hash: 4a17f704ab86b542a9140782ff5aa502ceac6cfd
      body: ""
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.10.0
  date: 2019-03-11T16:41:00.776Z
- commits:
    - subject: "codeowners: Add @CameronDiver, @pcarranzav and @Page-"
      hash: 68a28955ad1b5dc40b8f23c8ed1b998e195bc36d
      body: ""
      footer:
        Connects-to: "#926"
        connects-to: "#926"
        Change-type: patch
        change-type: patch
        Signed-off-by: Heds Simons <heds@balena.io>
        signed-off-by: Heds Simons <heds@balena.io>
      author: Heds Simons
  version: 9.9.1
  date: 2019-03-08T15:38:29.388Z
- commits:
    - subject: "state-engine: Add an exponential backoff for device-config noops"
      hash: 1aa58fd7b94e95a855b31dcb6fca8a374972a47b
      body: |
        To avoid unnecesarilly using resources, we add an exponential backoff
        when the noops explicitly come from the device-config module.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: "fix: Fix connectivity active VPN check"
      hash: ea1b247d3fad9587ee9f71ff8831e14e3d6854c6
      body: |
        During the conversion to typescript, the VPN active check was being
        performed on the directory, and not the file that the VPN creates,
        meaning it would always return true (as we explicitly create the
        directory on startup if it does not exist).
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: "state-engine: Add rate limited steps to device-config"
      hash: 6f797020998251384f6a6251f6ffe5614e4054fc
      body: |
        In the case of an airgapped supervisor, with a target state that
        requests the vpn be enabled, the supervisor will constantly loop on
        trying to set the vpn to on. Unfortunately the vpn requires an internet
        connection to be configured, so it will never be turned on.

        We add the concept of no-ops to the device-config state change steps,
        and don't end the state engine transition while these are present
        (similar to how image pulls are implemented).
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.9.0
  date: 2019-03-07T18:41:44.457Z
- commits:
    - subject: "feature: Add `BALENA_API_URL` environment variable when using the
        `balena-api` feature label"
      hash: aeb96aa807fea81f2e2aa4e3881bfb55b75b8618
      body: >
        When using the label `io.balena.features.balena-api` the supervisor will
        inject 2 environment

        variables into the container:

        - BALENA_API_KEY

        - BALENA_API_URL


        This allows the container to access the currently associated API using
        the KEY.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Rich Bayliss <rich@balena.io>
        signed-off-by: Rich Bayliss <rich@balena.io>
        Connects-to: "#847"
        connects-to: "#847"
      author: Rich Bayliss
  version: 9.8.7
  date: 2019-02-28T11:45:00.053Z
- commits:
    - subject: "debug: Print more information about failing validations"
      hash: 987de0e0975a7c468a3e2b606bb43e8dedcd2df8
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: "device-config: Add migration for SUPERVISOR_DELTA_APPLY_TIMEOUT"
      hash: f9626a3ee481eaafa2d1e2c4a38b391e09712ea7
      body: |
        The default value for the delta apply timeout was changed from `''` to
        `'0'` (note strings as these are database values) - but if the value
        existed in the database already, this would fail validation. We add a
        migration which will look explcitily for the failing value and switch it
        to the new default.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Increase max payload size in bodyparser to avoid PayloadTooLarge errors
      hash: c9507e013c83758c2c27321af05bd6f049037c1f
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.8.6
  date: 2019-02-25T12:23:14.252Z
- commits:
    - subject: Increase max payload size in bodyparser to avoid PayloadTooLarge errors
      hash: c9507e013c83758c2c27321af05bd6f049037c1f
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.8.5
  date: 2019-02-25T12:21:00.112Z
- commits:
    - subject: Fix provisioning workflow when UUID already exists
      hash: 0e3f2609781c460dbb7f91932d385fdabbbd5def
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.8.4
  date: 2019-02-25T12:14:25.872Z
- commits:
    - subject: Run iptables rules synchronous to avoid locking errors
      hash: 911ee7f009f5daa85067e7b7781ce79ca1e85424
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.8.3
  date: 2019-02-19T17:44:47.346Z
- commits:
    - subject: Revert "Upgrade to node 8 for supported architectures"
      hash: b3a07da8e47433f6e20fa7fe7a1da020ea49ef2b
      body: |
        This reverts commit 338ba4cdd7c6a0a7036e3c9d932622fbe5216436.

        This is to unblock the release of the supervisor version, pending the
        fix of the introduction of the race condition currently affecting v2
        deltas.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.8.2
  date: 2019-02-19T14:53:35.739Z
- commits:
    - subject: Don't mount /lib/modules if it is already mounted
      hash: fae2548f27fbf6bf3e76fb56f1e8356afaac5bdd
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.8.1
  date: 2019-02-14T13:52:37.276Z
- commits:
    - subject: Apply iptables rules to ipv6
      hash: 5f82f6fd3f341adc0659fd7fd7ed6813e4015d7d
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#867"
        closes: "#867"
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Symlink kernel modules and modprobe ip6_tables
      hash: 93c24298fff93e6f74d8883733f2f2e7c645fd39
      body: ""
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.8.0
  date: 2019-02-13T20:58:34.540Z
- commits:
    - subject: Improve error messages, and add description to ImageAuth error
      hash: 7bd7f7e0259896f6024b4b12131f4eb0f5a15bd1
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: "fix: Request image authentication token with explicitly as json"
      hash: 81ec85c5815dff1bfaf99dca7386ca9b49470eb1
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Always back off on image fetch failure
      hash: d9177404b5a1d270032aeeca13096ca30c71882c
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.7.7
  date: 2019-02-13T15:47:20.508Z
- commits:
    - subject: Don't treat a non-200 status response on patch as report errors
      hash: 06580bf437c49b18213d7e0e5ed72c2cfc427c7f
      body: |
        Non-200 errors were causing the watchdog to restart the supervisor,
        which in some cases could cause a restart loop. Instead we change the
        code to only treat communication failures as an error, and report status
        code failures directly.
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#843"
        closes: "#843"
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.7.6
  date: 2019-02-12T13:57:35.558Z
- commits:
    - subject: Allow newlines to be part of environment variables
      hash: 49dbaaba123b6f99f59b89e5ac0eae322949b4b2
      body: |
        We were not allowing newlines previously by virtue of the regex not
        allowing them. The docker daemon and supervisor handling code both
        support them, so we allow them in the parsing code too.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Remove environment variable whitespace trimming
      hash: 6bf008cc85104a0a9c3c969a0a9f49c66ccc4f7e
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.7.5
  date: 2019-02-12T11:24:23.730Z
- commits:
    - subject: Make sure to correctly convert config emit events after validation
      hash: 3d6dc88eb0c77d4bdeec93645d01d730c54e87d7
      body: |
        We were validating the input configuration values by coercing them to
        the correct type, and then using the initial value to be saved (which
        currently is always converted to a string).

        We now use the coerced value as the actual value we will store, and more
        importantly emit. This means that the config.on('change' ...) calls will
        always be properly typed, which before this change was not a guarantee
        that we could make.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.7.4
  date: 2019-02-11T11:24:08.324Z
- commits:
    - subject: Set default delta apply timeout of 0
      hash: 88f19b414737b2f3ab2bf9587464450e46460ff3
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.7.3
  date: 2019-02-11T10:22:08.628Z
- commits:
    - subject: "fix: Normalize ports from compose file on instantiation"
      hash: f3264862ca73e9b059da7fa7ce19aa67bfb9c296
      body: |
        Adjacent ports are always grouped together by docker when reporting the
        container state (from an inspect), so adjacent ports defined in the
        compose file would not match as they would not have been normalized.

        We make sure to always normalize the input port configuration, so that
        it will match the docker output (if it should).

        We also don't sort in the fromComposePorts function anymore as that is
        handled by the normalize function.
      footer:
        Closes: "#897"
        closes: "#897"
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.7.2
  date: 2019-02-09T21:43:47.044Z
- commits:
    - subject: "fix: Rework delete-then-download handling in state engine"
      hash: e9b51bbcd741fd65851190e73428d00ab18f7443
      body: |
        In the original implementation it was possible that the delete did not
        wait for the kill step to be finished, so it would not be deleted.

        We seperate this process into two steps, to allow for the container to
        have stopped before proceeding.
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#841"
        closes: "#841"
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.7.1
  date: 2019-02-06T11:41:48.551Z
- commits:
    - subject: Make the failure backoff time the same as the appUpdatePollTime
      hash: 828a0fc345a5dad567730dfe5a717dd7da305853
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Backoff on image download error
      hash: 146267b40248c0ace957c038fd03c7eb48d6b942
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#873"
        closes: "#873"
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Add the release to the status endpoint
      hash: c0e68bb069741af72a57b4996e3d00cdda450748
      body: ""
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Add application status endpoint
      hash: 769e2f3c519d0fa0f5d728c16f40a775ee255bf1
      body: ""
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.7.0
  date: 2019-02-05T18:42:06.007Z
- commits:
    - subject: Ensure the balena-fin always has it's overlay assigned
      hash: 2e09ed071c5d1c080b21303b45421cf65249f652
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#884"
        closes: "#884"
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.6.6
  date: 2019-02-05T16:20:13.225Z
- commits:
    - subject: "fix: Don't attempt a pull if the token requests fails"
      hash: d8085a6ef896ff7b63ee295765031829eb07de2b
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#879"
        closes: "#879"
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.6.5
  date: 2019-02-04T17:51:58.573Z
- commits:
    - subject: Pin terser version to avoid breaking change in minor update
      hash: 28d09f2772a224a4d2efb9dd35c333b21bbbc57a
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: "Build: Respect package-lock when building"
      hash: a92d9cef3db8a7c11f06e68a743f05a780a0f3b0
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Move legacy renaming to formatting function
      hash: d75c58f09dc8f15ac154741238fd98db642a562b
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Fix typo in OVERRIDE_LOCK
      hash: f12f4745162b4f63db1dc6c5b425a6b133cf58c9
      body: ""
      footer:
        Closes: "#885"
        closes: "#885"
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.6.4
  date: 2019-02-04T11:58:57.552Z
- commits:
    - subject: Wrap services.getAll in a bluebird promise
      hash: ef7d993db6a92964809ea779bf63a5fc68f880ca
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.6.3
  date: 2019-01-31T10:12:57.322Z
- commits:
    - subject: "fix: Properly bind context to healthchecks"
      hash: 6a9ca2a60df0b4eafc42cbac86d3161651eee68b
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: "fix: Only apply supervisor api authentication after healthcheck entry"
      hash: 707ddb5f450734ba58179682cfb30236311b3a94
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: "fix: Clear dbus pid file on startup"
      hash: ec87d26be194685ca91f376d7ee3dd3a6b764b3c
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.6.2
  date: 2019-01-29T14:20:48.328Z
- commits:
    - subject: Add missing ServiceManager methods
      hash: 8315413046e4b54278f504fd31398154f2ff4782
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.6.1
  date: 2019-01-29T11:52:53.041Z
- commits:
    - subject: Upgrade to node 8 for supported architectures
      hash: 338ba4cdd7c6a0a7036e3c9d932622fbe5216436
      body: ""
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.6.0
  date: 2019-01-25T18:29:42.903Z
- commits:
    - subject: "refactor: Convert ServiceManager to typescript"
      hash: ba000a73fc1873c87eb7f6003ca0ab961704184a
      body: ""
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Improve error and logger typings
      hash: e5893c0ee05b2003fa6ab5147e52b6d1a4faae1e
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: "refactor: Convert docker-utils module to typescript"
      hash: 02736113a394563dbb265cfe206e8e2aa65f9e6d
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#868"
        closes: "#868"
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.5.0
  date: 2019-01-25T14:00:21.080Z
- commits:
    - subject: "fix: Fix intial config reporting"
      hash: 9a97451e7a43524dc512f7f56e704a97369caa4b
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.4.2
  date: 2019-01-23T18:02:33.894Z
- commits:
    - subject: Clear up images.ts module code for simiplicity
      hash: 24ce72a2c339e52ac98099f61c235bb2c23d4f97
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Prefer optional type in ConfigChangeMap
      hash: 6f9d9e5de6c560be7e6960b6db6a0b22a4c882a2
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Use dictionary for db key
      hash: 6a1e787eee9fd810b4ce083f4eac900020761881
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.4.1
  date: 2019-01-23T16:42:26.747Z
- commits:
    - subject: "refactor: Convert volumes module to typescript"
      hash: 32acde0a99c0a3fdffe8b6abfd289ddc212b18f7
      body: ""
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: "refactor: Convert compose/images module to typescript"
      hash: 91b553dd329fe9d42fd4bb0e6e716860e506cf88
      body: ""
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: "deps: Update docker-toolbelt for typing fixes"
      hash: f10ad00e0141b17a5df23275278df2506732ad8c
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: "typings: Improve database typings by allowing unknown dictionary keys"
      hash: 1af13d3373f16dd3f303eedcf773ea80376a7661
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: "typings: Improve docker-utils typings"
      hash: fed01c355c8728e5088fd16c620582566bcd8c08
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: "misc: Add Nullable<T> helper type"
      hash: d1e1297f6db4b00ed382cd96e345b4c9637f7211
      body: ""
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: "config: Properly type the change events from config module"
      hash: 0505c0f97666ffcf1fcea6c5add50f38901b0db4
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.4.0
  date: 2019-01-23T09:15:45.444Z
- commits:
    - subject: Send connection message when streaming local mode logs
      hash: 06cdaddd714b3310574dcacabc6e416d03646b33
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.3.1
  date: 2019-01-16T13:18:15.975Z
- commits:
    - subject: "refactor: Remove unnecessary validations and casts"
      hash: 6a3148ff80989ac061b33332938181ed7c1ca3ba
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: "refactor: Fully type and validate config module set and get"
      hash: db74e748a15d33d3ea81c7afee7ed59890da8604
      body: |
        We define the type for each config value, and validate the data when
        retrieving and setting it.
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: "refactor: Remove scaffolding for unused mutable config functions"
      hash: ac4866170eb55b956a480a57c1e05dfa14c6b953
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: "fix: Use logind manager to request reboots and shutdowns"
      hash: 81b17faab15a241bf0e99fc8856823fa687ea1e2
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#861"
        closes: "#861"
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.3.0
  date: 2019-01-11T10:39:50.571Z
- commits:
    - subject: Fix context bind errors by switching to async/await
      hash: a970ec5377987bdc845a571c16514d3f15e8eadb
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.2.10
  date: 2019-01-08T16:23:42.125Z
- commits:
    - subject: "refactor: Convert ApiBinder module to typescript"
      hash: 01ed7bb103b4df8fb0679cf858220db42d4a0b92
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: "refactor: Only promisify read and write locks once"
      hash: d5f4ac690ff1c344599a576619ee7f00e1cc0ce1
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: "refactor: Convert supervisor api module to typescript"
      hash: 9decea1d3bd4c7bd5741d805062214d70646ec2f
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: "refactor: Change config modules export type to new-style"
      hash: 3a130f4f9cec919a76b6879dc33c9df0cf262213
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.2.9
  date: 2019-01-08T12:05:10.664Z
- commits:
    - subject: "refactor: Generate and normalise PortMaps from compose ports in-class"
      hash: dc34025545984dc035fac18aec8160ea095e5ca2
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: "compose: Normalise target ports for comparison with docker's output"
      hash: 557c32b80e09051e9fe3633a94fe38cd5a49fcdb
      body: |
        Docker always returns ports in ascending order, so if they aren't
        specified like that in the compose, a restart loop would occur. This
        patch changes the port maps to be stored in ascending order, based on
        an alphabetical sort of the internalStart port (not taking into account
        the protocol). This is the same as how Docker returns them, so they will
        match, regardless of input form.
      footer:
        Change-type: patch
        change-type: patch
        Closes: "#824"
        closes: "#824"
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.2.8
  date: 2019-01-02T12:20:55.151Z
- commits:
    - subject: "refactor: Convert DeviceConfig module to typescript"
      hash: b32fba43e1cb61dab101c38088bdb0e312690550
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: "types: Make DeviceApplicationState reflect state endpoint"
      hash: 7ba1ab981c2c785a8ceb247dfce2460d1ddfb9e5
      body: |
        Also change the return format of ApplicationManager.getStatus(), which
        does not conform to the above.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: "refactor: Change export style of db to named"
      hash: de5157c04c56e74709d49749dde7de470393e917
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: "refactor: Add default export to logger module"
      hash: 64db38204f840ec71fd2666f34af67f2dd0107d7
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: "refactor: Convert host-config module to typescript"
      hash: f4f67a5afc43542f35aa9285312d311aadbb43fd
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.2.7
  date: 2018-12-21T17:19:29.895Z
- commits:
    - subject: "misc: Exclude typescript files from resulting image"
      hash: 34e5a7b0481b3eb70414c748fae0d2a1d393f371
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.2.6
  date: 2018-12-21T09:27:44.035Z
- commits:
    - subject: Use webpack watching for sync.js for a faster dev cycle
      hash: c0c805d072d6fb7daca3a9d51dd4e324886df269
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
  version: 9.2.5
  date: 2018-12-20T17:42:34.493Z
- commits:
    - subject: "Force `devtool: none` to avoid issues with env.noOptimize"
      hash: 1130ecd3ce83e379a4f1aa41981836be2470151c
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
    - subject: Use fork-ts-checker to speed up the webpack build
      hash: 77dd1d0a44dad250186c6f7625226fa994a4f0e5
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
  version: 9.2.4
  date: 2018-12-20T16:49:22.103Z
- commits:
    - subject: "fix: Correctly type top level network IPAM config"
      hash: 9fab0fc5cc924a9c1a89a38682b7d440c7c3a649
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.2.3
  date: 2018-12-20T10:08:34.889Z
- commits:
    - subject: "deps: Pin event-stream to avoid false audit warning"
      hash: 0bae497e4d2e8371d1e69c6bd536d143e9029a35
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.2.2
  date: 2018-12-20T09:51:18.661Z
- commits:
    - subject: Update pinejs-client to pinejs-client-request 5.x
      hash: 019190646e5dbcc24a1aaa4fd4ed5d9274fce575
      body: ""
      footer:
        Change-type: patch
        change-type: patch
      author: Pagan Gazzard
  version: 9.2.1
  date: 2018-12-19T17:57:15.609Z
- commits:
    - subject: Update to webpack 4
      hash: 655c476ccdb40639f814eebd68a8170bc000f8e5
      body: ""
      footer:
        Change-type: minor
        change-type: minor
      author: Pagan Gazzard
  version: 9.2.0
  date: 2018-12-19T17:16:14.411Z
- commits:
    - subject: "device-api: Add morgan to log api requests"
      hash: 45b322b7e093abfa60ebb476c2cc477800de06b7
      body: ""
      footer:
        Change-type: minor
        change-type: minor
        Closes: "#834"
        closes: "#834"
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.1.0
  date: 2018-12-19T14:31:25.055Z
- commits:
    - subject: "refactor: Convert update-lock module to typescript"
      hash: b977b30dfee0b9d309133c2569ffe6a9e5af783c
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: "refactor: Convert systemd module to typescript"
      hash: ec37db597dbcf1965735b1d2b31a62fe7ad9540d
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: "refactor: Convert request module to typescript"
      hash: e00954babd455700bbc53e4e5003b42efbab2663
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: "refactor: Convert migration module to typescript"
      hash: 2ea657c95db960783b027e6cbc769376eef31c1b
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.0.3
  date: 2018-12-19T14:09:07.239Z
- commits:
    - subject: "VersionBot: Fix incomplete version in CHANGELOG.yml"
      hash: c87123f585874c07960935ce6accb3f6946813a6
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Giovanni Garufi <giovanni@balena.io>
        signed-off-by: Giovanni Garufi <giovanni@balena.io>
      author: Giovanni Garufi
  version: 9.0.2
  date: 2018-12-18T17:24:35.636Z
- commits:
    - subject: Fix a race condition that could cause an unnecessary restart of a
        service immediately after download
      hash: 42737cb9e96b889d0fdfd48926778a38566d927b
      body: >
        Up to now, there was a slim but non-zero chance that an image would be
        downloaded between the call to `@getTarget` inside deviceState

        (which gets the target state and creates Service objects using
        information from available images), and the call to

        `@images.getAvailable` in ApplicationManager (which is used to determine
        whether we should keep waiting for a download or start the

        service). If this race condition happened, then the ApplicationManager
        would infer that a service was ready to be started (because

        the image appears as available), but would have incomplete information
        about the service because the image wasn't available when

        the Service object was created. The result would be that the service
        would be started, and then immediately on the next applyTarget

        the ApplicationManager would try to kill it and restart it to update it
        with the complete information from the image.


        This patch changes this behavior by ensuring that all of the additional
        information about the current state, which includes available images,

        is gathered *before* building the current and target states that we
        compare. This means that if the image is downloaded after the call to
        getAvailable, the Service might be constructed with all the information
        about the image, but it won't be started until the next pass, because
        ApplicationManager will treat it as still downloading.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Pablo Carranza Velez <pablo@balena.io>
        signed-off-by: Pablo Carranza Velez <pablo@balena.io>
      author: Pablo Carranza Velez
  version: 9.0.1
  date: 2018-12-17T18:44:43.029Z
- commits:
    - subject: "unmanaged: Default to local mode in target state when unmanaged"
      hash: c533631f70f76893d5907a911c6304fd7ebd080f
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: "config: Force config values to strings when storing in db"
      hash: 151af309fb16029b7339b69149cc64ad03cdaa8f
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: "join: Disable local mode when joining a cloud"
      hash: 3ca1d7c864c6a71cd52d20aef0024eeeef866bef
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: "config: Replace supervisorOfflineMode and offlineMode with unmanaged"
      hash: 82602abf8d312aa871ece3f12f39a8ca76ee1553
      body: ""
      footer:
        Change-type: major
        change-type: major
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: "fix: Give unmanaged target states a source of 'local'"
      hash: 5bea0fdc9d0b2e347e339ec354425abc8368a156
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Require an apikey for supervisor api in production unmanaged
      hash: 178e80d92a158167137a24483bf589a436421668
      body: ""
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Switch to local mode in unmanaged mode
      hash: 5bb3820d6a135127ca2806ce04da7a145485ba13
      body: ""
      footer:
        Change-type: major
        change-type: major
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: Move config.json flag back to the database
      hash: 91a634056333e53c4905bee35af6e3ec6f9ce750
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
    - subject: 'Revert "localMode: Remove local mode from device-config"'
      hash: 19f8b7576646b4ceaeead02642f74327c79d979b
      body: |
        This reverts commit eda477ff8628c8f2d7afdefe3b282a045f8f5308.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 9.0.0
  date: 2018-12-17T10:53:36.565Z
- commits:
    - subject: Fix sync.js after move to balena-sync
      hash: 63d9d8df3879a5fadff69a2e5e0af523c25dc4ac
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Cameron Diver <cameron@balena.io>
        signed-off-by: Cameron Diver <cameron@balena.io>
      author: Cameron Diver
  version: 8.7.1
  date: 2018-12-13T14:21:44.452Z
- commits:
    - subject: "dindctl: Allow mounting a backup.tgz to test migration backups"
      hash: 42c39ed36d2012e3a6d3d84e1e11d6ae229001f5
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Pablo Carranza Velez <pablo@balena.io>
        signed-off-by: Pablo Carranza Velez <pablo@balena.io>
      author: Pablo Carranza Velez
    - subject: Add the ability to restore volumes from a backup.tgz in the data
        partition
      hash: 501272266baf73011a5259666ffed63074ca99ac
      body: ""
      footer:
        Change-type: minor
        change-type: minor
        Signed-off-by: Pablo Carranza Velez <pablo@balena.io>
        signed-off-by: Pablo Carranza Velez <pablo@balena.io>
      author: Pablo Carranza Velez
  version: 8.7.0
  date: 2018-12-12T17:25:29.819Z
- commits:
    - subject: Update lodash to v4.17.5
      hash: b52c92a044486724c154a5d1f06e3c4cf8c4039d
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Pablo Carranza Velez <pablo@balena.io>
        signed-off-by: Pablo Carranza Velez <pablo@balena.io>
      author: Pablo Carranza Velez
    - subject: Remove the unused register-coffee-coverage
      hash: 3c52faea54a82c6b24f28e7055456baf155333f9
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Pablo Carranza Velez <pablo@balena.io>
        signed-off-by: Pablo Carranza Velez <pablo@balena.io>
      author: Pablo Carranza Velez
    - subject: Update knex to 0.15.2 and sqlite3 to 4.0.4
      hash: d5b2fcd4dde845a13ba2535c835121e9c9836d10
      body: >
        We also replace a createTableIfNotExists in the migrations with hasTable
        then createTable, to

        avoid a warning message about it being not recommended.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Pablo Carranza Velez <pablo@balena.io>
        signed-off-by: Pablo Carranza Velez <pablo@balena.io>
      author: Pablo Carranza Velez
    - subject: "sync.js: Switch from resin-sync to balena-sync"
      hash: cbcf046d9154b76140fbcb48712319d154b92c46
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Pablo Carranza Velez <pablo@balena.io>
        signed-off-by: Pablo Carranza Velez <pablo@balena.io>
      author: Pablo Carranza Velez
  version: 8.6.11
  date: 2018-12-12T16:45:21.021Z
- commits:
    - subject: Fix typo that prevented deleting old resin/ supervisor images
      hash: a52683ade09d45eaa8ba3c691a2f67c3720bdc4d
      body: ""
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Pablo Carranza Velez <pablo@balena.io>
        signed-off-by: Pablo Carranza Velez <pablo@balena.io>
      author: Pablo Carranza Velez
  version: 8.6.10
  date: 2018-12-11T16:31:31.692Z
- commits:
    - subject: "versionbot: Add changelog yml file"
      hash: 3134f0dcebb8cda4bf0f9e94038c9363df9ad535
      body: |
        This file allows other components to uniquely parse the information that
        is contained in the changelog. It will be automatically managed by
        versionist by appending the new commits on top. This is needed to
        provide nested-changelogs.
      footer:
        Change-type: patch
        change-type: patch
        Signed-off-by: Giovanni Garufi <giovanni@resin.io>
        signed-off-by: Giovanni Garufi <giovanni@resin.io>
      author: Giovanni Garufi
  version: 8.6.9
  date: 2018-12-11T15:33:19.564Z
- version: 8.6.8
  date: 2018-12-07T00:00:00.000Z
  commits:
    - subject: "Api: Ensure Supervisor API returns IP addresses [Heds Simons]"
- version: 8.6.7
  date: 2018-12-04T00:00:00.000Z
  commits:
    - subject: Update docker-progress to reduce memory usage when pulling images
        [Cameron Diver]
- version: 8.6.6
  date: 2018-12-04T00:00:00.000Z
  commits:
    - subject: "Docs: Clarify Supervisor envvars exposure via label [Heds Simons]"
- version: 8.6.5
  date: 2018-12-04T00:00:00.000Z
  commits:
    - subject: Update mixpanel node dependency, to pick up path changes [Cameron Diver]
- version: 8.6.4
  date: 2018-11-30T00:00:00.000Z
  commits:
    - subject: "Docs: Clarify that older supervisors use RESIN_ variables [Pablo
        Carranza Velez]"
- version: 8.6.3
  date: 2018-11-29T00:00:00.000Z
  commits:
    - subject: "Unmanged: Don't require a device name when setting a target state
        [Cameron Diver]"
    - subject: "LocalMode: Remove local mode from device-config [Cameron Diver]"
- version: 8.6.2
  date: 2018-11-28T00:00:00.000Z
  commits:
    - subject: "Compose: Fix network option field names and update dockerode types
        [Cameron Diver]"
- version: 8.6.1
  date: 2018-11-28T00:00:00.000Z
  commits:
    - subject: "Fix: When updating from a legacy supervisor, use updated resource ids
        and image URL from the API [Pablo Carranza Velez]"
- version: 8.6.0
  date: 2018-11-28T00:00:00.000Z
  commits:
    - subject: "Device-api: Add container id endpoint [Cameron Diver]"
- version: 8.5.1
  date: 2018-11-28T00:00:00.000Z
  commits:
    - subject: Convert network module to typescript [Cameron Diver]
    - subject: Update network-checker to pick up typings [Cameron Diver]
    - subject: Fix return type for blinking instantiation function [Cameron Diver]
- version: 8.5.0
  date: 2018-11-28T00:00:00.000Z
  commits:
    - subject: "Config: Set default apiKey of empty string to avoid undefined keys
        [Cameron Diver]"
    - subject: Allow local mode to be controlled via config.json [Cameron Diver]
    - subject: Don't start connectivity check when in offlineMode [Cameron Diver]
    - subject: Improve UX when apps.json is not present [Cameron Diver]
    - subject: "Config: Switch default device type to `unknown` [Cameron Diver]"
    - subject: Handle empty apiEndpoint when detecting mixpanel host [Cameron Diver]
    - subject: "Fix: Set default apiEndpoint to empty [Cameron Diver]"
- version: 8.4.3
  date: 2018-11-27T00:00:00.000Z
  commits:
    - subject: "Compose: Set default config for stopSignal to SIGTERM [Shaun Mulligan]"
    - subject: "Compose: Change default stop signal from ' to SIGTERM [Shaun Mulligan]"
- version: 8.4.2
  date: 2018-11-26T00:00:00.000Z
  commits:
    - subject: Pin event-stream to avoid picking up vulnerable flatmap-stream [Cameron
        Diver]
- version: 8.4.1
  date: 2018-11-22T00:00:00.000Z
  commits:
    - subject: "Compose: Change default grace period to 10s [Cameron Diver]"
- version: 8.4.0
  date: 2018-11-21T00:00:00.000Z
  commits:
    - subject: Add package.lock file [Cameron Diver]
    - subject: "Events: Correctly proxy mixpanel events [Cameron Diver]"
    - subject: Fix m00001 migration by using targetValues [Cameron Diver]
- version: 8.3.9
  date: 2018-11-13T00:00:00.000Z
  commits:
    - subject: Fix m00001 migration by using targetValues [Cameron Diver]
    - subject: Appended API example [hippolyt]
- version: 8.3.8
  date: 2018-11-06T00:00:00.000Z
  commits:
    - subject: Let typescript do the json resolution so we get proper types [Pagan
        Gazzard]
- version: 8.3.7
  date: 2018-11-06T00:00:00.000Z
  commits:
    - subject: Update coffee-script to coffee-script 1.12 [Pagan Gazzard]
- version: 8.3.6
  date: 2018-11-06T00:00:00.000Z
  commits:
    - subject: "Tests: Increase timeout for test suites [Cameron Diver]"
- version: 8.3.5
  date: 2018-11-06T00:00:00.000Z
  commits:
    - subject: "Doc: Add documentation for supervisor endpoints added after v7
        [Cameron Diver]"
- version: 8.3.4
  date: 2018-11-06T00:00:00.000Z
  commits:
    - subject: Remove unused dependencies [Pagan Gazzard]
- version: 8.3.3
  date: 2018-11-06T00:00:00.000Z
  commits:
    - subject: Remove ts-node from test process [Cameron Diver]
- version: 8.3.2
  date: 2018-11-06T00:00:00.000Z
  commits:
    - subject: Remove node garbage collection flags [Cameron Diver]
- version: 8.3.1
  date: 2018-11-05T00:00:00.000Z
  commits:
    - subject: Fix migrations/jsonstream custom resolvers on windows [Pagan Gazzard]
- version: 8.3.0
  date: 2018-11-05T00:00:00.000Z
  commits:
    - subject: "Device-api: Also support serviceName in v2 service endpoints [Cameron
        Diver]"
- version: 8.2.4
  date: 2018-11-05T00:00:00.000Z
  commits:
    - subject: Remove some type casts [Pagan Gazzard]
    - subject: Remove versionist from package.json, it's handled by versionbot [Pagan
        Gazzard]
- version: 8.2.3
  date: 2018-11-02T00:00:00.000Z
  commits:
    - subject: Update to typescript 3 [Pagan Gazzard]
- version: 8.2.2
  date: 2018-11-02T00:00:00.000Z
  commits:
    - subject: Update to resin-lint 2 and add a precommit hook for prettier [Pagan
        Gazzard]
    - subject: Run resin-lint for both coffee and typescript [Pagan Gazzard]
- version: 8.2.1
  date: 2018-11-02T00:00:00.000Z
  commits:
    - subject: Add a .resinci.yml to disable regular docker and npm builds [Pablo
        Carranza Velez]
- version: 8.2.0
  date: 2018-11-02T00:00:00.000Z
  commits:
    - subject: Remove unused codepaths that do deltas from resin/scratch [Pablo
        Carranza Velez]
    - subject: Rename most of the documentation and variable names from resin to
        balena [Pablo Carranza Velez]
- version: 8.1.0
  date: 2018-11-01T00:00:00.000Z
  commits:
    - subject: Remove a deprecated debian repository from the aarch64 node image (used
        only at build-time) [Pablo Carranza Velez]
    - subject: When updating from resin-supervisor to balena-supervisor, try to delete
        old resin-supervisor images [Pablo Carranza Velez]
    - subject: Rename package to balena-supervisor and push to balena repos in
        DockerHub [Pablo Carranza Velez]
- version: 8.0.0
  date: 2018-11-01T00:00:00.000Z
  commits:
    - subject: "Api-binder: Use API v5 [Akis Kesoglou]"
- version: 7.25.13
  date: 2018-10-31T00:00:00.000Z
  commits:
    - subject: "Fix: When calling the /v1/update endpoint, always trigger a target
        state apply [Pablo Carranza Velez]"
- version: 7.25.12
  date: 2018-10-31T00:00:00.000Z
  commits:
    - subject: "Fix: Properly check for the balena-api label to inject the API key env
        vars [Pablo Carranza Velez]"
- version: 7.25.11
  date: 2018-10-31T00:00:00.000Z
  commits:
    - subject: "Fix: When setting target state, delete old apps from the same source
        [Pablo Carranza Velez]"
- version: 7.25.10
  date: 2018-10-25T00:00:00.000Z
  commits:
    - subject: "Test: Use longer delays in logger tests [Pablo Carranza Velez]"
- version: 7.25.9
  date: 2018-10-25T00:00:00.000Z
  commits:
    - subject: Update docker-delta to v2.2.2 [Pablo Carranza Velez]
- version: 7.25.8
  date: 2018-10-23T00:00:00.000Z
  commits:
    - subject: "ApplicationManager: when comparing images to save metadata, take
        docker image ids into account [Pablo Carranza Velez]"
    - subject: "Entry.sh: Use symbolic link to link to legacy lock path [Pablo
        Carranza Velez]"
- version: 7.25.7
  date: 2018-10-23T00:00:00.000Z
  commits:
    - subject: "Circle.yml: Only push tagged images on tagged commits [Pablo Carranza
        Velez]"
- version: 7.25.4
  date: 2018-10-23T00:00:00.000Z
  commits:
    - subject: "Fix: Use fat arrow for cleanup method [Cameron Diver]"
    - subject: "Fix: Run checkTruthy on config values before using them [Cameron Diver]"
- version: 7.25.5
  date: 2018-10-22T00:00:00.000Z
  commits:
    - subject: "Fix: Properly get the config from target state before comparing during
        initial config reporting [Pablo Carranza Velez]"
- version: 7.25.4
  date: 2018-10-20T00:00:00.000Z
  commits:
    - subject: "Fix: When checking for legacy containers, properly get the labels from
        config [Pablo Carranza Velez]"
    - subject: "Fix: Avoid trying to report duplicated values in initial config [Pablo
        Carranza Velez]"
- version: 7.25.3
  date: 2018-10-20T00:00:00.000Z
  commits:
    - subject: "Fix: Store and retrieve device config without namespaces [Pablo
        Carranza Velez]"
- version: 7.25.2
  date: 2018-10-19T00:00:00.000Z
  commits:
    - subject: Keep defaulting tty to true to avoid accidental breakage [Pablo
        Carranza Velez]
- version: 7.25.1
  date: 2018-10-19T00:00:00.000Z
  commits:
    - subject: Fix preloading in flasher images by reading apps.json if target hasn't
        been set [Pablo Carranza Velez]
- version: 7.25.0
  date: 2018-10-18T00:00:00.000Z
  commits:
    - subject: "DeviceConfig: allow BALENA_ config variables [Pablo Carranza Velez]"
- version: 7.24.1
  date: 2018-10-18T00:00:00.000Z
  commits:
    - subject: "Fix: Add typescript cast to fix type error [Cameron Diver]"
    - subject: "Fix: Remove debugging console logs [Cameron Diver]"
    - subject: "Fix: Apply default config options when they're falsy [Cameron Diver]"
    - subject: "Fix: Always set the container name when generating creation options
        [Cameron Diver]"
- version: 7.24.0
  date: 2018-10-18T00:00:00.000Z
  commits:
    - subject: "Config: Allow atomic config.json writes on balenaOS [Pablo Carranza
        Velez]"
    - subject: "Network: Ignore resin-redsocks and balena-redsocks when reporting IP
        addresses [Pablo Carranza Velez]"
    - subject: Use the DOCKER_SOCKET env var for the user container's balena socket
        mount [Pablo Carranza Velez]
- version: 7.23.0
  date: 2018-10-18T00:00:00.000Z
  commits:
    - subject: "Service: Fix device name env vars by injecting and filtering in the
        interface with docker [Pablo Carranza Velez]"
    - subject: "ServiceManager: add BALENA_DEVICE_NAME_AT_INIT to injected env vars
        [Pablo Carranza Velez]"
    - subject: Replace io.resin labels (and their env vars) with io.balena equivalents
        [Pablo Carranza Velez]
- version: 7.22.0
  date: 2018-10-17T00:00:00.000Z
  commits:
    - subject: Make handover-complete an alternative to the resin-kill-me file [Pablo
        Carranza Velez]
    - subject: Move the handover and lock files to /tmp/balena, rename them, and add
        BALENA_ env vars [Pablo Carranza Velez]
- version: 7.21.5
  date: 2018-10-16T00:00:00.000Z
  commits:
    - subject: Disable express' x-powered-by header [Pagan Gazzard]
- version: 7.21.4
  date: 2018-10-16T00:00:00.000Z
  commits:
    - subject: "Fix: overlay compose fields on image for healthcheck [Cameron Diver]"
    - subject: "Fix: Remove support for broken storageOpt option [Cameron Diver]"
- version: 7.21.3
  date: 2018-10-15T00:00:00.000Z
  commits:
    - subject: "Deltas: Bump docker-progress to pick up support for balena-engine
        [Cameron Diver]"
- version: 7.21.2
  date: 2018-10-15T00:00:00.000Z
  commits:
    - subject: Remove a few blacklisted config.txt options [Zubair Lutfullah Kakakhel]
- version: 7.21.1
  date: 2018-10-15T00:00:00.000Z
  commits:
    - subject: "Fix: Return void from config setter [Cameron Diver]"
    - subject: "Fix: Don't assume config is defined for legacy images in logger
        [Cameron Diver]"
- version: 7.21.0
  date: 2018-10-13T00:00:00.000Z
  commits:
    - subject: "Device-api: Add supervisor version endpoint [Cameron Diver]"
    - subject: "State: Don't consider local mode when storing state [Cameron Diver]"
    - subject: "Local mode: Add local mode manager module to handle cleanup [Cameron
        Diver]"
    - subject: "Logger: Enforce timestamp value to avoid logging server 400 errors
        [Cameron Diver]"
    - subject: Add logging endpoint to supervisor [Cameron Diver]
    - subject: Support local logging via standard logging interface [Cameron Diver]
    - subject: Support setting target state in local mode from supervisor API [Cameron
        Diver]
    - subject: Add several local mode enabling endpoints [Cameron Diver]
    - subject: Correctly type service-manager logger and event tracker fields [Cameron
        Diver]
    - subject: Don't set empty target state in local mode [Cameron Diver]
- version: 7.20.0
  date: 2018-10-08T00:00:00.000Z
  commits:
    - subject: "Fix: Correctly handle array based network definitions for service
        [Cameron Diver]"
    - subject: "Fix: Only join the default network when creating the container
        [Cameron Diver]"
    - subject: "Compose: Support changing the tty option for compose services [Cameron
        Diver]"
    - subject: "Types: Remove temporary Service type in favour of actual compose class
        [Cameron Diver]"
    - subject: "Compose/service: Convert module to typescript and add network config
        [Cameron Diver]"
    - subject: "Compose: Support more network creation options [Cameron Diver]"
    - subject: "Refactor: Split Networks class to Network and NetworkManager [Cameron
        Diver]"
- version: 7.19.7
  date: 2018-09-13T00:00:00.000Z
  commits:
    - subject: "Logger: Fix reporting the configuration change variables [Cameron
        Diver]"
- version: 7.19.6
  date: 2018-09-13T00:00:00.000Z
  commits:
    - subject: "Lib/errors: Improve typings by extending Error class for predicates
        [Cameron Diver]"
- version: 7.19.5
  date: 2018-09-12T00:00:00.000Z
  commits:
    - subject: ""
      Fix: Use throttle not debounce when ensuring we don't spam mixpanel [Cameron
        Diver]
- version: 7.19.4
  date: 2018-09-05T00:00:00.000Z
  commits:
    - subject: "Fix: Don't send internal state tracking information to the API
        [Cameron Diver]"
- version: 7.19.3
  date: 2018-09-04T00:00:00.000Z
  commits:
    - subject: "Fix: Fix event-tracker being passed no options object [Cameron Diver]"
    - subject: "Fix: Import logger properly and add startup test [Cameron Diver]"
    - subject: "Events: Report supervisor version with any mixpanel events [Cameron
        Diver]"
    - subject: "Events: Add rate limiting based on event name when reporting to
        mixpanel [Cameron Diver]"
    - subject: "Memory: Reduce memory usage by applying node command line flags
        [Mathew Heard]"
- version: 7.19.2
  date: 2018-09-04T00:00:00.000Z
  commits:
    - subject: "Fix: Add es2015 lib to tsconfig.json [Cameron Diver]"
    - subject: "Refactor: Use Dictionary<T> type in ports module [Cameron Diver]"
    - subject: "Fix: Respect logging enabling on instantiation of logger [Cameron
        Diver]"
    - subject: "Fix: Change import of ports module to be extensionless in tests
        [Cameron Diver]"
    - subject: "Refactor: Convert logging module to typescript [Cameron Diver]"
    - subject: "Types: Add global typings file containing Dictionary<T> type [Cameron
        Diver]"
    - subject: "Refactor: Make exported log-types implement interface [Cameron Diver]"
    - subject: "Refactor: Convert event tracker module to typescript [Cameron Diver]"
- version: 7.19.1
  date: 2018-08-29T00:00:00.000Z
  commits:
    - subject: "Fix: Dont bind service class methods in declaration [Cameron Diver]"
- version: 7.19.0
  date: 2018-08-29T00:00:00.000Z
  commits:
    - subject: "Housekeeping: Add private:true to package.json [Cameron Diver]"
    - subject: "Feature(host_config): Support gpio field as an array [Cameron Diver]"
- version: 7.18.0
  date: 2018-08-24T00:00:00.000Z
  commits:
    - subject: "Network: Add MDNS support for `.local` domains #713 [Heds Simons]"
- version: 7.17.1
  date: 2018-08-17T00:00:00.000Z
  commits:
    - subject: "Ux: Warn on invalid device name when trying to start a service #729
        [Cameron Diver]"
- version: 7.17.0
  date: 2018-08-16T00:00:00.000Z
  commits:
    - subject: "Fix: Fix importing of service type location #726 [Cameron Diver]"
    - subject: "Dev: Add package.json tasks to aid debugging supervisor tests #726
        [Cameron Diver]"
- version: 7.16.7
  date: 2018-08-16T00:00:00.000Z
  commits:
    - subject: "Update docker-toolbelt to pull in typings #727 [Cameron Diver]"
    - subject: "Refactor: Add docker-utils typings #727 [Cameron Diver]"
    - subject: "Refactor: Convert log-types module to typescript #727 [Cameron Diver]"
- version: 7.16.6
  date: 2018-08-13T00:00:00.000Z
  commits:
    - subject: "Docs: Add documentation for the v2/applications/state endpoint #722
        [Cameron Diver]"
- version: 7.16.5
  date: 2018-08-13T00:00:00.000Z
  commits:
    - subject: "Fix: Apply device name before generating container config #724
        [Cameron Diver]"
- version: 7.16.4
  date: 2018-08-07T00:00:00.000Z
  commits:
    - subject: "Fix: Restart a service when it's memory limit changes #721 [Cameron
        Diver]"
- version: 7.16.3
  date: 2018-08-01T00:00:00.000Z
  commits:
    - subject: "Add a backoff mechanism for state reporting errors #715 [Pagan Gazzard]"
- version: 7.16.2
  date: 2018-07-25T00:00:00.000Z
  commits:
    - subject: "Fix: Fix scoping issue with variables in service-manager #711 [Cameron
        Diver]"
- version: 7.16.1
  date: 2018-07-25T00:00:00.000Z
  commits:
    - subject: "Dont restart service on device name change #704 [Cameron Diver]"
- version: 7.16.0
  date: 2018-07-23T00:00:00.000Z
  commits:
    - subject: "Logger: Add unit tests #701 [Petros Angelatos]"
    - subject: "Logger: Remove pubnub leftovers #701 [Petros Angelatos]"
    - subject: "Logger: Only send logs produced after attaching #701 [Petros Angelatos]"
    - subject: "Logger: Use the new logging backend #701 [Petros Angelatos]"
- version: 7.15.0
  date: 2018-07-17T00:00:00.000Z
  commits:
    - subject: "Allow the enabling and disabling of persistent logging via env var
        #700 [Cameron Diver]"
    - subject: "Refactor config code to be consistent in location #700 [Cameron Diver]"
- version: 7.14.1
  date: 2018-07-16T00:00:00.000Z
  commits:
    - subject: "Re-enable majority of tests #699 [Cameron Diver]"
- version: 7.14.0
  date: 2018-07-12T00:00:00.000Z
  commits:
    - subject: "Remove resinApiEndpoint meta-endpoint and use config.json entry
        instead #692 [Cameron Diver]"
- version: 7.13.3
  date: 2018-07-12T00:00:00.000Z
  commits:
    - subject: "Correctly apply current commit value to applications #691 [Cameron
        Diver]"
- version: 7.13.2
  date: 2018-07-09T00:00:00.000Z
  commits:
    - subject: "Fix typo in config method call #688 [Cameron Diver]"
- version: 7.13.1
  date: 2018-06-28T00:00:00.000Z
  commits:
    - subject: "Bind db handle to fn variable #687 [Cameron Diver]"
- version: 7.13.0
  date: 2018-06-27T00:00:00.000Z
  commits:
    - subject: "Change config function providers to be mutable #684 [Cameron Diver]"
- version: 7.12.0
  date: 2018-06-26T00:00:00.000Z
  commits:
    - subject: "Fix /v1/device endpoint returning null for commit after an update #652
        [Cameron Diver]"
    - subject: "Add applications state v2 endpoint #652 [Cameron Diver]"
    - subject: "Move compose types to ./types and add partial definitions for compose
        modules #652 [Cameron Diver]"
    - subject: "Move v2 endpoints to separate module #652 [Cameron Diver]"
    - subject: "Refactor v1 api into seperate modules #652 [Cameron Diver]"
- version: 7.11.3
  date: 2018-06-25T00:00:00.000Z
  commits:
    - subject: "Add fromDockerOpts and normalization to PortMap class, and use in
        fromContainer #655 [Cameron Diver]"
    - subject: "Store port ranges as ranges, to reduce memory usage #655 [Cameron
        Diver]"
- version: 7.11.2
  date: 2018-06-18T00:00:00.000Z
  commits:
    - subject: "Convert config module to typescript #682 [Cameron Diver]"
    - subject: "Convert fs-utils module to typescript #682 [Cameron Diver]"
    - subject: "Convert os-release module to typescript #682 [Cameron Diver]"
    - subject: "Convert supervisor_version module to typescript, and add typings for
        json #682 [Cameron Diver]"
    - subject: "Convert db module to typescript #682 [Cameron Diver]"
- version: 7.11.1
  date: 2018-06-14T00:00:00.000Z
  commits:
    - subject: "Show better UX when a delta download fails because the image is
        processing #680 [Cameron Diver]"
    - subject: "Upgrade TypedError and move docker-utils error to error module #680
        [Cameron Diver]"
- version: 7.11.0
  date: 2018-06-13T00:00:00.000Z
  commits:
    - subject: "Pin a device to a commit when preload has a pinDevice field #669
        [Cameron Diver]"
- version: 7.10.2
  date: 2018-06-11T00:00:00.000Z
  commits:
    - subject: "Fix typo in EEXIST error predicate #677 [Cameron Diver]"
- version: 7.10.1
  date: 2018-06-11T00:00:00.000Z
  commits:
    - subject: "Convert iptables module to typescript #641 [Cameron Diver]"
    - subject: "Convert errors module to typescript #641 [Cameron Diver]"
- version: 7.10.0
  date: 2018-06-06T00:00:00.000Z
  commits:
    - subject: "Move config backend code out to classes which implement a common base
        #672 [Cameron Diver]"
    - subject: "Add support for extlinux configuration files #672 [Cameron Diver]"
    - subject: "Move boot config related code to config-utils module #672 [Cameron
        Diver]"
    - subject: "Add types for fs-utils module #672 [Cameron Diver]"
- version: 7.9.1
  date: 2018-05-29T00:00:00.000Z
  commits:
    - subject: "Update update-locking documentation #667 [Cameron Diver]"
- version: 7.9.0
  date: 2018-05-23T00:00:00.000Z
  commits:
    - subject: "Add support for Balena deltas #632 [Akis Kesoglou]"
    - subject: "Log delta debugging information #632 [Akis Kesoglou]"
- version: 7.8.0
  date: 2018-05-23T00:00:00.000Z
  commits:
    - subject: "Check against application source for target applications #662 [Cameron
        Diver]"
    - subject: "Add migration for source field to be added to app table #662 [Cameron
        Diver]"
- version: 7.7.2
  date: 2018-05-22T00:00:00.000Z
  commits:
    - subject: "Ignore leading and trailing whitespace when parsing env vars #665
        [Cameron Diver]"
- version: 7.7.1
  date: 2018-05-21T00:00:00.000Z
  commits:
    - subject: "Don't generate config fields in offline mode #651 [Cameron Diver]"
- version: 7.7.0
  date: 2018-05-18T00:00:00.000Z
  commits:
    - subject: "Add support for changing config.txt on balena fin devices #663 [Pablo
        Carranza Velez]"
- version: 7.6.0
  date: 2018-05-16T00:00:00.000Z
  commits:
    - subject: "Change intialConfigReported value to be an api endpoint #657 [Cameron
        Diver]"
- version: 7.5.6
  date: 2018-05-14T00:00:00.000Z
  commits:
    - subject: "Update gitignore to ignore new test files #653 [Cameron Diver]"
- version: 7.5.5
  date: 2018-05-11T00:00:00.000Z
  commits:
    - subject: "Update docs with multicontainer API breakages #654 [Tim Perry]"
- version: 7.5.4
  date: 2018-05-11T00:00:00.000Z
  commits:
    - subject: "Fix handling of systemd errors when polling for log to display #612
        [Cameron Diver]"
- version: 7.5.3
  date: 2018-05-02T00:00:00.000Z
  commits:
    - subject: "Add typescript linting to supervisor tests #638 [Cameron Diver]"
    - subject: "Convert conversions module to typescript #638 [Cameron Diver]"
    - subject: "Move shared types to separate module #638 [Cameron Diver]"
    - subject: "Convert blink module to typescript #638 [Cameron Diver]"
    - subject: "Convert lib/constants module to typescript #638 [Cameron Diver]"
    - subject: "Type parameters for validation functions better #638 [Cameron Diver]"
- version: 7.5.2
  date: 2018-05-01T00:00:00.000Z
  commits:
    - subject: "Add some more unit tests to the multicontainer supervisor #519 [Pablo
        Carranza Velez]"
- version: 7.5.1
  date: 2018-04-29T00:00:00.000Z
  commits:
    - subject: "Remove trailing slashes from working directories of services #637
        [Cameron Diver]"
- version: 7.5.0
  date: 2018-04-27T00:00:00.000Z
  commits:
    - subject: "Add tests for validation code #636 [Cameron Diver]"
    - subject: "Start initial typescript conversion, and add validation debugging #636
        [Cameron Diver]"
- version: 7.4.4
  date: 2018-04-23T00:00:00.000Z
  commits:
    - subject: "Use resinos-in-container for the development dind supervisor #630
        [Pablo Carranza Velez]"
- version: 7.4.3
  date: 2018-04-19T00:00:00.000Z
  commits:
    - subject: "On startup, only attach to logs for running containers, and remove any
        containers marked as dead #625 [Pablo Carranza Velez]"
- version: 7.4.2
  date: 2018-04-18T00:00:00.000Z
  commits:
    - subject: "Properly propagate delta failure #628 [Akis Kesoglou]"
- version: 7.4.1
  date: 2018-04-11T00:00:00.000Z
  commits:
    - subject: "Allow services (and their images) to expose udp ports besides tcp #622
        [Pablo Carranza Velez]"
- version: 7.4.0
  date: 2018-04-11T00:00:00.000Z
  commits:
    - subject: "Add ability to use self-signed CAs passed via `config.json`. #602
        [Heds Simons]"
- version: 7.3.0
  date: 2018-04-10T00:00:00.000Z
  commits:
    - subject: "Move to Node 6.13.1. #624 [Heds Simons]"
- version: 7.2.0
  date: 2018-04-04T00:00:00.000Z
  commits:
    - subject: "Run test suite on CI #616 [Cameron Diver]"
    - subject: "Add mocha to enable unit testing #616 [Lucian Buzzo]"
    - subject: "Fix regex for parsing memory numbers #616 [Cameron Diver]"
- version: 7.1.24
  date: 2018-03-29T00:00:00.000Z
  commits:
    - subject: "Respond to reboot and shutdown endpoints with a success object #608
        [Cameron Diver]"
- version: 7.1.23
  date: 2018-03-29T00:00:00.000Z
  commits:
    - subject: "Avoid weird cwd errors when dist does not exist with sync #606
        [Cameron Diver]"
- version: 7.1.22
  date: 2018-03-29T00:00:00.000Z
  commits:
    - subject: "Back off fetching the target state exponentially, for faster retries
        when there's no connectivity #596 [Pablo Carranza Velez]"
- version: 7.1.21
  date: 2018-03-27T00:00:00.000Z
  commits:
    - subject: "Handle incorrectly parsed env vars from docker inspect #605 [Cameron
        Diver]"
- version: 7.1.20
  date: 2018-03-22T00:00:00.000Z
  commits:
    - subject: "Replace the gosuper component with a node module that handles
        communication with systemd, and stop using an init system in the
        supervisor container #592 [Pablo Carranza Velez]"
- version: 7.1.19
  date: 2018-03-22T00:00:00.000Z
  commits:
    - subject: "Remove any leftover knex migrations locks before running migrations
        #599 [Pablo Carranza Velez]"
- version: 7.1.18
  date: 2018-03-19T00:00:00.000Z
  commits:
    - subject: "Trim whitespace from the hostname file on the host before passing it
        as the hostname for containers with host network #595 [Pablo Carranza
        Velez]"
- version: 7.1.17
  date: 2018-03-19T00:00:00.000Z
  commits:
    - subject: "Document that the update lock can be forced on reboots and shutdowns
        #591 [Pablo Carranza Velez]"
    - subject: "Force reboots and shutdowns if lock override is enabled #591 [Pablo
        Carranza Velez]"
- version: 7.1.16
  date: 2018-03-16T00:00:00.000Z
  commits:
    - subject: "In /v1/apps/:appId/stop, wait for the service to exit before
        responding #593 [Pablo Carranza Velez]"
- version: 7.1.15
  date: 2018-03-15T00:00:00.000Z
  commits:
    - subject: "Automation: Use ssh instead of https to PR to meta-resin #572 [Pablo
        Carranza Velez]"
- version: 7.1.14
  date: 2018-03-15T00:00:00.000Z
  commits:
    - subject: "Avoid trying to clean up the supervisor image if it has several tags
        (even though it would never succeed) #589 [Pablo Carranza Velez]"
- version: 7.1.13
  date: 2018-03-15T00:00:00.000Z
  commits:
    - subject: "Fix typo passing apiKey to the resin API client when exchanging
        apikeys #588 [Pablo Carranza Velez]"
    - subject: "Fix the check for whether the device is provisioned by correctly
        getting registered_at and deviceId from config.json into the ApiBinder
        #588 [Pablo Carranza Velez]"
- version: 7.1.12
  date: 2018-03-15T00:00:00.000Z
  commits:
    - subject: "Compose: Use the hostname on the host as default hostname for services
        with host network mode #586 [Pablo Carranza Velez]"
    - subject: "Pass the correct working_dir to the container config, and compare
        containers for working dir changes #586 [Pablo Carranza Velez]"
- version: 7.1.11
  date: 2018-03-14T00:00:00.000Z
  commits:
    - subject: "DeviceConfig: avoid trying to enable or disable the VPN when in
        offline mode #585 [Pablo Carranza Velez]"
- version: 7.1.10
  date: 2018-03-14T00:00:00.000Z
  commits:
    - subject: "ApplicationManager: try to match available images by imageId to avoid
        keeping around unused image entries in the db #584 [Pablo Carranza
        Velez]"
    - subject: "Compose: Emit a change event when a container is renamed, so that the
        updated imageId and releaseId are reported #584 [Pablo Carranza Velez]"
- version: 7.1.9
  date: 2018-03-13T00:00:00.000Z
  commits:
    - subject: "Skip taking the lock when updating the releaseId or imageId for a
        service that comes from a legacy supervisor #581 [Pablo Carranza Velez]"
    - subject: "When migrating from legacy supervisors, mark the temporary composition
        as legacy #581 [Pablo Carranza Velez]"
- version: 7.1.8
  date: 2018-03-13T00:00:00.000Z
  commits:
    - subject: "Avoid trying to send a response to API calls after we've already sent
        an error #579 [Pablo Carranza Velez]"
    - subject: "Fix passing a target service to start in /v1/apps/:appId/start, and
        getting the containerId #579 [Pablo Carranza Velez]"
- version: 7.1.7
  date: 2018-03-09T00:00:00.000Z
  commits:
    - subject: 'Gosuper: Treat systemd unit states that are not "inactive" or
        "deactivating" as enabled states #577 [Pablo Carranza Velez]'
- version: 7.1.6
  date: 2018-03-09T00:00:00.000Z
  commits:
    - subject: "Migrations: Use the correct service name for legacy apps #575 [Pablo
        Carranza Velez]"
    - subject: "ApplicationManager: only use dockerImageId to identify images for
        current apps, to avoid trying to delete an image that is in use #575
        [Pablo Carranza Velez]"
- version: 7.1.5
  date: 2018-03-09T00:00:00.000Z
  commits:
    - subject: "Fix bug in require for migrations for legacy preload #574 [Cameron
        Diver]"
- version: 7.1.4
  date: 2018-03-09T00:00:00.000Z
  commits:
    - subject: "Compose: fix type error, createVolume returns a promise #571 [Petros
        Angelatos]"
- version: 7.1.3
  date: 2018-03-08T00:00:00.000Z
  commits:
    - subject: "Lib: add missing flag to openAsync() #570 [Petros Angelatos]"
- version: 7.1.2
  date: 2018-03-08T00:00:00.000Z
  commits:
    - subject: "Compose: fix volume migration code #569 [Petros Angelatos]"
- version: 7.1.1
  date: 2018-03-08T00:00:00.000Z
  commits:
    - subject: "Convert object to array when normalising legacy target apps #568
        [Cameron Diver]"
- version: 7.1.0
  date: 2018-03-07T00:00:00.000Z
  commits:
    - subject: "Introduce workaround for IPv6 DNS resolution until nodejs becomes RFC
        3484 compliant #566 [Petros Angelatos]"
    - subject: "Start using an externally built resin/$ARCH-supervisor-base:v1.1.0 as
        base image, which adds the verbatim option to dns.lookup #566 [Pablo
        Carranza Velez]"
- version: 7.0.0
  date: 2018-03-07T00:00:00.000Z
  commits:
    - subject: "Send logs to the resin API by default #482 [Pablo Carranza Velez]"
    - subject: "Implement a new logger that sends logs to the resin API, that can be
        used optionally instead of PubNub #482 [Pablo Carranza Velez]"
    - subject: "Fix the way commands and entrypoints in string form are parsed #482
        [Pablo Carranza Velez]"
    - subject: "Use a supervisor0 network interface for the supervisor network API.
        Remove RESIN_APP_COMMIT and RESIN_APP_RELEASE env vars. #482 [Pablo
        Carranza Velez]"
    - subject: "Supervisor API: remove the tcp-ping endpoints #482 [Pablo Carranza
        Velez]"
    - subject: "Remove support for keeping the provisioning apiKey on Resin OS 1.X.
        Report initial values from config.txt and other device configuration
        variables to the Resin API. #482 [Pablo Carranza Velez]"
    - subject: "Remove all bind mounts that were specific to 1.X devices. Move the
        resin-kill-me file for the handover strategy to /tmp/resin. Add
        environment variables for the location of resin-kill-me and the
        lockfile. Use running containers to determine what services are running
        instead of storing them in the internal database. Use named volumes for
        persistent data. #482 [Pablo Carranza Velez]"
    - subject: "Allow running docker-compose-like multicontainer applications #482
        [Pablo Carranza Velez]"
    - subject: "Implement inference of device configuration. Allow array values for
        dtoverlay and dtparam. #482 [Pablo Carranza Velez]"
    - subject: "Infer the current state of the device when applying the target state
        #482 [Pablo Carranza Velez]"
    - subject: "Implement the multicontainer app models, and change the supervisor
        configuration management to avoid duplication between fields in
        config.json and fields in the internal database #482 [Pablo Carranza
        Velez]"
- version: 6.6.9
  date: 2018-03-05T00:00:00.000Z
  commits:
    - subject: "Update update-locking.md #565 [zwalchuk]"
- version: 6.6.8
  date: 2018-02-27T00:00:00.000Z
  commits:
    - subject: "Allow truthy values for deltas and lock override (i.e. the string
        'true' besides '1') #561 [Pablo Carranza Velez]"
- version: 6.6.7
  date: 2018-02-27T00:00:00.000Z
  commits:
    - subject: "Since armel builds are disabled, do not pull an armel node base image,
        and ensure we never deploy an armel supervisor #560 [Pablo Carranza
        Velez]"
- version: 6.6.6
  date: 2018-02-27T00:00:00.000Z
  commits:
    - subject: "Update docker-delta to 2.0.4 #558 [Akis Kesoglou]"
- version: 6.6.5
  date: 2018-02-21T00:00:00.000Z
  commits:
    - subject: "Circle.yml: escape branch name to ensure we always have a valid tag
        #556 [Pablo Carranza Velez]"
- version: 6.6.4
  date: 2018-02-20T00:00:00.000Z
  commits:
    - subject: "Circle.yml: Do not push images to dockerhub if building without a
        docker password #555 [Pablo Carranza Velez]"
- version: 6.6.3
  date: 2018-02-06T00:00:00.000Z
  commits:
    - subject: "Update resumable-request to v2.0 #551 [Akis Kesoglou]"
- version: 6.6.2
  date: 2018-01-24T00:00:00.000Z
  commits:
    - subject: "Use i386-nlp for supervisor releases for quark boards #549 [Pablo
        Carranza Velez]"
- version: 6.6.1
  date: 2018-01-19T00:00:00.000Z
  commits:
    - subject: "Improve caching in dindctl build and update README #526 [Pablo
        Carranza Velez]"
- version: 6.6.0
  date: 2018-01-18T00:00:00.000Z
  commits:
    - subject: "Implement an API for proxy and hostname configuration, and centralize
        management of config.json #547 [Pablo Carranza Velez]"
- version: 6.5.9
  date: 2018-01-12T00:00:00.000Z
  commits:
    - subject: "Fix saving deviceApiKey to the DB (to fix the RESIN_API_KEY env var)
        when updating from some older supervisors #544 [Pablo Carranza Velez]"
- version: 6.5.8
  date: 2018-01-10T00:00:00.000Z
  commits:
    - subject: "Update docker-toolbelt to v3.2.1 to fix a bug in deltas #543 [Pablo
        Carranza Velez]"
- version: 6.5.7
  date: 2018-01-05T00:00:00.000Z
  commits:
    - subject: "Avoid problems with null app names or invalid container names when
        migrating from old supervisors #541 [Pablo Carranza Velez]"
- version: 6.5.6
  date: 2017-12-15T00:00:00.000Z
  commits:
    - subject: "Update-locking: updating the documentation with extra  information and
        tools #528 [Gergely Imreh]"
- version: 6.5.5
  date: 2017-12-14T00:00:00.000Z
  commits:
    - subject: "Update resin-sync to allow syncing to devices that use balena #533
        [Pablo Carranza Velez]"
- version: 6.5.4
  date: 2017-12-14T00:00:00.000Z
  commits:
    - subject: "Do the webpack build in an amd64 image to improve build times #539
        [Pablo Carranza Velez]"
- version: 6.5.3
  date: 2017-12-12T00:00:00.000Z
  commits:
    - subject: "Gosuper: When getting IP addresses, ignore balena and the resin-dns
        bridge #536 [Pablo Carranza Velez]"
- version: 6.5.2
  date: 2017-12-12T00:00:00.000Z
  commits:
    - subject: "Dockerfile: improve caching by installing devDependencies before
        copying the code #535 [Pablo Carranza Velez]"
- version: 6.5.1
  date: 2017-12-11T00:00:00.000Z
  commits:
    - subject: "Avoid marking the supervisor as unhealthy if update is not happening
        because it's in offline mode #534 [Pablo Carranza Velez]"
- version: 6.5.0
  date: 2017-12-11T00:00:00.000Z
  commits:
    - subject: "Add a /v1/healthy endpoint that fails if the supervisor is unhealthy,
        and a HEALTHCHECK command to the Dockerfile that uses it #530 [Pablo
        Carranza Velez]"
- version: 6.4.9
  date: 2017-12-11T00:00:00.000Z
  commits:
    - subject: "Apply config.txt changes when the new config is empty, to fix deleting
        config.txt values #532 [Pablo Carranza Velez]"
    - subject: "Avoid stopping the VPN until a remote target state has been fetched,
        and retry applying config variables when they fail #532 [Pablo Carranza
        Velez]"
- version: 6.4.8
  date: 2017-12-01T00:00:00.000Z
  commits:
    - subject: "When listenPort is not specified, use 48484 as default #529 [Pablo
        Carranza Velez]"
- version: 6.4.7
  date: 2017-11-20T00:00:00.000Z
  commits:
    - subject: "Sync.js: Fix command to build the source code without optimizations
        #527 [Pablo Carranza Velez]"
- version: 6.4.6
  date: 2017-11-10T00:00:00.000Z
  commits:
    - subject: "Dind: Add a .gitkeep to docker.service.d to avoid dind build errors
        #525 [Pablo Carranza Velez]"
- version: 6.4.5
  date: 2017-11-09T00:00:00.000Z
  commits:
    - subject: "Use uglifyjs-webpack-plugin ^1.0.1 to optimize the supervisor code
        #524 [Pablo Carranza Velez]"
- version: 6.4.4
  date: 2017-11-08T00:00:00.000Z
  commits:
    - subject: "Dindctl: Use balena to refresh the supervisor container #523 [Pablo
        Carranza Velez]"
- version: 6.4.3
  date: 2017-11-03T00:00:00.000Z
  commits:
    - subject: "Use balena 17.06 and resin-base v2.9.2 for the docker-in-docker
        supervisor #518 [Pablo Carranza Velez]"
- version: 6.4.2
  date: 2017-11-03T00:00:00.000Z
  commits:
    - subject: "Avoid an indefinite recursion that grows the call stack when reporting
        the current state fails #480 [Pablo Carranza Velez]"
- version: 6.4.1
  date: 2017-11-02T00:00:00.000Z
  commits:
    - subject: "Improve caching when building gosuper #520 [Pablo Carranza Velez]"
    - subject: "Automation: Always try to cache using the latest master build #520
        [Pablo Carranza Velez]"
- version: 6.4.0
  date: 2017-11-01T00:00:00.000Z
  commits:
    - subject: "Fixes #511, add support for new supervisor image for x86 with quark
        cpu boards. #512 [Trong Nghia Nguyen]"
- version: 6.3.11
  date: 2017-11-01T00:00:00.000Z
  commits:
    - subject: "Add whitelist-based filtering to mixpanel events #500 [Pablo Carranza
        Velez]"
    - subject: "Tunnel all mixpanel events through the resin API #500 [Pablo Carranza
        Velez]"
- version: 6.3.10
  date: 2017-10-31T00:00:00.000Z
  commits:
    - subject: "Use a custom webpack loader to avoid uncaught exceptions from
        JSONStream #517 [Pablo Carranza Velez]"
- version: 6.3.9
  date: 2017-10-30T00:00:00.000Z
  commits:
    - subject: "Avoid fetching an image when it might be available or when starting an
        app because it might not be necessary #507 [Pablo Carranza Velez]"
    - subject: "Refactor container cleanup to remove all spurious containers #507
        [Pablo Carranza Velez]"
    - subject: "Use container name instead of id to identify apps, and avoid
        duplicated containers #507 [Pablo Carranza Velez]"
- version: 6.3.8
  date: 2017-10-30T00:00:00.000Z
  commits:
    - subject: "If a device is already provisioned but the key exchange fails, retry
        it until it succeeds #513 [Pablo Carranza Velez]"
- version: 6.3.7
  date: 2017-10-25T00:00:00.000Z
  commits:
    - subject: "Change the update retry to back off to the standard update check
        interval #515 [Pagan Gazzard]"
- version: 6.3.6
  date: 2017-10-24T00:00:00.000Z
  commits:
    - subject: "Ensure preloaded apps are properly loaded by setting their internal
        markedForDeletion to false, and run apps that have it set to null #510
        [Pablo Carranza Velez]"
    - subject: "Improve the check for when the device has been provisioned but the
        supervisor doesn't have knowledge of it in its local state #510 [Pablo
        Carranza Velez]"
    - subject: "Ensure preloaded apps get the deviceApiKey in the env vars, and apps
        never get the provisioning key, and improve detection of cases when the
        device has been pre-provisioned #510 [Pablo Carranza Velez]"
- version: 6.3.5
  date: 2017-10-19T00:00:00.000Z
  commits:
    - subject: "Update docker-toolbelt to fix applying deltas on overlay2 with huge
        images #509 [Akis Kesoglou]"
- version: 6.3.4
  date: 2017-10-17T00:00:00.000Z
  commits:
    - subject: "Delta improvements #504 [Akis Kesoglou]"
- version: 6.3.3
  date: 2017-10-17T00:00:00.000Z
  commits:
    - subject: "Update docker-progress to improve identification of Balena #505 [Akis
        Kesoglou]"
- version: 6.3.2
  date: 2017-10-11T00:00:00.000Z
  commits:
    - subject: "Allow specifying a config.json filename in dindctl #503 [Pablo
        Carranza Velez]"
    - subject: "Allow specifying a container name for the docker-in-docker development
        supervisor #503 [Pablo Carranza Velez]"
- version: 6.3.1
  date: 2017-10-04T00:00:00.000Z
  commits:
    - subject: "Update docker-progress #502 [Akis Kesoglou]"
- version: 6.3.0
  date: 2017-10-03T00:00:00.000Z
  commits:
    - subject: "Update docker-progress #501 [Akis Kesoglou]"
- version: 6.2.9
  date: 2017-09-15T00:00:00.000Z
  commits:
    - subject: "Explicitly define the source for deltas, allow cross-app deltas, and
        iterate serially through apps when updating #499 [Pablo Carranza Velez]"
- version: 6.2.8
  date: 2017-09-12T00:00:00.000Z
  commits:
    - subject: "Fix problem catching errors when killing a container that doesn't
        exist #496 [Pablo Carranza Velez]"
- version: 6.2.7
  date: 2017-09-01T00:00:00.000Z
  commits:
    - subject: "Prefer err.message when reporting errors from dockerode, then err.json
        and err.reason #490 [Pablo Carranza Velez]"
- version: 6.2.6
  date: 2017-08-29T00:00:00.000Z
  commits:
    - subject: "Add a sync.js script to allow syncing a running supervisor container
        on a local device #494 [Pablo Carranza Velez]"
- version: 6.2.5
  date: 2017-08-28T00:00:00.000Z
  commits:
    - subject: "Forward resume options #492 [Akis Kesoglou]"
- version: 6.2.4
  date: 2017-08-28T00:00:00.000Z
  commits:
    - subject: "Update docker-progress to v2.6.3 #493 [Pablo Carranza Velez]"
- version: 6.2.3
  date: 2017-08-26T00:00:00.000Z
  commits:
    - subject: "Deploy all archs by default to Resin #489 [Akis Kesoglou]"
- version: 6.2.2
  date: 2017-08-25T00:00:00.000Z
  commits:
    - subject: "Remove an unnecessary directory from sqlite3 that took 30MB #491
        [Pablo Carranza Velez]"
- version: 6.2.1
  date: 2017-08-18T00:00:00.000Z
  commits:
    - subject: "Ensure /var/run/resin exists before trying to mount it as tmpfs #486
        [Pablo Carranza Velez]"
- version: 6.2.0
  date: 2017-08-16T00:00:00.000Z
  commits:
    - subject: "Try to resume the download of a delta if it fails due to flaky network
        #483 [Akis Kesoglou]"
- version: 6.1.4
  date: 2017-08-07T00:00:00.000Z
  commits:
    - subject: "Fix references in deploy-to-resin.js and use github credentials when
        pushing in pr-to-meta-resin.sh #481 [Pablo Carranza Velez]"
- version: 6.1.3
  date: 2017-08-03T00:00:00.000Z
  commits:
    - subject: Avoid starting apps on startup if device has to reboot due to a
        configuration change [Pablo Carranza Velez]
- version: 6.1.2
  date: 2017-07-27T00:00:00.000Z
  commits:
    - subject: When the device is about to reboot or shutdown, close the API server
        and avoid applying updates [Pablo Carranza Velez]
- version: 6.1.1
  date: 2017-07-27T00:00:00.000Z
  commits:
    - subject: Avoid unhandled errors when in offline mode due to a missing
        apiEndpoint [Pablo Carranza Velez]
    - subject: Do not persist the uuid when in offline mode, so that the supervisor
        tries to provision if it goes out of offline mode [Pablo Carranza Velez]
- version: 6.1.0
  date: 2017-07-27T00:00:00.000Z
  commits:
    - subject: Update docker-delta to 1.1.1, docker-toolbelt to 3.0.1, docker-progress
        to 2.6.0 to add support for deltas and overlay2 [Pablo Carranza Velez]
- version: 6.0.5
  date: 2017-07-27T00:00:00.000Z
  commits:
    - subject: Allow building the supervisor source without optimizations for easier
        debugging with dindctl [Pablo Carranza Velez]
    - subject: Pull the supervisor image if it's not available when running with
        dindctl [Pablo Carranza Velez]
    - subject: Fix preloading and parsing of arguments in the dind supervisor [Pablo
        Carranza Velez]
- version: 6.0.4
  date: 2017-07-26T00:00:00.000Z
  commits:
    - subject: Fix the message shown when docker gives a 500 error when starting a
        container [Pablo Carranza Velez]
- version: 6.0.3
  date: 2017-07-25T00:00:00.000Z
  commits:
    - subject: Use a pinned build of the debian image to build base and gosuper, to
        avoid unnecessary rebuilds [Pablo Carranza Velez]
- version: 6.0.2
  date: 2017-07-24T00:00:00.000Z
  commits:
    - subject: Disable armel builds [Pablo Carranza Velez]
    - subject: Disable pushing to registry.resinstaging.io, and use build environment
        to login to dockerhub [Pablo Carranza Velez]
    - subject: Move dindctl to the base of the repository [Pablo Carranza Velez]
    - subject: Add a script to automate the creation of meta-resin PRs [Pablo Carranza
        Velez]
    - subject: Add a deploy-to-resin.js and automatically deploy to the Resin API on
        master builds [Pablo Carranza Velez]
    - subject: Use a local supervisor image for the dind supervisor [Pablo Carranza
        Velez]
    - subject: Replace the Jenkins build with a CircleCI build that uses the new
        multi-stage build [Pablo Carranza Velez]
    - subject: Make dindctl an easier to use tool that takes options instead of using
        env vars [Pablo Carranza Velez]
    - subject: Refactor the makefile to make it easier to use and make use of the
        multi-stage build [Pablo Carranza Velez]
    - subject: Add a single Dockerfile to build the supervisor as a multi-stage build
        [Pablo Carranza Velez]
- version: 6.0.1
  date: 2017-07-12T00:00:00.000Z
  commits:
    - subject: Use webpack to join all modules [Pablo Carranza Velez]
- version: 6.0.0
  date: 2017-07-07T00:00:00.000Z
  commits:
    - subject: Deprecate edge device type [Joe Roberts]
- version: 5.1.1
  date: 2017-07-04T00:00:00.000Z
  commits:
    - subject: Fix semver comparison for OS version when determining if the device has
        deviceApiKey support [Pablo Carranza Velez]
- version: 5.1.0
  date: 2017-07-01T00:00:00.000Z
  commits:
    - subject: Switch to glide for Go dependencies [Pablo Carranza Velez]
    - subject: Add support for aarch64 [Pablo Carranza Velez]
- version: 5.0.2
  date: 2017-07-01T00:00:00.000Z
  commits:
    - subject: "Dind: Set DELTA_ENDPOINT, insert variant into os-release, and fix vpn
        apikeys [Pablo Carranza Velez]"
- version: 5.0.1
  date: 2017-07-01T00:00:00.000Z
  commits:
    - subject: Allow registering the deviceApiKey in a non-compatible OS by making the
        apiKey equal the deviceApiKey, and add an fsync to all config.json
        writes [Pablo Carranza Velez]
- version: 5.0.0
  date: 2017-06-26T00:00:00.000Z
  commits:
    - subject: Remove the undocumented and unused sideload and compose APIs [Pablo
        Carranza Velez]
- version: 4.5.0
  date: 2017-06-26T00:00:00.000Z
  commits:
    - subject: Update docker-delta to 1.0.3 to support docker 17 [Pablo Carranza Velez]
- version: 4.4.2
  date: 2017-06-26T00:00:00.000Z
  commits:
    - subject: Fix provisioning key exchange by passing apikey in the request [Pablo
        Carranza Velez]
- version: 4.4.1
  date: 2017-06-24T00:00:00.000Z
  commits:
    - subject: Make cleanup in jenkins build less aggressive, but remove all created
        tags [Pablo Carranza Velez]
- version: 4.4.0
  date: 2017-06-15T00:00:00.000Z
  commits:
    - subject: When apiEndpoint is not defined, work in offline mode [Pablo Carranza
        Velez]
    - subject: Fix mixpanel initialization when not in offline mode [Pablo Carranza
        Velez]
- version: 4.3.2
  date: 2017-06-14T00:00:00.000Z
  commits:
    - subject: Update dependent device DB [Joe Roberts]
- version: 4.3.1
  date: 2017-06-13T00:00:00.000Z
  commits:
    - subject: Enable SSL when connecting to pubnub [Petros Angelatos]
- version: 4.3.0
  date: 2017-06-05T00:00:00.000Z
  commits:
    - subject: Switch to generating the BASE_IMAGE_VERSION in the makefile, so that
        the makefile targets can use an accurate version by default [Pagan
        Gazzard]
- version: 4.2.4
  date: 2017-05-12T00:00:00.000Z
  commits:
    - subject: Fix typo in how hostOSVersionPath was camel-cased [Pablo Carranza Velez]
- version: 4.2.3
  date: 2017-05-11T00:00:00.000Z
  commits:
    - subject: Properly handle errors when requesting deltas [Pablo Carranza Velez]
    - subject: Add aufs-tools to the dind supervisor for use when running on aufs
        [Pagan Gazzard]
- version: 4.2.2
  date: 2017-04-27T00:00:00.000Z
  commits:
    - subject: Only delete the provisioning key if the supervisor is running on an OS
        that supports using the deviceApiKey [Pablo Carranza Velez]
    - subject: Avoid writing target device config to DB if it hasn't changed [Pablo
        Carranza Velez]
- version: 4.2.1
  date: 2017-04-26T00:00:00.000Z
  commits:
    - subject: Fix an infinite loop that could happen when trying to bootstrap if the
        key exchange fails [Pagan Gazzard]
    - subject: Fix the case of being registered with a version of the cli/sdk that
        does not support device api keys. [Pagan Gazzard]
- version: 4.2.0
  date: 2017-04-24T00:00:00.000Z
  commits:
    - subject: Add handling for duplicate UUIDs and key exchanging for old
        user-api-keys [Pagan Gazzard]
    - subject: Change to the new device registration method to exchange our
        provisioning key with a dedicated api key for the device. [Pagan
        Gazzard]
    - subject: "Docs/API.md: Fix documentation command sent via the API proxy for POST
        /v1/update. [Horia Delicoti]"
- version: 4.1.2
  date: 2017-04-10T00:00:00.000Z
  commits:
    - subject: "Issue #420: Avoid supervisor crash without connection by properly
        memoizing promise-returning functions [Pablo Carranza Velez]"
    - subject: Report the OS variant as a separate field and not as part of the OS
        version [Pablo Carranza Velez]
- version: 4.1.1
  date: 2017-03-30T00:00:00.000Z
  commits:
    - subject: "Issue #413: Fix an error applying the connectivity check config var
        [Pablo Carranza Velez]"
    - subject: "Issue #410: Cleanup images before running an update, preserving the
        ones that will be used in the target state [Pablo Carranza Velez]"
- version: 4.1.0
  date: 2017-03-29T00:00:00.000Z
  commits:
    - subject: Authentication credentials for registry and delta server [Andreas Fitzek]
    - subject: "Issue #402: Ensure that app configs are non-null and valid json
        objects [Pablo Carranza Velez]"
    - subject: Report OS variant to the API together with the OS version [Pablo
        Carranza Velez]
    - subject: "Issue #230: Add a custom User-Agent header to all requests [Pablo
        Carranza Velez]"
    - subject: Update waffle badge [Sabith]
- version: 4.0.0
  date: 2017-03-09T00:00:00.000Z
  commits:
    - subject: "Issue #396: Log when we're rebooting due to a device config change
        [Pablo Carranza Velez]"
    - subject: "Issue #20: Change the update lock to a temporary filesystem [Pablo
        Carranza Velez]"
    - subject: Make local mode only work in development OS, and make it remove app
        containers and allow unauthenticated API requests [Pablo Carranza Velez]
    - subject: Restore default value when clearing a special action config variable
        [Pablo Carranza Velez]
    - subject: Allow all config variables to take truthy or falsy values [Pablo
        Carranza Velez]
    - subject: Allow setting the supervisor to a "local mode" which stops apps and
        prevents cleanup [Pablo Carranza Velez]
    - subject: "Issues #23 and #236: Use docker logs to get all logs from the
        container, including those before supervisor start [Pablo Carranza
        Velez]"
    - subject: "Issues #389 and #390: Remove /host_run/dbus and /host/var/lib/connman
        bind mounts for non-ResinOS-1.X devices [Pablo Carranza Velez]"
    - subject: "Issue #386: Allow forcing updates when an update was already scheduled
        [Pablo Carranza Velez]"
- version: 3.0.1
  date: 2017-02-15T00:00:00.000Z
  commits:
    - subject: "Issue #381: Set target deviceConfig values from preloaded apps [Pablo
        Carranza Velez]"
- version: 3.0.0
  date: 2017-01-18T00:00:00.000Z
  commits:
    - subject: "Issue #378: Increase delta timeouts (to avoid ESOCKETTIMEOUT errors),
        make them configurable, and provide nicer message when the delta server
        times out [Pablo Carranza Velez]"
    - subject: Update versionist to v2.8.0 [Pablo Carranza Velez]
    - subject: Update docker-progress to v2.3.3 [Pablo Carranza Velez]
    - subject: Switch to aufs for the docker-in-docker development supervisor [Pablo
        Carranza Velez]
    - subject: Do not bind mount kmod if the host is not Resin OS 1.X [Pablo Carranza
        Velez]
- version: 2.9.0
  date: 2016-12-20T00:00:00.000Z
  commits:
    - subject: Bump docker-delta to v1.0.1 to fix deltas on aufs when there's many
        layers [Pablo Carranza Velez]
    - subject: Document dependent apps feature [curcuz]
- version: 2.8.5
  date: 2016-12-20T00:00:00.000Z
  commits:
    - subject: Fix error applying device configuration because deviceConfig table is
        empty [Pablo Carranza Velez]
    - subject: Make the base image hash more deterministic [Pablo Carranza Velez]
- version: 2.8.4
  date: 2016-12-16T00:00:00.000Z
  commits:
    - subject: Use versionist's default configuration [Pablo Carranza Velez]
    - subject: Build the base image together with the supervisor [Pablo Carranza Velez]
    - subject: Start using versionist for versioning and changelog [Pablo Carranza
        Velez]
    - subject: Bump the MAX_BASIS_DIRS limit for rsync [Michal Mazurek]
- version: 2.8.3
  date: 2016-11-23T00:00:00.000Z
  commits:
    - subject: Fallback to DROP when iptables REJECT is not available [Pablo Carranza
        Velez]
- version: 2.8.2
  date: 2016-11-07T00:00:00.000Z
  commits:
    - subject: Update the supervisor base to 20161103 to include the i386 fix [Pablo
        Carranza Velez]
    - subject: Fix an error when trying to call logSystemEvent with an undefined app
        [Pagan Gazzard]
    - subject: Fix nodejs for the i386 architectures [Theodor Gherzan]
    - subject: Provide a better error message when app is not found for purging [Pablo
        Carranza Velez]
    - subject: Only iterate through remote apps to set device config [Pablo Carranza
        Velez]
- version: 2.8.1
  date: 2016-10-31T00:00:00.000Z
  commits:
    - subject: Properly delete dependent apps and their corresponding devices [Pablo
        Carranza Velez]
- version: 2.8.0
  date: 2016-10-30T00:00:00.000Z
  commits:
    - subject: Add HostConfig in container create instead of start [Pablo Carranza
        Velez]
    - subject: Make it clear in logs when container was already running [Pablo
        Carranza Velez]
    - subject: Stop all apps before rebooting or shutting down [Pablo Carranza Velez]
    - subject: Update request-progress to v2.0.1 [Pablo Carranza Velez]
- version: 2.7.1
  date: 2016-10-24T00:00:00.000Z
  commits:
    - subject: Use multiArgs to promisify gosuper requests [Pablo Carranza Velez]
    - subject: Also make it explicit in mixpanel events when it's a full image
        download [Pablo Carranza Velez]
    - subject: Log whether deltas are being used when downloading an app [Pablo
        Carranza Velez]
- version: 2.7.0
  date: 2016-10-23T00:00:00.000Z
  commits:
    - subject: Upgrade docker-progress to v2.3.1 [Pablo Carranza Velez]
    - subject: Fixed multiple update loops appearing after a long period of updates
        failing. [Pagan Gazzard]
    - subject: Avoid restarting the app if the device name changes [Pablo Carranza
        Velez]
    - subject: Use appId in dependent app assets tar path, and only create the tar if
        it doesn't exist [Pablo Carranza Velez]
    - subject: Support AUFS by upgrading node-docker-delta to 1.0.0 and
        docker-toolbelt to 1.3.0 [Pablo Carranza Velez]
    - subject: Send the uuid as distinct_id for mixpanel events [Pablo Carranza Velez]
    - subject: "gosuper: support i386 platforms without MMX instructions [Petros
        Angelatos]"
- version: 2.6.3
  date: 2016-10-13T00:00:00.000Z
  commits:
    - subject: Properly set device name, and set undefined arguments to setConfig as
        null [Pablo Carranza Velez]
- version: 2.6.2
  date: 2016-10-11T00:00:00.000Z
  commits:
    - subject: Updated knex to ~0.12.3
- version: 2.6.1
  date: 2016-10-11T00:00:00.000Z
  commits:
    - subject: Do not use parsed JSON to compare dep. device state [Pablo Carranza
        Velez]
- version: 2.6.0
  date: 2016-10-10T00:00:00.000Z
  commits:
    - subject: Fix docker utils getImageEnv by correctly parsing the returned array
        [Pablo Carranza Velez]
    - subject: Avoid installing npm dependencies twice [Pablo Carranza Velez]
    - subject: Updated to bluebird 3 [Pagan Gazzard]
    - subject: Better parameter handling in PUT /v1/devices/:uuid [Pablo Carranza Velez]
    - subject: An update hook response of 200 will cause the proxyvisor to stop
        pinging the hook [Pablo Carranza Velez]
    - subject: Allow deleting dependent apps and devices [Pablo Carranza Velez]
    - subject: Implement delete dependent device hook [Pablo Carranza Velez]
    - subject: Omit some fields when responding with a device object [Pablo Carranza
        Velez]
    - subject: Add validation to dependent device provisioning [Pablo Carranza Velez]
- version: 2.5.2
  date: 2016-10-07T00:00:00.000Z
  commits:
    - subject: Removed obsolete resolv.conf bind-mount [Petros Angelatos]
    - subject: Updated to pinejs-client 2 [Pagan Gazzard]
- version: 2.5.1
  date: 2016-10-06T00:00:00.000Z
  commits:
    - subject: Store config vars when there's nothing else to update [Pablo Carranza
        Velez]
    - subject: Do not mark an update as failed if the hook failed [Pablo Carranza Velez]
    - subject: When hitting the dependent devices hook, send appId as int [Pablo
        Carranza Velez]
    - subject: Updated to lodash 4 [Pagan Gazzard]
    - subject: Updated to coffeescript 1.11 [Pagan Gazzard]
    - subject: In delete-then-download, only delete when a download is needed [Pablo
        Carranza Velez]
    - subject: Compare config vars to trigger an app restart [Pablo Carranza Velez]
    - subject: Fix disabling logs to display on newer OS with different service name
        [Pablo Carranza Velez]
    - subject: In cleanup, normalize all image tags for comparison [Pablo Carranza
        Velez]
    - subject: Use getRegistryAndName from docker-toolbelt 1.2.0 [Pablo Carranza Velez]
- version: 2.5.0
  date: 2016-10-01T00:00:00.000Z
  commits:
    - subject: Switch to v2 api to be able to set is_online [Pagan Gazzard]
    - subject: Implement proxyvisor API with dependent device handling [Pablo Carranza
        Velez]
    - subject: Use the state endpoint from the API to get the full device state [Pablo
        Carranza Velez]
    - subject: Add a deviceConfig db table to store host config separately, and allow
        deleting config.txt entries [Pablo Carranza Velez]
    - subject: Expose RESIN_APP_NAME, RESIN_APP_RELEASE, RESIN_DEVICE_NAME_AT_INIT,
        RESIN_DEVICE_TYPE and RESIN_HOST_OS_VERSION env vars [Pablo Carranza
        Velez]
    - subject: Add missing error handler on a stream in docker-utils [Pablo Carranza
        Velez]
- version: 2.4.0
  date: 2016-09-30T00:00:00.000Z
  commits:
    - subject: On cleanup, force removal for images and containers, and remove
        container volumes [Pablo Carranza Velez]
    - subject: Add system logs for Shutdown, Reboot and Purge [Pablo Carranza Velez]
- version: 2.3.0
  date: 2016-09-26T00:00:00.000Z
  commits:
    - subject: Implement delete-then-download update strategy [Pablo Carranza Velez]
    - subject: Bump node-docker-delta to 0.0.12 [Pablo, Kostas]
- version: 2.2.1
  date: 2016-09-26T00:00:00.000Z
  commits:
    - subject: Fix ENV bug in build process [Petros Angelatos]
- version: 2.2.0
  date: 2016-09-23T00:00:00.000Z
  commits:
    - subject: Add resin-vpn interface IP filtering to gosupervisor [Praneeth]
    - subject: Compress go binary with upx [Petros Angelatos]
    - subject: Switch to go version 1.6 [Petros Angelatos]
    - subject: Print all logs to stdout of container instead of file [Petros Angelatos]
    - subject: Upgrade nodejs to version 6.5 [Petros Angelatos]
    - subject: Switch initsystem from supervisor to busybox init [Petros Angelatos]
    - subject: Switch build to openembedded base images [Petros Angelatos]
    - subject: DRY up calls to gosuper API, and use empty Host header [Pablo Carranza
        Velez]
- version: 2.1.1
  date: 2016-09-09T00:00:00.000Z
  commits:
    - subject: Add iptables rules to allow resin-vpn named interface to be used by VPN
        [Praneeth]
    - subject: Updated to coffee-script ~1.10.0 [Pagan Gazzard]
    - subject: Catch exec format error and provide friendlier error message [Aleksis]
- version: 2.1.0
  date: 2016-09-05T00:00:00.000Z
  commits:
    - subject: Pick up new variable from hostOS, pointing to the mount point of the
        hostOS's boot partition [Theodor Gherzan]
- version: 2.0.0
  date: 2016-08-31T00:00:00.000Z
  commits:
    - subject: "**[Breaking]** Change the logger to send at a specific interval and
        with a different message format [Pablo Carranza Velez]"
- version: 1.14.0
  date: 2016-08-16T00:00:00.000Z
  commits:
    - subject: Allow using an HTTP header for auth [Pablo Carranza Velez]
    - subject: Add iptables rules to block requests to the supervisor API from all
        interfaces except vpn, docker and local [Pablo Carranza Velez]
- version: 1.13.2
  date: 2016-08-09T00:00:00.000Z
  commits:
    - subject: "bootstrap: if offlineMode is enabled, persist only the uuid [Petros
        Angelatos]"
- version: 1.13.1
  date: 2016-07-28T00:00:00.000Z
  commits:
    - subject: Using `links` in compose files is now allowed [Petros Angelatos]
- version: 1.13.0
  date: 2016-07-27T00:00:00.000Z
  commits:
    - subject: Allow the supervisor to work in offline mode [Pablo Carranza Velez]
    - subject: Fix duplicate logs issue [Kostas Lekkas]
    - subject: "**[Breaking]** Do not bind mount /run/dbus to /run/dbus [Pablo
        Carranza Velez]"
    - subject: Default to not bind mounting kmod if container distro can't be found
        [Pablo Carranza Velez]
    - subject: Use log-timestamp to add timestamps to logs [Pablo Carranza Velez]
- version: 1.12.2
  date: 2016-07-15T00:00:00.000Z
  commits:
    - subject: Bind mount kmod if the container is debian or raspbian [Pablo Carranza
        Velez]
- version: 1.12.1
  date: 2016-07-08T00:00:00.000Z
  commits:
    - subject: Fix preloaded apps by passing appId to extendEnvVars
- version: 1.12.0
  date: 2016-06-28T00:00:00.000Z
  commits:
    - subject: Add endpoints for docker-compose up and down [Pablo Carranza Velez]
- version: 1.11.6
  date: 2016-06-23T00:00:00.000Z
  commits:
    - subject: Fixed deltas for older docker daemon versions [Petros Angelatos]
- version: 1.11.5
  date: 2016-06-23T00:00:00.000Z
  commits:
    - subject: Fix entry.sh when DOCKER_ROOT isn't set [Pagan Gazzard]
- version: 1.11.4
  date: 2016-06-17T00:00:00.000Z
  commits:
    - subject: Cleanup docker images if delta failed [Petros Angelatos]
    - subject: Make the data path configurable [Pablo Carranza Velez]
- version: 1.11.3
  date: 2016-06-11T00:00:00.000Z
  commits:
    - subject: Add listener for container events and reattach on restart [Pablo
        Carranza Velez]
    - subject: fix deltas by not using the supervisor as source [Pablo Carranza Velez]
- version: 1.11.2
  date: 2016-06-10T00:00:00.000Z
  commits:
    - subject: fix delta error handling by listening for the 'error' event [Petros
        Angelatos]
- version: 1.11.1
  date: 2016-06-09T00:00:00.000Z
  commits:
    - subject: Use sh for postinstall as alpine has no bash [Pablo Carranza Velez]
    - subject: update docker-delta to 0.0.8 [Petros Angelatos]
    - subject: symlink docker root to default path if not already there [Petros
        Angelatos]
- version: 1.11.0
  date: 2016-06-07T00:00:00.000Z
  commits:
    - subject: Add restart policies and change default to auto-restart [Aleksis]
- version: 1.10.1
  date: 2016-06-07T00:00:00.000Z
  commits:
    - subject: Switch to docker-delta library to use deltas v2 [Petros Angelatos]
    - subject: Correctly compare container image name on cleanup [Pablo Carranza Velez]
    - subject: Log useful supervisor info to stdout/stderr [Kostas Lekkas]
- version: 1.10.0
  date: 2016-05-26T00:00:00.000Z
  commits:
    - subject: Fix progress bars on docker version 1.10 [Aleksis]
- version: 1.9.0
  date: 2016-05-24T00:00:00.000Z
  commits:
    - subject: Fix reporting of supervisor version for alpine supervisor [Pablo
        Carranza Velez]
    - subject: Use rwlock to block when pulling images [Pablo Carranza Velez]
    - subject: Increase API timeout to 15 minutes, and make it configurable [Pablo
        Carranza Velez]
    - subject: Add endpoint to load images from a docker save tar [Pablo Carranza Velez]
    - subject: Add alpine supervisor build information [Trong]
    - subject: Add endpoints to manage images and containers locally [Pablo Carranza
        Velez]
    - subject: Only use bodyParser for endpoints that need it [Pablo Carranza Velez]
    - subject: Add RESIN_APP_ID variable [Pablo Carranza Velez]
    - subject: Increase delta request timeout to 15 minutes [Pablo Carranza Velez]
- version: 1.8.0
  date: 2016-04-25T00:00:00.000Z
  commits:
    - subject: Add endpoints to start, stop and get app [Pablo, Kostas]
    - subject: Removed a bunch ofobsolete code for the old terminal, reducing the
        supervisor size considerably. [Pagan Gazzard]
- version: 1.7.0
  date: 2016-03-28T00:00:00.000Z
  commits:
    - subject: Add RESIN_HOST_LOG_TO_DISPLAY variable [Pablo Carranza Velez]
    - subject: Add system logs for special actions and host config [Pablo Carranza
        Velez]
    - subject: Fix setting config.txt for RPi 3 [Pablo Carranza Velez]
    - subject: Fix saving config vars to DB before reboot [Pablo Carranza Velez]
    - subject: Bind mount host /var/lib/connman to application /host_var/lib/connman
        [Aleksis]
    - subject: Add RESIN_SUPERVISOR_DELTA to special list so that app is not restarted
        when it changes [Pablo Carranza Velez]
- version: 1.6.1
  date: 2016-03-08T00:00:00.000Z
  commits:
    - subject: Reduce noise in logs [Kostas Lekkas]
- version: 1.6.0
  date: 2016-02-22T00:00:00.000Z
  commits:
    - subject: Add endpoint to get device state [Pablo Carranza Velez]
    - subject: Check for valid strings or ints in all config values [Pablo Carranza
        Velez]
    - subject: Remove quotes in OS version [Pablo Carranza Velez]
- version: 1.5.0
  date: 2016-02-09T00:00:00.000Z
  commits:
    - subject: Add support for delta image download [petrosagg and Pablo]
- version: 1.4.0
  date: 2016-01-28T00:00:00.000Z
  commits:
    - subject: Report Host OS version to the API [Pablo Carranza Velez]
    - subject: Use _.defaults instead of _.extend to ensure internal env vars are not
        overwritten [Pablo Carranza Velez]
    - subject: Expose resin API key to apps [Pablo Carranza Velez]
    - subject: On download start, set download_progress to 0. On finish, set state to
        Idle [Pablo Carranza Velez]
    - subject: Set GOARM separately for each architecture [Pablo Carranza Velez]
    - subject: Add armv5 (armel) build [Trong]
    - subject: Add OOM protection for the supervisor container, openvpn and connmand
        [Praneeth]
- version: 1.3.2
  date: 2015-12-17T00:00:00.000Z
  commits:
    - subject: Do not report the tun addresses to API [Praneeth]
- version: 1.3.1
  date: 2015-12-07T00:00:00.000Z
  commits:
    - subject: Only save the app if starting the container was successful [Pablo
        Carranza Velez]
- version: 1.3.0
  date: 2015-12-01T00:00:00.000Z
  commits:
    - subject: Remove volumes when removing a container [Pablo Carranza Velez]
    - subject: Refactor the still undocumented special env vars into RESIN_SUPERVISOR_
        [Pablo Carranza Velez]
    - subject: Implement several update strategies (kill before download, 0-downtime)
        [Pablo Carranza Velez]
    - subject: Fix the error that comes up when no ip addresses are returned by
        gosuper [Praneeth]
    - subject: Switched to docker-progress for pull progress. [Pagan Gazzard]
    - subject: Fix semver versioning in tcp-ping endpoint. [Praneeth]
- version: 1.2.1
  date: 2015-11-04T00:00:00.000Z
  commits:
    - subject: Use random name for PubNub channel and report to API [Pablo Carranza
        Velez]
- version: 1.2.0
  date: 2015-10-16T00:00:00.000Z
  commits:
    - subject: Don't bind mount (the sometimes non-existent) docker.sock [Pablo
        Carranza Velez]
    - subject: Expose a RESIN_SUPERVISOR_VERSION env var to app [Pablo Carranza Velez]
- version: 1.1.1
  date: 2015-10-15T00:00:00.000Z
  commits:
    - subject: Prevent non-fatal errors from causing the supervisor to exit [Lorenzo]
    - subject: Use buildtime env vars as the default Pubnub and Mixpanel keys [Pablo
        Carranza Velez]
- version: 1.1.0
  date: 2015-10-09T00:00:00.000Z
  commits:
    - subject: Switch back to using arch-based node images [Pablo Carranza Velez]
    - subject: Don't allow bootstrap to delete apiSecret from DB [Pablo Carranza Velez]
    - subject: Add API endpoint to expire and create new API key [Pablo Carranza Velez]
    - subject: Enable control of API poll interval through Device Variables [Praneeth]
    - subject: Allow control of VPN + TCP check + Pub nub logs with Device Environment
        variables [Praneeth]
    - subject: Add GO api for openvpn control [Praneeth]
- version: 1.0.2
  date: 2015-10-08T00:00:00.000Z
  commits:
    - subject: Fix getting API key from DB by returning its .value [Pablo Carranza
        Velez]
- version: 1.0.1
  date: 2015-10-07T00:00:00.000Z
  commits:
    - subject: Pass supervisor API key to app, don't regenerate the key, and
        authenticate ALL requests [Pablo Carranza Velez]
    - subject: Use raspberrypi2 base image for armv7hf [Pablo Carranza Velez]
    - subject: "Bugfix: wrap all errors from update as Error objects - prevents image
        cleanup on download failures [Pablo Carranza Velez]"
    - subject: Wait 10 seconds after sending SIGTERM and before sending SIGKILL when
        stopping a container [Petros Angelatos]
- version: 1.0.0
  date: 2015-10-02T00:00:00.000Z
  commits:
    - subject: Expose supervisor API to app by allowing all requests from 127.0.0.1
        and passing address and port as env vars [Pablo Carranza Velez]
    - subject: Only apply special actions / boot config on change, and always persist
        to DB [Pablo Carranza Velez]
- version: 0.0.18
  date: 2015-10-01T00:00:00.000Z
  commits:
    - subject: Fix preloaded apps so that they have the complete environment [Pablo
        Carranza Velez]
- version: 0.0.17
  date: 2015-09-29T00:00:00.000Z
  commits:
    - subject: Updated bases image to board-specific, and all node versions to
        0.10.40-slim [Pablo Carranza Velez]
    - subject: Allow changing RPi config.txt with environment variables [Pablo
        Carranza Velez]
    - subject: Allow special env vars with a callback which don't cause an app restart
        [Pablo and Praneeth]
    - subject: Remove unused config.supervisorContainer in config.coffee [Praneeth]
    - subject: Implement and use golang endpoint for getting IPs of the device, also
        fixes duplicate IP reporting in the JS implementation [Praneeth]
    - subject: Refactor bootstrapping to run in background [Pablo Carranza Velez]
    - subject: Run preloaded app images [Pablo Carranza Velez]
    - subject: Add API endpoints for device reboot and shutdown [Pablo Carranza Velez]
    - subject: Add /restart endpoint to restart container [Pablo Carranza Velez]
    - subject: Add additional mount point for the host dbus on host_run/dbus [Praneeth]
    - subject: Switch to golang 1.5.1 for compiling [Praneeth]
    - subject: Allow /purge to be called with appId as string or number [Pablo
        Carranza Velez]
    - subject: Fetch containerId from DB within lock [Pablo Carranza Velez]
    - subject: Change update cycle to map by appId [Pablo Carranza Velez]
    - subject: Allow updates to be forced via an env var or an API call [Pablo
        Carranza Velez]
    - subject: Use lockfile to lock updates per app [Pablo Carranza Velez]
- version: 0.0.16
  date: 2015-09-07T00:00:00.000Z
  commits:
    - subject: Disabled the TCP ping whilst the VPN is connected. [Praneeth]
    - subject: Added TCP ping enable/disable endpoints. [Praneeth]
    - subject: Added initial go supervisor, using it to purge the /data directory of
        apps. [Pablo Carranza Velez]
    - subject: Mounted /lib/firmware into the user container. [Pablo Carranza Velez]
    - subject: Fixed spaces in env vars for web terminal. [Petros]
    - subject: Added missing return when no app id specified. [Pablo Carranza Velez]
    - subject: Try to populate the docker cache before building. [Pagan Gazzard]
- version: 0.0.15
  date: 2015-07-23T00:00:00.000Z
  commits:
    - subject: Make resolv.conf writable from a user container. [Praneeth]
    - subject: Updated pubnub (3.7.13 doesn't seem to have the heartbeat unnecessarily)
    - subject: Fixed an issue where an image would not be cleaned up if it was tagged
        in multiple repos. [Pagan Gazzard]
    - subject: Use JOBS=MAX for npm install. [Pagan Gazzard]
    - subject: Updated pinejs-client so that valid ssl certificates are enforced by
        default. [Pagan Gazzard]
    - subject: Write the `registered_at` time to config.json as well, in case there is
        a failure between writing to config.json and writing to knex [Pagan
        Gazzard]
- version: 0.0.14
  date: 2015-05-12T00:00:00.000Z
  commits:
    - subject: Clean up tmp files left behind by npm [Pagan Gazzard]
    - subject: Fix an error where mixpanel events would have the wrong uuid set on
        first provision. [Pagan Gazzard]
    - subject: Update knexjs to ~0.8.3, which uses lodash 3 and means it will be
        deduplicated (reducing image size and runtime memory usage) [Pagan
        Gazzard]
    - subject: Stop caching config.json, avoids a race that could cause getting stuck
        repeatedly trying to register [Pagan Gazzard]
- version: 0.0.13
  date: 2015-05-05T00:00:00.000Z
  commits:
    - subject: Bind mount /etc/resolv.conf as ro for application containers and
        supervisor [Praneeth]
- version: 0.0.12
  date: 2015-04-15T00:00:00.000Z
  commits:
    - subject: Stopped displaying an error message when trying to start a container
        that is already started.
    - subject: Improved error messages reported to the user in the case of finding an
        empty string.
    - subject: Switched to using the dockerode pull progress mechanism.
    - subject: Fixed trying to delete supervisor container when it reports an
        alternate tag instead of the primary tag.
    - subject: Switched to using the i386-node image as a base for the i386-supervisor
    - subject: Fixed reporting error objects to mixpanel.
