Skip to content
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

Ember 4.0 Tracking Issue #19545

Closed
16 of 19 tasks
MelSumner opened this issue May 13, 2021 · 15 comments
Closed
16 of 19 tasks

Ember 4.0 Tracking Issue #19545

MelSumner opened this issue May 13, 2021 · 15 comments
Milestone

Comments

@MelSumner
Copy link
Contributor

MelSumner commented May 13, 2021

Summary

The purpose of this issue is to provide a way to track the status of the work necessary to ship v.4.0 of Ember.js

The list of issues should be updated to include links to individual issues as they are created. The individual issues should contain more details for each item on this list.

As a reminder: Major versions of Ember do not ship new features- instead, major versions remove previously deprecated features. To read more about Ember's philosophy regarding editions, please see https://emberjs.com/editions/.

Issues

Communication

Some of this may happen after release, and is implicitly non-blocking.

@simonihmig
Copy link
Contributor

@MelSumner you might want to link to emberjs/rfc-tracking#3 for the jQuery removal, which already lists the work to be done for Ember 4.0! Some PRs already underway... 🙂

@MelSumner
Copy link
Contributor Author

@simonihmig added, thank you!

@simonihmig
Copy link
Contributor

Here's a PR for dropping IE11: #19558 🎉

@nlfurniss
Copy link
Contributor

@MelSumner this PR can be linked to Deprecation guide for Ember.assign 👍

@jenweber
Copy link
Contributor

Hi all, I made some new issues for tracking docs work and the blog post. I added them to the main tracking list above. The learning team is filling in details for these issues over the coming weeks.

@jenweber
Copy link
Contributor

jenweber commented Sep 2, 2021

Just a status update, I opened some PRs tonight that take care of the bulk of the guides changes. See ember-learn/guides-source#1730 and https://github.com/ember-learn/super-rentals-tutorial/ and ember-learn/guides-source#1733

This updates the website's description of Octane and FAQ to make it sound less new: ember-learn/ember-website#864

@jenweber
Copy link
Contributor

jenweber commented Sep 8, 2021

Another status update, I have a PR open for adding placeholders for missing deprecation guides. These are missing from the 3.x series and not the new deprecations for v4. However we really want these links to be in place in the source code for 4.0.x. ember-learn/deprecation-app#954

@jenweber
Copy link
Contributor

I added a new point to the tracking list: the deprecation workflow isn't catching everything, therefore our story of "resolve all deprecations and you can upgrade smoothly" doesn't work. [Bug] Some Deprecations seem to side-step the deprecation workflow #19753

@mansona
Copy link
Member

mansona commented Sep 19, 2021

I found another thing that could possibly go in the Bugs/Blockers section: emberjs/ember-render-modifiers#33

Essentially we recommend the use of ember-render-modifiers in the guides here but that PR is blocking it from being used in Ember Beta (4.0). I don't have permission to edit the tracking issue so could someone else add it for me?

@raido
Copy link
Contributor

raido commented Oct 25, 2021

Here is a tracking issue for ember-page-title to support v4.0 - ember-cli/ember-page-title#222

@jrjohnson
Copy link

Pulling this comment over from the data PR - now that store is not injected the behavior documented for dynamic models as:

If you do not define a model hook for a route, it will default to using Ember Data to look up the record, as shown below:

no longer works because there is no store.

It confusingly errors with the message

Assertion Failed: RouteName has no method "find"

I think this behavior of automatically using the ED store to lookup the model when no model hook is defined needs to be deprecated or else the store needs to be looked up from the container in the default model() hook on routes where it is needed. Otherwise apps with no deprecation warnings which use the current implicit model behavior will error.

@mixonic
Copy link
Member

mixonic commented Dec 14, 2021

@jrjohnson that error around 'has no method find" should be improved in Ember 4.0.1. Some links:

If you explicitly inject a store in 4.0 and have no model hook, implicit record loading from data will still occur. I'm not sure if it is deprecated yet but several people would like to. Regardless, that itself is not a 4.0 release issue. It is merely a poor API we want to deprecate for 5.0.

I hope that closes the loop, I know your comment here was already a bit stale but didn't want to leave it hanging.

@jrjohnson
Copy link

Thanks @mixonic, these look good, but don't cover the case of not having a route file at all. In that case pre 4.0 ED would still be used to lookup a model. In 4.0 this doesn't work and the workaround requires creating an empty route class and injecting the store into it. If you do create an otherwise empty route backing file then having it exist only to inject a store looks very strange.

Just for the record we added model hooks where required in our app when we discovered the ED issue and it wasn't a big deal. However it feels like an undocumented BC break to me with no previous deprecation message so I wanted to bring it up at least to improve the documentation for updating to 4.0.

@mixonic
Copy link
Member

mixonic commented Dec 14, 2021

FWIW we suggest (as in, the assert messages suggests) adding a no-op model hook over an injection. 👍

Agreed it is weird, but the messaging should be acceptable. In 4.0.1+ with no route, you get the improved assert I linked above telling you to add a model hook. If you use the ember generate commands, you get a model hook by default if there is a dynamic segment.

This isn't perfect, I agree we should deprecate the implicit loading entirely, but that needs to aim at 5.0.

Additionally, there should be a deprecation in ember 3.28.7+ when the implicitly injected store was accessed. This was an improvement on the earlier deprecation added specifically to address this exact situation. See #19854 I expect your app would have hit that deprecation.

Perhaps you upgraded before that point release was out? It is definitely something we identified from people upgrading in the wild.

However, there is no breaking change besides the removals. Yes, if you created a new route in ember/data 3.28 with a dynamic segment and no route, the behavior is different than if you do the same in 4.0. That is not a breaking change for existing code (that should trigger the above linked deprecation), it is simply a change of behavior for new code.

@kategengler
Copy link
Member

We shipped 4.0!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

9 participants