From 38c3c1ebf3f4dbbd69bc5bb64a33f6e61c74536f Mon Sep 17 00:00:00 2001 From: Peter Wagenet Date: Fri, 20 Jun 2025 06:11:55 -0700 Subject: [PATCH 1/2] Deprecate Classic Classes --- text/1117-deprecate-classic-classes.md | 55 ++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 text/1117-deprecate-classic-classes.md diff --git a/text/1117-deprecate-classic-classes.md b/text/1117-deprecate-classic-classes.md new file mode 100644 index 0000000000..15e5f2e3b7 --- /dev/null +++ b/text/1117-deprecate-classic-classes.md @@ -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? \ No newline at end of file From ad7dff45e5173f98f6cd753fa8efd5fdeac41851 Mon Sep 17 00:00:00 2001 From: Peter Wagenet Date: Tue, 15 Jul 2025 15:14:49 -0700 Subject: [PATCH 2/2] Add a note about the @classic decorator --- text/1117-deprecate-classic-classes.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/text/1117-deprecate-classic-classes.md b/text/1117-deprecate-classic-classes.md index 15e5f2e3b7..8b7af4988a 100644 --- a/text/1117-deprecate-classic-classes.md +++ b/text/1117-deprecate-classic-classes.md @@ -29,9 +29,9 @@ system. The one remaining sticking point has been Mixins. If we ## 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). +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). + +The `@classic` decorator (and any other APIs or patterns used to enable classic class interop) will also be deprecated as part of this transition. All code should migrate to native class syntax and patterns. ## Exploration