Heroku CLI v9 production release
Change effective on 16 July 2024
Heroku just released v9.0.0 of the Heroku CLI to production.
As noted in the beta release from last week, version 9.0.0 of the Heroku CLI is mainly an architectural update. With this update, we build all of the core CLI commands on the oclif platform. Previously, many of them used pre-oclif architecture. All the core CLI commands also move into one package, instead of being in many different packages. These changes only apply to the commands included with the core Heroku CLI. It doesn’t include commands installed separately via plugins.
Most commands function the same as before. Here are the breaking changes to be aware of, as well as feature updates.
Breaking Changes
Formatting
The switch to oclif/core means a change to the formatting of some of our output. The main differences are additional new lines and whitespace, table formatting, and output colors. If you parse CLI output at all, you can encounter some errors.
Additional Flags
You can pass additional flags to the triggered operation, such as run
commands, or to a config object, like with the addons:create
command. The syntax for adding additional flags changes with v9.0.0 of the Heroku CLI. Previously, users added additional flags without any separation of those flags from the Heroku CLI command itself. To pass additional flags, you must add a --
separator between the flags and the CLI command. For example:
Before v9.0.0: heroku run bash --norc -a APP_NAME
v9.0.0+: heroku run bash -a APP_NAME -- --norc
certs:update
Command
- We removed the
--bypass
flag as it’s no longer necessary. This command functions as normal, but you can get an error if you include the flag.
pg:settings
Commands
- We changed the order of the required arguments for several of the
pg:settings
commands. Previously, we expected the value arg to come before the database arg, but we reversed this to resolve a logic issue. Now, you must add the database arg first and the value arg second.
spaces:vpn
Commands
- Previously, these commands accepted the name of the VPN connection as either an argument or the value of the
--name
flag. With v9.0.0, these commands only accept the VPN connection name as an argument. The--name
flag no longer exists.
Removed Commands
- We removed the
outbound-rules
commands. We removed the API endpoints for these commands in June - We also removed several hidden and previously deprecated commands
pg:repoint
orgs:default
certs:chain
certs:key
Feature Updates
container
commands now print an error when running on stacks that aren’t container stacks.- We added notifications for accounts with delinquent payments.