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
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.
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 underbin/*
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
.