The Ember Times - Issue No. 107
What's happening, Emberistas? 🐹
This week: read the new RFC on Deprecation Removal Policies 📋, Ember 3.11 is out! 🚀 flexible imports with Ember Auto Import ⏬, learn how to make an Electron app with Ember 🖥️, and last, but not least, improving your DX on Ember 💯!
RFC: Major Version Release for All Deprecation Removal 📋
An RFC was proposed by @kerrick to have a major version release for all deprecation removals. The main issue revolves around the Intimate API policy which can catch some developers off guard when upgrading Ember versions.
Certain private APIs are considered "Intimate API" because there are addons and consumers who use them despite being private. We sometimes have issues when deprecating these private APIs. This is because not all private APIs would warrant a deprecation warning (and therefore a major version change). The RFC proposes to have a major version release for all deprecation removals.
Read, comment, and discuss the full RFC on GitHub!
Ember 3.11 is Out 🚀
A lot of cool new features have been released as part of Ember 3.11. With Ember.js 3.11 you now have access to features like the on
modifier, the fn
helper and much more. With 3.11 there's also a deprecation of Function.prototype.observes
.
Furthermore, Ember Data 3.11 contains the much awaited Packages feature
which allows you to use a new import syntax.
If you decide to upgrade then please have a look at the release post since Ember Data 3.11 currently contains a known bug with the model
blueprint.
Custom Configuration of Ember Auto Import for Your Project ⏬
Ember Auto Import, a very useful addon, helps you easily import and use third-party JavaScript libraries from npm in your Ember app.
You can configure the addon to fit your project's specific needs. By providing the autoImport
configuration object in your app options defined in ember-cli-build.js
, you can, for example, change the name of the packages to import from or exclude packages to be imported with Ember Auto Import, which you might have already provided to your app in another way.
If you're already an avid user of Ember Auto Import (or plan to become one), be aware that from version 1.4.0+ the addon will no longer include Webpack's polyfills for a set of Node.js globals and modules automatically.
When upgrading to a version of the addon beyond 1.4.0, you might see errors such as global is not defined
in your app or test suite. This might indicate that some of your packages—even though they run in a browser environment—still rely on globals (these are usually only available in a Node environment) and may require a polyfill to work correctly. You can check this issue on the Ember Auto Import repo for more context.
If you want to opt-in to these Node polyfills using Ember Auto Import, you can configure them accordingly via the autoImport
options in your ember-cli-build.js
:
// ember-cli-build.js
let app = new EmberApp(defaults, {
autoImport: {
webpack: {
node: {
Buffer: false,
global: true,
process: true,
},
}
}
});
You can review the configuration defaults for the Node.js polyfill over at the documentation for Webpack itself.
Making an Electron App with Ember JS 🖥️
Ember Electron is an addon that helps you create ambitious cross-platform desktop apps. Currently, its documentation resides in the GitHub repo.
To help you understand how to use the addon—in particular, how to configure the addon for Mac, Linux, and Windows—@mitchartemis published 2 blog posts, with a few more to come. 🎉
We encourage you to read them today! You can also find Mitch's demo app and configuration files on GitHub.
Improving Your DX on Ember 💯
@Serabe has a series on the DockYard blog about how to improve your Developer Experience (DX). Check it out for happier Ember-ing!
- Part 1: Quick Wins: tips and tricks
- Part 2: Changing Our Toolbelt: goes through some major changes to their project that brought bigger improvements
- Part 3: Ember Suave 2.0: announcing the new and improved eslint-plugin-ember-suave
Contributors' Corner 👏
This week we'd like to thank @kratiahuja, @dnalagatla, @kiwiupover, @bekzod, @chancancode, @elwayman02, @ursm, @pete-the-pete, @sivakumar-kailasam, @loganrosen, @mansona, @choheekim, @locks, @jenweber and @toddjordan for their contributions to Ember and related repositories! 💖
Got a Question? Ask Readers' Questions! 🤓
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,
Chris Ng, Jessica Jordan, Kenneth Larsen, Isaac Lee, Amy Lam and the Learning Team