# Change Log

All notable changes to this project will be documented in this file
automatically by Versionist. DO NOT EDIT THIS FILE MANUALLY!
This project adheres to [Semantic Versioning](http://semver.org/).

## 8.0.5 - 2026-06-17

* Switch from custom `Dictionary` type to built in `Record` typing [Pagan Gazzard]

## 8.0.4 - 2026-05-28

* Bump @balena/compose-parser to 0.2.6 [Christina Ying Wang]

## 8.0.3 - 2026-05-11

* Bump @balena/compose-parser to 0.2.4 [Christina Ying Wang]

## 8.0.2 - 2026-05-01

* Bump @balena/compose-parser to 0.2.1 [Christina Ying Wang]

## 8.0.1 - 2026-04-02

* Fix Dockerfile.template and arch-specific Dockerfile resolution [Christina Ying Wang]

## 8.0.0 - 2026-04-01

* Output Composition object from defaultComposition [Christina Ying Wang]
* Replace compose parsing functionality with @balena/compose-parser [Christina Ying Wang]

## 7.4.1 - 2026-03-17

* tests: Stop using url.parse [Thodoris Greasidis]

## 7.4.0 - 2026-03-06

* Mark balena-sdk v23 as supported [Pagan Gazzard]
* Mark balena-sdk to the peer dependency it is [Pagan Gazzard]

## 7.3.3 - 2026-02-24

* Add id-token: write permission for NPM OIDC publishing [Kyle Harding]

## 7.3.2 - 2026-01-08

* Add ts-node to dev deps [joshbwlng]
* Update dependency ts-mocha to v11 [balena-renovate[bot]]

## 7.3.1 - 2026-01-06

* Set label values to stringified number [joshbwlng]

## 7.3.0 - 2025-12-19

* Support sw.os and sw.kernel contract requirement variants, allow multiple variants [Christina Ying Wang]

## 7.2.1 - 2025-10-16

* Drop unused `bluebird-lru-cache` from typings [Otavio Jacobi]

## 7.2.0 - 2025-10-08

* Add a `populateStreamingTaskBuildStream` variant that does not buffer everything into memory [Pagan Gazzard]

## 7.1.4 - 2025-10-08

* Revert: Only buffer contract files when populating the task build stream [Pagan Gazzard]

## 7.1.3 - 2025-10-07

* Only buffer contract files when populating the task build stream [Pagan Gazzard]

## 7.1.2 - 2025-10-03

* Switch from `es.join` to a native `Transform` stream [Pagan Gazzard]
* Switch from `es.mapSync` to a native `Transform` stream [Pagan Gazzard]
* Switch from `es.through` to a native `Transform` stream [Pagan Gazzard]

## 7.1.1 - 2025-10-03

* Replace `duplexify` with native equivalent [Pagan Gazzard]

## 7.1.0 - 2025-10-01

* Loosen the `buildStream` typing slightly to a generic `Stream.Readable` [Pagan Gazzard]
* Allow generating tasks and their build streams separately [Pagan Gazzard]

## 7.0.20 - 2025-09-26

* Switch to `stream.resume()` for draining streams [Pagan Gazzard]
* fromImageDescriptors: avoid reprocessing a contract when used in multiple tasks [Pagan Gazzard]
* fromImageDescriptors: avoid cloning the header when possible [Pagan Gazzard]

## 7.0.19 - 2025-09-26

* Change `resolveInput` to use `throughTarStream` [Pagan Gazzard]

## 7.0.18 - 2025-09-25

* Update `transposeTarStream` to use `throughTarStream` [Pagan Gazzard]

## 7.0.17 - 2025-09-25

* Switch to using nodejs stream.promises.pipeline for awaiting a pipe [Pagan Gazzard]

## 7.0.16 - 2025-09-24


<details>
<summary> Make use of `throughTarStream` to avoid buffering memory [Pagan Gazzard] </summary>

> ### node-tar-utils-3.1.0 - 2025-09-24
> 
> * Add a `throughTarStream` helper that can be used without buffering memory [Pagan Gazzard]
> 
> ### node-tar-utils-3.0.5 - 2025-09-24
> 
> * `cloneTarStream`: stream entries directly to the pack where possible [Pagan Gazzard]
> 
> ### node-tar-utils-3.0.4 - 2025-09-24
> 
> * Update dev dependencies [Pagan Gazzard]
> 

</details>

## 7.0.15 - 2025-09-24

* Forward errors with extract stream to the `next` handler [Pagan Gazzard]

## 7.0.14 - 2025-09-24

* Convert promise chains to async/await [Pagan Gazzard]

## 7.0.13 - 2025-09-24

* Reduce lodash usage [Pagan Gazzard]

## 7.0.12 - 2025-09-24

* Use balena-sdk model info to improve the typings [Pagan Gazzard]

## 7.0.11 - 2025-09-23

* Update dependencies [Pagan Gazzard]

## 7.0.10 - 2025-08-08

* Allow pinejs-client-core ^8.0.0 on peerDependency [Otavio Jacobi]

## 7.0.9 - 2025-05-15

* Update dockerode to 4.0.4 [Felipe Lalanne]
* Use JSON serialization for balena build secrets [Felipe Lalanne]

## 7.0.8 - 2025-05-15

* Change docker-modem to a devDependency [Thodoris Greasidis]

## 7.0.7 - 2025-04-11

* Update dependency dockerfile-ast to ^0.7.0 [balena-renovate[bot]]

## 7.0.6 - 2025-04-10

* Update dependency @types/tar-stream to v3 [balena-renovate[bot]]

## 7.0.5 - 2025-04-10

* Update @balena/lint to 9.x [Pagan Gazzard]

## 7.0.4 - 2025-04-09

* Update dependency mocha to v11 [balena-renovate[bot]]

## 7.0.3 - 2025-04-02

* Update dependency @balena/lint to v8 [balena-renovate[bot]]

## 7.0.2 - 2025-03-19

* Update Node.js to v10.24.1 [balena-renovate[bot]]

## 7.0.1 - 2025-03-06

* Add slug to contracts from requirement labels [Felipe Lalanne]

## 7.0.0 - 2025-03-03

* Create image contracts when creating release [Felipe Lalanne]
* Create task contracts from composition labels [Felipe Lalanne]
* Do not validate unique container contract names [Felipe Lalanne]

## 6.0.1 - 2025-02-27

* Use self-hosted CI runners [Felipe Lalanne]
* JSON stringify cachefrom option for builds [Felipe Lalanne]

## 6.0.0 - 2024-12-11

* Make `pinejs-client-core` a peer dependency [myarmolinsky]

## 5.0.0 - 2024-09-17

* Adjust `Request` comment for v7 [myarmolinsky]
* Update `image_size` typing for API v7 [myarmolinsky]
* Update `contract` types for API v7 [myarmolinsky]

## 4.0.1 - 2024-07-19

* Update pinejs-client and make use of improved typings [Pagan Gazzard]

## 4.0.0 - 2024-07-19

* Stop actively supporting v1 docker image format [Otavio Jacobi]
* Fix CI error of tar files created on mac [Otavio Jacobi]
* resolve: Replace request with fetch [Thodoris Greasidis]
* Drop support for node < 20.6.0 [Thodoris Greasidis]
* Drop release.createClient [Thodoris Greasidis]

## 3.2.1 - 2024-02-13

* Upgrade dockerode and docker-modem dependencies [Ken Bannister]
* Prettify fix for consistent-type-imports [Ken Bannister]
* Prettify fix for whitespace [Ken Bannister]

## 3.2.0 - 2023-12-05

* release/createClient: Allow specifying the "retry" options [Thodoris Greasidis]

## 3.1.3 - 2023-11-29

* Update dockerode to 3.3.5 [Pagan Gazzard]

## 3.1.2 - 2023-11-29

* Use the JSONStream typings from @types/jsonstream [Pagan Gazzard]

## 3.1.1 - 2023-11-27

* Make use of `pipeline` for piping streams together [Pagan Gazzard]

## 3.1.0 - 2023-11-13

* Allow injecting any PinejsClientCore compatible API client [Thodoris Greasidis]

## 3.0.7 - 2023-11-10

* NodeResolver: Refactor the recursion to an async-await loop [Thodoris Greasidis]
* Drop bluebird & bluebird-lru-cache in favor of memoizee [Thodoris Greasidis]

## 3.0.6 - 2023-11-10

* Fix the remaining linting errors [Thodoris Greasidis]
* Remove unnecessary regex escaping [Thodoris Greasidis]
* Replace the {} type with object [Thodoris Greasidis]
* Update TypeScript to 5.2.2 and @blaena/lint to v7.2.1 [Thodoris Greasidis]

## 3.0.5 - 2023-11-09

* builder: Fix unawaited buildDir pack() promise [Thodoris Greasidis]

## 3.0.4 - 2023-11-09

* api: Restore the accidentally removed concurrency limits [Thodoris Greasidis]

## 3.0.3 - 2023-11-09

* .mocharc: Use "exit: true" to workaround hanging on completion on node20 [Thodoris Greasidis]
* tests: Fix the expected error message for Dockerfile syntax errors [Thodoris Greasidis]

## 3.0.2 - 2023-07-13

* Remove `cachefrom` from pull options [Felipe Lalanne]
* Skip manifest query for intermediate build stages [Felipe Lalanne]

## 3.0.1 - 2023-07-07

* Use native map where possible [Pagan Gazzard]
* Use native filter [Pagan Gazzard]
* Use native endsWith [Pagan Gazzard]
* Use native includes [Pagan Gazzard]
* Use native Object.assign [Pagan Gazzard]
* Use native Object.keys [Pagan Gazzard]
* Switch to native null check [Pagan Gazzard]
* Switch to native object check [Pagan Gazzard]
* Switch to native string check [Pagan Gazzard]
* Switch to native function check [Pagan Gazzard]
* Switch to native Array.isArray [Pagan Gazzard]

## 3.0.0 - 2023-07-05

* Switch to returning native promises, not bluebird promises [Pagan Gazzard]
* Update minimum nodejs version to 16.13.0 [Pagan Gazzard]
* Update tar-stream and tar-utils to 3.x [Pagan Gazzard]

## 2.3.0 - 2023-07-04

* Use registry credentials to query image manifest [Felipe Lalanne]

## 2.2.2 - 2023-03-21

* Allow PR checks for external contributions [Kyle Harding]

## 2.2.1 - 2023-03-14

* Ignore references to build stages when evaluating manifests [Kyle Harding]

## 2.2.0 - 2023-03-13

* OCI Image Index should allow platform opts [Kyle Harding]

## 2.1.4 - 2023-03-13

* Write to debug log when using platform option [Kyle Harding]

## 2.1.3 - 2023-03-01

* Fixup tests to use recent debian:bullseye-slim images [Kyle Harding]

## 2.1.2 - 2022-10-17

* test/multibuild: Use 127.0.0.1 for the extra_hosts test [Ken Bannister]
* Output error text to aid test debugging [Ken Bannister]
* Replace balenaCI & circleCI with flowzone [Thodoris Greasidis]
* Pin dockerode to v3.3.3 to avoid regression [Ken Bannister]
* Prettify fixup [Ken Bannister]
* Fix underspecified generics in release/models [Ken Bannister]

# v2.1.1
## (2022-08-01)

* Properly mark jsesc as a prod dependency [Thodoris Greasidis]

# v2.1.0
## (2022-07-07)

* Add build task option to use default docker platform behavior [Akis Kesoglou]

# v2.0.0
## (2022-07-01)

* Another manual version bump [dfunckt]

# v1.0.0
## (2022-07-01)

* Manually bump version to avoid clash on npm [Akis Kesoglou]

# v0.1.1
## (2022-07-01)

* Add section for dockerfile-template in README [Akis Kesoglou]

# v0.1.0
## (2022-06-28)

* Import dockerfile-template [Akis Kesoglou]
* Import docker-qemu-transpose [Akis Kesoglou]
* Import balena-release [Akis Kesoglou]
* Import balena-compose-parse [Akis Kesoglou]
* Import resin-bundle-resolve [Akis Kesoglou]
* Import resin-docker-build [Akis Kesoglou]
* Import balena-multibuild [Akis Kesoglou]

# v0.0.1
## (2022-04-15)

* Add scaffolding [Akis Kesoglou]
