summaryrefslogtreecommitdiff
path: root/lib/bundler/index.rb
Commit message (Collapse)AuthorAgeFilesLines
* Avoid request-bloat in double checking logicSamuel Giddins2017-09-131-13/+0
| | | | This avoids attempting to double-check in each source for gems that are _in the locally installed set of gems_, which could add hundreds or thousands of extra requests
* [Index] Add a helper to return the names of all specsSamuel Giddins2017-09-131-0/+6
|
* [Index] Return self in #eachSamuel Giddins2017-08-281-0/+1
|
* Update prerelease logic for new molinilloSamuel Giddins2017-08-011-8/+0
|
* [RuboCop] Enable Layout/EmptyLineAfterMagicComment copKoichi ITO2017-07-161-0/+1
|
* Implement source pinning for 2.0Samuel Giddins2017-06-231-0/+13
|
* [Index] Avoid sorting specs in intermediary searchesSamuel Giddins2017-04-141-3/+9
|
* [Definition] Allow adding new gemspecs to a Path sourceSamuel Giddins2017-02-101-0/+2
|
* [Index] Avoid uncessary array allocations for dependency_namesSamuel Giddins2016-12-251-5/+8
|
* Do not pull development dependenciesPavel2016-12-241-1/+3
|
* [Index] Allow pre-release versions when the base is pre-releaseSamuel Giddins2016-10-141-1/+2
|
* [DSL] Add support for multi-platform gems with the `gemspec` methodSamuel Giddins2016-07-221-1/+9
|
* Don't include dev dependencies when comparing indexes.Joe Rafaniello2016-06-171-1/+7
|
* Use Set equality for path gems to avoid unneeded re-resolution.Joe Rafaniello2016-06-171-1/+1
| | | | | | | | | | | - For comparing source dependencies to locked source dependencies - For comparing two Bundler::Index dependencies Added test case. Fixed bad tests cases hidden by the above bug: - 'foo' depended on rack but we didn't build 'rack' in the path - We couldn't find 'bar' built into 'foo/bar' because the :path only had 'foo'
* Auto merge of #4580 - bundler:seg-resolver-performance, r=indirectHomu2016-06-071-35/+21
|\ | | | | | | | | | | | | | | Improve resolver performance Some not insignificant improvements found while developing https://github.com/CocoaPods/Molinillo/pull/40, which I absolutely cannot wait to 🚢 \c @indirect
| * [Index] Delete unused code & micro-optimizeSamuel Giddins2016-06-041-26/+13
| |
| * [Index] Don't calculate Platform#to_s twiceSamuel Giddins2016-06-021-3/+6
| |
| * Use Array#concat instead of push(*ary)Samuel Giddins2016-06-021-1/+1
| |
| * [RuboCop] Fix style issuesSamuel Giddins2016-06-021-3/+1
| |
| * [Index] Speed up searchingSamuel Giddins2016-06-021-4/+2
| | | | | | | | | | | | This is a two-fold improvement: 1) using full_name as the lookup is much faster than a custom array 2) using add? avoids a second set lookup
* | gemspec allow conflictsSamuel Giddins2016-06-041-0/+1
|/
* [Index] Use spec.full_name as hash keyseg-index-platform-ruby-defaultSamuel Giddins2016-05-161-2/+2
|
* [Index] Ensure nil and "ruby" platforms are treated identicallySamuel Giddins2016-05-091-2/+2
|
* Compatibility with frozen string literalsSamuel Giddins2016-01-311-0/+1
|
* [RuboCop] Address Style/GuardClauseSamuel Giddins2016-01-311-6/+3
|
* Auto merge of #4026 - bundler:seg-resolve-ruby-version, r=indirectHomu2015-10-181-0/+1
|\ | | | | | | | | | | [Resolver] Resolve for a given ruby version Take the definition's ruby version into account when resolving, to try and avoid conflicts with incompatible `required_ruby_version`s. This will mostly help once the compact index is in use.
| * [Resolver] Resolve for a given ruby versionSamuel Giddins2015-10-011-0/+1
| |
* | [Index] Handle when comparing against an index with no gemspecseg-dir-no-gemspecSamuel Giddins2015-10-161-1/+1
|/
* Allocate the "ruby" and "\0" Strings once.Joe Rafaniello2015-09-171-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Index#search is called many times so this change is worth it. With a single gem in your Gemfile, this change drops the string allocations by nearly 30,000. Script: ```ruby require 'allocation_tracer' ObjectSpace::AllocationTracer.setup(%i{path line type}) result = ObjectSpace::AllocationTracer.trace do begin require 'bundler/inline' rescue LoadError => e $stderr.puts 'Bundler version 1.10 or later is required. Please update your Bundler' raise e end gemfile(true) do source 'https://rubygems.org' gem 'benchmark-ips' end end result.sort_by{|k, v| k}.each{|k, v| puts ([v[0]]+k).join("\t") } ``` **String allocations before**: ``` $ruby benchmark_allocations.rb | grep T_STRING | sort -nr | head -n 10 65461 /Users/joerafaniello/.rubies/ruby-2.2.3/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb 54 T_STRING 64982 /Users/joerafaniello/.rubies/ruby-2.2.3/lib/ruby/2.2.0/rubygems/version.rb 163 T_STRING 29986 /Users/joerafaniello/.gem/ruby/2.2.3/gems/bundler-1.10.6/lib/bundler/index.rb 71 T_STRING 22142 /Users/joerafaniello/.gem/ruby/2.2.3/gems/bundler-1.10.6/lib/bundler/spec_set.rb 111 T_STRING 20457 /Users/joerafaniello/.rubies/ruby-2.2.3/lib/ruby/2.2.0/rubygems/version.rb 225 T_STRING 5280 /Users/joerafaniello/.gem/ruby/2.2.3/gems/bundler-1.10.6/lib/bundler/index.rb 87 T_STRING 4848 /Users/joerafaniello/.rubies/ruby-2.2.3/lib/ruby/2.2.0/rubygems/requirement.rb 92 T_STRING 4708 /Users/joerafaniello/.gem/ruby/2.2.3/gems/bundler-1.10.6/lib/bundler/lockfile_parser.rb 54 T_STRING 4608 /Users/joerafaniello/.rubies/ruby-2.2.3/lib/ruby/2.2.0/rubygems/version.rb 282 T_STRING 4561 /Users/joerafaniello/.gem/ruby/2.2.3/gems/bundler-1.10.6/lib/bundler/index.rb 19 T_STRING ``` **String allocations after**: ``` $ ruby benchmark_allocations.rb | grep T_STRING | sort -nr | head -n 10 65479 /Users/joerafaniello/.rubies/ruby-2.2.3/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb 54 T_STRING 64143 /Users/joerafaniello/.rubies/ruby-2.2.3/lib/ruby/2.2.0/rubygems/version.rb 163 T_STRING 22142 /Users/joerafaniello/.gem/ruby/2.2.3/gems/bundler-1.10.6/lib/bundler/spec_set.rb 111 T_STRING 20407 /Users/joerafaniello/.rubies/ruby-2.2.3/lib/ruby/2.2.0/rubygems/version.rb 225 T_STRING 5280 /Users/joerafaniello/.gem/ruby/2.2.3/gems/bundler-1.10.6/lib/bundler/index.rb 90 T_STRING 4916 /Users/joerafaniello/.rubies/ruby-2.2.3/lib/ruby/2.2.0/rubygems/requirement.rb 92 T_STRING 4730 /Users/joerafaniello/.gem/ruby/2.2.3/gems/bundler-1.10.6/lib/bundler/lockfile_parser.rb 54 T_STRING 4608 /Users/joerafaniello/.rubies/ruby-2.2.3/lib/ruby/2.2.0/rubygems/version.rb 282 T_STRING 4561 /Users/joerafaniello/.gem/ruby/2.2.3/gems/bundler-1.10.6/lib/bundler/index.rb 22 T_STRING 3334 /Users/joerafaniello/.gem/ruby/2.2.3/gems/bundler-1.10.6/lib/bundler/spec_set.rb 134 T_STRING ```
* Fix Style/EmptyLiteralVictor Koronen2015-08-141-2/+2
|
* Fix Style/OpMethodVictor Koronen2015-08-141-2/+2
|
* Fix Style/AliasErick Sasse2015-07-231-1/+1
|
* Fix pending offensesErick Sasse2015-07-191-4/+4
|
* Fix Style/SingleSpaceBeforeFirstArgErick Sasse2015-07-191-1/+1
|
* Fix Style/SpaceAfterCommaErick Sasse2015-07-191-4/+4
|
* Fix Style/SpaceInsideBlockBracesAndre Arko2015-07-181-3/+3
| | | | closes #3853
* Fix Style/SpaceInsideBlockBracesAndre Arko2015-07-181-6/+6
| | | | closes #3850
* [RuboCop] Enable Style/StringLiteralsSamuel E. Giddins2015-07-151-2/+2
|
* [RuboCop] Enable Style/SymbolProcSamuel E. Giddins2015-07-151-2/+2
|
* [RuboCop] Enable Style/EmptyLinesSamuel E. Giddins2015-07-151-1/+0
|
* Merge tag 'v1.9.4'Andre Arko2015-04-131-4/+0
| | | | | | | | Version 1.9.4 Conflicts: lib/bundler/installer.rb lib/bundler/match_platform.rb lib/bundler/source/rubygems.rb
* Fixed a scenario where dependencies fail to resolve when they shouldn't when ↵Keith Shook2015-01-271-3/+7
| | | | using API sources (fixes previously committed test that exposes the issue)
* Add parens to not make Ruby throw a warning on ambiguous * usagePiotr Szotkowski2014-09-061-1/+1
|
* Merge tag 'v1.7.1'Tim Moore2014-08-241-10/+23
|\ | | | | | | | | | | | | | | | | | | | | | | Version 1.7.1 Conflicts: CHANGELOG.md lib/bundler/dsl.rb lib/bundler/index.rb lib/bundler/lockfile_parser.rb lib/bundler/source/rubygems.rb man/gemfile.5.ronn
| * Sort index search results across all sources.Tim Moore2014-08-171-2/+2
| |
| * refactor unmet_dependency_namesAndre Arko2014-08-161-6/+5
| |
| * Detect ambiguous gems.Tim Moore2014-07-301-2/+16
| |
* | use hyphens instead of colons in the version/platform keys.Dan McClory2014-05-111-4/+4
| |
* | use a hash of hashes instead of an hash of arrays.Dan McClory2014-05-111-20/+14
|/
* Avoid threequals operator where possibleAntonio Scandurra2014-03-211-1/+1
|