-
Notifications
You must be signed in to change notification settings - Fork 6
Conversation
Won't be needed going forward.
- Add sudo option to run on new Travis infrastructure. - Set BR_ISOLATE to "yes". - Run scripts/ci.sh. - Remove bundler requirement.
Include reference documentation URLs.
- Use BR_ prefix to discern library-specific stuff. - Add isolation options. - Add dependency paths.
If BR_ISOLATE is set yes, we'll manage the gem.deps.rb dependencies and keep them isolated from any user/system gems. What this exactly means is the following: - The *only* requirements are ruby and gem - We'll recreate the isolated gems anytime gem.deps.rb changes - If gem.deps.rb *hasn't* changed, we do nothing and incur negligible overhead - This supports multiple ruby environments with rbenv, rvm, chruby, and whatever other tools Seattle developers are using though overriding BR_RUBY_CMD and BR_GEM_CMD work just as well.
Gem 2.4 and older supports '--no-lock'. Older versions always generate it it seems.
Sets env variables and add Gem.bindir to PATH if needed.
This accounts for old versions of gem.
🙇 I have reviewed this by pulling in the your issue82 branch and testing out a few things: Without dependencies can I run, in a meaningful way...
Of course these all failed with Then I went looking to install gem dependencies.
I could execute
I used The solution in (2) was more appealing since it leveraged core ruby utilities and seems more intuitive. I haven't tried the scripts yet, but can only imagine it gives you a nicer interface to the command. All in all it looks fantastic. I do have some follow-ups:
|
Proposed fix for #82; summary:
Uses the upgraded Travis CI infrastructure.
With gems entirely isolated from the existing user and system set, we never need sudo access.
Isolation
When isolation is used, gems will be located at the base of the repository at
.gems
. This keeps the entire developer experience simple. Everything is in one spot. See BR_ISOLATE for more.Multiple Rubies
Multiple versions of Ruby are more straightforward. Ruby switchers will continued to work, but for developer and production environments with multiple Ruby installations coexisting, changing
BR_RUBY_CMD
andBR_GEM_CMD
will allow isolated tests under whatever versions are configured.Updating dependencies will trigger the isolated environment to be recreated.
This makes it dead simple to experiment with different gems and/or versions. When the dependencies change, the isolated gems will be refreshed.
Existing isolated environments continue to work when dependencies remain the same.