1.16.0 Breaking Changes
-
-
utils.slugify
will be removed in 1.16.0. Use theslugify
module insteadClient side
require(['slugify'], function (slugify) { console.log(slugify('string to slugify')); });
Server side
const slugify = require('slugify'); console.log(slugify('string to slugify'));
Server side in a pluign
const slugify = require.main.require('./src/slugify'); console.log(slugify('string to slugify'));
remove utils.slugify · Issue #8808 · NodeBB/NodeBB
remove utils.slugify and xregexp from nodebb.min.js https://github.com/NodeBB/NodeBB/blob/master/public/src/utils.js#L332
GitHub (github.com)
-
Socket.IO dependency has been upgraded to 3.x.
If you are using clustering redis is now a requirement. Simply install and configure redis in your config.json block. If you were already using redis as your datastore or for sessions no changes are necessary.
The other change is for the
socket.io:origins
property in config.json. If you were using this property to allow access to websockets from multiple domains you will have to convert it to an array.Before 1.16.0
{ ... "socket.io": { "origins": "https://community.nodebb.org:*, https://nodebb.org:*" } }
After 1.16.0
{ ... "socket.io": { "origins": ["https://community.nodebb.org:*", "https://nodebb.org:*"] } }
For a list of all available options see here
No changes are necessary if you weren't using this property.
-
The topic thumbnail functionality has been refactored heavily and now supports multiple topic thumbnails.
Any plugins directly altering
composer.tpl
should rebase/redo their changes against the newestcomposer.tpl
fromnodebb-plugin-composer-default
API calls to load category or topic now show
thumbs
array in addition to the oldthumb
property.thumb
is now deprecated, and will be removed in v1.17.0 -
We have received reports that after upgrading to v1.16.0, the amount of websocket connections is very high relative to pre-upgrade
This is due to older socket.io clients (running on version 2) attempting to connect to the new socket.io 3. These protocols are incompatible, and so the connection is rejected, and NodeBB was configured to try indefinitely.
This is ok. Over time, as your users close their browser windows (or refresh), they will automatically start using the latest version, and socket usage will return to normal levels.
If you are worried about the excessive traffic, you can configure a nginx condition to drop requests with the query string
?EIO=3
. Please see the issue linked above for more information. -