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

[FEATURE] Update Glimmer-VM to 0.45.0 #18621

Merged
merged 55 commits into from
Jan 9, 2020
Merged

[FEATURE] Update Glimmer-VM to 0.45.0 #18621

merged 55 commits into from
Jan 9, 2020

Conversation

pzuraq
Copy link
Contributor

@pzuraq pzuraq commented Dec 18, 2019

Closes #18182

@auvipy
Copy link

auvipy commented Dec 23, 2019

thanks for handling this!

@pzuraq pzuraq marked this pull request as ready for review January 7, 2020 21:07
@btecu
Copy link
Contributor

btecu commented Jan 8, 2020

Closes #18182.

@pzuraq
Copy link
Contributor Author

pzuraq commented Jan 8, 2020

results.pdf

Shows a minor regression, likely due to new code that has not be optimized just yet.

@rwjblue
Copy link
Member

rwjblue commented Jan 8, 2020

I'm working through the review here, I pinged @krisselden and @chancancode for reviews as well.

tsconfig.json Show resolved Hide resolved
packages/@ember/-internals/glimmer/lib/modifiers/on.ts Outdated Show resolved Hide resolved
Comment on lines +101 to +102
unwrapTemplate(localLayout).referrer.moduleName ===
unwrapTemplate(globalLayout).referrer.moduleName
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pzuraq - Can you add a comment (and maybe an issue) to remove this whole section for MU support?

packages/@ember/-internals/glimmer/lib/resolver.ts Outdated Show resolved Hide resolved
Comment on lines +1195 to +1198
['nested-item', 'didInsertElement'],
['nested-item', 'didRender'],
['no-items', 'didInsertElement'],
['no-items', 'didRender'],
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems like it may be a semi fundamental shift, and we should 1) make sure that we have to do it and 2) ensure that the behavioral change is properly documented and understood.

Can you explain why we change this, how we consider this a non-breaking change, etc?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Discussed this offline, the change was caused by removing the custom curly-component destruction queue that existed on the environment before. This means that all components now call their didDestroy hooks after their didCreate and didUpdate hooks. Before, there was divergent behavior between curly components and other types of components here.

I believe the conclusion was that this change is relatively low risk, since the timing of didDestroy style hooks has always been async/later and generally isn't relied as much as willDestroy style hooks. If we encounter issues later due to this change, we can either update Glimmer-VM directly to move the position of the queue, or we can add back the custom queue specifically for curly components.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for summarizing our conversation on this! We will just need to monitor for any issues reported (worse case scenario we bring back a custom queue that we flush like before, but we'd much prefer to avoid that).

@rwjblue rwjblue merged commit d96d9aa into master Jan 9, 2020
@rwjblue rwjblue deleted the update-glimmer branch January 9, 2020 21:56
@pzuraq
Copy link
Contributor Author

pzuraq commented Jan 9, 2020

Notes for followup:

  • Ensure Named Blocks are disabled
  • Ensure dynamic invocation (e.g. <this.MyComponent/>, {{this.myHelper}}) is is disabled
  • Ensure changes to {{-in-element}} are ok

@josemarluedke
Copy link
Contributor

@pzuraq Curious why would Named Blocks be disabled? That's one of the super exciting features that many of us are waiting to get.

@NullVoxPopuli
Copy link
Contributor

NullVoxPopuli commented Jan 9, 2020

Ensure Named Blocks are disabled

this is something I've been excited about, too :D
(enabling, not disabling :p)

@pzuraq
Copy link
Contributor Author

pzuraq commented Jan 10, 2020

We agreed during the development process that we would land this PR first and get a release cycle out before we enable any new features. That way we can focus on fixing any bugs and perf issues related to the upgrade itself, and enabled new features once the dust has settled. This is pretty standard operating procedure for major upgrades like this one.

@josemarluedke
Copy link
Contributor

Interesting. Any chance we can get Named Blocks under a canary feature flag? That way we can start using/testing it.

@rwjblue
Copy link
Member

rwjblue commented Jan 11, 2020

Yes, that is exactly the plan. The things that @pzuraq mentioned in the comment above will be disabled, then we can bring each of them back behind feature flags.

@lifeart
Copy link
Contributor

lifeart commented Jan 12, 2020

@pzuraq thank you for amazing work!

@sandstrom
Copy link
Contributor

@pzuraq Awesome! 🎉

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

Successfully merging this pull request may close these issues.

9 participants