Skip to content

A repository comparing Bazel and Buck when building and testing for iOS

Notifications You must be signed in to change notification settings

acecilia/BazelVSBuckSample

Repository files navigation

Bazel VS Buck Sample

A repository with several iOS examples built with Bazel and Buck.

To see their differences in terms of source code, compare the content of the bazel configuration folder with the buck configuration folder.

To see their difference in terms of performance, refer to the latest build in the CI server.

Main differences

Major problems without a workaround are marked with the ⛔ emoji:

  • 02/10/2019 - Buck rule prebuilt_apple_framework does not copy dynamic libraries into the final bundle
    [Buck Reference]
    [Workaround implemented]
  • 02/10/2019 - Buck does not cache test results, bazel does
    [Buck Reference]
    [No workaround available] ⛔
  • 02/10/2019 - Bazel does not support an objc library as dependency of another objc library, buck does
    [Bazel Reference]
    [Buck Reference]
    [Workaround implemented]
  • 06/10/2019 - Buck does not support adding/distributing/reusing custom rules/macros, bazel does
    [Bazel reference]
    [Buck reference]
    [No workaround available] ⛔
  • 06/10/2019 - A consecuence of the previous point: bazel takes a long time setting up when doing a clean build, because it needs to fetch the rules and dependencies specified in the workspace
    [No workaround available, but not a major issue, as clean builds are rare]
  • 06/10/2019 - Buck test runner (xctool) reuses the same simulator for all tests and can use an already booted simulator. Bazel test runner (xctestrunner) creates a new simulator for every test suite and does not allow to use an already booted one. As a result, the tests results from bazel are more reliable but slower
    [Bazel reference]
    [No workaround available, but not a major issue, as both test runners perform good enough]
  • 08/10/2019 - Buck does not support making bundles for resources, bazel does. This is necessary in order to prevent resource name collisions, which can happen if the resources are copied to the main bundle directly without placing them inside a bundle
    [Bazel reference]
    [Buck reference]
    [Workaround implemented]

References

About

A repository comparing Bazel and Buck when building and testing for iOS

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published