shortrounddev2 3 hours ago

The node versioning system makes no sense to me. They release a new major version and their key highlights sound like minor version changes:

> Enabling require(esm) by default for Node.js applications

> Removing support for Windows 32-bit systems

> Stabilizing the node --run command

> Enhancements to the test runner, including glob pattern support for coverage files

When Java or especially C# increment major versions, they've added some key language or compiler features, large new standard library changes, or breaking changes of some kind. Node uses major versions to announce what more or less sound like housekeeping. Unless they're just bad at writing blog posts, which it seems like they are. Under "Other notable changes", they have:

> [83eb4f2855] - (SEMVER-MINOR) deps: V8: cherry-pick cd10ad7cdbe5 (Joyee Cheung) #52535

Which tells me literally nothing about this "notable change", unless I go to the pull request: https://github.com/nodejs/node/pull/52535

> module: implement NODE_COMPILE_CACHE for automatic on-disk code caching #52535

Which still doesn't seem like a major version headline feature.

Consider this "notable change": https://github.com/nodejs/node/pull/55086/files

> doc: add abmusse to collaborators

> + * [abmusse](https://github.com/abmusse) -

> + *Abdirahim Musse* <<abdirahim.musse@ibm.com>>

I'm guessing they're fully relying on semver to generate their changelogs, but they're not providing any convincing reason to upgrade to 23.0.0 other than to remain up to date as an inherent virtue

  • pornel 2 hours ago

    The major versions unfortunately have a dual role of dictating their release cadence and LTS support. They're not purely SemVer but also milestones and marketing versions.

    This is unfortunate, because scheduled version bumps that happen to be SemVer-major bumps also give them excuse to regularly make actual breaking changes. When this affects npm packages, it creates churn and bitrot across the ecosystem.

    • shortrounddev2 30 minutes ago

      How could they fix this? Perhaps a build version vs featureset version?