Skip to content

Releases: odoo/owl

v0.22.0

01 Oct 19:14
Compare
Choose a tag to compare

0.22.0

The hooks release.

This release contains a few breaking changes necessary to improve the API. It is
actually very nice to work with hooks in Owl.

The main breaking change is that now components do not have a special state
key, which is observed. If a component needs reactive state, it has to explicitely
import the useState hook:

class C extends Component {
    state = useState({some: 'value'});
    ...
}

Changes

  • component: reorganize the rendering system with the notion of fiber
  • component: support fully dynamic t-component directives
  • component tags: allow injecting values in xml tag string
  • qweb fix: properly support svg
  • components: add hooks mechanism (breaking change)
  • hooks: implement useRef hook (breaking change)

v0.21.0

12 Sep 12:28
Compare
Choose a tag to compare

v0.21.0

Not many changes, but they will significantly improve the developer experience. The main idea is that we are getting closer to having nice single file components.

Changes

  • fix: qweb crash in some cases involving t-call, multiple sub nodes and one text node
  • component: the components key is now static (breaking change)
  • component: support dynamic root nodes (either subcomponent or dom nodes) and switching between them
  • component: add support for dynamic props with t-props
  • router: replace the t-routecomponent directive with RouterComponent (breaking change)
  • component: make the template key static (breaking change)
  • qweb: add QWeb.registerTemplate method
  • qweb: rename register method to registerComponent (breaking change)
  • tags: introduce the xml tag

v0.20.0

05 Sep 12:47
Compare
Choose a tag to compare

v0.20.0

Toward stability...

This release does not really introduce breaking changes, nor add new features. It however fixes a lot of small and not so small issues.

Changes

  • router: better support for hash mode
  • router: update app if parameterized route changes
  • router: properly react on hashchanges
  • component: solve tricky concurrency issue (with various concurrent renderings)
  • component: fix many issues with internal component reconciliation algorithm
  • router: properly handle popstate event
  • component: make t-model work with select tags (for initial non empty rendering)
  • component: make t-model work with sub state keys
  • qweb: allow recursive templates t-calls

v0.19.0

28 Aug 10:01
Compare
Choose a tag to compare

v0.19.0

This release has pretty big changes in the way the store and connected components
works.

Changes

  • QWeb: support XML documents (already parsed) as argument to the addTemplates method (in
    addition to strings)
  • ConnectedComponent: separate props into props and storeProps
  • ConnectedComponent: add dispatch method
  • Component: simplify render method signature (and rendering process)
  • Store: merge actions and mutations
  • router: add documentation
  • playground: add window management system example
  • Component: improve mount/remount behaviour, add renderBeforeRemount argument
    to mount

v0.18.0

22 Aug 13:05
Compare
Choose a tag to compare

v0.18.0

Big release, with a lot of internal refactorings, and the first release of a Router.

Changes

  • owl: move exported value around: Observer and EventBus are now in owl.core, Store and ConnectedComponent are now in owl.store
  • qweb fix: allow t-if with t-call
  • component fix: properly handle defaultProps in connected components
  • qweb: add forceUpdate method
  • component fix: solve tricky concurrency issue
  • observer: complete rewrite using Proxy
  • observer: remove set and delete methods
  • component imp: allow multiple calls to mount and unmount
  • owl router: add a first full implementation of a client router

v0.17.0

13 Jul 15:11
Compare
Choose a tag to compare

v0.17.0

  • qweb: better error messages for bad xml templates
  • qweb: add renderToString method
  • component: various prop validation improvements
  • component: lots of fixes with bad slots interactions
  • component: add catchError hook
  • component: allow top level widget definition
  • store: remove connect function
  • store: add ConnectedComponent class
  • playground: improve examples
  • playground: improve error display

v0.16.0

28 Jun 09:39
Compare
Choose a tag to compare

v0.16.0

For this release, the most visible improvement is definitely the possibility of defining components in a template with their name (instead of the t-widget directive):

<div>
  <SomeComponent />
</div>

Component

  • allow component name in template (instead/in addition of t-widget)
  • rename t-widget into t-component
  • fix: scoping issue with t-on, t-component and t-foreach
  • allow multiple roots in slots
  • fix: ignore slot if no definition is given
  • ref: prefix all private methods with __
  • fix: default slot now works with text nodes
  • fix: many issues with t-component, and inner/outer class, t-att-class

QWeb

  • make QWeb an event bus
  • add option to allow duplicate definition of templates
  • fix: small issues with t-debug directive
  • fix: add missing not equals operator
  • fix: properly handle extra spaces in class attributes

Store

  • imp: connected component reuse base component name
  • fix: issues with connected parent/child components
  • imp: allow extra arguments in dispatch and commit

Tools

  • fix: playground: update sample code to use new t-foreach syntax
  • fix: various issues with tab handling
  • imp: playground now logs intercepted errors in console

v0.15.0

17 Jun 14:04
Compare
Choose a tag to compare

v0.15.0

Component

  • imp: add t-asyncroot directive
  • imp: add t-model directive
  • imp: crashes if no template can be found
  • imp: add support for default slot

Tools

  • playground fix: do not remove empty tabs
  • benchmarks: make react app look like the others
  • playground: improve code samples

Store

  • imp: memoize getters

v0.14.0

13 Jun 10:19
Compare
Choose a tag to compare

v0.14.0

Component

  • add t-slot directive

QWeb

  • fix: keep ref of unmounted (kept alive) widget
  • remove support for x_parity in t-foreach
  • remove support for #{.} string interpolation
  • remove support for integer t-value in t-foreach
  • implement a new expression evaluator (much more powerful)
  • fix: better support for templates with only a root string
  • fix issue with duplicated nodes in transitions

Observer

  • add set and delete static methods

Store

  • allow connecting to multiple stores
  • improve connect API

Utils

  • fix: whenReady now works for all possible document states
  • whenReady now returns a Promise

Tools

  • rename extras into tools
  • rework benchmark application

v0.13.0

05 Jun 08:57
Compare
Choose a tag to compare

v0.13.0

QWeb

  • fix: issue with t-attf- and string interpolation
  • log invalid code generated by template
  • reorganize the documentation

Component

  • remove t-props, define props as attributes of t-widget
  • revamp event management: use DOM events in component
  • add better docstring
  • fix: reuse existing widget if possible, in some cases

Observer

  • fix: allow reobserving values twice

Extras

  • update server to python3, make it work on windows
  • improve extras application landing page
  • add url in log when starting server
  • playground: properly resize editors when resizing panels