Releases: balena-io/balena-sdk
Release list
v23.2.12
Update dependency webpack-cli to v7
Notable changes
- feat(cli): refresh the
--helpoutput using commander'sconfigureHelpAPI — branded headers, section dividers, colorized terms and a clearer footer. Colors and chrome collapse to plain text when output is piped or--no-coloris used, so scripts keep working. (by @alexander-akait in #4779) - feat: support
.json5,.yaml/.ymland.tomlconfiguration files by parsing them directly, with the parser package (json5,js-yaml,toml) installed on demand by the user and declared as optionalpeerDependenciesso the parsers resolve correctly under Yarn PnP (by @alexander-akait in #4777) - Improved CLI startup performance and reduced memory usage. (by @alexander-akait in #4765)
- Reduced CLI startup CPU and memory usage by caching schema-derived argument metadata, registering only the options present in the arguments, and reading config directories once during default-config discovery. (by @alexander-akait in #4760)
- Replace the
fastest-levenshteindependency with a small in-tree implementation used for command/option "did you mean" suggestions. (by @alexander-akait in #4762) - Resolve configuration path for cache build dependencies. (by @alexander-akait in #4707)
- The
fileprotocol for configuration options (--config/--extends) is supported. (by @alexander-akait in #4702) - The minimum supported version of Node.js is
20.9.0. (by @alexander-akait in #4677) - Use dynamic import to load
webpack.config.js, fallback to interpret only when configuration can't be load by dynamic import. Using dynamic imports allows you to take advantage of Node.js's built-in TypeScript support. (by @alexander-akait in #4677) - Removed the
--node-envargument in favor of the--config-node-envargument. (by @alexander-akait in #4677) - The
versioncommand only output versions right now. (by @alexander-akait in #4677) - Removed deprecated API, no action required unless you use
import cli from "webpack-cli";/const cli = require("webpack-cli");. (by @alexander-akait in #4677) - Allow configuration freezing. (by @alexander-akait in #4677)
- Use graceful shutdown when file system cache is enabled. (by @alexander-akait in #4677)
- Performance improved. (by @alexander-akait in #4677)
webpack/webpack-cli (webpack-cli)
v7.1.0
Minor Changes
-
feat(cli): refresh the
--helpoutput using commander'sconfigureHelpAPI — branded headers, section dividers, colorized terms and a clearer footer. Colors and chrome collapse to plain text when output is piped or--no-coloris used, so scripts keep working. (by @alexander-akait in #4779) -
feat: support
.json5,.yaml/.ymland.tomlconfiguration files by parsing them directly, with the parser package (json5,js-yaml,toml) installed on demand by the user and declared as optionalpeerDependenciesso the parsers resolve correctly under Yarn PnP (by @alexander-akait in #4777)
v7.0.3
Patch Changes
-
Improved CLI startup performance and reduced memory usage. (by @alexander-akait in #4765)
-
Reduced CLI startup CPU and memory usage by caching schema-derived argument metadata, registering only the options present in the arguments, and reading config directories once during default-config discovery. (by @alexander-akait in #4760)
-
Replace the
fastest-levenshteindependency with a small in-tree implementation used for command/option "did you mean" suggestions. (by @alexander-akait in #4762)
v7.0.2
Patch Changes
- Resolve configuration path for cache build dependencies. (by @alexander-akait in #4707)
v7.0.1
Patch Changes
- The
fileprotocol for configuration options (--config/--extends) is supported. (by @alexander-akait in #4702)
v7.0.0
Major Changes
-
The minimum supported version of Node.js is
20.9.0. (by @alexander-akait in #4677) -
Use dynamic import to load
webpack.config.js, fallback to interpret only when configuration can't be load by dynamic import. Using dynamic imports allows you to take advantage of Node.js's built-in TypeScript support. (by @alexander-akait in #4677) -
Removed the
--node-envargument in favor of the--config-node-envargument. (by @alexander-akait in #4677) -
The
versioncommand only output versions right now. (by @alexander-akait in #4677) -
Removed deprecated API, no action required unless you use
import cli from "webpack-cli";/const cli = require("webpack-cli");. (by @alexander-akait in #4677)
Patch Changes
-
Allow configuration freezing. (by @alexander-akait in #4677)
-
Use graceful shutdown when file system cache is enabled. (by @alexander-akait in #4677)
-
Performance improved. (by @alexander-akait in #4677)
List of commits
d92cc3d (Update dependency webpack-cli to v7, 2026-07-01)
v23.2.11
v23.2.10
b0b5cfc (Switch from custom Dictionary type to built in Record typing, 2026-06-16)
v23.2.9
Update dependency sinon to v22
Notable changes
ed911df575a1e5b8197d6608c5ddf80bf4ab02f60536afc8f4f7d93b6199e9e4f7476b592c975393a769291766df977af0bd6e1b1f8afd50
sinonjs/sinon (sinon)
v22.0.0
ed911df5
Update Ruby gems (Carl-Erik Kopseng)75a1e5b8
Update to Node 26 (Carl-Erik Kopseng)197d6608
Update documentation on faking timers to reflect the current state of fake-timers (Carl-Erik Kopseng)c5ddf80b
Update fake-timers@15.4: includes new Temporal API (Carl-Erik Kopseng)f4ab02f6
Update updatable packages (Carl-Erik Kopseng)0536afc8
Quality: Global mutable call id can grow unbounded across long-lived processes (#2691) (tuanaiseo)- refactor: global mutable call id can grow unbounded across l
callIdis module-scoped and incremented on every invocation. In long-running test runners or embedded usage, this can grow indefinitely and eventually lose integer precision semantics for strict ordering comparisons.Affected files: proxy-invoke.js
Signed-off-by: tuanaiseo 221258316+tuanaiseo@users.noreply.github.com
- Wrap around for all values that are too high
Signed-off-by: tuanaiseo 221258316+tuanaiseo@users.noreply.github.com
Co-authored-by: Carl-Erik Kopseng carlerik@gmail.comf4f7d93b
Perform additional cleanup when calling callThrough() (#2670) (Cyrille)6199e9e4
improve GitHubworkflows by introducing zizmor for monitoring (#2686) (Till!)-
fix(workflows): fetch-depth is for actions/checkout
-
chore(workflows): update
- pin all actions to precise commits
- avoid credential leakage from actions/checkout
- group action updates going forward
- add zimor config to ignore "secrets outside env"
- add job to keep validating workflows
-
f7476b59
Use path.normalize() for path normalization (Carl-Erik Kopseng)2c975393
fix: make build and node test scripts cross-platform (laplace young)a7692917
fix: isolate walk state from Object prototype (laplace young)66df977a
Fix sinon.restore() cascade-restoring sub-sandboxes (#2704) (Charlie Leitheiser)The ESM port of
createApi(#2683, shipped in 21.1.0) replacedcreateSandbox: createSandboxwith a wrapper that pushes every newly-created sandbox into the root sandbox's fake collection:createSandbox: function createSandbox(config) { const s = createConfiguredSandbox(config); sandbox.getFakes().push(s); return s; }Sandbox#restorethen walks that collection and calls.restore()on each entry. Because a sub-sandbox is itself an entry, every top-levelsinon.restore()cascades into every sub-sandbox and undoes its stubs/timers/etc. — defeating the whole point of having an isolated sub-sandbox. The same cascade hitsresetHistoryand
verifyAndRestore. This is the regression reported in #2701.Restore the pre-21.1 behaviour: hand the root API a direct reference to
createConfiguredSandbox. Sub-sandboxes are now isolated; onlysubSandbox.restore()(orverifyAndRestore) clears their fakes.Also flip the four sandbox tests that were locking in the buggy cascade: they now assert the parent's restore/resetHistory leaves the child untouched, with an explicit child-side cleanup at the
end.Closes #2701
f0bd6e1b
fix: exclude proto from walk() (#2699) (Kevin Locke)__proto__is a special property to access an object's prototype. It
has many pitfalls:- Setting it to an object value changes an object's prototype, which is
generally discouraged and may be unexpected by theiteratorcallback. - Setting it to a non-object value does nothing (meaning
seen[k] = truehas no effect). - When Node.js is run with the
--disable-proto=throwoption, getting
or setting__proto__causes an exception with code
ERR_PROTO_ACCESSto be thrown.
Additionally, since this property (and all properties of
Object.prototype) are currently unused in this project by consumers of
walk(), it is both safe and preferable to exclude.Fixes: #2695
Signed-off-by: Kevin Locke kevin@kevinlocke.name
- Setting it to an object value changes an object's prototype, which is
1f8afd50
chore: add context7.json for ownership confirmation (Morgan Roderick)
Released by Carl-Erik Kopseng on 2026-05-05.
List of commits
aed3e81 (Update dependency sinon to v22, 2026-06-10)
v23.2.8
Update dependency lint-staged to v17
Notable changes
- #1806
e692e58- Update dependencytinyexec@^1.2.4. - #1803
bdf2770- Run all tests with Deno, in addition to Node.js and Bun. - #1796
7508272- Fix performance regression of lint-staged v17 by going back to usinggit addto stage task modifications. This was changed togit update-index --againin v17 for less manual work, but unfortunately theupdate-indexcommand gets slower in very large Git repos. - #1797
7b2505a- This version of lint-staged uses the new staged publishing for npm packages feature. Releases are already published from GitHub Actions with trusted publishing, but now an additional approval with two-factor authentication is also required. - #1802
321b0a9- Downgrade dependencytinyexec@1.2.2to avoid issues in version 1.2.3. - #1792
1f67271- Correctly set the--max-arg-lengthdefault value based on the running platform. This controls how very long lists of staged files are split into multiple chunks. - #1788
f95c1f8- Another fix for making sure lint-staged adds task modifications correctly to the commit in the following cases: - #1782
06813f9Thanks @iiroj! - Fix lint-staged behavior when implicitly committing files without usinggit addby either: - #1779
88670caThanks @iiroj! - Enable immutable GitHub releases - #1776
4a5664bThanks @iiroj! - Adjust GitHub Actions workflow so that automatic publishing works with signed commits. - #1745
e244adfThanks @iiroj! - Node.js v20 is no longer supported, and the oldest supported version is now22.22.1, which is an active LTS version at the time of this release. Node.js 20 will be EOL after April 2026. Please upgrade your Node.js version! - #1676
0584e0bThanks @outslept! - Lint-staged now tries to verify the installed Git version is at least2.32.0, released in 2021. If you're using an even older Git version, you need to upgrade it before running lint-staged! - #1745
2dcc40aThanks @iiroj! - The dependencyyamlis now marked as optional and probably won't be installed by default. If you're using a YAML configuration file you should install the package separately: - #1748
809d5efThanks @iiroj! - Add new option--hide-allfor hiding all unstaged changes and untracked files, before running tasks. This makes it easier to run tools like Knip which check for unused code. Untracked files are included in the backup stash and restored automatically after running. - #1759
f13045aThanks @iiroj! - Update dependencies, includingtinyexec@1.1.1to fix the following issues: - #1761
d3251b1Thanks @iiroj! - Lint-staged now runsgit update-index --againafter running tasks, instead ofgit add <originally staged files>. This should improve compatibility when using non-default indexes, for example when committing with a pathspecgit commit -m "message" .instead of adding files to the index. - #1745
a9585acThanks @iiroj! - Removecommanderas a dependency and use the built-inparseArgsfromnode:utilto parse CLI flags. - #1755
c82d30bThanks @iiroj! - All tests now pass on the Bun runtime (latest). - #1750
a401818Thanks @iiroj! - Remove manual handling forgit stash --keep-indexresurrecting deleted files, because the issue was fixed in Git2.23.0and lint-staged requires at least Git2.32.0. - #1771
c4b8936Thanks @iiroj! - Fix documentation about multiple config files and the--cwdoption. When using it, all tasks will be run in the specified directory. For example, to run everything in the actualprocess.cwd(), uselint-staged --cwd=".".
lint-staged/lint-staged (lint-staged)
v17.0.7
Patch Changes
v17.0.6
Patch Changes
-
#1803
bdf2770- Run all tests with Deno, in addition to Node.js and Bun. -
#1796
7508272- Fix performance regression of lint-staged v17 by going back to usinggit addto stage task modifications. This was changed togit update-index --againin v17 for less manual work, but unfortunately theupdate-indexcommand gets slower in very large Git repos. -
#1797
7b2505a- This version of lint-staged uses the new staged publishing for npm packages feature. Releases are already published from GitHub Actions with trusted publishing, but now an additional approval with two-factor authentication is also required. -
[#1802](https://redirect.github.com/lin...
v23.2.7
ff9c7ad (Update balena-auth to deduplicate balena-errors, 2026-06-10)
v23.2.6
7bb797e (Rename .linstagedrc to .lintstagedrc.json, 2026-06-10)
v23.2.5
v23.2.4
Update dependency balena-errors to v5
Notable changes
- Fix docs regenerating missing fns [Otavio Jacobi]
- Add id-token: write permission for NPM OIDC publishing [Otavio Jacobi]
balena-io-modules/balena-errors (balena-errors)
v5.0.1
(2026-03-19)
- Fix docs regenerating missing fns [Otavio Jacobi]
- Add id-token: write permission for NPM OIDC publishing [Otavio Jacobi]
List of commits
64a094f (Update dependency balena-errors to v5, 2026-06-08)
v23.2.3
0f04cc3 (Update GitHub Actions to 48b55a0, 2026-06-05)