camunda-community-hub / zeebe-client-node-js

Node.js client library for Zeebe Microservices Orchestration Engine
https://camunda-community-hub.github.io/zeebe-client-node-js/
Apache License 2.0
152 stars 38 forks source link

Breaking change introduced via patch release #203

Closed barmac closed 3 years ago

barmac commented 3 years ago

Expected Behavior

There should be no breaking changes when I use ~0.23.2 in package.json.

Current Behavior

With zeebe-node@0.23.3 release, a breaking change (C-based gRPC client) was introduced. This caused Camunda Modeler builds to fail, because in order to use native modules we need to run electron-rebuild which we didn't. As we want to still use the JS implementation, we had to pin the zeebe-node dependency in the application.

Possible Solution

Release zeebe-node@0.23.4 without the breaking change so that the library returns back to semver-compliant versioning.

Steps to Reproduce

  1. Clone camunda/camunda-modeler and checkout https://github.com/camunda/camunda-modeler/commit/bc998ecc35bbe1a29040aa1a895ef606b48697ac
  2. Install dependencies with npm ci
  3. Try to run the app via npm start and observe the error in the terminal

Context (Environment)

Electron@7

Detailed Description

Possible Implementation

jwulf commented 3 years ago

Hmmm... you're right, it needed a major version release. I apologise for that.

The issue with going to a major version at that time is that it would have broken the major versioning lockstep with the Zeebe broker.

You are probably best to keep it pinned, or to add electron-rebuild. There will be no more releases with the pure JS GRPC client until we can fix #201 - the pure JS gRPC client breaks with Camunda Cloud.

For future releases, I'll make sure to use a major version for things that will break build systems.

For Zeebe 1.0, we won't get the pure JS gRPC client problems fixed before the release. The 1.0 release is slated to have API-level breaking changes.

To support Camunda Cloud and Zeebe 1.0, you'll need to use the 1.0 of the client, which will use the C-based client.

Are you planning to support both Zeebe 1.0 and pre-1.0 in the same modeler, or will users need to download the correct version of the modeler for their broker?

jwulf commented 3 years ago

Also, let me know if you are ok with keeping this release pinned for now - I'm not going to have time to go back to 0.23 and re-roll a release before the 1.0 release.

barmac commented 3 years ago

Hi Josh,

Thanks for your update :)

We've discussed this internally and decided to use electron-rebuild together with the C-based client for the future releases. Also, once Zeebe 1.0 is released, Camunda Modeler will support it but not the 0.x series.

Also, let me know if you are ok with keeping this release pinned for now - I'm not going to have time to go back to 0.23 and re-roll a release before the 1.0 release.

That's fine :)

Best wishes

Maciej