Releases: balena-io/balena-cli
v23.1.3
v23.1.2
v23.1.1
v23.1.0
v23.0.1
v23.0.0
Breaking changes
- Move to node 24.11.0 & drop support for older versions
- Drop all deprecated aliases
- What are aliases?: Aliases are just alternate names for commands. In major v20, we renamed several commands but kept the old names as aliases and deprecated them, the purpose being so users can keep using them in a transitional period until we drop them. Now we are officially dropping those deprecated old names
- Full list of dropped commands and their alternative:
api-keys→api-key listdevices supported→device-type listscan→device detectdevices→device listlogs→device logsnotes→device notessh→device sshtunnel→device tunnelenvs→env listenv add→env setfleets→fleet listorgs→organization listreleases→release listkey add→ssh-key addkey→ssh-keykeys→ssh-key listkey list→ssh-key listkey rm→ssh-key rmtags→tag list
device note: Drop the --dev flag in favor of the standardized --device- Use oclif's native json support instead of manually adding it
- Improve developer experience
- Drop support for the shorthand
-j
- Replace manual completion generation with @oclif/plugin-autocomplete
- Change how to set up auto completion. Simply run
balena autocompletenow for easy instructions!
- Change how to set up auto completion. Simply run
- Replace custom version command with @oclif/plugin-version
- Improve developer experience
- Make the verbose output include a lot more useful information
- Replace the
-aflag with--verbose - Drop the
-jshorthand of--json
- Drop the
balena os build-configcommand in favor ofbalena config generate- This means that we now have a single command for generating a config.json:
balena config generate. This should remove any confusion as to why we had two commands (which we were also not sure, but it looks like it has to do with us releasing unmanaged ResinOS images as well 7 years back).
- This means that we now have a single command for generating a config.json:
config generate: Drop the deprecated no-op--generate-device-api-keyflag- The command was already able to figure out when it had to generate one based on the rest of the params anyway.
os configure- Make
--configincompatible with all other flags other than--system-connection - Enforce
--device-typedependency on--fleet - Drop the
--versionflag & fail when the image version can't be detected - (also applies to
os initialize): Fail when a device-type.json can't be detected in the provided image
- Make
device init: Make--configincompatible with all other flags other than--drive,--version, &--yes- Replace the
semverfield withraw_versioninbalena releaseandbalena release list- The
raw_versionis the correct field to use since it can uniquely identify a release per fleet, includes any revN or draft timestamp suffix, and is also what the UI uses.
- The
Other changes
release: Include thebuild_login the--jsonresults- Fix lzma-native build on node24 on Linux ARM runners
device init:- Fix node DEP0190 deprecation warning
- Validate that the provided config file paths exist
v22.5.5
Update actions/setup-python action to v6
Notable changes
List of commits
c366802 (Update actions/setup-python action to v6, 2025-11-14)
v22.5.4
v22.5.3
Update actions/setup-node action to v6
Notable changes
List of commits
9d82d2d (Update actions/setup-node action to v6, 2025-11-13)
v22.5.2
Update GitHub Artifact Actions to v5 (major)
Notable changes
- Update README.md by @nebuk89 in #407
- BREAKING fix: inconsistent path behavior for single artifact downloads by ID by @GrantBirki in #416
- By name:
name: my-artifact→ extracted topath/(direct) - By ID:
artifact-ids: 12345→ extracted topath/my-artifact/(nested) - By name:
name: my-artifact→ extracted topath/(unchanged) - By ID:
artifact-ids: 12345→ extracted topath/(fixed - now direct) - You download artifacts by name
- You download multiple artifacts by ID
- You already use
merge-multiple: trueas a workaround - uses: actions/download-artifact@v4
- uses: actions/download-artifact@v5
- @nebuk89 made their first contribution in #407
- feat: implement new
artifact-idsinput by @GrantBirki in #401 - Fix workflow example for downloading by artifact ID by @joshmgross in #402
- Prep for v4.3.0 release by @robherley in #404
- @GrantBirki made their first contribution in #401
- Add unit tests by @GhadimiR in #392
- Fix bug introduced in 4.2.0 by @GhadimiR in #391
- Update README.md by @lkfortuna in #384
- Bump artifact version, do digest check by @GhadimiR in #383
- @lkfortuna made their first contribution in #384
- @GhadimiR made their first contribution in #383
-actions/upload-artifact (actions/upload-artifact)
actions/download-artifact (actions/download-artifact)
v5.0.0
What's Changed
- Update README.md by @nebuk89 in #407
- BREAKING fix: inconsistent path behavior for single artifact downloads by ID by @GrantBirki in #416
v5.0.0
🚨 Breaking Change
This release fixes an inconsistency in path behavior for single artifact downloads by ID. If you're downloading single artifacts by ID, the output path may change.
What Changed
Previously, single artifact downloads behaved differently depending on how you specified the artifact:
- By name:
name: my-artifact→ extracted topath/(direct) - By ID:
artifact-ids: 12345→ extracted topath/my-artifact/(nested)
Now both methods are consistent:
- By name:
name: my-artifact→ extracted topath/(unchanged) - By ID:
artifact-ids: 12345→ extracted topath/(fixed - now direct)
Migration Guide
✅ No Action Needed If:
- You download artifacts by name
- You download multiple artifacts by ID
- You already use
merge-multiple: trueas a workaround
⚠️ Action Required If:
You download single artifacts by ID and your workflows expect the nested directory structure.
Before v5 (nested structure):
- uses: actions/download-artifact@v4
with:
artifact-ids: 12345
path: dist
# Files were in: dist/my-artifact/Where
my-artifactis the name of the artifact you previously uploaded
To maintain old behavior (if needed):
- uses: actions/download-artifact@v5
with:
artifact-ids: 12345
path: dist/my-artifact # Explicitly specify the nested pathNew Contributors
Full Changelog: actions/download-artifact@v4...v5.0.0
v4.3.0
What's Changed
- feat: implement new
artifact-idsinput by @GrantBirki in #401 - Fix workflow example for downloading by artifact ID by @joshmgross in #402
- Prep for v4.3.0 release by @robherley in #404
New Contributors
- @GrantBirki made their first contribution in #401
Full Changelog: actions/download-artifact@v4.2.1...v4.3.0
v4.2.1
What's Changed
- Add unit tests by @GhadimiR in #392
- Fix bug introduced in 4.2.0 by @GhadimiR in #391
Full Changelog: actions/download-artifact@v4.2.0...v4.2.1
v4.2.0
What's Changed
- Update README.md by @lkfortuna in #384
- Bump artifact version, do digest check by @GhadimiR in #383
New Contributors
- @lkfortuna made their first contribution in #384
- @GhadimiR made their first contribution in #383
Full Changelog: actions/download-artifact@v4.1.9...v4.2.0
List of commits
baa5eda (Update GitHub Artifact Actions to v5, 2025-11-13)