There has been a trend of increasing instability in Ember Data over the last few releases. Although instability in a complicated system is not surprising, the level of stability has not been trending in the right direction. Changes will be made to address this.
Examples that come to mind include:
- hasMany serialization
- belongsTo mutation
- erroneous relationship load requests
- state issues with loading records
These issues have a common theme: they involve relationship and state code that combine complexity and underspecified behaviours.
Our high level plan for addressing this is:
- simplify the implementation
- express semantics more precisely
- extend testing to real-world applications sooner
To mitigate the risks associated with adding precision to previously underspecified behaviour, we intend to add two safeguards.
Firstly, we will be testing against OSS applications in addition to Ember Data’s test suite. In particular:
Secondly, we will partner with community members to test Ember Data during its beta periods. This partnering will take several forms:
- Private application sharing with trusted Ember Data maintainers for a limited number of apps
- Periodic, scheduled, Ember Data upgrade sessions from the currently released version to the current beta. These sessions will be in an “office hour style” block of time.
Fixes for the most serious issues have been backported to 3.2.1 and 3.3.1. If you are upgrading now, please upgrade to 3.4.0-beta.2.
Together, we can improve things. Bug reports, minimal reproductions, and pull requests are extremely helpful, but the importance of testing our applications against betas can not be emphasized enough. Getting a tighter feedback loop is exactly what will make 3.4, the upcoming LTS release, our most successful one yet.