[
https://issues.apache.org/jira/browse/PROTON-2100?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16921367#comment-16921367
]
Jiri Daněk edited comment on PROTON-2100 at 9/3/19 12:00 PM:
-------------------------------------------------------------
I've tried Bazel, for ActiveMQ Artemis. Back in the time before the AIO JNI
library was split out of the project.
Afaik the main problems with it are:
1) Tooling. There probably isn't that much experience regarding building
RPM/DEB packages with Bazel. Although the fact that TensorFlow and other
popular projects adopted Bazel is/will change that, slowly.
2) Support for systems besides Linux and Windows. Afaik Windows support is
already there. Can Bazel produce artifacts that are easily consumable in CMake,
Visual Studio, and language specific package managers like pip or gem, or go
get?
3) Dependencies. As I remember, discovering native dependencies with Bazel is
painful. Paths to shared libs change between systems. Proton has some optional
dependencies. In the Artemis project above I had to do [1] and then [2]. Is
there support for pkg-config in Bazel already?
4) Makes build depend on java. Bazel itself is fairly large, ~50 MB. Must be
installed on Travis.
Benefits:
1) BUILD file language. That is a plus, for me, actually. It is a restricted
version of Python.
2) Test isolation. Tests are run in a sandbox, which can include network
sandbox based on cgroups/namespaces. No more port clashes. We could possibly
have this with CMake as well (reuse what bazel does, it is fairly
self-contained). Bazel just brings it out of the box.
[1]
https://github.com/jdanekrh/activemq-artemis/blob/97fcde8f5d437ab75982304d0722a479140b3ae8/WORKSPACE#L31-L71
[2]
https://github.com/jdanekrh/activemq-artemis/blob/97fcde8f5d437ab75982304d0722a479140b3ae8/artemis-native/BUILD#L20-L51
Btw, for discussions, project mailing list is probably better place.
was (Author: jdanek):
I've tried Bazel, for ActiveMQ Artemis. Back in the time before the AIO JNI
library was split out of the project.
Afaik the main problems with it are:
1) Tooling. There probably isn't that much experience regarding building
RPM/DEB packages with Bazel. Although the fact that TensorFlow and other
popular projects adopted Bazel is/will change that, slowly.
2) Dependencies. As I remember, discovering native dependencies with Bazel is
painful. Paths to shared libs change between systems. Proton has some optional
dependencies. In the Artemis project above I had to do [1] and then [2]. Is
there support for pkg-config in Bazel already?
3) Makes build depend on java. Bazel itself is fairly large, ~50 MB. Must be
installed on Travis.
Benefits:
1) BUILD file language. That is a plus, for me, actually. It is a restricted
version of Python.
2) Test isolation. Tests are run in a sandbox, which can include network
sandbox based on cgroups/namespaces. No more port clashes. We could possibly
have this with CMake as well (reuse what bazel does, it is fairly
self-contained). Bazel just brings it out of the box.
[1]
https://github.com/jdanekrh/activemq-artemis/blob/97fcde8f5d437ab75982304d0722a479140b3ae8/WORKSPACE#L31-L71
[2]
https://github.com/jdanekrh/activemq-artemis/blob/97fcde8f5d437ab75982304d0722a479140b3ae8/artemis-native/BUILD#L20-L51
Btw, for discussions, project mailing list is probably better place.
> Switch from CMake to Bazel?
> ---------------------------
>
> Key: PROTON-2100
> URL: https://issues.apache.org/jira/browse/PROTON-2100
> Project: Qpid Proton
> Issue Type: Wish
> Components: proton-c
> Reporter: Omer Katz
> Priority: Major
>
> Bazel is a modern build system for polygot repositories like qpid-proton.
> Using it should simplify how we build and package our bindings and c library.
> This issue is an opportunity to discuss if we want to switch and if so, how.
--
This message was sent by Atlassian Jira
(v8.3.2#803003)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]