bazelruby / rules_ruby

Formerly canonical rules for ruby, that are about 2-3 years behind current Bazel. If they work for you great, but if not — please try the new rules ruby by Alex Radionov: https://github.com/bazel-contrib/rules_ruby
Apache License 2.0
99 stars 37 forks source link

This PR refactors bundle steps and :bin generation #61

Closed kigster closed 4 years ago

kigster commented 4 years ago

In this PR we add a @bundle//bin target consisting of all binaries + the limited list of gem dependencies that provide those binaries (instead of all binaries), thus enabling running of @bundle//bin/rubocop with proper dependencies. We are also adding executable commands under bin/* to the sources of respective gems providing that executable.

We also attempted to secure the order of bundle operations by passing the result of a previous macro/action to the next, in hopes to create a linear dependency graph. While this did not break things, it's unclear whether this actually accomplishes the desired affect. Leaving in, in case we could trigger the linear dependency of steps within rule's implementation by, perhaps, accessing each result in addition to passing it as a function argument to the next function.

You can reference individual gems as @bundle//:gem-name as before, and you can also pull in the entire bundle with @bundle//:gems.

kigster commented 4 years ago

This was already reviewed, merging since I only updated with PR feedback.