azure-sdk-for-js: breaking change in v1.6.0: dropping node versions is semver-major

Even just the engines declaration here is a breaking change, and should have been v2. Please revert, and publish a new v1, and publish a v2 if you want to drop node < 18.

About this issue

  • Original URL
  • State: open
  • Created 5 months ago
  • Reactions: 1
  • Comments: 15 (8 by maintainers)

Most upvoted comments

Several of our services are still using node 16 and had these packages used upstream (not direct deps). Moving without a major version broke our builds as ^4.6.0 for @azure/keyvault-secrets now installs 4.8.0 which is node 18+ only.

Obviously, yes we should have upgraded from node 16 at this point. However, a few legacy enterprise services exist still and given the complexities of build pipelines and the like it isn’t always doable to upgrade mission critical services arbitrarily at scale without a huge amount of additional testing in production environments.

Given Azure’s primary target market is enterprise customers (often big and slow at updating) this seems like an odd move to break semver. It should have gone to 5.0.0 as a major bump.

The good news is that we can fix this using package.json resolutions but it’s a huge hassle to go into every repo we operate to add resolutions to fix the issue after the builds fail.

Regarding the Support Policy

The Azure SDK libraries for JavaScript will not be guaranteed to work on Node.js versions that have reached their end of life. Dropping support for such Node.js versions may be done without increasing the major version of the Azure SDK libraries.

Personally, I think this needs rewording. Not guaranteed to work is one thing and I believe many companies could accept that. However, changing the engine requirement is forcing it not to work. Big difference IMHO.

@xirzec no, there’s never a requirement to deprecate something merely based on not supporting it.

Additionally, deprecation earnings are just warnings - they don’t obstruct, and everyone just ignores them - so it costs nothing. Engines limits fail installs.

Certainly if you’d only gone to >= 16, which is what github.com supports in actions, then I wouldn’t have even noticed 😃

That’s fair, thank you for letting us know about your experience too, super valuable!

Jordan!! Nice to see you on my side of the world 😁

Can you say more about the impact the engines change/dropping node < 18 had on you? E.g. do you have node 16 deployments still?