zeromq / zeromq.js

:zap: Node.js bindings to the ØMQ library
http://zeromq.github.io/zeromq.js/
MIT License
1.48k stars 211 forks source link

CITGM compatibility / cmake usage #376

Open BridgeAR opened 4 years ago

BridgeAR commented 4 years ago

Is your feature request related to a problem? Please describe.

zeromq is currently tested on citgm as kind of smoke test to guarantee that it does not break in case Node.js internals change. Due to the recent move to cmake it's not possible to compile it anymore on our infrastructure.

Describe the solution you'd like

Please indicate if it's possible to move away from the cmake requirement. Removing that dependency would make it possible to run the test suite again with CITGM so that we are able to provide stable Node.js releases.

Otherwise we have to remove zeromq from CITGM and that would be not be ideal.

Refs: https://ci.nodejs.org/view/Node.js-citgm/job/citgm-smoker/2134/nodes=osx1011/testReport/junit/(root)/citgm/zeromq_v6_0_0_beta_5/ (Only available for ~7 days)

rolftimmermans commented 4 years ago

ZeroMQ (libzmq) itself uses CMake exclusively for Windows builds and optionally for other platforms, and we're following along that path. Using & supporting two different build systems is not really something I'm looking forward to.

Is it at all a possibility to include CMake in the test image? It should be as simple as adding the OS package for CMake.

BridgeAR commented 4 years ago

I am not sure if the optional part works properly. It does fail with a hard error in case cmake is not available on OSX and Linux.

Refs: https://github.com/nodejs/build/issues/2097

rolftimmermans commented 4 years ago

No, we do use CMake exclusively, that's correct. CMake for libzmq is optional, but CMake for zeromq.js is required ATM, because it ensures a uniform way to build the project across all platforms. If CMake were optional we'd have to support multiple build systems (CMake + autotools), which would be quite a big time sink and not necessary at all from the perspective of this project.

To be honest I think CMake is the de-facto system to build C++/C projects in a consistent manner across Windows + *nix platforms so it would be nice to have it more adopted in the Node community. It's quite simple to install, too...

(For dependency-free Node add-on projects using only Gyp might be fine, but libzmq is obviously a huge component of this library.)

BridgeAR commented 4 years ago

@rolftimmermans we are trying to get everything set up properly. Our infrastructure is just quite complex and have lots of systems to maintain but only few maintainers. That is probably the main issue on our side (I am not part of the Node.js build working group).

Sounds like we'll have to keep zeromq deactivated until we are able to provide cmake on our side. Thank you for your fast response though! I'll keep this issue open until it's resolved on our side, if that's fine for you.

rolftimmermans commented 4 years ago

Yes, sure! Can I assist in any way to get CMake set up on the appropriate build images?

BridgeAR commented 4 years ago

Thank you very much the offer. If you would like to become involved with Node.js, that would be great! Please feel free to reach out to the build working group to ask in what way you could get involved. I guess direct access is not possible but help is always appreciated!