For example, (1) gazelle to generate (2) BUILD to generate a (3) binary.
Some examples I know of:
Gazelle - https://github.com/bazelbuild/rules_go
Angular - https://medium.com/@Jakeherringbone/building-angular-apps-at-scale-813ef42add04
Scala - internal tool at Stripe
Maven (ok, maybe bad example, as this is partially due to repeatability concerns) - https://github.com/pgr0ss/bazel-deps
This "configure-make" paradigm is common among build tools that lack abstraction capabilities (e.g., make), but this is an uncommon paradigm for many other non-Bazel build tools (e.g. gradle).
---
This encourages two behaviors, which are generally antipatterns in build systems:
(1) Checking products into version control, permitting them to get out of sync with their sources.
(2) Requiring the user to know which steps to run at the appropriate times.
Is this state of affairs due to historical accident, temporary limitations, or purposeful design? Is there a way to make Bazel a complete and automatic build tool? Or is there some essential complexity that can't really be solved in a 100% streamlined way?
--
You received this message because you are subscribed to the Google Groups "bazel-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bazel-discus...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bazel-discuss/617c70b6-409e-4964-bb9c-334b91b67517%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "bazel-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bazel-discuss+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/bazel-discuss/141bdcde-f50d-4ee2-9fd1-1998e0c25079%40googlegroups.com.
On Thursday, August 31, 2017 at 9:27:27 AM UTC-6, Ian O'Connell wrote:
> I'm not really sure whats being referred to in the first email, at Stripe we write our build files manually still.
>
>
> We have some macros (and more internal variants similarly) like https://github.com/bazelbuild/rules_scala/blob/master/scala/scala.bzl#L1014 to generate multiple library targets to speed up re-compiling.
>
>
> We use https://github.com/johnynek/bazel-deps to handle external dependencies in the repos. (Yaml file that you update, it does the maven resolution + generates BUILD files in a 3rdparty folder tree with exports/runtime dependencies setup). But relative to normal operations this changes rarely enough (once or twice a day in the busier repos).
>
>
>
>
> Twitter with pants doesn't write much of their scala build files manually anymore i'm told? But for bazel we haven't deployed anything to auto-divide scala files or figure out their interdependencies to generate the finest build targets yet.
>
>
>
>
>
>
> On Thu, Aug 31, 2017 at 6:42 AM, ittai zeidman <itt...@gmail.com> wrote:
> Paul,
>
> The stripe internal tool for scala means developers don't write BUILD files but it's automatically generated on the fly?
>
> I'm interested since I wrote such a tool to migrate maven based scala/java codebases but it heavily relies on a code index since Scala allows a lot of freedom layout wise (multiple classes in same file and more)
>
>
>
> --
>
> You received this message because you are subscribed to the Google Groups "bazel-discuss" group.
>
> To unsubscribe from this group and stop receiving emails from it, send an email to bazel-discus...@googlegroups.com.