The Ember Times - Issue No. 120

🏄‍♀️ Emberistas! 🐹

Ember Bootstrap 3.0.0 released 🎉, dive into Octane features with EmberMap 📚, learn about ember-engines 📝 , help wanted for Ember Octane linting rules 🤖, and greetings from the Ember Times team at Emberfest! 🐹🎉


Ember Bootstrap 3.0.0 Released 🎉

Just a few days ago, Ember Bootstrap 3.0.0 was released. Ember Bootstrap brings the Bootstrap library to Ember without requiring any of the Bootstrap JavaScript. Instead, it rebuilds the dynamic features of Bootstrap with native Ember Components.

The UI library enters the Octane-era with this new major version: It introduces full support of angle bracket component invocation syntax and an updated documentation. All components have been refactored to native classes.

Ember Bootstrap v3 drops support for some very old versions of Ember, but still supports 2.18+ to ease the migration path. The commitment to backwards compatibility introduced some technical challenges because Ember 2.18 isn't supported by native class polyfill.

In addition, consumers should be able to extend components provided by the addon to customize them for their specific needs. This introduced another challenge since a class field cannot be overwritten by a computed property. A defaultValue decorator was used to prevent a Cannot set property foo ... which has only a getter error.

In the end, Ember Bootstrap saw six release candidates and three and a half months until its new major release has been proven to be stable.

Besides dropping support for Ember <= 2.17 and Node 6, Ember Bootstrap v3 comes with some minor breaking changes affecting defaults. Please refer to the changelog for a full list of all changes.


A New EmberMap Series: What's New in Ember 📚

This year, Ember released many new features that will all be a part of Ember Octane. While the release notes summarize the features well, you may have wondered still how to use them in your app.

To help you understand better, EmberMap started a series called What's New in Ember. Each episode will cover 1 new feature, starting with Ember 3.8.

In the first episode, Sam Selikoff (@samselikoff) shows how you can write a modifier. In particular, you will learn how to use Ember's modifier manager (this provides low-level, public APIs for customization) and dedicated addons (for high-level abstraction).

Be sure to check out the future episodes as they are released!


Ember Engines: The What, What Not and Why? 📝

If you have ever heard something about ember-engines but you need to refresh your knowledge, or they are completely new to you, @abhilashlr wrote a blog post about them. Engines allow multiple logical applications to be composed together into a single application from the user's perspective, while satisfying the separation of concerns convention for the developer. This first post nicely establishes what an ember-engine is, and emphasizes what it is not.

Stay tuned for part two on how @abhilashlr used ember-engines in his app.


Help Wanted For Ember Octane Linting Rules 🤖

With Ember Octane's official release imminent, there's an effort to create new and improve existing Octane-specific linting rules. These will be used to help educate the community about the new APIs as well as help make migrating existing "Classic" code easier. A number of improvements have been proposed and issues have been cut for each of them on the eslint-plugin-ember and ember-template-lint repos.

If you're interested in helping out, comment on the issue you'd like to take and submit a PR!


Greetings from Emberfest 🐹🎉

Office Hours Tomster Mascot

This week the Ember Times sends you greetings from Emberfest - an annual Ember conference, which took place in Copenhagen on Oct 17 + 18 this year. With almost 200 attendees and 2 days full of talks about how to build modern Ember apps, the importance of developing with intent and effective mentorship, the event has been an amazing opportunity for the Europe-based Ember community to learn, reconnect and share ideas.

We'll keep you posted once the video recordings of the event are up. And in the meantime…why not gain a few Emberfest impressions by checking out the #Emberfest hashtag on Twitter or join an Ember mini-conference in your area?

Vi ses senere, Emberistas!


Contributors' Corner 👏

This week we'd like to thank @Turbo87, @rajasegar, @GavinJoyce, @tylerturdenpants, @tmquinn, @dfreeman, @camerondubas, @rwjblue, @josemarluedke, @maxwondercorn, @MrChocolatine, @bekzod, @wycats, @runspired, @mfeckie, @HeroicEric, @kturney, @patricklx, @scalvert, @nickschot for their contributions to Ember and related repositories! 💖


Got a Question? Ask Readers' Questions! 🤓

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


#embertimes 📰

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.


That's another wrap! ✨

Be kind,

Isaac Lee, Jeldrik Hanschke, Anne-Greeth van Herwijnen, Pat O'Callaghan, Jessica Jordan, Amy Lam and the Learning Team