FAQs

Will the Tui framework upgrade to Vue 3?

As with all libraries, it is a good idea to upgrade them so that we receive the benefits of maintenance on those libraries. Specifically with Vue 3 there are some interesting breaking changes that were not considered at the start of the Vue 3 project. Now that Vue 3 has been released, adopters of this library will be working through these breaking changes to upgrade, finding and fixing bugs etc. There is also the much wider Vue ecosystem to consider; supporting libraries like Vuex, documentation, online community efforts, etc. There's a lot of work around the edges of the Vue 3 release that will catch issues and further improve on the 3.0 release.

The current state of browser support for Vue 3 has also changed from the initial goals of the framework upgrade, where version 2 currently supports IE11, version 3 may not. We will be keeping a close eye on this, as we still have firm requirements to continue supporting this browser.

When the dust settles from the initial release and releases from the wider Vue community, the Tui framework will at that point assess the upgrade and take that step, however it will be done in a measured way.

What else will be upgraded soon?

  • Webpack 5 (October 2020) has been released which will introduce significant improvements to bundling speed and options. We will likely adopt this when that work can be prioritised.
  • Apollo Client 3 has also been released (July 2020) which introduces several benefits that are worth adopting.

How will components be upgraded or deprecated?

The Tui framework will be versioned in lockstep with Totara itself, with both minor non-breaking and breaking changes being introduced via the usual changelog and upgrade mechanisms. Until further notice we will also continue to deprecate with advance warning.

Is there an example custom theme?

The Ventura theme serves as an example of a barebones theme, however it isn't doing much work and so doesn't serve as the best example. There is now a public repository for a sample Theme plugin, simply named example, and it demonstrates how to override and customise in both the /server/theme/example/ and /client/component/theme_example/ directories.

The public repository is available here, hosted on Totara's Bitbucket site.