Releases: Lombiq/NodeJs-Extensions
v3.0.0
Note that this release will be the last one of the project. It will keep working for the foreseeable future, but won't receive any updates besides security fixes. On why we moved away from Node.js-using builds and how, see our "Step away from that Node.js" blog post. Scroll down for our recommended migration guide.
This release brings a host of dependency updates to keep up with the ecosystem, which unfortunately also cause breaking changes.
Breaking changes
Recommended Node.js version is now 24
Node.js v24 will enter active long-term support (LTS) phase within days, after which it will be supported until about April 2028. While you can use Node.js Extensions with earlier version (and notably v22, perhaps v20 should just work), we now recommend you use v24.
Breaking changes in linters and SASS
In the #144 pull request we updated all the NPM dependencies. This means, among others, that ESLint was updated from 8.47.0 to 9.37.0, PostCSS from 8.4.31 to 8.5.6, Prettier from 3.0.3 to 3.6.2, and SASS from 1.69.5 to 1.93.2.
While we tried to keep impact to projects consuming Node.js Extensions to a minimum as far as NE itself goes, since many of these are breaking releases, you need to expect at least a lot of new linter violations and SASS deprecations. See e.g. Lombiq/Orchard-Base-Theme#152 for the kinds of changes you may need to do in your own projects.
ESLint uses a new config file format. While we added support for this in a backward-compatible way, so your current config files will continue to work, note that a new, eslint.config.cjs file will be automatically created. You can remove this if not needed, or if you use just the default .eslintrc.js file (the old format) then remove the latter.
Upgrade PNPM from 8.15.9 to 9.15.9
Node.js Extensions used the old 8.x version of PNPM, so now we upgraded to 9.x. The only impact consuming projects may feel is the format of pnpm-lock.yaml files changing and packageManager being updated in their package.json files. This is automatic, however, and you shouldn't notice anything part from these files getting updated the first time you install Node.js Extensions v3.
As you may know, the current version of PNPM is 10.x. We choose not to upgrade to it, since it contains a lot of breaking changes that also severely impact all consuming projects. We don't see us upgrading to 10.x in the foreseeable future.
Migrating away from Node.js Extensions and Node builds
With modern browsers, CSS, and JS, for a lot of apps you don't actually need a client-side asset build pipeline at all. In our experience, this is the case at least. Here's how you can move your project to a no-build approach, without Node.js Extensions, or using Node.js at all:
- Migrate all SCSS to CSS. Be sure to fully utilize what modern CSS is capable of, which is most of what SCSS covers minus mixins. Put CSS files into the wwwroot folders directly.
- Move all JS files to the wwwroot folders. No need to copy them from an Assets folder.
- Use Microsoft Library Manager instead of NPM for third-party packages and remove any remaining Node references. You can see an example of us doing that here: https://github.com/Lombiq/Orchard-Chart.js/pull/103/files.
- Re-add CSS, JS, and MD linting with our Asset Linting GitHub Actions workflow. This uses the exact same default configuration as NE, and you also have the option to override those, similarly to NE.
Enjoy your builds now being a lot faster, and your development story being much simpler!
What's Changed
- OSOE-1115: Update Microsoft.NET.Test.Sdk to 17.14.0 by @Piedone in #132
- OSOE-1120: Supporting EOL commas in every linter workflow configuration for easier config formatting by @Piedone in #133
- OSOE-1123: Updating Microsoft.NET.Test.Sdk to 17.14.1 by @Piedone in #134
- OSOE-1126: Updating xUnit packages by @Piedone in #135
- ORCH-299: Adding demo video about Linting with GitHub Actions by @domonkosgabor in #138
- OSOE-1144: Updating xUnit xunit.v3 to v3.0.0 and xunit.runner.visualstudio to v3.1.3 by @Piedone in #139
- NEST-596: Exclude third party folders from markdown lint by @wAsnk in #137
- OSOE-1147: Updating Microsoft.Build packages by @Piedone in #140
- OSOE-1153: Update dependencies by @Piedone in #141
- OSOE-1164: Updating xUnit to latest by @Piedone in #142
- OSOE-1166: Update dependency Microsoft.NET.Test.Sdk to v18 by @Piedone in #143
- OSOE-954: Update NPM dependencies to latest in Lombiq.NodeJs.Extensions by @sarahelsaig in #144
- Update All packages by @renovate[bot] in #114
- Update All packages (major) by @renovate[bot] in #115
- OSOE-954: Update All packages by @sarahelsaig in #147
- Update All packages by @renovate[bot] in #145
- Update All packages (major) by @renovate[bot] in #146
- Update dependency eslint-plugin-n to v17 by @renovate[bot] in #148
- OSOE-1169: Update dependencies by @Piedone in #153
- Update dependency Microsoft.Build.Tasks.Core to 17.14.28 [SECURITY] by @renovate[bot] in #150
- Update dependency Microsoft.Build.Framework to 17.14.28 by @renovate[bot] in #152
- Update dependency Microsoft.Build.Utilities.Core to 17.14.28 [SECURITY] by @renovate[bot] in #151
- Update dependency eslint to v9.38.0 by @renovate[bot] in #156
- OSOE-1010: Upgrade PNPM to 9.15.9, improve docs by @Piedone in #155
- OSOE-1010: Fix lint workflow by @Piedone in #157
New Contributors
- @domonkosgabor made their first contribution in #138
Full Changelog: v2.2.0...v3.0.0
v2.2.0
What's Changed
- OCC-314: Lint script and style via workflow by @sarahelsaig in #127
- OSOE-1110: Updating dependencies by @Piedone in #128
- Update dependency Microsoft.Build.Tasks.Core to 17.13.26 [SECURITY] by @renovate in #130
- OSOE-1107: Update Lombiq.Npm.Targets NuGet package by @sarahelsaig in #129
Full Changelog: v2.1.3...v2.2.0
v2.1.3
What's Changed
- OSOE-935: Migrating test project to xUnit v3 by @Piedone in #112
- OSOE-1028: Updating testing libraries by @Piedone in #122
- OSOE-1048: Updating dependencies to latest by @Piedone in #123
- NEST-557: Fix
chalkversion mismatch between package.json and lock files by @milosh-96 in #124 - OSOE-1057: Updating sample to reference the latest NuGet by @Piedone in #125
- OSOE-1089: Update xunit.v3 to 2.0.1 by @Piedone in #126
New Contributors
- @milosh-96 made their first contribution in #124
Full Changelog: v2.1.1...v2.1.3
v2.1.2
What's Changed
- OSOE-852: Change NuGet metadata to use license expression by @AydinE in #102
- Bump braces from 3.0.2 to 3.0.3 in /Lombiq.NodeJs.Extensions by @dependabot in #103
- OSOE-855: Allow textlint disable comments by @Piedone in #101
- NEST-501: Updating xunit.runner.visualstudio to 2.8.2 by @Piedone in #105
- OSOE-900: Bump micromatch from 4.0.5 to 4.0.8 in /Lombiq.NodeJs.Extensions by @dependabot in #106
- LMBQ-395: Adding Orchard Dojo case study link by @DemeSzabolcs in #107
- Bump cross-spawn from 6.0.5 to 6.0.6 in /Lombiq.NodeJs.Extensions by @dependabot in #110
- OSOE-917: Update vulnerable NuGet packages by @Piedone in #109
- Bump nanoid from 3.3.7 to 3.3.8 in /Lombiq.NodeJs.Extensions by @dependabot in #111
- Configure Renovate by @renovate in #113
- OSOE-960: Spelling by @Piedone in #117
- OSOE-980: Running corepack PNPM enable with retries, to avoid random PNPM errors by @Piedone in #119
- OSOE-1001: Fixing corepack install by updating PNPM to 8.15.9 by @Piedone in #121
New Contributors
Full Changelog: v2.1.1...v2.1.2
v2.1.1
What's Changed
- OSOE-838: Updating xUnit to latest by @Piedone in #98
- OSOE-744: Upgrade markdownlint to v.0.34.0 by @BenedekFarkas in #99
Full Changelog: v2.1.0...v2.1.1
v2.1.0
What's Changed
- OSOE-338: Javasript compilation improvements by @sarahelsaig in #95
Full Changelog: v2.0.0...v2.1.0
v2.0.0
Breaking Changes
Stylelint was upgraded to 15, which deprecates 76 linting rules, see the issue #70 and the pull request #85. This required us to reimplement those rules with Prettier. If you want to keep using all SCSS linting rules, then follow the new Prettier setup: https://github.com/Lombiq/NodeJs-Extensions/blob/dev/Lombiq.NodeJs.Extensions/Docs/Styles.md#stylelint-and-prettier-rules.
What's Changed
- OSOE-683: Update all NuGet dependencies by @Psichorex in #73
- NEST-409: Show Orchard case study by @barthamark in #76
- OSOE-179: Updating eslint and eslint-plugin-import in the sample too by @Piedone in #75
- OSOE-430: Support a single NE instance per solution on Linux, too, in Lombiq.NodeJs.Extensions by @sarahelsaig in #74
- revert-74: Revert "OSOE-430: Support a single NE instance per solution on Linux, too, in Lombiq.NodeJs.Extensions" by @dministro in #77
- OSOE-677: Upgrade Sass by @wAsnk in #79
- LMBQ-248: Extending Readme with Git-hg Mirror migration by @MZole in #83
- OSOE-678: Adding Prettier to auto-handle style rules by @wAsnk in #85
- OSOE-721: Add the 'no-constant-binary-expression' rule to .eslintrc.lombiq-base.js by @wAsnk in #86
- OSOE-678: Adding missing project config file by @wAsnk in #88
- Bump @babel/traverse from 7.22.11 to 7.23.2 in /Lombiq.NodeJs.Extensions by @dependabot in #82
- Bump postcss from 8.4.28 to 8.4.31 in /Lombiq.NodeJs.Extensions by @dependabot in #81
- OSOE-51: Node dependency updates to address security issues by @Psichorex in #89
- LMBQ-256: Readme update with Hastlayer by @TheHydes in #90
- Update NVM SetupWindows.md longpaths reboot by @MarGraz in #94
- Update NVM SetupWindows.md by @MarGraz in #93
- Update NVM SetupWindows.md by @MarGraz in #92
- OSOE-430: Support a single NE instance per solution on Linux, too, in Lombiq.NodeJs.Extensions (reapply #74) by @sarahelsaig in #78
- OSOE-751: Upgrade to Orchard Core 1.8 by @Psichorex in #91
New Contributors
- @barthamark made their first contribution in #76
- @MZole made their first contribution in #83
- @dependabot made their first contribution in #82
- @TheHydes made their first contribution in #90
- @MarGraz made their first contribution in #94
Full Changelog: v1.3.2...v2.0.0
v1.3.2
What's Changed
- OSOE-683: Update all NuGet dependencies by @Psichorex in #72
Full Changelog: v1.3.1...v1.3.2
v1.3.1
What's Changed
- OSOE-671: Update NPM dependencies to latest, and fix them in Lombiq.NodeJs.Extensions by @wAsnk in #68
- OSOE-683: Update all NuGet dependencies by @Psichorex in #71
Full Changelog: v1.3.0...v1.3.1
v1.3.0
PNPM v8
The project has been upgraded to use PNPM 8. Please update your references and check the following:
- Node.js 14 is no longer supported by PNPM. Please check with
node -vthat you have at least v16 installed. If not, it's best to go straight to the current LTS version 18.17.1. (NVM users:nvm alias default 18). - The new lock file format is not backward compatible and this could cause CI builds to fail. Regenerate the lock files by rebuilding the solution and then commit them. If you have problems, try running this pwsh one-liner in the solution root:
Get-ChildItem -Recurse pnpm-lock.yaml | ForEach-Object { Push-Location $_.Directory; pnpm install; Pop-Location }. - You shouldn't have to update PNPM yourself, because Lombiq.NodeJs.Extensions selects the specific excepted version automatically by calling
corepack enable && corepack prepare pnpm@8.6.12 --activate. If you have manually installed PNPM before, uninstall it and let our library manage the version using corepack that comes with node out of the box.
What's Changed
- SPAL-39: Consolidate package version by @DAud-IcI in #66
- OSOE-603: Upgrade to pnpm@8 by @DAud-IcI in #58
Full Changelog: v1.2.5...v1.3.0