Meet Ember 3.17 π, tell us about your EmberConf experience β€οΈ, read about testing best practices on the Ember Testing Guide π, comment on the co-located test RFC β, embrace easier release management for your apps π¦π, learn how to add CI with GitHub Actions β , and respect the underscore π.
On March 16βjust in time for EmberConf!βEmber 3.17 was officially announced. This release marked Ember 3.16 as an LTS and kicked off the 3.18 beta cycle.
Ember 3.17 introduced these changes:
Ember.jsΒ
Significantly updated the Glimmer rendering engine
Ember CLIΒ
Removed internal usage of RSVP in favor of native promises
Removed ember-cli-eslint and ember-cli-template-lint in favor of eslint and ember-template-lint
Ensured that npm test or yarn test fails when lint:js or lint:hbs fails
Ensured that npm test or yarn test in an addon fails if ember-try scenarios fail
Removed a number of older experiments (module unification and delayed transpilation)
To learn more about upgrading to Ember 3.17, please visit the Ember Blog. We encourage you to help test 3.17 and 3.18 beta and report any bugs. Thank you!
This year's EmberConf featured 25+ remote presentations about the latest and greatest in JavaScript and Ember with Emberistas from all around the world - and the event was a huge success! In case you haven't had a chance to tune into the livestream this week already, be sure to catch up on the recordings for day 1 (part 1 + part 2) and day 2 (part 1 + part 2) of the conference.
Last, but not least, we have one request for those of you who attended EmberConf 2020:
Tell us about someone new that you got to chat with at the virtual conf!
Let us know about your answer to this question either by tweeting us via Twitter using the hashtag #EmberConFriends or as a message on the Ember Discord in the #support-ember-times channel. We will raffle an exclusive EmberConf retro sticker set among all story writers by April 6, 2020. We're looking forward to hear from you and happy catching up on virtual EmberConf!
Dawid PoΕliΕski (@PoslinskiNet) wrote about testing best practices and which addons to use in the newly released Ember Testing Guide v1. The testing guide goes through why we need tests to begin with. What benefits does testing give us and what gaps are still present.
Following that, the testing guide discusses best practices in how we architect our testing code. It also goes through how to use the right kind of test. Should the test be unit, integration, acceptance, visual regression, or even manual? These principles are the building blocks to constructing effective tests.
The conventional file layout of Ember apps has undergone a few changes throughout the years. Besides the classic file layout, users have also been able to opt-in to the pods layout for a while. And while pre-v3.13 Ember users were modifying component templates and .js files in two different directories, they recently got the chance to work on component files side-by-side after the implementation of the component template co-location RFC.
Another, recent RFC wants to take the principle of co-location even a step further: it proposes that test files, e.g. those for rendering tests of a component, should be co-located right next to the respective component class and template files. Beyond that, the proposal suggests a similar co-location pattern for unit tests of related routes and controllers, too - with the motivation to improve the discoverability of tests for application developers.
Ready to learn more about how this could be implemented? Be sure to read the full proposal and to leave your thoughts or questions in the comments below!
Who doesn't dream of easy-peasy releases? Let straightforward publishing workflows become your new reality with create-rwjblue-release-it-setup. Leveraging the tools from the popular library release-it, it allows you to setup your project swiftly for automated versioning and package publishing.
Make your dream of easier release management come true with one single npm command:
npm init rwjblue-release-it-setup
...or a yarn command for that matter:
yarn create rwjblue-release-it-setup
Check out the v2 release page to learn more about all the latest features and improvements and happy publishing!
Continuous integration (CI) and continuous deployment may be skills that you get to practice maybe once on a production app, depending on your job title. But the truth is, you can practice them (ahem) continuously at an early stage for any app, no matter who you are. π
You might then ask, where can I learn how to add CI to my Ember app? Are there cool things that I can do because I have an Ember app?
In his blog post, Isaac Lee (@ijlee2) shows step-by-step how you can write a GitHub Actions workflow. Thanks to Ember's addon ecosystem, you can:
Cache dependencies (avoid yarn/npm install)
Lint files and dependencies
Run tests separately from linting
Split tests and run in parallel
Take Percy snapshots in parallel
If you wanted to solve these problems or needed a reference code, look no further! Feedback is always welcome (you can DM @ijlee2 on Discord).
Steven Elberger (@StevenElberger)'s blog post, "Respect the Underscore," is a fantastic example of what you can practice as a developer: Document your bug for posterity, especially if it failed your app or test suite in a catastrophic manner.
Here are some questions that you and your team can address:
When did you first notice the bug?
Which features or upgrades were recently worked on?
What did you think caused the bug?
How did you eliminate some of the possibilities?
What did you do to fix the bug?
Because Steven's writing excellently builds suspense, we won't dare spoil the twists and ending here. Instead, we encourage you to check out the post!
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! π€