Upon launching v0.7.1 (yesterday), we also changed the default activated theme to Persona. This doesn't mark that significant of a change, as the Persona theme itself has been available (and bundled with v0.7.0, iirc) for some time.
Up until now, NodeBB has naïvely assumed that if a template was required but not defined in the theme, to fall back to the template found in the Vanilla theme. This has worked well so far, and translates well to themes using vanilla as a base (like Lavender, and variants thereof).
With Persona now the default theme, we also need to transition this assumption (which we internally call the base_templates_path
) to Persona as well. However, if we do make this change, it breaks any theme that attempts to move to this new version of NodeBB.
Therefore, with it being a breaking change, I'll be committing it to a new branch that tracks the next NodeBB version, v0.8.x
.
Is v0.8.x
the next version of NodeBB?
Possibly, but I want to accelerate our timings so that we don't have a several-month gap between releases. The master
branch is still the main development branch, and the majority of issue fixes will go there. v0.8.x
will contain any breaking changes to NodeBB, and will periodically merge changes and fixes from master
so that it is kept up to date.
The idea is to launch v0.7.2 and v0.7.3 on a weekly or biweekly basis (that is, once every 2 weeks), containing bugfixes and various other non-breaking-change improvements.
There is no timeline for the impending release of v0.8.0, so this exercise is done purely to keep this (and other future) breaking changes out of master
.
How will this affect my Lavender-variant/Vanilla-based theme?
If you maintain a lavender variant or vanilla based theme, and you want to maintain compatibility when v0.8.x is eventually released, add a new hook listener to your plugin.json
for the hook static:app.preload
, and have it explicitly set the base_templates_path
runtime variable to point to vanilla's templates directory.
You can examine how Lavender does it here.
This change is backwards compatible with future v0.7.x releases, so it is safe to add it now in preparation for v0.8.x.
Just add a new value to your config.json
with the key baseTheme
, and set it to nodebb-theme-vanilla
.
Who needs to use the v0.8.x
branch?
Right now, the only installs that will require the v0.8.x branch are those that want specific breaking changes that are introduced in this branch.
Specific to themes, any theme designers who want to create a Persona-based theme will require the v0.8.x branch, because then the base_templates_path
is set to Persona, and not Vanilla.