{"action":"published","release":{"url":"https://api.github.com/repos/realityforge/arez/releases/8368018","assets_url":"https://api.github.com/repos/realityforge/arez/releases/8368018/assets","upload_url":"https://uploads.github.com/repos/realityforge/arez/releases/8368018/assets{?name,label}","html_url":"https://github.com/realityforge/arez/releases/tag/v0.19","id":8368018,"tag_name":"v0.19","target_commitish":"master","name":"v0.19","draft":false,"author":{"login":"realityforge","id":11840,"avatar_url":"https://avatars2.githubusercontent.com/u/11840?v=4","gravatar_id":"","url":"https://api.github.com/users/realityforge","html_url":"https://github.com/realityforge","followers_url":"https://api.github.com/users/realityforge/followers","following_url":"https://api.github.com/users/realityforge/following{/other_user}","gists_url":"https://api.github.com/users/realityforge/gists{/gist_id}","starred_url":"https://api.github.com/users/realityforge/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/realityforge/subscriptions","organizations_url":"https://api.github.com/users/realityforge/orgs","repos_url":"https://api.github.com/users/realityforge/repos","events_url":"https://api.github.com/users/realityforge/events{/privacy}","received_events_url":"https://api.github.com/users/realityforge/received_events","type":"User","site_admin":false},"prerelease":true,"created_at":"2017-10-27T10:28:50Z","published_at":"2017-11-03T00:12:07Z","assets":[],"tarball_url":"https://api.github.com/repos/realityforge/arez/tarball/v0.19","zipball_url":"https://api.github.com/repos/realityforge/arez/zipball/v0.19","body":"##### Added\n* Introduce the concept of a [`Zone`](http://realityforge.org/arez/zones) which is an isolated Arez context.\n* Add some cute icons to start of \"computed\" messages and \"scheduled\" messages in `ConsoleSpyEventProcessor`.\n  These were source from the [mobx-devtools](https://github.com/andykog/mobx-devtools) project.\n* Add support for interleaving transactions from different instances of `ArezContext`. Beginning a transaction\n  in one context will suspend the active transaction even if it is from a different context. The goal is to\n  enable isolation between multiple contexts running within the same application.\n* **\\[core\\]** Introduced `ArezTestUtil.resetConfig(boolean productionMode)` to simplify test setup.\n\n##### Fixed\n* **\\[processor\\]** Fixed bug where disposable of an arez component did not wrap all the dispose actions in\n  a single transaction which could result in the `dispose()` causing an observer on the component to react\n  when it is partially disposed which often causes failures.\n* **\\[processor\\]** Ensure that the types of the setter and getter for an `@Observable` property are the\n  same. Otherwise the overridden setter method method will call `Objects.equal(...)` on values of incompatible\n  types which would always be \"not equal\". If a developer desires different types on the setter and getter they\n  can use a package access setter or getter that matches paired methods type and then expose another method that\n  is not annotated with `@Observable` to transform to the desired type.\n\n##### Changed\n* 💥 **\\[core\\]** Made the `ArezContext` constructors package access so that developers are forced to access\n  contexts through the `org.realityforge.arez.Arez` class.\n* 💥 **\\[core\\]** Move `ArezContext.areNamesEnabled()` to `Arez.areNamesEnabled()`.\n* 💥 **\\[core\\]** Move `ArezContext.areSpiesEnabled()` to `Arez.areSpiesEnabled()`.\n* Upgrade to BrainCheck 1.3.0 so assertion failures open the debugger.\n* 💥 **\\[core\\]** Remove `Arez.bindProvider()` and all associated support infrastructure. Explicitly binding\n  providers did not give enough flexibility to implement the desired features (i.e. `Zones` and thread-local\n  `ArezContext` instances) so remove it until a suitable alternative can be found.\n* **\\[core\\]** Remove `@Unsupported` annotation from `org.realityforge.arez.Arez` as it is now stable."}}
{"actor":{"display_login":"realityforge"}}