3.5.0 Upgrade Support
-
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.
-