Skip to content

Deprecate Classic Classes #1117

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 55 additions & 0 deletions text/1117-deprecate-classic-classes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
---
stage: accepted
start-date: 2025-06-20T00:00:00.000Z
release-date:
release-versions:
teams: # delete teams that aren't relevant
- cli
- data
- framework
- learning
- steering
- typescript
prs:
accepted: https://github.com/emberjs/rfcs/pull/1117
project-link:
---

# Deprecate Classic Classes

## Summary

Deprecate the Classic Class system.

## Motivation

For quite a while now, Ember has recommended the use of Native Classes over the Classic Class
system. The one remaining sticking point has been Mixins. If we
[Deprecate Mixins](https://github.com/emberjs/rfcs/pull/1116), then we can deprecate the Classic Class system.

## Transition Path

All uses of Classic Classes should be converted to Native Classes. Anything that cannot be converted
will be deprecated first such as [Mixins]((https://github.com/emberjs/rfcs/pull/1116) and the
[`observer` helper function](https://github.com/emberjs/rfcs/pull/1115).

## Exploration

To validate this deprecation, I've tried removing all of the Classic Class system in this PR:
https://github.com/emberjs/ember.js/pull/20923

## How We Teach This

We should remove all references from the guides.

## Drawbacks

Other than it being a lot of work, there are no drawbacks.

## Alternatives

None

## Unresolved questions

Should we keep `EmberObject` around as a home for some utility methods and sugar or remove it entirely?
Loading