The Ember Times - Issue No. 191

– By Chris Ng, Jared Galanis

👋 Emberistas! 🐹

Ember 4 is approaching, checkout v4.0.0-beta.9 🐹, Ember.js Template Imports Blog Series 📚, New Releases of uELS published to VSCode ✅, tracked-built-ins v2.0.0 🔥, Announcing Checkup v1.0.0 🩺, Addon roundup 🙌, GlimmerX Workshop Resources ✨, Migrating an Ember addon to the next-gen v2 format 🚀


Ember 4 is approaching, checkout v4.0.0-beta.9 🐹

If you've been following along with the progress on Ember 4 you might know that the next major version of Ember is approaching.

If you are able to, you should check out Ember v4.0.0-beta.9 in your cutting edge codebases now. A few minor API removals remain, but the vast bulk of planned changes from 3.28 are in this release.

For more details on the road to Ember 4.0 see this blog post.


Ember.js Template Imports Blog Series 📚

There's a fantastic new 5 part series from Chris Krycho (@chriskrycho) on template imports that goes into great detail comparing the various options for template imports that are on the table for the Ember and Glimmer community while we are experimenting with designs for components being available in the same file (you may have heard to this referred to as single-file components).

So far, 4 parts of the 5 part series have been published and the posts cover an introduction on the formats, comparisons on teaching and understanding, tooling considerations and integrated testing.

As is typical of the content Chris puts out, the discussion in this series is precise, thoughtful and complex. It will teach you a lot about single file components and what is involved in the decision making behind such an important choice for our community.

Many thanks to Chris for putting the thought process out there for all of us to better understand the options.

You can find the 4 parts already published, here:


GlimmerX Workshop Resources ✨

Earlier this month Alex Kanunnikov (@lifeart) hosted a workshop at the HolyJS conference regarding GlimmerX and how you can use it to build declarative UIs.

Recently Alex has shared the materials for the workshop which provide an excellent set of resources if you have been wondering what it takes to build an application using Glimmer.

Check it out if you get a chance!


Migrating an Ember addon to the next-gen v2 format 🚀

If you've seen the v2 Addon Format RFC for embroider compatibility and wondered how you can upgrade your addon to this new format, you're in luck.

There's a new blog post on how to go about migrating an Ember addon to the next-gen v2 format by Simon Ihmig (@simonihmig).

The post covers all the necessary information on why and how you can make these upgrades for your addon.


New Releases of uELS published to VSCode ✅

Unstable Ember Language Server is a fully featured fork of Ember Language Server. While the name says unstable, it actually is stable and recently several new versions v3.0.8, v3.0.9 and v3.0.10 were published!

Thank you to Alex Kanunnikov (@lifeart) for the updates such as: async file system access, improved startup performance, fixed found issues, and multiple file system providers support. Also, Internationalization tooling was improved.

As part of these releases, experimental VSCode web-version support was added. This allows uELS to be integrated into any browser environment.


tracked-built-ins v2.0.0 🔥

v2.0.0 of tracked-built-ins was released and it now supports Ember v4.x, has better internal implementations, includes a lot of dependency updates and provides fewer deprecation warnings!

Many thanks to NullVoxPopuli (@NullVoxPopuli), Chris Krycho (@chriskrycho) and Sergey Astapov (@SergeAstapov) for their work on this release.


Announcing Checkup v1.0.0 🩺

The Checkup team has released version 1.0 of the Checkup framework, which, if you did not know, provides a nice way to gather static analysis insights for your front-end projects.

Checkup can be used in Ember and can make things like tracking progress in certain efforts, like Octane migrations, easier. There is a custom plugin system and it outputs to standard formats for integration with other common tooling like VS Code.

Checkout the blog post on the release by Steve Calvert (@scalvert).


Addon roundup 🙌

There's been quite a few new releases of Ember addons since our last issue. Check them out and maybe give them a try! In no particular order:

  • ember-simple-auth v4.1.0 was released which adds implementation for explicit API and deprecates implicit use of initializers in ESA. There's also a migration path, here.
  • ember-stateful-promise is a new addon that helps with async operations, including derived state for native promises and decorators to track promise state.
  • ember-autoresize-modifier v0.4.0 was released and now supports resizing textareas to fit content.
  • ember-concurrency v.2.2.0 was released and introduces a public task modifiers api and an onError option for the perform helper.
  • ember-modifier v3.0.0 was released and it fixes some bugs, adds Ember 4.x compatibility and drops support for old versions of Node, Ember and TypeScript.
  • ember-exam v7.0.0 was released, updating ember-auto-import to v2 for readiness for apps using ember-auto-import v2 and dropping support for node 10.
  • ember-try v2.0.0 was released and now deprecated bower support is removed and experimental support for pnpmjs has been added.

👏 Contributors' corner

This week we'd like to thank our Chris Ng (@chrisrng), Bert De Block (@bertdeblock), Ricardo Mendes (@locks), Amanda Cahill (@amandakalk), Stephen Yeung (@step2yeung), Melanie Sumner (@MelSumner), Jen Weber (@jenweber), Katie Gengler (@kategengler), Balint Erdi (@balinterdi), @rajakvk, Isaac Lee (@ijlee2), Chris Krycho (@chriskrycho), Steve Calvert (@scalvert), Vincent Molinié (@VincentMolinie), Berkan Ünal (@brkn), Sam Van Campenhout (@Windvis), @NullVoxPopuli, Kelly Selden (@kellyselden), Darius D. (@ddzz), Raido Kuli (@raido), James C. Davis (@jamescdavis), Lukas Kohler (@luxferresum), Bing Dai (@michaelbdai), Igor Terzic (@igorT), Kris Selden (@krisselden), James Herdman (@jherdman), Bryan Mishkin (@bmish), Nathaniel Furniss (@nlfurniss), Matthew Beale (@mixonic), Tobias Bieniek (@Turbo87), Charles Fries (@charlesfries), Jacob (@jfdnc), Kyle D. (@kdagnan), Chris Manson (@mansona), Jaydon Peng (@v-jiepeng), Mehul Kar (@mehulkar), Scott Newcomer (@snewcomer), Travis Hoover (@thoov), Robert Jackson (@rwjblue), Guillaume Gérard (@GreatWizard), Jared Galanis (@jaredgalanis), Sergey Astapov (@SergeAstapov), Ruslan Hrabovyi (@ro0gr), Giles Thompson (@gilest), Stjepan Petrusa (@square-brackets), and Edward Faulkner (@ef4) for their contributions to Ember and related repositories! 💖


🤓 Connect with us

Office Hours Tomster Mascot

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! 🤞

Want to write for the Ember Times? Have a suggestion for next week's issue? Join us at #support-ember-times on the Ember Community Discord or ping us @embertimes on Twitter.

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, Jared Galanis and the Learning Team