NodeBB v3.0.0-alpha.1 — an alpha release

  • GNU/Linux Admin

    Hello all,

    Yesterday (and today, technically), we released v3.0.0-alpha.1, the first alpha release of NodeBB v3.0.0

    An alpha release is not meant to be production-ready, although at this point we feel confident enough to deploy it onto some sites.

    An alpha release probably means most of your plugins are not upgraded for v3, although most of the changes are stylistic and just means they may function fine, but don't look nice. We did try to upgrade some of the most used plugins, and maintained a list as well.

    An alpha release means there may be breaking changes that we did not document, although we tried our best to maintain a complete list. If you find any breaking changes not in this list, let us know here or by filing a new issue.

    A quick note about plugins

    Warning — plugins will not automatically upgrade, as v3.0.0-alpha.1 is technically a lesser version compared to v3.0.0, which is what upgraded plugins are advertised as compatible against. You will want to manually upgrade plugins to their latest versions via npm.

    However...

    There is one neat oddity about v3.0.0, is that there have been no schema changes since v1.19.3.. it means if you encounter issues with this alpha, you can go back to v2.x (or really, all the way back to v1.19.3, but why would you?)

    Most importantly, how do I get this?

    cd /path/to/your/nodebb
    git rev-parse HEAD  # save this value in case you need to roll back
    git fetch && git checkout bootstrap5
    git reset --hard v3.0.0-alpha.1
    ./nodebb upgrade -mi
    
    # now upgrade all your plugins to the latest version if available
    
    ./nodebb build
    

    When no flags are passed to ./nodebb upgrade, the flags -mipsb are used. -psb is omitted above because p (plugins) don't upgrade for pre-releases, s (schema) there are no schema updates, and b (build) I assume you want to build separately.

    To go back to v2.x, git checkout master and git reset --hard {hash} where {hash} is that value you saved earlier. Then run ./nodebb upgrade -mib


    Enjoy!

    launch

  • GNU/Linux Admin

    As always, big hand to @baris, who did the majority of the work on porting the Persona theme to bootstrap 5 😄


  • Cool! The entire technology stack has been updated as soon as possible. It remains to remove jqwery and it will be perfect!


  • @volanar said in NodeBB v3.0.0-alpha.1 — an alpha release:

    It remains to remove jqwery and it will be perfect!

    That'd be nice, although there are some things that are easier to write in jQuery parlance. That's not necessarily a reason to keep jQuery around, of course.

    Also I have a sneaking suspicion that even if we did remove it, someone would write a plugin that immediately re-adds it 😆


  • @julian Exactly. There are several forums, including mine, that depend on it.


  • @phenomlab You have my assurance we won't remove jQuery unless it is part of a major version bump.


    The changelog has been updated to specify that custom themes need to have an overrides.scss file in their scss/ folder, even if it contains no actual styles.

    Thanks @sweetp for spotting that one.

  • GNU/Linux Admin

    Added in a note about plugins not being automatically updated by ./nodebb upgrade. Admins will need to manually upgrade them during the alpha/beta/rc phases prior to v3.


  • @julian @baris where did v3.0.0-alpha.1 go ? I can't see it in git fetch -v ??

  • GNU/Linux Admin

    @phenomlab It's here.

    It's just under a bunch of v2.x releases because we continue to publish patch versions for bug fixes in the v2.x branch.


  • @julian thanks. What's the best way to install this ? I have an existing dev install I'd like to upgrade but it's not immediately obvious to me as is the normal upgrade path.

  • GNU/Linux Admin

    @phenomlab Thanks for the feedback! I'll update the original post with some instructions shortly 👍

    Alternatively, you could download the .zip or .tar.gz archive and replace your NodeBB directory with those files, though you'd have to take care to preserve the public/uploads folder.

    Edit: Done.


  • @julian I've completed the upgrade to alpha.1 but the persona theme still seems to have the legacy classes, such as pull-right ?

  • NodeBB Admin

    We have added some fallbacks for classes like pull-right and pull-left, so thinks don't break completely. We will replace those with float-start/end before release.


  • @baris Ok, thanks. Not me going mad then 🙂


  • @baris @julian seems 3.0.0-alpha.1 is broken and will no longer build?

    Error: Undefined mixin.
        ╷
    151 │         @include fa-icon-solid($fa-var-circle-chevron-up);
        │         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        ╵
      node_modules/nodebb-theme-persona/scss/topic.scss 151:3  @import
      node_modules/nodebb-theme-persona/scss/persona.scss 5:9  @import
      theme.scss 1:9                                           @import
      - 47:9                                                   root stylesheet
        at Object.wrapException (/home/sudonix.dev/nodebb/node_modules/sass/sass.dart.js:1247:17)
        at _EvaluateVisitor1.visitIncludeRule$1 (/home/sudonix.dev/nodebb/node_modules/sass/sass.dart.js:81140:17)
        at IncludeRule0.accept$1$1 (/home/sudonix.dev/nodebb/node_modules/sass/sass.dart.js:86125:22)
        at IncludeRule0.accept$1 (/home/sudonix.dev/nodebb/node_modules/sass/sass.dart.js:86128:19)
        at _EvaluateVisitor_visitStyleRule__closure1.call$0 (/home/sudonix.dev/nodebb/node_modules/sass/sass.dart.js:83183:16)
        at _EvaluateVisitor1._evaluate0$_withStyleRule$1$2 (/home/sudonix.dev/nodebb/node_modules/sass/sass.dart.js:82072:25)
        at _EvaluateVisitor1._evaluate0$_withStyleRule$2 (/home/sudonix.dev/nodebb/node_modules/sass/sass.dart.js:82077:19)
        at _EvaluateVisitor_visitStyleRule_closure20.call$0 (/home/sudonix.dev/nodebb/node_modules/sass/sass.dart.js:83175:10)
        at Environment0.scope$1$3$semiGlobal$when (/home/sudonix.dev/nodebb/node_modules/sass/sass.dart.js:80154:25)
        at Environment0.scope$1$2$when (/home/sudonix.dev/nodebb/node_modules/sass/sass.dart.js:80200:19)
    2022-10-19T17:06:29.919Z [4571/236519] - error: Error: Undefined mixin.
        ╷
    151 │         @include fa-icon-solid($fa-var-circle-chevron-up);
        │         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        ╵
      node_modules/nodebb-theme-persona/scss/topic.scss 151:3  @import
      node_modules/nodebb-theme-persona/scss/persona.scss 5:9  @import
      theme.scss 1:9                                           @import
      - 47:9                                                   root stylesheet
        at Object.wrapException (/home/sudonix.dev/nodebb/node_modules/sass/sass.dart.js:1247:17)
        at _EvaluateVisitor1.visitIncludeRule$1 (/home/sudonix.dev/nodebb/node_modules/sass/sass.dart.js:81140:17)
        at IncludeRule0.accept$1$1 (/home/sudonix.dev/nodebb/node_modules/sass/sass.dart.js:86125:22)
        at IncludeRule0.accept$1 (/home/sudonix.dev/nodebb/node_modules/sass/sass.dart.js:86128:19)
        at _EvaluateVisitor_visitStyleRule__closure1.call$0 (/home/sudonix.dev/nodebb/node_modules/sass/sass.dart.js:83183:16)
        at _EvaluateVisitor1._evaluate0$_withStyleRule$1$2 (/home/sudonix.dev/nodebb/node_modules/sass/sass.dart.js:82072:25)
        at _EvaluateVisitor1._evaluate0$_withStyleRule$2 (/home/sudonix.dev/nodebb/node_modules/sass/sass.dart.js:82077:19)
        at _EvaluateVisitor_visitStyleRule_closure20.call$0 (/home/sudonix.dev/nodebb/node_modules/sass/sass.dart.js:83175:10)
        at Environment0.scope$1$3$semiGlobal$when (/home/sudonix.dev/nodebb/node_modules/sass/sass.dart.js:80154:25)
        at Environment0.scope$1$2$when (/home/sudonix.dev/nodebb/node_modules/sass/sass.dart.js:80200:19)
    [email protected]:~/nodebb$ node:events:491
          throw er; // Unhandled 'error' event
          ^
    
    Error: write EPIPE
        at target._send (node:internal/child_process:865:20)
        at target.send (node:internal/child_process:738:19)
        at process.<anonymous> (/home/sudonix.dev/nodebb/src/meta/minifier.js:119:13)
        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    Emitted 'error' event on process instance at:
        at node:internal/child_process:869:39
        at process.processTicksAndRejections (node:internal/process/task_queues:77:11) {
      errno: -32,
      code: 'EPIPE',
      syscall: 'write'
    }
    

    And in the log

    Hit Ctrl-C to exit
    
    
        at renderMethod (/home/sudonix.dev/nodebb/src/middleware/render.js:75:15)
        at async ServerResponse.renderOverride [as render] (/home/sudonix.dev/nodebb/src/middleware/render.js:96:5)
    Error: Failed to lookup view "500" in views directory "/home/sudonix.dev/nodebb/build/public/templates"
        at Function.render (/home/sudonix.dev/nodebb/node_modules/express/lib/application.js:597:17)
        at ServerResponse.render (/home/sudonix.dev/nodebb/node_modules/express/lib/response.js:1039:7)
        at /home/sudonix.dev/nodebb/src/middleware/render.js:107:11
        at new Promise (<anonymous>)
        at renderContent (/home/sudonix.dev/nodebb/src/middleware/render.js:106:10)
        at renderMethod (/home/sudonix.dev/nodebb/src/middleware/render.js:75:15)
        at async ServerResponse.renderOverride [as render] (/home/sudonix.dev/nodebb/src/middleware/render.js:96:5)
    

    EDIT: Forgot that this was a replica install of prod, so needed to run ./nodebb upgrade first 😕


  • Another issue. Despite upgrading plugins from the CLI, I get the below

    2022-10-19T17:44:45.677Z [4571/251921] - info: Initializing NodeBB v3.0.0-alpha.1 https://sudonix.dev
    2022-10-19T17:44:47.351Z [4571/251921] - warn: [outdated] nodebb-plugin-browsing-users installed v3.0.0, package.json requires ^2.0.4
    
    2022-10-19T17:44:47.353Z [4571/251921] - warn: [outdated] nodebb-plugin-iframely installed v0.7.16, package.json requires ^1.0.0
    
    2022-10-19T17:44:47.354Z [4571/251921] - warn: [outdated] nodebb-plugin-recent-cards installed v3.1.1, package.json requires ^2.0.22
    
    2022-10-19T17:44:47.355Z [4571/251921] - warn: [outdated] nodebb-plugin-question-and-answer installed v0.12.26, package.json requires ^1.0.3
    
    2022-10-19T17:44:47.355Z [4571/251921] - warn: [outdated] nodebb-plugin-poll installed v3.0.0, package.json requires ^2.0.6
    
    2022-10-19T17:44:47.363Z [4571/251921] - error: One or more of NodeBB's dependent packages are out-of-date. Please run the following command to update them:
    2022-10-19T17:44:47.363Z [4571/251921] - error:     ./nodebb upgrade
    

    And ./nodebb upgrade does not resolve the issue.

    Edit - resolved by removing affected plugins and reinstalling after build.

  • GNU/Linux Admin

    The outdated warnings are emitted if the current NodeBB version does not satisfy the version reported by the plugin's nbbpm.compatibility, so yes, it's normal prior to v3 to have those warnings emitted.


  • @julian said in NodeBB v3.0.0-alpha.1 — an alpha release:

    so yes, it's normal prior to v3 to have those warnings emitted.

    Ok, but this was after the upgrade to alpha?

  • GNU/Linux Admin

    Technically, according to semver 3.0.0-alpha.1 is below 3.0.0

    😏


  • @baris said in NodeBB v3.0.0-alpha.1 — an alpha release:

    We have added some fallbacks for classes like pull-right and pull-left, so thinks don't break completely. We will replace those with float-start/end before release.

    Is it possible to get access to a release that has these changes ? Seems pointless remediating existing classes (my theme is all over the place currently) only for them to be removed in the final release.


Suggested Topics

  • 2
  • 5
  • 4
  • 6
  • 7
| | | |