Skip to content

Releases: odoo/owl

v1.0.0

09 Jan 13:49
Compare
Choose a tag to compare

The 1.0.0 release!

Owl is now quite stable. Here is a changelog for this last batch of commits:

  • fix style tag to properly generate combined css rules
  • qweb: add support for in operator in qweb expressions
  • fix issue with component and multiple t-call
  • fix: many subtle scoping issues in templates
  • fix: debug tool do not crash on non JSON stringifiable props
  • style tag: accept the & symbol
  • hooks: add useExternalListener hook
  • owl: improve npm packaging

v1.0.0-beta5

20 Dec 10:28
Compare
Choose a tag to compare

This release has 2 major highlights: it is now available on npm, and it has a
new feature: inline css tag.

  • prepare owl for publishing on npm
  • store: prevent crash when selector returns null
  • component: fix crash when given empty props
  • tag: add inline css tag

v1.0.0-beta4

17 Dec 14:30
Compare
Choose a tag to compare

Two important fixes:

  • qweb: t-call properly transfer key to sub components
  • qweb/component: handle nested t-foreach and components

v1.0.0-beta3

16 Dec 09:03
Compare
Choose a tag to compare
  • fix: qweb renderToString now properly escape t-esc code
  • fix: issue with t-if, t-call and a body
  • qweb: simplify generated template code
  • qweb: accept assignations in qweb expressions (a = b) for inline handlers
  • fix: qweb properly bind handlers to components, and not sub objects
  • fix: qweb properly display false for the false value
  • fix: qweb do not add commas when displaying t-set with a body
  • fix: can instantiate components inside t-call templates
  • fix: store: result of selector function work with map
  • qweb: accept spread operator in expressions (...)

v1.0.0-beta2

11 Dec 09:45
Compare
Choose a tag to compare
  • qweb fix: properly handle class attribute
  • portal fix: manually unmounting it works
  • doc: add some information on variables and t-call
  • slots/vars/scoping/t-esc/t-raw: many small fixes
  • component: add position option to mount method
  • qweb: add support for arrow functions in expressions
  • qweb: add template name in generated compiled code
  • components: slots can define default content

v1.0.0-beta1

03 Dec 07:57
Compare
Choose a tag to compare

Owl is getting more stablerer...

  • doc: improve component documentation
  • tooling: add debug script
  • misc: add support for Portal component
  • component: fix tricky concurrency issue

v1.0.0-alpha5

29 Nov 15:18
Compare
Choose a tag to compare

Even more stable...

  • fix: component now accept document fragment as mount target
  • imp: component can define custom props validator
  • fix: components: handle multiple slots
  • fix: t-slot: correct parented relationship with nested slots
  • fix: slots: now use correct scope and vars at update
  • fix: component: reorganize fiber update algorithm (this fixes a few concurrency issues)
  • fix: qweb: scope t-key directive to node and subnodes
  • qweb: use global id generator
  • fix: qweb: cascading t-call and t-raw="0" should behave properly
  • store: allow useStore to return primitive types
  • store: prevent changes to store state in useStore return value
  • owl: add prettier to devDependencies
  • playground: fix wms example
  • playground: make it work on Edge

v1.0.0-alpha4

22 Nov 12:11
Compare
Choose a tag to compare

It's getting more stable!

  • component: fix issue with props not being validated as expected
  • component: many small concurrency fixes
  • observer: notify subscribers immediately instead of waiting for next tick
  • qweb fix: allow mixing body and expressions variables
  • component: display better error message if render is empty
  • component: fix various issues with mounting/unmounting components
  • context: notify changes even if owner is not mounted
  • qweb: add support for typeof operator
  • component: propagate errors to caller
  • components/qweb: fix scoping issue with t-model and t-foreach
  • component: various fixes with destroying components
  • component: throw error if t-component is not used on a node t.

v1.0.0-alpha3

13 Nov 14:45
Compare
Choose a tag to compare
  • component: throw error if mounted on invalid target
  • store: throw error if no store found
  • doc: add a tutorial
  • hooks: set el on refs (from useRef) all the time, even if target is a component
  • fix: component concurrent rendering issue
  • fix: properly validates optional types in object props
  • component: remove renderBeforeRemount option for mount (it always renders)
  • component: expose scheduler instance

v1.0.0-alpha2

01 Nov 08:14
Compare
Choose a tag to compare

1.0.0-alpha2

The alpha1 release was a good opportunity to discuss the external component
API, and it was discovered that for various reasons, it was not optimal, and
could be improved.

Root components and environment

Root components now takes their environment from their constructor:

// Before:
owl.config.env = ...;
const app = new App();

// now
App.env = ...;
const app = new App();

Root components and props

We removed the assignation to props object from root components, since it
was not a "real" props object in the sense that it was not managed by Owl. But
it is apparent that it makes it harder to test components in the most obvious
way:

// this did not work in 1.0.0-alpha, but works now:
const myComponent = new MyComponent(null, testProps);
await myComponent.mount(fixture);
// rest of test

So, while it made sense to do that, the ease of testing components is also
very important, and it was decided to go back to the previous behaviour.