There are two types of changes that are included in Ember Octane
EmberObject.extend()
or accessing the DOM from lifecycle hooks like didInsertElement
. Octane introduces new idioms and APIs for many of Ember's existing features, such as @tracked
properties, Glimmer Components, and element modifiers.
These features are improvements and refinements on the existing APIs, and they are meant to replace the existing idioms in time. However, Classic idioms and features will continue to work alongside Octane idioms for the forseeable future, allowing you to update at your own pace.Concretely, upgrading an existing Ember application includes:
The Octane upgrade process can seem daunting. We recommend tackling the Octane upgrade in a few different phases that you can plan for individually, so you can make incremental progress:
Phase 1 can be accomplished relatively quickly, and doing both of these steps early on in the upgrade process will allow your team to begin writing and learning Octane features quickly. It also means that you can enforce that all new code is written using Octane idioms, which is a great way to get everyone up to speed with the newest features and best practices.
Phase 2 can progress at a comfortable pace for your team. You can require all code that is touched be converted, or tackle the conversion process all at once, but if you need to ship features or address critical bugs, nothing is preventing you from getting back to normal work during this phase. This is one of the best features of Ember at work - you can keep shipping as you continue upgrading!
The following table covers the differences in behavior between Octane Mode and Classic Mode, along with a quick CLI snippet for how to opt-in to the new behavior. For more details, on how to enable each feature, see the Enabling Octane Mode Features guide.
Octane also comes with a number of new features that change some of the idioms of Ember applications. You can use these new idioms alongside existing code. You can also use codemods to migrate existing code to the new idioms.