rfcs
rfcs copied to clipboard
Advance RFC #1003 `"Deprecate `import Ember from 'ember';"` to Stage Ready for Release
Advance #1003 to the Ready For Release Stage
Rendered
Summary
This pull request is advancing the RFC to the Ready For Release Stage.
- PR to Accepted Stage: #1003
An FCP is required before merging this PR to advance.
Upon merging this PR, automation will open a draft PR for this RFC to move to the Released Stage.
Ready for Release Stage Description
This stage is complete when the implementation is complete according to plan outlined in the RFC, and is in harmony with any changes in Ember that have occurred since the RFC was first written. This includes any necessary learning materials. At this stage, features or deprecations may be available for use behind a feature flag, or with an optional package, etc.
For codebase changes, there are no open questions that are anticipated to require breaking changes; the Ember team is ready to commit to the stability of any interfaces exposed by the current implementation of the feature.
This stage should include a list of criteria for determining when the proposal can be considered Recommended after being Released.
An FCP is required to move into this stage.
Each Ember core team will be requested as a reviewer on the PR to move into this stage. A representative of each team adds a review. If a team does not respond to the request, and after the conclusion of the FCP, it is assumed that the release may proceed.
Checklist to move to Ready for Release
- [x] Implementation is complete according to plan outlined in the RFC, with any adjustments noted in the RFC
- [ ] Any necessary learning materials have been updated
- [x] The Ember team is ready to commit to the stability of any interfaces exposed by the current implementation of the feature. This is the go/no go decision for any feature flags, but the flags should only be turned on when moving to Released.
- [x] The feature may not yet have support by the entire ecosystem (e.g. IDEs, addons, Ember Inspector, Engines, Lint Rules, Blueprints, etc), but it does not unintentionally break any existing functionality in those areas.
- [ ] The Interactive Tutorial is not broken by this feature.
- [x] Criteria for moving to the Recommended Stage has been filled out
- [x] This PR has been converted from a draft to a regular PR and the
Final Comment Periodlabel has been added to start the FCP - [ ] Each team has been added as a reviewer to the PR at the start of the FCP. Reviews are not required by the end of the FCP. This is a notification step.
- Framework @emberjs/framework
- Data @emberjs/ember-data-core
- CLI @emberjs/cli
- Learning @emberjs/learning-core
- Typescript @emberjs/typescript-core
- Steering @emberjs/steering
Criteria for moving to Recommended (required)
A set of criteria for moving this RFC to the Recommended Stage, following release:
- Update ember-data and other blueprint-packages to avoid
import Ember from "ember"
Track Implementation
- [x] https://github.com/emberjs/ember.js/pull/20686
- [x] https://github.com/ember-learn/guides-source/pull/2028
- [ ] Deprecation guides https://github.com/ember-learn/deprecation-app/pull/1381
- [ ] Enable grouping in deprecation guides so we don't scare people @kategengler https://github.com/ember-learn/deprecation-app/pull/1383
- [ ] Update #1381 above to use the deprecation grouping
- [ ] Enable deprecation on ember-source
- [ ] Enable ember.js "node-tests" to work without the Ember barrel file
Backed this out of FCP -- the deprecation guides haven't been accepted and there a few blockers to being able to enable the deprecation.
Status Update: Goal: get default blueprint non-violating with this set of deprecations.
Done, probably (pending any required changes from Outstanding):
- https://github.com/ember-learn/deprecation-app/pull/1381
- has details on how to migrate all of the below as well
Outstanding
-
Ember Inspector:
- [ ] release
- [ ] https://github.com/emberjs/ember-inspector/pull/2572
- [ ] Move more utilities into Glimmer
- [ ] https://github.com/glimmerjs/glimmer-vm/pull/1489
- [ ] https://github.com/glimmerjs/glimmer-vm/pull/1589
- [ ] Update ember to provide a debug-utilities-focused export of private utils for the inspector to use
- [ ] https://github.com/emberjs/ember.js/pull/20580
-
ember-cli-app-version- [x] release - https://github.com/ember-cli/ember-cli-app-version/releases/tag/v7.0.0
- [x] Uses
EmberBarrelDefaultExport.libraries- https://github.com/ember-cli/ember-cli-app-version/blob/master/addon/initializer-factory.js#L3- [x] https://github.com/ember-cli/ember-cli-app-version/pull/416
- [x] Needs general CI maintenance for confidence in changes
- [x] https://github.com/ember-cli/ember-cli-app-version/pull/414
- Maybe we add a
@ember/user-metato support this:
(instead of getting rid of the thing entirely) UPDATE: this isn't explicitly needed asimport { libraries } from '@ember/user-meta'; libraries.register('name of thing', 'version or whatever');librariescan be imported from@ember/-internals/metal
-
ember-resolver- [x] release - changes available in v12 - https://github.com/ember-cli/ember-resolver/releases/tag/v12.0.0
- [x] Needs to remove
TEMPLATES- https://github.com/ember-cli/ember-resolver/blob/main/addon/addon/index.js#L298- [x] use resolver-local cache instead of this one from ember.
- [x] https://github.com/ember-cli/ember-resolver/pull/973
- [x] use resolver-local cache instead of this one from ember.
- [x] Needs to remove
Ember.ENV- https://github.com/ember-cli/ember-resolver/blob/main/addon/addon/index.js#L462- [x] use resolveRegistration to lookup the app's config
- [x] But also, some general CI maintenance for confidence in changes
- [x] https://github.com/ember-cli/ember-resolver/pull/972
-
[ ]
@glimmer/component- [ ] Moving into ember-source, PR https://github.com/emberjs/ember.js/pull/20751. This fixes the deprecation too.
-
[x]
@ember/test-helpers
Is there a plan for Ember.EventDispatcher? I don't see it listed in the RFC, or the deprecation-guides PR 👀
(context: we access it to disable its functionality, so that we can use our own our own browser-native events implementation for classic components, and therefore have better support for mixing glimmer/classic components)
EventDispatcher would still be accessible at:
import { EventDispatcher } from '@ember/-internals/views';
It would be really good if you could upstream that more-compatible event dispatching. It could be behind an optional feature so it's non-breaking. Instead of paying for the whole old event dispatching system that you don't want to use anyway, the optional feature could make sure it's dropped from the build.
I don't think it would be a controversial RFC, especially since you've already done the work to thoroughly test how compatible it is.