summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* [Travis] Override version before installing depsseg-bundler-2Samuel Giddins2017-09-064-9/+11
|
* Bump to a Bundler 2 versionSamuel Giddins2017-09-063-77/+9
|
* Merge tag 'v1.16.0.pre.2'Samuel Giddins2017-09-062-1/+9
|\ | | | | | | Version 1.16.0.pre.2
| * Version 1.16.0.pre.2 with changelogv1.16.0.pre.2Samuel Giddins2017-09-062-1/+9
| |
| * Auto merge of #6009 - bundler:seg-molinillo-0-6-3, r=segiddinsThe Bundler Bot2017-09-062-3/+7
| | | | | | | | | | | | | | | | Update vendored Molinillo to 0.6.3 See https://github.com/CocoaPods/Molinillo/releases/0.6.3. (cherry picked from commit 5548a238d4cf38ff2fbec9388e8ab64049c421ed)
| * Auto merge of #5972 - wadetandy:master, r=segiddinsThe Bundler Bot2017-09-062-1/+95
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Respect RUBYGEMS_HOST env var in release messaging ### What was the end-user problem that led to this PR? When running the `release` task, bundler didn't know anything about the RUBYGEMS_HOST environment variable that rubygems respects when doing a gem push. This resulted in incorrect messaging, as environments where this was set without an `allowed_push_host` configured would message that the gem had been pushed to rubygems.org, when in fact it was pushed elsewhere. ### What was your diagnosis of the problem? Bundler was hardcoding `rubygems.org` in the event that an `allowed_push_host` setting was not specified, and didn't know anything about the `RUBYGEMS_HOST` env var. ### What is your fix for the problem, implemented in this PR? Added a check for that variable and used it before the hardcoded `rubygems.org` if it exists. ### Why did you choose this fix out of the possible options? I chose this fix because it seemed the most straightforward way to solve the problem. (cherry picked from commit 19c239ea54f4448f95fefdead6d8a15bbd1af0ad)
| * Auto merge of #6003 - greysteil:handle-missing-socket, r=segiddinsThe Bundler Bot2017-09-062-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Handle missing socket when warning about OpenSSL version ### What was the end-user problem that led to this PR? Stubbing Rubygems requests with WebMock was causing `undefined method 'io' for nil:NilClass` errors when using Bundler 1.16.0.pre.1 ### What was your diagnosis of the problem? My diagnosis was that the new warning text about old OpenSSL versions didn't consider the case that a connection might not have an `@socket` variable set. ### What is your fix for the problem, implemented in this PR? Guard against this by returning early in that case. ### Why did you choose this fix out of the possible options? I chose this fix because it works, and because `Net::HTTP` itself has some guards in it around `nil` values for `@socket` ([example](https://github.com/ruby/ruby/blob/trunk/lib/net/http.rb#L858-L860)). This isn't my area, though, so it could be that a fix is needed in WebMock, not here... (cherry picked from commit f81b8ddaefa0528105c9e2dcb33e045b20588f42)
* | Auto merge of #6009 - bundler:seg-molinillo-0-6-3, r=segiddinsThe Bundler Bot2017-09-062-3/+7
|\ \ | | | | | | | | | | | | | | | Update vendored Molinillo to 0.6.3 See https://github.com/CocoaPods/Molinillo/releases/0.6.3.
| * | Update vendored Molinillo to 0.6.3seg-molinillo-0-6-3Samuel Giddins2017-09-062-3/+7
| | |
* | | Auto merge of #5986 - bundler:seg-jobs-count, r=indirectThe Bundler Bot2017-09-065-10/+43
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [2.0] Auto-configure job count Closes https://github.com/bundler/bundler/pull/5808. The description of that issue, copied verbatim: This argument comes in two parts, but luckily, the first one is both easier to understand and hopefully to agree with. Background: Bundler 1.4.0 added support for parallel installation via the `--jobs` param. Soon after, [this blog post](http://archlever.blogspot.com/2013/09/lies-damned-lies-and-truths-backed-by.html) (probably greatly amplified by [this Thoughtbot blog post](https://robots.thoughtbot.com/parallel-gem-installing-using-bundler)) popularized the recommendation "set `--jobs` to `nproc - 1`". Not long after, probably also inspired by the popularity of this tip, this "n - 1 jobs" advice got codified into Bundler itself: https://github.com/bundler/bundler/commit/66acd02de593a6c7ee271bcbce3917eb3a01825a However, my assertion here is _Bundler should not do that_. The first argument (the easy one) is just that it's not doing what the user asks for. For all the people following the (seemingly popular) tip to set their jobs to `nproc - 1`, they're actually ending up with the probably-worse `- 2`. Even worse than that, if a user does a conservative `--jobs 2`, they're getting _no benefit_ — Bundler is quietly taking their parallelization back down to "no parallelization". Hopefully that's a sufficient argument on its own, but the part II is that this blanket advice is probably out-of-date anyway. Using [this script](https://gist.github.com/tjschuck/ca1d37a8869d1cc01313171b4b318094), I repeatedly installed 29 gems (installing them to a `vendor/` dir and deleting it in between runs). I averaged the time over 10 runs per --jobs value, but the trend holds regardless of how many runs you do. Note that these numbers are for a machine with 2 physical cores and 4 virtual ones (a Mac, reporting 2 and 4 respectively from `sysctl -n hw.physicalcpu` and `sysctl -n hw.ncpu`, the latter corresponding to Linux's `nproc`). ``` ~/Code/tmp/bundler_jobs_bench ☠ ./bundler_jobs_bench.sh Installing 29 gems repeatedly... =============================================== Using Bundler version 1.15.1 (current release version) =============================================== --jobs 1 5.58435780 seconds on average (across 10 runs) --jobs 2 5.35010690 seconds on average (across 10 runs) --jobs 3 3.93493610 seconds on average (across 10 runs) --jobs 4 3.86082760 seconds on average (across 10 runs) --jobs 5 3.24673650 seconds on average (across 10 runs) --jobs 6 3.49340190 seconds on average (across 10 runs) --jobs 7 3.26473430 seconds on average (across 10 runs) --jobs 8 3.34560500 seconds on average (across 10 runs) =============================================== Using development version (no more n - 1 jobs) =============================================== --jobs 1 4.32629540 seconds on average (across 10 runs) --jobs 2 3.48100690 seconds on average (across 10 runs) --jobs 3 3.30937880 seconds on average (across 10 runs) --jobs 4 3.30868200 seconds on average (across 10 runs) --jobs 5 3.54932920 seconds on average (across 10 runs) --jobs 6 3.36123440 seconds on average (across 10 runs) --jobs 7 3.96490630 seconds on average (across 10 runs) --jobs 8 3.39955640 seconds on average (across 10 runs) ``` From the above, you can see: 1. In the first block, no notable change between `--jobs 1` and `--jobs 2` — that's because they're currently the same. 2. In both, a best time corresponding to the value that (effectively) matches nproc, _not_ nproc - 1. 3. Regardless of nproc coming out best in this run, there is close enough performance among the range of `nproc - 1` through to `nproc * 2` that it doesn't seem like anything in particular (like the `- 1` removed in this commit) should be codified — people seeking to particularly optimize their bundler runtimes should do their own tweaking of the value, and it should be respected as given.
| * | Default to 1 job when auto_config_jobs is not setseg-jobs-countSamuel Giddins2017-09-061-1/+3
| | |
| * | Ensure that rake is always installed first when presentSamuel Giddins2017-09-061-0/+3
| | |
| * | Warn in the quality spec when the exemption list is out of dateSamuel Giddins2017-09-061-5/+9
| | |
| * | Auto-configure job count in 2.0Samuel Giddins2017-09-064-5/+29
|/ / | | | | | | Also, stop subtracting 1 from the configured job count in 2.0
* | Auto merge of #5964 - bundler:colby/deprecate-viz-command, r=segiddinsThe Bundler Bot2017-09-065-15/+21
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | deprecate the bundle viz command ### What was the end-user problem that led to this PR? The `bundle viz` command is to been removed from bundler 2 and extracted into a plugin Closes #5180 ### What is your fix for the problem, implemented in this PR? Deprecate the `bundle viz` command with an error explaining that a new gem will replace it's functionality.
| * | deprecate the viz command in bundler 2colby/deprecate-viz-commandColby Swandale2017-09-065-15/+21
| | |
* | | Auto merge of #5972 - wadetandy:master, r=segiddinsThe Bundler Bot2017-09-062-1/+95
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Respect RUBYGEMS_HOST env var in release messaging ### What was the end-user problem that led to this PR? When running the `release` task, bundler didn't know anything about the RUBYGEMS_HOST environment variable that rubygems respects when doing a gem push. This resulted in incorrect messaging, as environments where this was set without an `allowed_push_host` configured would message that the gem had been pushed to rubygems.org, when in fact it was pushed elsewhere. ### What was your diagnosis of the problem? Bundler was hardcoding `rubygems.org` in the event that an `allowed_push_host` setting was not specified, and didn't know anything about the `RUBYGEMS_HOST` env var. ### What is your fix for the problem, implemented in this PR? Added a check for that variable and used it before the hardcoded `rubygems.org` if it exists. ### Why did you choose this fix out of the possible options? I chose this fix because it seemed the most straightforward way to solve the problem.
| * | Respect RUBYGEMS_HOST env var in release messagingWade Tandy2017-08-302-1/+95
| | | | | | | | | | | | | | | | | | | | | | | | | | | Previously when running the `release` task, bundler didn't know anything about the RUBYGEMS_HOST environment variable that rubygems respects when doing a gem push. This resulted in incorrect messaging, as environments where this was set without an `allowed_push_host` configured would message that the gem had been pushed to rubygems.org, when in fact it was pushed elsewhere.
* | | Auto merge of #5981 - bundler:seg-cleanup-config, r=indirectThe Bundler Bot2017-09-053-91/+237
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [2.0] Implement config subcommands ### What was the end-user problem that led to this PR? The problem was the current `bundle config` mega-command is hacky and confusing. ### What was your diagnosis of the problem? My diagnosis was we should add subcommands for `list`, `get`, `set`, and `unset` to make the CLI clearer. Closes #4600. ### What is your fix for the problem, implemented in this PR? My fix implements those subcommands while preserving the current bare `bundle config` command. ### Why did you choose this fix out of the possible options? I chose this fix because, as opposed to https://github.com/bundler/bundler/pull/5507, we can keep the existing command in for a little while to help ease the transition. @denniss how do you feel about this compared to your PR?
| * | | Add specs for the new config subcommandsseg-cleanup-configSamuel Giddins2017-08-302-2/+88
| | | |
| * | | [CLI] Implement config subcommandsSamuel Giddins2017-08-302-101/+150
| | | |
| * | | [CLI] Use options for configSamuel Giddins2017-08-302-28/+39
| | | |
* | | | Auto merge of #5995 - bundler:seg-gvp-major, r=indirectThe Bundler Bot2017-09-056-17/+23
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [2.0] [Resolver] Use the GVP for major updates in 2.0 Thanks so much for the contribution! To make reviewing this PR a bit easier, please fill out answers to the following questions. ### What was the end-user problem that led to this PR? The problem was @chrismo wants to start delegating all sorting to the GVP. ### What was your diagnosis of the problem? My diagnosis was to start doing that in 2.0. Closes https://github.com/bundler/bundler/issues/5993 ### What is your fix for the problem, implemented in this PR? My fix adds a feature flag.
| * | | | [Definition] Lazily create gem_version_promoterseg-gvp-majorSamuel Giddins2017-09-051-14/+14
| | | | | | | | | | | | | | | | | | | | This way, it can be reset in #missing_specs?
| * | | | [GemVersionPromoter] Avoid checking ENV for debug every timeSamuel Giddins2017-09-051-2/+4
| | | | |
| * | | | [Resolver] Use the GVP for major updates in 2.0Samuel Giddins2017-09-054-1/+5
|/ / / /
* | | | Auto merge of #6003 - greysteil:handle-missing-socket, r=segiddinsThe Bundler Bot2017-09-052-0/+7
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Handle missing socket when warning about OpenSSL version ### What was the end-user problem that led to this PR? Stubbing Rubygems requests with WebMock was causing `undefined method 'io' for nil:NilClass` errors when using Bundler 1.16.0.pre.1 ### What was your diagnosis of the problem? My diagnosis was that the new warning text about old OpenSSL versions didn't consider the case that a connection might not have an `@socket` variable set. ### What is your fix for the problem, implemented in this PR? Guard against this by returning early in that case. ### Why did you choose this fix out of the possible options? I chose this fix because it works, and because `Net::HTTP` itself has some guards in it around `nil` values for `@socket` ([example](https://github.com/ruby/ruby/blob/trunk/lib/net/http.rb#L858-L860)). This isn't my area, though, so it could be that a fix is needed in WebMock, not here...
| * | | | Handle missing socket when warning about OpenSSL versionGrey Baker2017-09-052-0/+7
|/ / / /
* | | | Merge branch '1-16-stable'Samuel Giddins2017-09-042-1/+44
|\ \ \ \ | | |_|/ | |/| |
| * | | Version 1.16.0.pre.1 with changelogv1.16.0.pre.1Samuel Giddins2017-09-042-1/+44
|/ / /
* | | Auto merge of #5983 - asehra:master, r=segiddinsThe Bundler Bot2017-08-311-0/+5
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add documentation for packaging with --no-install ### What was the end-user problem that led to this PR? I need to package gems for deployment but don't want to install them on the local system. ### What was your diagnosis of the problem? The behaviour is a part of bundler but it is not documented anywhere in man pages or the bundler site. To find the answer, one has to look at issues that were closed a few years ago. ### What is your fix for the problem, implemented in this PR? I've updated the man page for the `bundle package` command. Hopefully, this will trickle down to bundler site pages for package command whenever CI publishes it. Followed the doc [here](https://github.com/bundler/bundler/blob/master/doc/documentation/WRITING.md) to run tests. ### Why did you choose this fix out of the possible options? It felt appropriate to document a flag available on a CLI in its help pages.
| * | Add documentation for packaging with `--no-install`Ashish Sehra2017-08-301-0/+5
| | |
* | | Auto merge of #5978 - torcido:master, r=segiddinsThe Bundler Bot2017-08-303-7/+49
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Support bundle_path used by war files generated with jruby's warbler ### What was the end-user problem that led to this PR? Issue #5975. The problem was that recent code to detect a bad bundle_path by looking for the PATH_SEPARATOR character broke when running from a war file generated by jruby's warbler. ### What was your diagnosis of the problem? My diagnosis was that the path separator used was not appropriate in this circumstance. ### What is your fix for the problem, implemented in this PR? My fix implements the suggestion from @segiddins to use the same path splitting logic used by RubyGems under jruby to determine if the bad path is present. ### Why did you choose this fix out of the possible options? I chose this fix because it provides a way to detect the original problem that is consistent with the handling within RubyGems.
| * | Stub the new rubygems integration method, rather than the underlying Gem ↵Michael Pitman2017-08-301-2/+2
| | | | | | | | | | | | method in the bundle path regex specs
| * | Fix inappropriate use of single quotesMichael Pitman2017-08-301-1/+1
| | |
| * | Improved the way the string was interpreted as a Regex by using the regex ↵Michael Pitman2017-08-301-5/+1
| | | | | | | | | | | | constructor
| * | Change let block in spec from curly braces to a do/end block to conform with ↵Michael Pitman2017-08-301-2/+2
| | | | | | | | | | | | style guide while retaining the explanatory comments
| * | Move the path_separator logic into the appropriate RubygemsIntegration classesMichael Pitman2017-08-302-1/+9
| | |
| * | Change the literal regex to an eval expression in order to enable loading of ↵Michael Pitman2017-08-301-2/+7
| | | | | | | | | | | | the file under ruby 1.8
| * | Use a ruby declaration, rather than relying on RUBY_VERSION to run the specs ↵Michael Pitman2017-08-301-27/+25
| | | | | | | | | | | | that rely on a ruby >= 1.9 style regex
| * | Fix spec to obey style rulesMichael Pitman2017-08-291-1/+0
| | |
| * | Exclude the specs that require ruby 1.9 regexes from spec runs under ruby 1.8Michael Pitman2017-08-291-26/+28
| | |
| * | Ensure that we use the appropriate path separator in the error message when ↵Michael Pitman2017-08-291-2/+2
| | | | | | | | | | | | displaying the bundle_path error for a RubyGems version earlier than 2.0
| * | Support ruby version 1.8.7 and rubygems earlier than version 2.0.0Michael Pitman2017-08-292-4/+9
| | |
| * | Add more specs to cover the particular issue discovered when running under jrubyMichael Pitman2017-08-281-1/+30
| | |
| * | Use Gem.path_separator instead of File::PATH_SEPARATOR to detect an invalid ↵Michael Pitman2017-08-282-6/+6
| | | | | | | | | | | | bundle_path in order to work with jruby-generated war files. Fixes issue 5975
* | | Auto merge of #5979 - bundler:seg-pretty-bundle-help, r=indirectThe Bundler Bot2017-08-293-19/+55
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [CLI] Prettify the output in cli_help ### What was the end-user problem that led to this PR? The problem was the new help output for `bundle` was very verbose and unorganized, making it look a bit like work vomit. ### What was your diagnosis of the problem? My diagnosis was we should Closes https://github.com/bundler/bundler/issues/5963. ### What is your fix for the problem, implemented in this PR? My fix prints the full version info, as well as grouping the commands into `primary` and `utility` as done in the man pages. ### Why did you choose this fix out of the possible options? I chose this fix because it makes the output pleasing to visually parse. ``` $ bundle Bundler version 1.15.4 (2017-08-25 commit 3203fdd2a) Bundler commands: Primary commands: bundle install [OPTIONS] # Install the current environment to the system bundle update [OPTIONS] # Update the current environment bundle package [OPTIONS] # Locks and then caches all of the gems into vendor/cache bundle exec [OPTIONS] # Run the command in context of the bundle bundle config NAME [VALUE] # Retrieve or set a configuration value bundle help [COMMAND] # Describe available commands or one specific command Utilities: bundle add GEM VERSION # Add gem to Gemfile and run bundle install bundle binstubs GEM [OPTIONS] # Install the binstubs of the listed gem bundle check [OPTIONS] # Checks if the dependencies listed in Gemfile are satisfied by currently installed gems bundle console [GROUP] # Opens an IRB session with the bundle pre-loaded bundle doctor [OPTIONS] # Checks the bundle for common problems bundle env # Print information about the environment Bundler is running under bundle gem NAME [OPTIONS] # Creates a skeleton for creating a rubygem bundle info GEM [OPTIONS] # Show information for the given gem bundle init [OPTIONS] # Generates a Gemfile into the current working directory bundle issue # Learn how to report an issue in Bundler bundle licenses # Prints the license of all gems in the bundle bundle lock # Creates a lockfile without installing bundle open GEM # Opens the source directory of the given bundled gem bundle outdated GEM [OPTIONS] # List installed gems with newer versions available bundle platform [OPTIONS] # Displays platform compatibility information bundle plugin # Manage the bundler plugins bundle pristine [GEMS...] # Restores installed gems to pristine condition from files located in the gem cache. Gem installed from a git reposit... bundle show GEM [OPTIONS] # Shows all gems that are part of the bundle, or the path to a given gem bundle version # Prints the bundler's version information Options: [--no-color] # Disable colorization in output -r, [--retry=NUM] # Specify the number of times you wish to attempt network commands -V, [--verbose], [--no-verbose] # Enable verbose output mode ```
| * | | Add a spec for no-args bundle on 2.0Samuel Giddins2017-08-292-2/+16
| | | |
| * | | Fix outdated bundler suggestion logicSamuel Giddins2017-08-292-4/+4
| | | |
| * | | [CLI] Prettify the output in cli_helpSamuel Giddins2017-08-292-15/+37
|/ / /