- 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: "\U0001F527 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: "\U0001F527 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.