---
title: Arez 0.117 released
author: Arez Project
authorURL: https://github.com/arez
---

[Full Changelog](https://github.com/arez/arez/compare/v0.116...v0.117)

Changes in this release:

* **\[core\]** Add several `ArezContext.task(...)` methods that allow scheduling of arbitrary tasks to
  be executed the Arez scheduler. If the scheduler is currently executing tasks, the task will be added
  to the queue and executed in turn otherwise the scheduler will be activated. This functionality is primarily
  used to enable better integration between the Arez runtime and external libraries. The `arez.Task` class
  provides mechanisms for re-scheduling the task (via the `schedule()` method) and canceling a task (via
  `dispose()`). The tasks are also exposed in the spy subsystem via the `Spy.getTopLevelTasks()` method.
* **\[processor\]** Fix bug where methods annotated with `@Action` or `@Observe` could not contain `$`
  characters. Add tests to ensure other Arez annotated methods and/or fields support `$` in the name.
* **\[core\]** Add a `ArezContext.scheduleDispose(Disposable)` method that does not require that a name
  be supplied for the dispose action.
* **\[core\]** Changed the implementation of the `ArezContext.scheduleDispose(...)` methods so that if the
  scheduler is not active then it will be triggered. The previous implementation assumed that the scheduler
  was active.
* **\[core\]** Refactor the internal mechanisms for tracking task priority and initial run flags (i.e.
  `Flags.RUN_NOW` versus `Flags.RUN_LATER`) so that they are stored on the task and not on the observer.
* **\[core\]** Add support for passing the `Flags.DISPOSE_ON_COMPLETE` flag when creating tasks. The task
  will be disposed when it completes execution, regardless of wether the task completed successfully or with
  an error.

Update site to add news about the 0.117 release
Update site to add news about the 0.117 release
