3.5.0 Upgrade Support
-
hi @baris , first of all, thanks for this update and support...
I am copying the codes from this page:
https://docs.nodebb.org/configuring/upgrade/
but when I click the "copy to the clipboard", it brings
$
signs as well, is this normal?I had to upgrade to node v18 first, I took care of it, and then, I had this error on the log:
./nodebb upgrade Dependencies outdated or not yet installed. Installing them now... npm ERR! code ENOTEMPTY npm ERR! syscall rename npm ERR! path /home/fsuzer/nodebb/node_modules/sass npm ERR! dest /home/fsuzer/nodebb/node_modules/.sass-63eZKLrT npm ERR! errno -39 npm ERR! ENOTEMPTY: directory not empty, rename '/home/fsuzer/nodebb/node_modules/sass' -> '/home/fsuzer/nodebb/node_modules/.sass-63eZKLrT' npm ERR! A complete log of this run can be found in: /home/fsuzer/.npm/_logs/2023-10-26T18_13_25_712Z-debug-0.log Error installing dependencies! message: Command failed: npm install --omit=dev stdout: null stderr: null /home/fsuzer/nodebb/src/cli/package-install.js:138 throw e; ^ Error: Command failed: npm install --omit=dev at checkExecSyncError (node:child_process:890:11) at Object.execSync (node:child_process:962:15) at pkgInstall.installAll (/home/fsuzer/nodebb/src/cli/package-install.js:129:9) at Object.<anonymous> (/home/fsuzer/nodebb/src/cli/index.js:52:18) at Module._compile (node:internal/modules/cjs/loader:1256:14) at Module._extensions..js (node:internal/modules/cjs/loader:1310:10) at Module.load (node:internal/modules/cjs/loader:1119:32) at Module._load (node:internal/modules/cjs/loader:960:12) at Module.require (node:internal/modules/cjs/loader:1143:19) { status: 217, signal: null, output: [ null, null, null ], pid: 217811, stdout: null, stderr: null } Node.js v18.18.2
-
Hi @baris , I've just tried to upgrade from 2.8.x to 3.5.3 and while the upgrade process went smoothly attempting to run it I get this
Error: Failed to lookup view "footer" in views directory "/opt/nodebb/build/public/templates" at Function.render (/opt/nodebb/node_modules/express/lib/application.js:597:17) at Function.<anonymous> (/opt/nodebb/src/webserver.js:12:63) at node:internal/util:375:7 at new Promise (<anonymous>) at Function.renderAsync (node:internal/util:361:12) at renderFooter (/opt/nodebb/src/middleware/render.js:347:24) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async renderHeaderFooter (/opt/nodebb/src/middleware/render.js:380:11) at async Promise.all (index 2) at async renderMethod (/opt/nodebb/src/middleware/render.js:88:21)
It's also important mentioning that when executing
./nodebb build
I got$ ./nodebb build started 2023-12-15T14:36:08.208Z [4567/3501250] - info: [build] Building in series mode 2023-12-15T14:36:08.209Z [4567/3501250] - info: [build] plugin static dirs build started 2023-12-15T14:36:08.229Z [4567/3501250] - info: [build] plugin static dirs build completed in 0.02sec 2023-12-15T14:36:08.230Z [4567/3501250] - info: [build] requirejs modules build started 2023-12-15T14:36:08.469Z [4567/3501250] - info: [build] requirejs modules build completed in 0.239sec 2023-12-15T14:36:08.469Z [4567/3501250] - info: [build] client js bundle build started 2023-12-15T14:36:08.476Z [4567/3501250] - info: [build] client js bundle build completed in 0.007sec 2023-12-15T14:36:08.477Z [4567/3501250] - info: [build] admin js bundle build started 2023-12-15T14:36:08.482Z [4567/3501250] - info: [build] admin js bundle build completed in 0.006sec 2023-12-15T14:36:08.482Z [4567/3501250] - info: [build] client side styles build started Error: Error: Can't find stylesheet to import. ╷ 5 │ @import "./scss/overrides"; │ ^^^^^^^^^^^^^^^^^^ ╵ - 5:9 root stylesheet at handleCompileResponse (/opt/nodebb/node_modules/sass-embedded/dist/lib/src/compile.js:245:15) at compileRequestAsync (/opt/nodebb/node_modules/sass-embedded/dist/lib/src/compile.js:118:16) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async Object.buildCSS (/opt/nodebb/src/meta/minifier.js:163:22) at async executeAction (/opt/nodebb/src/meta/minifier.js:139:9) at async Minifier.css.bundle (/opt/nodebb/src/meta/minifier.js:202:9) at async CSS.buildBundle (/opt/nodebb/src/meta/css.js:341:23) at async client side styles (/opt/nodebb/src/meta/build.js:36:3) at async step (/opt/nodebb/src/meta/build.js:117:3) at async buildTargets (/opt/nodebb/src/meta/build.js:105:4) 2023-12-15T14:36:08.744Z [4567/3501250] - info: [build] client side styles build completed in 0.262sec 2023-12-15T14:36:08.744Z [4567/3501250] - info: [build] admin control panel styles build started 2023-12-15T14:36:19.067Z [4567/3501250] - info: [build] admin control panel styles build completed in 10.323sec 2023-12-15T14:36:19.068Z [4567/3501250] - info: [build] templates build started 2023-12-15T14:36:19.310Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/category/filter-dropdown-content.tpl 2023-12-15T14:36:19.310Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/category/filter-dropdown-content.tpl 2023-12-15T14:36:19.311Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/category/selector-dropdown-content.tpl 2023-12-15T14:36:19.311Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/category/selector-dropdown-content.tpl 2023-12-15T14:36:19.312Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/groups/filter-dropdown-content.tpl 2023-12-15T14:36:19.313Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/groups/filter-dropdown-content.tpl 2023-12-15T14:36:19.315Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/tags/filter-dropdown-content.tpl 2023-12-15T14:36:19.315Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/tags/filter-dropdown-content.tpl 2023-12-15T14:36:19.316Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/users/filter-dropdown-content.tpl 2023-12-15T14:36:19.316Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/users/filter-dropdown-content.tpl 2023-12-15T14:36:19.317Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/breadcrumbs.tpl 2023-12-15T14:36:19.317Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/breadcrumbs.tpl 2023-12-15T14:36:19.332Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/breadcrumbs.tpl 2023-12-15T14:36:19.333Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/breadcrumbs.tpl 2023-12-15T14:36:19.333Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/breadcrumbs.tpl 2023-12-15T14:36:19.333Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/breadcrumbs.tpl 2023-12-15T14:36:19.334Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/breadcrumbs.tpl 2023-12-15T14:36:19.334Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/breadcrumbs.tpl 2023-12-15T14:36:19.334Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/breadcrumbs.tpl 2023-12-15T14:36:19.335Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/breadcrumbs.tpl 2023-12-15T14:36:19.335Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/breadcrumbs.tpl 2023-12-15T14:36:19.335Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/breadcrumbs.tpl 2023-12-15T14:36:19.336Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/breadcrumbs.tpl 2023-12-15T14:36:19.336Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/breadcrumbs.tpl 2023-12-15T14:36:19.336Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/breadcrumbs.tpl 2023-12-15T14:36:19.336Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/breadcrumbs.tpl 2023-12-15T14:36:19.337Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/breadcrumbs.tpl 2023-12-15T14:36:19.337Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/breadcrumbs.tpl 2023-12-15T14:36:19.338Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/chats/options.tpl 2023-12-15T14:36:19.338Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/breadcrumbs.tpl 2023-12-15T14:36:19.339Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/breadcrumbs.tpl 2023-12-15T14:36:19.340Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/breadcrumbs.tpl 2023-12-15T14:36:19.340Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/breadcrumbs.tpl 2023-12-15T14:36:19.340Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/breadcrumbs.tpl 2023-12-15T14:36:19.341Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/breadcrumbs.tpl 2023-12-15T14:36:19.341Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/category-selector.tpl 2023-12-15T14:36:19.342Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/category-selector.tpl 2023-12-15T14:36:19.343Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/topic/browsing-users.tpl 2023-12-15T14:36:19.343Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/topic/stats.tpl 2023-12-15T14:36:19.343Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/topic/reply-button.tpl 2023-12-15T14:36:19.344Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/topic/watch.tpl 2023-12-15T14:36:19.344Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/topic/sort.tpl 2023-12-15T14:36:19.344Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/thread_tools.tpl 2023-12-15T14:36:19.345Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/topic/reactions.tpl 2023-12-15T14:36:19.346Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/breadcrumbs.tpl 2023-12-15T14:36:19.346Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/category-filter-right.tpl 2023-12-15T14:36:19.346Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/breadcrumbs.tpl 2023-12-15T14:36:19.346Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/category-filter-right.tpl 2023-12-15T14:36:19.347Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/breadcrumbs.tpl 2023-12-15T14:36:19.347Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/breadcrumbs.tpl 2023-12-15T14:36:19.348Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/breadcrumbs.tpl 2023-12-15T14:36:19.348Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/breadcrumbs.tpl 2023-12-15T14:36:19.348Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/breadcrumbs.tpl 2023-12-15T14:36:19.355Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/breadcrumbs.tpl 2023-12-15T14:36:19.356Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/category-selector-right.tpl 2023-12-15T14:36:19.356Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/category-filter-right.tpl 2023-12-15T14:36:19.356Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/breadcrumbs.tpl 2023-12-15T14:36:19.356Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/users_list_menu.tpl 2023-12-15T14:36:19.366Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/breadcrumbs.tpl 2023-12-15T14:36:19.394Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/category/selector-dropdown-content.tpl 2023-12-15T14:36:19.395Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/category/selector-dropdown-content.tpl 2023-12-15T14:36:19.398Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/category/filter-dropdown-content.tpl 2023-12-15T14:36:19.398Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/paginator.tpl 2023-12-15T14:36:19.399Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/category/selector-dropdown-content.tpl 2023-12-15T14:36:19.422Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/breadcrumbs.tpl 2023-12-15T14:36:19.423Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/paginator.tpl 2023-12-15T14:36:19.424Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/paginator.tpl 2023-12-15T14:36:19.425Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/breadcrumbs.tpl 2023-12-15T14:36:19.425Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/breadcrumbs.tpl 2023-12-15T14:36:19.425Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/paginator.tpl 2023-12-15T14:36:19.425Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/category-selector.tpl 2023-12-15T14:36:19.426Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/chats/message-window.tpl 2023-12-15T14:36:19.426Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/category-selector.tpl 2023-12-15T14:36:19.427Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/paginator.tpl 2023-12-15T14:36:19.430Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/paginator.tpl 2023-12-15T14:36:19.453Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/breadcrumbs.tpl 2023-12-15T14:36:19.454Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/breadcrumbs.tpl 2023-12-15T14:36:19.735Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/category/selector-dropdown-content.tpl 2023-12-15T14:36:19.736Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/category/selector-dropdown-content.tpl 2023-12-15T14:36:19.743Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/paginator.tpl 2023-12-15T14:36:19.744Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/paginator.tpl 2023-12-15T14:36:19.769Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/paginator.tpl 2023-12-15T14:36:19.774Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/categories/item.tpl 2023-12-15T14:36:19.774Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/paginator.tpl 2023-12-15T14:36:19.775Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/paginator.tpl 2023-12-15T14:36:19.776Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/paginator.tpl 2023-12-15T14:36:19.800Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/paginator.tpl 2023-12-15T14:36:19.980Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/paginator.tpl 2023-12-15T14:36:19.981Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/paginator.tpl 2023-12-15T14:36:19.984Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/topic/reactions.tpl 2023-12-15T14:36:20.119Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/paginator.tpl 2023-12-15T14:36:20.120Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/paginator.tpl 2023-12-15T14:36:20.121Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/paginator.tpl 2023-12-15T14:36:20.124Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/paginator.tpl 2023-12-15T14:36:20.125Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/paginator.tpl 2023-12-15T14:36:20.233Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/paginator.tpl 2023-12-15T14:36:20.234Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/topic/browsing-users.tpl 2023-12-15T14:36:20.234Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/topic/stats.tpl 2023-12-15T14:36:20.234Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/topic/reply-button.tpl 2023-12-15T14:36:20.234Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/topic/watch.tpl 2023-12-15T14:36:20.234Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/topic/sort.tpl 2023-12-15T14:36:20.235Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/thread_tools.tpl 2023-12-15T14:36:20.235Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/paginator.tpl 2023-12-15T14:36:20.248Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/category-selector.tpl 2023-12-15T14:36:20.248Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/paginator.tpl 2023-12-15T14:36:20.249Z [4567/3501250] - warn: [meta/templates] Partial not loaded: partials/paginator.tpl 2023-12-15T14:36:20.276Z [4567/3501250] - info: [build] templates build completed in 1.207sec 2023-12-15T14:36:20.276Z [4567/3501250] - info: [build] languages build started 2023-12-15T14:36:24.650Z [4567/3501250] - info: [build] languages build completed in 4.374sec 2023-12-15T14:36:24.651Z [4567/3501250] - info: [build] Bundling with Webpack. 2023-12-15T14:36:49.975Z [4567/3501250] - info: [build] Bundling took 22377 ms 2023-12-15T14:36:49.992Z [4567/3501250] - info: [build] Asset compilation successful. Completed in 41.772sec.
Where to go from here?
Many thanks, Riccardo -
@KnickKnack that error means you're running a custom theme, yes? Add an empty file called
overrides.scss
into your scss folder. -
Thanks @julian! Actually, the theme the former version was running was the Slick theme which I think came with the standard installation. Am I wrong?
-
OK, got it. How to make this happen with nodeBB not starting?
Second question: do you plan to port Slick theme to 3.x? -
@baris: resetting to Harmony theme did the trick but this completely screws UX and old CSS customization are basically useless.
Back to my second question: how realistic is to have Slick theme ported to 3.x?
If not realistic, assuming I could consider porting it, where to start from? -
Checkout our migration guide https://nodebb.org/blog/nodebb-specific-bootstrap-3-to-5-migration-guide/.
Essentially all templates needs to be updated for boostrap 5 and less converted to sass. The migration guide goes through all the changes needed.
-