This week we try out another format for the newsletter and bring it right to the Ember blog - making it accessible to even more Ember enthusiasts in the community.
And this week we not only have news about the 2018 roadmap for Ember CLI for you, but also highlights from the latest Ember 3.1 release. Last but not least, a new Readers' Question about a neat new syntax feature is waiting for you.
Here's what's happened this week 🐹:
This week the Ember CLI team has published their official roadmap for the command-line tool to keep the Ember community posted on which shiny new things might be landing in an Ember app near you soon.
The current project goals for 2018 include a dedicated transition story to Module Unification, enabling Treeshaking, adding service worker support to the blueprint of Ember apps by default and many other exciting topics.
You can read more about the roadmap on the Ember Forum and give your thoughts and suggestions in the discussion.
With Ember 3.1 you can now use ES5 getters to read the
values from your computed properties since our target browsers support ES5 getters.
The motivation is to improve developer ergonomics and interoperability with other tooling and libraries.
For the property to recompute you still need to use
Yet, this doesn’t mean that
this.get() is now deprecated.
There’s actually still a lot of cases where you should use
this.get() instead of the ES5 getter.
You can read all about it in the release post.
A new RFC (Request for Comments) by @jgwhite has landed, titled "Semantic Test Selectors." The motivation behind this RFC first appeared in his talk Say More at EmberConf 2018. Basically the RFC describes, in 2 parts, how to write tests that "say more" about what the test is actually doing by writing less.
Essentially the RFC proposes using labels, rather than selectors, to interact with elements in tests. For example
1 2 3
await fillIn('.login-form .field-email', 'email@example.com'); await fillIn('.login-form .field-password', 'topsecret'); await click('.submit-btn');
1 2 3
await fillIn('Email', 'firstname.lastname@example.org'); await fillIn('Password', 'topsecret'); await click('Log in');
How do we get there? One way is accessibility. By delivering accessible, first-class Ember apps by default, you instantly have semantic access to elements because they are labeled in a meaningful way. As @jgwhite eloquently puts it
"If we want to access a UI element in a test, we do so as if we were using a screen reader."
Want to know more? The RFC is incredibly well written and it deserves a proper reading. Head over to RFC#327 to be part of an evolutionary way to test your Ember apps!
Ember Twiddle now (finally!) uses Babel 6 instead of Babel 5 to transpile your code. Please encourage folks to test the canary so that any issues with Ember addons and existing twiddles might be found. Thanks for the update @Gaurav0!
The Learning Team merged a bunch of pull requests in emberjs/guides recently, many from first time contributors - thank you @sdhull. @rmminusrfslash, @karan-pathak and @chrisrng. The Learning Team is working on closing out outstanding issues and PRs on emberjs/guides in an effort to launch the built with Ember ember-learn/guides-app in its place! 🔜
Do you? If so, contribute! The Ember Times is always looking for people to help spread the word about all things Ember. Drop by the Slack channel to say "hi!" and learn how to get started.
Ember CLI Update which last week was brought in under the official ember-cli GitHub
organization has gotten an update. It now has two new commands that will help you keep your apps updated and using the latest and greatest in Emberland.
These new commands are
--dry-run, will give you a quick explanation of what running the update will do.
For example running
on an app running Ember v2.15.1 would output:
Would update from 2.15.1 to 3.1.2.
--list-codemods, will give you a list of the available codemods along with more info about them.
Currently the codemods supported are:
That last codemod helps your project use the native ES5 getters that were described up above.
A quick reminder that ember-cli-update has been accepted to be the official way to update Ember apps so if you aren't currently using it, now is a great time to start!
A shout out to all the amazing contributors who worked on Ember core projects this week: @Dhaulagiri, @rwjblue, @krisselden, @bekzod, @GavinJoyce, @pzuraq, @jessica-jordan, @kennethlarsen, @ctrlaltjustine, @sivakumar-kailasam, @jheth, @ryanto, @EndangeredMassa, @locks, @MelSumner, @Alonski, @jenweber, @runspired, @efx, @nummi, @rwwagner90, @Bestra, @sdhull, @karan-pathak, @itzsaga, @jonnii, @ajcolter, @strout, @kellyselden, @lennyburdette, @twokul, @arthirm, @eliasmelgaco, @Gaurav0, @chadhietala, @williamhaley, @rmminusrfslash, @san650 and @mansona. A warm thank you for all your efforts! ❤️
The Ember Times would like to give a shoutout to @runspired (Chris Thoburn), for being incredibly helpful and responsive in a majority of the Slack channels this last week by supporting community members migrate through the many versions of Ember data from 2.12 all the way to 3.2.0-beta.2.
Chris is a major contributor to the Ember ecosystem and to ember-data specifically. and shares his in-depth knowledge of ember-data internals to make it easier for everyone to understand why things work in a particular way and to also shed some light on how ember-data will work in the future. Thanks @runspired!
In this week's brand new Readers’ Question it's all about the new and cool and shiny that will be coming to your Ember apps soon: When will we be able to make use of the decorator syntax when writing Ember apps?
In his detailed write-up @pzuraq will answer everything you need to know about the current state of the decorators proposal itself and when you will be able to decorate your own application. Read the full answer on the offical Ember forum.
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! 🤞
That's another wrap! ✨
Kenneth Larsen, Chris Garrett, Sivakumar Kailasam, Alon Bukai, Amy Lam, Ryan Mark, Ricardo Mendes, Jessica Jordan and the Learning Team