The Ember Times - Issue No. 198

👋 Emberistas! 🐹

Fill out the Ember Community Survey by April 7th! 🗳, Hybrid Ember.js Europe Meetup, featuring Ember Data 📽, Ember TypeScript Core Team 🔥, Upcoming free technical writing workshop 📝, EmberConf on April 19th 🐹, Blog post: Making your dynamic Ember components work with Embroider 💥, lint-to-the-future demo video 📹, Glimmer component Signature type RFC in FCP ⌛️, Ember Addon Roundup 🌎


Fill out the Ember Community Survey by April 7th! 🗳

The annual Ember Community Survey helps guide direction in the Ember ecosystem. The data informs project prioritization, sparks new ideas, and reveals opportunities for growth. The Ember core teams would love to hear from you!

The survey is primarily intended for developers who use the Ember JavaScript framework, either for work or personal use, although any developer is welcome to fill out this survey. The survey should take approximately 15 minutes to complete in full, though all questions are optional.

Learn more about the survey and fill it out by April 7th!


Hybrid Ember.js Europe Meetup, featuring Ember Data 📽

March 31st is the first Ember.js Meetup event!

There will be an AMA (ask-me-anything) with Chris Thoburn and Scott Newcomer from the Ember Data Core team.

For more details, visit Ember Europe on Twitter or RSVP on Meetup.


Ember TypeScript Core Team 🔥

In case you didn't know, the Ember project recently merged RFC #0724: Official TypeScript Support, committing to make TypeScript an officially-supported language for Ember.js.

To facilitate this support and following a lot of fantastic work over the last 5 years the Typed Ember team is becoming an official Ember core team. The Typed Ember team joins the Framework, Learning, CLI, and Data Core teams as a new Core sub-team: the Ember TypeScript Core Team! 🎉

The team's initial members are the current Typed Ember team: James C. Davis (@jamescdavis), Dan Freeman (@dfreeman), and Chris Krycho (@chriskrycho).

You can read more about the TypeScript Core Team announcement in the Ember blog post.


Upcoming free technical writing workshop 📝

What are the elements of great technical articles or examples? What are some tips for writing for a global audience? How do you find a place to begin when there are so many different directions you could go? How should your writing style change depending on where it will be published? Join the Ember Learning team for this workshop! It will be half instruction, half hands-on activities.

If there is enough interest, the workshop will be offered in two sessions:

  • April 23rd - aimed at Western Hemisphere time zone participants
  • April 30th - aimed at Eastern Hemisphere time zone participants

To receive announcements about specific times and event details, please fill out this form.


EmberConf on April 19th 🐹

EmberConf registration is open! Join the community remotely on April 19th for an amazing lineup of talks.


Blog post: Making your dynamic Ember components work with Embroider 💥

Nick Schot (@nickschot) wrote a blog post on making your dynamic Ember components work with Embroider. Embroider is the future build system for Ember apps which unlocks features like splitting code per route by statically analyzing your codebase and dependencies. Dynamic components are components that are resolved at run-time rather than hardcoding the component to use using the component helper (e.g. {{component "my-component"}}).

Dynamic components are not by default compatible with Embroider's route-splitting feature since Embroider needs to be able to statically resolve components at build time. In the blog Nick discusses how they migrated ember-promise-modals, an addon that relies on dynamic components, to be compatible with Embroider. They first used the packageRules as a compatibility feature to tell Embroider that an argument in the addon represents a component name.

To fully leverage Embroider’s code splitting, they used the ensure-safe-component helper that Embroider provides to turn a component class into a component definition that can be invoked in the template. This way the app code can be updated to actually import the component class so that Embroider can statically resolve this component.


lint-to-the-future demo video 📹

lint-to-the-future helps facilitate adding new linting rules in projects progressively, where adding such rules without a tool like this can otherwise be a struggle and lead to linter error explosions. lint-to-the-future has a plugin system that enables it to work for a variety of platforms, but there is already a plugin for Ember available if you want to use it in your Ember project today!

If you haven't had a chance to check out Chris Manson's (@mansona) new demo video on this awesome new tool, you may want to give it a watch. 😎

You can find the video on YouTube or read a little about it on the Simplabs blog. If you want to check out the repo, you can find it here.


Glimmer component Signature type RFC in FCP ⌛️

RFC 748 "Glimmer component Signature type" is now well into the final comment period!

This RFC proposes to change GlimmerComponent's Args type parameter to a Signature type that can capture richer information about how a component can be invoked.

Now's your last chance to review and comment before the RFC is accepted so head on over to the RFC and contribute any thoughts you may have.


Ember Addon Roundup 🌎

NullVoxPopuli (@NullVoxPopuli) and Zoë Bijl (@ZoeBijl) have released an awesome new aria-grid demo site for ember-aria!

We’ve also had several addons across the Ember ecosystem converted to v2 format recently!

Many thanks to Sergey Astapov (@SergeAstapov) for their work on many of these releases!

There is a number of benefits to users of addons published in v2 format, some of which include:

  • faster builds and faster NPM installs
  • "zero-config import from NPM — both static and dynamic" as a first-class feature that works for both third-party libraries and Ember addons
  • support for arbitrary code splitting
  • tree-shaking of unused modules, components, helpers, etc. from the app and all addons

To read more about v2 Addon Format, please check out RFC 507.

If you'd like to help the ecosystem move forward and convert more addons to v2 format, you may follow the great guide Porting an Addon to V2 made by Edward Faulkner (@ef4) or try ember-addon-migrator by NullVoxPopuli.


👏 Contributors' corner

This week we'd like to thank Jared Galanis (@jaredgalanis), Frédéric Soumaré (@hakilebara), Louis Coquio (@lcoq), Chris Ng (@chrisrng), Sergey Astapov (@SergeAstapov), Tim (@fozy81), Chris Manson (@mansona), @NullVoxPopuli, Chris Krycho (@chriskrycho), Melanie Sumner (@MelSumner), Eric (@Mithrilhall), Josh Bremer (@joshuabremer), Nathaniel Furniss (@nlfurniss), Sam Van Campenhout (@Windvis), Katie Gengler (@kategengler), Ricardo Mendes (@locks), Jen Weber (@jenweber), Edward Faulkner (@ef4), Chad Hietala (@chadhietala), Thomas Gossmann (@gossi), Giles Thompson (@gilest), Peter Wagenet (@wagenet), Bert De Block (@bertdeblock), @mkszepp, and Vincent Molinié (@VincentMolinie) 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,

Jared Galanis, Jen Weber, Chris Ng, Sergey Astapov and the Learning Team