The release candidate of Aurelia is fast approaching. We're just wrapping up a few final things now, so we wanted to give you a quick update on how to get ready.
We will re-iterate the breaking change info when we actually release, but we wanted to give you this information in advance.
Many of you know that our custom element content projection system was originally based on what has come to be known as "Shadow DOM v0". This involved using the
<content></content> element to designate content projection sites within the view of a component. The v0 version of the spec was not fully agreed upon by all the major players and underwent a series of design changes, resulting in the "Shadow DOM v1" spec, which has gained consensus and is being implemented by browser manufacturers now. In response to this, we've taken the beta period to update our own Shadow DOM and fallback support to match the new spec. You can read more about the changes on our blog post announcement.
The new Shadow DOM v1 spec has support for slot "fallback content". As a result, our
replaceable attribute is no longer needed and has been removed in favor of slot fallbacks. However, slots do not solve the problem of replacing a template that is used by a
if or other template controller. So, we still support placing the
part attribute on a template controller's element and overriding it by using
replace-part in the element's content.
aurelia-templating library previously contained two helper methods for unit testing:
createViewModelForUnitTest(). We've removed these methods in favor or our new
aurelia-testing library, which contains the
ComponentTester. This new testing helper features a fluent interface capable of handling many more testing scenarios with ease and is our preferred approach going forward. If you require the previous mechanism in order to help you migrate, consider monkey-patching the
TemplatingEngine.prototype by adding the methods back in your test setup. You can find the source code for the removed methods here.
aurelia-templating-resources library previously contained the
compile-spy custom attributes, used for debugging. We've moved these out of this library and into
aurelia-testing. You can now install this library as a plugin if you wish to use these debugging features.
The above changes ultimately remove test-specific features out of the core framework, allowing us to reduce Aurelia's footprint by not shipping test code in production apps.
Since the above changes can potentially break your app, we've done them out-of-band by only releasing to Github. Over the next couple weeks, as we prepare for RC, we'll pre-release some of these libraries under the
beta.2 designation. This will make it easy for you to update your codebase a bit early if you like or simply not update if you'd like to wait.
During the beta period we've made an extensive set of improvements to Aurelia. This includes everything from performance to polyfills, standards compliance and tooling. We've got a few more things we'd like to get in place for the release candidate such as improved support for both Webpack and TypeScript as well as a new CLI-based development process. Everything is coming together nicely and we look forward to sharing the RC with you soon.
After the Release Candidate
After we get the RC out, we'll have a brief period to address any last minute critical issues and improve tooling. We've been in Beta for about 7 months but we don't intend RC to extend to a period of time anywhere near that. It is our desire to turn around RTM very quickly.