Speakers wanted for EmberConf 2021 ๐, Ember 3.24 release ๐, read the blog on understanding args in Glimmer components โ๏ธ, announcing the launch of the redesigned Ember Blog ๐, five RFCs for Ember 4.0 milestone ๐ฌ, and last, but not least, micro-frontends with Glimmer.js and single-spa ๐ฅ!
This year's EmberConf has been announced to take place March 29-30, 2021! EmberConf is 2 days of Ember talks, sessions and fun โ streaming live virtually anywhere. Want to give a talk at EmberConf? We're now accepting proposals.
EmberConf is great because our speakers are great, and you could be one of them. The Call for Papers (CFP) is public, starts out blind, and features a collaborative process to help applicants improve their proposals. Proposals will be accepted through January 31st at 11:59pm PT. Learn more at the EmberConf 2021 CFP site.
There are a lot of options for talks this year. Conference talks can be 30, 15, 10, or 5 minutes total. Have a talk idea? The EmberConf team will be voting on and reviewing talks on a rolling basis, and will attempt to send feedback sooner than their final evaluation. The earlier you submit, the more chance you'll have to tweak your pitch and improve your odds. Sounds like a good plan for this weekend then?! ๐
Version 3.24 of Ember.js, Ember Data, and Ember CLI was released on January 7, 2021! Please use the ember-try addon to continuously test your projects against the latest Ember releases.
Ember.js 3.24 included blueprint changes when ember-page-title is installed, interface changes to DeprecationOptions requiring the keys for and since when using deprecate(), and updated the Glimmer VM to version 0.65.0.
The function tryInvoke from @ember/utils module has been deprecated in favor of JavaScript's optional chaining ?. There have also been various deprecations for Ember.String methods including the Ember.String.loc function. Please check the Deprecations guide for the full information.
Ember Data 3.24 included a fix where an attempt to set something on a deleted record no longer shows the value in the error message in a production environment. This was done to prevent leaking sensitive data.
Ember CLI 3.24 upgraded the packages that are present in the package.json blueprint to their latest version which included a major version changes for ember-qunit to v5 and eslint-plugin-ember to v10. The addon ember-page-title was also added to the blueprint. Finally prettier (along with eslint-config-prettier and eslint-plugin-prettier) was also added to the blueprint from RFC #628.
Chris explains how a Glimmer component works if you strip away all the reactivity and only do a single pass. The Glimmer component API sets the args object on to the class in the constructor. The args object in a Glimmer component is also read-only since it is a private class field while exposed with a getter.
class Component {
#args: object;
get args() {
return this.#args;
}
constructor(args: object) {
this.#args = args;
}
}
The blog recommends to never assign from a property on args to a local class field in a Glimmer component because changes to the parent will never be reflected in the component. You should instead use getters that are re-computed when invoked.
The Ember Blog has a new look and a new codebase! The Ember Blog was started 8 years ago, in 2012. For many years, it was a custom Ruby app that was mainly used for release blog posts. Today, the blog is the home for The Ember Times, release announcements, guest-written learning articles, and more, so a group of dedicated contributors set out to make some improvements. The blog is now an Ember app, and under the hood, it uses the same tech that powers the Ember Guides, Empress. Empress tools help turn markdown into HTML within an Ember app, meaning that articles are quick to write using Markdown, and contributors can use all the great tools that Ember has to offer.
Please check out the blog today! Many thanks to the contributors who worked on this project! ๐
Did you spot any issues? Want to help build future features? You can find the main repository at ember-learn/ember-blog on GitHub. Most styles and components come from the shared component library that all Ember's public sites use, ember-styleguide. The empress-blog-ember-template has a lot of the layout logic that is specific to this blog, and empress-blog handles the general application code for routing and data requests for blogs in general.
Have a look at the outstanding RFCs when you find time. Please feel free to share the links with other developers and participate in the RFCs by providing feedback! ๐
If you haven't been following along, Rajasegar has published a number of fantastic posts on dev.to, many of which involve Glimmer.js.
This new post looks at using the single-spa library to buld micro-frontends with Glimmer.
Single-spa is a JavaScript router for front-end microservices that lets you use multiple frameworks in a single-page application. For the integration with Glimmer, Rajasegar has published a single-spa plugin that facilitates injecting multiple super-fast Glimmer apps into a single page, something which is not otherwise possible.
This setup is all pretty experimental and cutting-edge, but it does demonstrate the flexibility of Glimmer, and what you can do with it if you have very specific use cases.
Check this great post out and look for more great Glimmer content from Rajasegar in the future!
Wondering about something related to Ember, Ember Data, Glimmer, or addons in the Ember ecosystem, but don't know where to ask? Readersโ Questions are just for you!
Submit your own short and sweet question under bit.ly/ask-ember-core. And donโt worry, there are no silly questions, we appreciate them all - promise! ๐ค
Keep on top of what's been going on in Emberland this week by subscribing to our e-mail newsletter! You can also find our posts on the Ember blog. See you in two weeks!
That's another wrap! โจ
Be kind,
Chris Ng, Jen Weber, Amy Lam, Isaac Lee, Jared Galanis and the Learning Team