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! πΉπ
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.
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!
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.
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!
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.
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! π€