The Ember Times - Issue No. 201

👋 Emberistas! 🐹

EmberFest 2022 🇫🇷, Embroider is legit 🧵, Starbeam 🤩, Testing Tasks and Flexible Components Posts 📖, Advanced template support in Intellij Idea 💻, ember-statechart-component 6.0.0 📊, Whiskey, Web and Whatnot Episodes 🔊


EmberFest 2022 🇫🇷

EmberFest 2022 is happening on September 22-23 in Paris 🇫🇷, and tickets are now on sale! 😊

If you’re looking for updates on the latest and greatest in Ember and Glimmer this is the place to be. EmberFest is also a great opportunity to get in touch with the European Ember Community (and friends from abroad) and hiring Ember talent.

Don't wait too long to book your ticket and travel as September will be here before we know it!


Embroider is legit 🧵

Embroider has been declared stable since v1.0.0, or around 6 months ago (released mid-January 2022). Embroider is the 2nd generation build pipeline to Ember Apps that enables the usage of “Standard JavaScript” and leverages standard JavaScript packagers such as Webpack.

Since even before v1.0.0, addon-authors have been adding two embroider-centric tests in C.I. for both "maximum compatibility" and "maximum strictness" to their ember-try configs. ember-cli has even added an --embroider flag out of the box for starting new projects with embroider. Try embroider out today in a new app!

ember new my-app --embroider

Or, add embroider to an existing app via this codemod:

npx ember-apply embroider

This ember-apply command automates the setup instructions in the embroider README.

And speaking of the README, it has a section of if you should use embroider or not, today.

Several large, heavily-tested Ember apps are shipping to production with Embroider. So if you are excited to adopt Embroider, it is a reasonable choice. The main risks to be aware of if you choose to use Embroider in production are:

  • you're likely to discover some Ember addons don't work or break your build
  • Embroider's own configuration options are subject to change, so you'll need to read the CHANGELOG.md when updating the Embroider packages.

Alternatively, it is totally safe to stick with the traditional build pipeline and wait for the official cutover point when EmberCLI starts generating new apps with Embroider by default.

Note that while some addons may break your build, this may be for the greater good. For example, instead of relying on ember-specific solutions to certain build-time behaviors, you may now follow heavily documented, and asked about, and iterated on Webpack plugins. Additionally, removing addons with build-time behavior will speed up your overall dev-server start time.


Starbeam 🤩

If you haven't had a chance to check out Starbeam from Yehuda Katz (@wycats), you're going to want to give it a look!

The TL;DR on Starbeam is that it's the best parts of the Ember auto-tracking system cleaned up and extracted into a standalone library optimized for universality. This means you can use the 🔥 Ember reactivity system 🔥 in frameworks like React, Vue and Svelte. Note, Starbeam should be available in Ember.js as well.

An in-progress docs site is up now, go check it out!


Testing Tasks and Flexible Components Posts 📖

Martin Feckie (@mfeckie) has written two great new blog posts. One is on testing ember-concurrency tasks and the other is about how to write flexible components! ✨

For testing tasks, Martin shows you how to write a fake task helper to support writing tests that test tasks in the happy path. For flexible components, Martin makes the case for an alternative approach to flexible components.

Go ahead and give the posts a read today!


Advanced template support in Intellij Idea 💻

In Intellij Idea Ember.js templates haven't been fully supported. This is notable when compared to vscode where the (Un)Stable Ember Language Server is available.

With intellij-emberjs-experimental, @patricklx has added many features to the fantastic original plugin to improve the UX of working/coding with templates.

If you're interested in trying out these new features give the experimental plugin a try. Note, you will need to disable or remove the original intellij-emberjs plugin to prevent conflicts.

This plugin adds:

  • Smart Handlebars references for tags/mustache paths and tag attributes. This means that it handles ember helpers such as let, hash, or, each, yield. References to javascript/typescript and it is able to resolve array item type in each.
  • Handlebars auto-completion for tags (coming from blocks), tag attributes, mustache paths (js/ts) and named blocks. Also validates if attributes are valid and if required ones are missing.
  • Handlebars parameter hints for helpers/modifiers and components.
  • Handlebars renaming for mustache ids and Html tags.
  • Support for Ember.js internal Components and Helpers with documentation and support for attributes and parameter hints.
  • It also resolves {{or x y z}} to the first resolvable option, this makes {{component (or x y)}} work (e.g in power-select).
  • Support for inline templates.
  • Some initial support for .gjs files.

ember-statechart-component 6.0.0 📊

ember-statechart-component 6.0.0 has been released by @NullVoxPopuli and now includes support for Glint! There are also some breaking changes around the required versions of Ember involved so be sure to check out the release notes.

There's also been several patch and minor releases of the library since 6.0.0 was released so the latest is actually now v6.1.1. Those releases include a few bug fixes and one new feature (automatic glint registration).


Whiskey Web and Whatnot Episodes 🔊

There are two new awesome episodes of the Whiskey Web and Whatnot podcast featuring two Ember core team members! 🔥

First, Robert Wagner (@rwwagner90) and Chuck Carpenter (@chuckcarpenter) of Ship Shape sit down with Chris Krycho (@chriskrycho) of the Ember Framework and Typescript Core Teams in this episode of Whiskey, Web and Whatnot. Chris shares his initial work on getting TypeScript into Ember, how Typed-Ember got established, and further explains the need and long-term benefits of TypeScript.

They also discuss the enthusiasm of newbies to use TypeScript and the complexities that might arise, factors to consider when deciding to use TypeScript, and how learning the Rust programming can help broaden you as a developer.

Next up is an episode with Ember Framework Core Team member Godfrey Chan @chancancode who chats with Robbie and Chuck about StarBeam and the Polaris Edition and the future of Ember.js! Check out the episode here.


👏 Contributors' corner

This week we'd like to thank Dhanush Kumar (@dhanush027), maxwondercorn (@maxwondercorn), Naveen (@naveensrinivasan), Robert Wagner (@rwwagner90), Chris Manson (@mansona), Geordan Neukum (@geneukum), Giles Thompson (@gilest), KULDIP PIPALIYA (@kuldipem), Edward Faulkner (@ef4), Manuel Wiedenmann (@fsmanuel), @NullVoxPopuli, @patricklx, Jared Galanis (@jaredgalanis), Bert De Block (@bertdeblock), and Anne-Greeth Schot-van Herwijnen (@MinThaMie) 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,

Anne-Greeth Schot-van Herwijnen, NullVoxPopuli, patricklx, Dhanush Kumar, Jared Galanis and the Learning Team