Stack Update Policy
Last updated November 01, 2022
This document describes Heroku’s policies for when and how we update existing stacks and our schedule for introducing new stacks.
Updates to existing stacks
Heroku will update packages on currently available stacks approximately twice a month. More frequent updates will occur in response to urgent upstream security fixes for packages in the stack image. Each time the stack image is updated, we will publish a changelog entry that contains a list of changed packages.
When making updates to stacks, Heroku strives to make the updated stack binary-compatible with the current stack and generally try to make as few changes as possible over the lifetime of a stack. This is to maximize stability and continuity for apps running on Heroku. Once added, packages will not be removed for the lifetime of a stack.
Before rolling out an update to a stack image, we extensively test it with internal apps. Then we gradually roll out the update on the platform.
Addition of new stacks
Heroku stacks are currently based on Ubuntu Linux from Canonical. We strive to introduce updated stack versions as Long Term Support (LTS) versions are released upstream, which happens around April in even-numbered calendar years. Heroku stack releases will generally trail the Ubuntu release by some months to ensure that packages have stabilized and to give Heroku time to build and test the new stack.
Retirement of old stacks
Old stacks are retired when they are no longer receiving support from Canonical (typically five years after Canonical first introduced the LTS release in question; see the Stacks page for the end-of-life date of each stack). Heroku will notify users with apps on old stacks before they are retired. Notifications are in the form of changelog entries and direct emails to owners and collaborators on apps running on stacks that are about to be retired.
Retiring a stack does not affect built apps on that stack, which will continue to run indefinitely, but can no longer be deployed without first upgrading to a newer stack once the retired stack has reached end-of-life.
Customers are advised to always keep their apps updated to the latest stack in order to receive stability and security updates for their applications.