diff options
970 files changed, 5421 insertions, 6159 deletions
diff --git a/.azure-pipelines/rbreadline.diff b/.azure-pipelines/rbreadline.diff new file mode 100644 index 0000000000..c139577610 --- /dev/null +++ b/.azure-pipelines/rbreadline.diff @@ -0,0 +1,41 @@ +diff --git a/rbreadline.rb b/rbreadline.rb +index c710961..e35408c 100644 +--- a/rbreadline.rb ++++ b/rbreadline.rb +@@ -16,6 +16,7 @@ end + + module RbReadline + require 'etc' ++ require 'io/console' + + RL_LIBRARY_VERSION = "5.2" + RL_READLINE_VERSION = 0x0502 +@@ -1092,6 +1093,9 @@ module RbReadline + @current_readline_init_include_level = 0 + @current_readline_init_lineno = 0 + ++ # Used in windows ++ @is_pipe = false ++ + ENV["HOME"] ||= "#{ENV["HOMEDRIVE"]}#{ENV["HOMEPATH"]}" + if !File.directory? ENV["HOME"] + raise RuntimeError.new("HOME environment variable (or HOMEDRIVE and HOMEPATH) must be set and point to a directory") +@@ -4490,6 +4494,10 @@ module RbReadline + end + + def rl_getc(stream) ++ # below added as test for whether we're connected to a pipe or a keyboard. ++ # Pipe connection is probably running under a test suite. ++ return (stream.getc || EOF rescue EOF) if @is_pipe ++ + while (@kbhit.Call == 0) + # If there is no input, yield the processor for other threads + sleep(@_keyboard_input_timeout) +@@ -4740,6 +4748,7 @@ module RbReadline + def readline_internal_charloop() + lastc = -1 + eof_found = false ++ @is_pipe = (!@rl_outstream.winsize rescue true) + + while (!@rl_done) + lk = @_rl_last_command_was_kill diff --git a/.azure-pipelines/steps.yml b/.azure-pipelines/steps.yml new file mode 100644 index 0000000000..b37a79f328 --- /dev/null +++ b/.azure-pipelines/steps.yml @@ -0,0 +1,39 @@ +steps: + +- task: UseRubyVersion@0 + inputs: + versionSpec: '= 2.4' + +- script: | + ruby -v + ridk version + displayName: 'ruby -v + ridk version' + +- script: | + mkdir tmp + cd tmp + mkdir home + displayName: 'work around readline crash (for https://github.com/bundler/bundler/issues/6902)' + +- script: | + git apply --ignore-space-change --ignore-whitespace .azure-pipelines\rbreadline.diff --directory=C:/hostedtoolcache/windows/Ruby/2.4.3/x64/lib/ruby/site_ruby --unsafe-paths + displayName: 'patch local readline implementation (for https://github.com/bundler/bundler/issues/6907)' + +- script: | + ruby bin/rake spec:deps + displayName: 'ruby bin/rake spec:deps' + +- script: | + gem install --no-document --conservative rspec_junit_formatter + displayName: 'gem install rspec_junit_formatter' + +- script: | + timeout 50m bash -c 'ruby -r rspec_junit_formatter bin/rspec --format progress --format RspecJunitFormatter -o rspec/bundler-junit-results.xml' || exit 0 + displayName: 'ruby bin/rspec' + +- task: PublishTestResults@2 + inputs: + testRunner: JUnit + testResultsFiles: rspec/bundler-junit-results.xml + displayName: Publish test results + condition: succeededOrFailed() diff --git a/.rubocop.yml b/.rubocop.yml index a6412ecb13..586ec9e319 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,140 +1,813 @@ -inherit_from: - - .rubocop_todo.yml - AllCops: - TargetRubyVersion: 1.9 + DisabledByDefault: true + TargetRubyVersion: 2.3 Exclude: - tmp/**/* - lib/bundler/vendor/**/* DisplayCopNames: true + CacheRootDirectory: tmp/rubocop + MaxFilesInCache: 5000 + +# Bundler + +Bundler/DuplicatedGem: + Enabled: true + +Bundler/InsecureProtocolSource: + Enabled: true + +Bundler/OrderedGems: + Enabled: true + +# Gemspec + +Gemspec/OrderedDependencies: + Enabled: true + +Gemspec/RequiredRubyVersion: + Enabled: true # Lint -# They are idiomatic -Lint/AssignmentInCondition: - Enabled: false +Lint/AmbiguousOperator: + Enabled: true -Lint/EndAlignment: - EnforcedStyleAlignWith: variable - AutoCorrect: true +Lint/AmbiguousRegexpLiteral: + Enabled: true + +Lint/BigDecimalNew: + Enabled: true + +Lint/BooleanSymbol: + Enabled: true + +Lint/Debugger: + Enabled: true + +Lint/DeprecatedClassMethods: + Enabled: true + +Lint/DuplicateCaseCondition: + Enabled: true + +Lint/DuplicateMethods: + Enabled: true + +Lint/DuplicatedKey: + Enabled: true + +Lint/EachWithObjectArgument: + Enabled: true + +Lint/ElseLayout: + Enabled: true + +Lint/EmptyEnsure: + Enabled: true + +Lint/EmptyExpression: + Enabled: true + +Lint/EmptyInterpolation: + Enabled: true + +Lint/EndInMethod: + Enabled: true + +Lint/EnsureReturn: + Enabled: true + +Lint/ErbNewArguments: + Enabled: true + +Lint/FlipFlop: + Enabled: true + +Lint/FloatOutOfRange: + Enabled: true + +Lint/FormatParameterMismatch: + Enabled: true + +Lint/ImplicitStringConcatenation: + Enabled: true + +Lint/InheritException: + Enabled: true + +Lint/LiteralAsCondition: + Enabled: true + +Lint/LiteralInInterpolation: + Enabled: true -Lint/UnusedMethodArgument: - Enabled: false +Lint/Loop: + Enabled: true + +Lint/MultipleCompare: + Enabled: true + +Lint/NestedPercentLiteral: + Enabled: true + +Lint/NextWithoutAccumulator: + Enabled: true + +Lint/NonLocalExitFromIterator: + Enabled: true + +Lint/OrderedMagicComments: + Enabled: true + +Lint/ParenthesesAsGroupedExpression: + Enabled: true + +Lint/PercentStringArray: + Enabled: true + +Lint/PercentSymbolArray: + Enabled: true + +Lint/RandOne: + Enabled: true + +Lint/RedundantWithIndex: + Enabled: true + +Lint/RedundantWithObject: + Enabled: true + +Lint/RegexpAsCondition: + Enabled: true + +Lint/RequireParentheses: + Enabled: true + +Lint/RescueException: + Enabled: true + +Lint/RescueType: + Enabled: true + +Lint/ReturnInVoidContext: + Enabled: true + +Lint/SafeNavigationChain: + Enabled: true + +Lint/SafeNavigationConsistency: + Enabled: true Lint/ScriptPermission: + Enabled: true Exclude: - 'lib/bundler/templates/Executable' +Lint/ShadowedArgument: + Enabled: true + +Lint/ShadowingOuterLocalVariable: + Enabled: true + +Lint/StringConversionInInterpolation: + Enabled: true + +Lint/Syntax: + Enabled: true + +Lint/UnderscorePrefixedVariableName: + Enabled: true + +Lint/UnifiedInteger: + Enabled: true + +Lint/UnneededCopDisableDirective: + Enabled: true + +Lint/UnneededCopEnableDirective: + Enabled: true + +Lint/UnneededSplatExpansion: + Enabled: true + +Lint/UnreachableCode: + Enabled: true + +Lint/UnusedBlockArgument: + Enabled: true + +Lint/UriEscapeUnescape: + Enabled: true + +Lint/UriRegexp: + Enabled: true + +Lint/UselessComparison: + Enabled: true + +Lint/UselessElseWithoutRescue: + Enabled: true + +Lint/UselessSetterCall: + Enabled: true + +Lint/Void: + Enabled: true + # Layout Layout/AccessModifierIndentation: + Enabled: true EnforcedStyle: outdent + Exclude: + - 'lib/bundler/cli.rb' + - 'lib/bundler/definition.rb' + - 'lib/bundler/feature_flag.rb' + - 'lib/bundler/gem_helpers.rb' + - 'lib/bundler/index.rb' + - 'lib/bundler/remote_specification.rb' + - 'lib/bundler/shared_helpers.rb' + - 'lib/bundler/source/path.rb' + - 'spec/realworld/gemfile_source_header_spec.rb' + +Layout/AlignArray: + Enabled: true Layout/AlignParameters: + Enabled: true EnforcedStyle: with_fixed_indentation +Layout/BlockAlignment: + Enabled: true + +Layout/CaseIndentation: + Enabled: true + +Layout/ClosingParenthesisIndentation: + Enabled: true + +Layout/CommentIndentation: + Enabled: true + +Layout/ConditionPosition: + Enabled: true + +Layout/DefEndAlignment: + Enabled: true + +Layout/DotPosition: + Enabled: true + EnforcedStyle: trailing + +Layout/ElseAlignment: + Enabled: true + +Layout/EmptyComment: + Enabled: true + +Layout/EmptyLineAfterMagicComment: + Enabled: true + +Layout/EmptyLineBetweenDefs: + Enabled: true + +Layout/EmptyLines: + Enabled: true + +Layout/EmptyLinesAroundAccessModifier: + Enabled: true + +Layout/EmptyLinesAroundArguments: + Enabled: true + +Layout/EmptyLinesAroundBeginBody: + Enabled: true + +Layout/EmptyLinesAroundBlockBody: + Enabled: true + +Layout/EmptyLinesAroundClassBody: + Enabled: true + +Layout/EmptyLinesAroundExceptionHandlingKeywords: + Enabled: true + +Layout/EmptyLinesAroundMethodBody: + Enabled: true + +Layout/EmptyLinesAroundModuleBody: + Enabled: true + +Layout/EndAlignment: + Enabled: true + EnforcedStyleAlignWith: variable + AutoCorrect: true + +Layout/EndOfLine: + Enabled: true + +Layout/ExtraSpacing: + Enabled: true + +Layout/FirstParameterIndentation: + Enabled: true + +Layout/IndentArray: + Enabled: true + EnforcedStyle: consistent + +Layout/IndentAssignment: + Enabled: true + +Layout/IndentHash: + Enabled: true + EnforcedStyle: special_inside_parentheses + +Layout/IndentationConsistency: + Enabled: true + +Layout/IndentationWidth: + Enabled: true + +Layout/InitialIndentation: + Enabled: true + +Layout/LeadingBlankLines: + Enabled: true + +Layout/LeadingCommentSpace: + Enabled: true + +Layout/MultilineArrayBraceLayout: + Enabled: true + +Layout/MultilineBlockLayout: + Enabled: true + +Layout/MultilineHashBraceLayout: + Enabled: true + +Layout/MultilineMethodCallBraceLayout: + Enabled: true + +Layout/MultilineMethodDefinitionBraceLayout: + Enabled: true + Layout/MultilineOperationIndentation: + Enabled: true EnforcedStyle: indented +Layout/SpaceBeforeComma: + Enabled: true + +Layout/SpaceBeforeComment: + Enabled: true + +Layout/SpaceBeforeFirstArg: + Enabled: true + +Layout/SpaceBeforeSemicolon: + Enabled: true + +Layout/SpaceInLambdaLiteral: + Enabled: true + +Layout/SpaceInsideArrayLiteralBrackets: + Enabled: true + +Layout/SpaceInsideArrayPercentLiteral: + Enabled: true + Layout/SpaceInsideBlockBraces: + Enabled: true SpaceBeforeBlockParameters: false -Layout/DotPosition: - EnforcedStyle: trailing +Layout/SpaceInsideHashLiteralBraces: + Enabled: true + +Layout/SpaceInsideParens: + Enabled: true + +Layout/SpaceInsidePercentLiteralDelimiters: + Enabled: true + +Layout/SpaceInsideRangeLiteral: + Enabled: true + +Layout/SpaceInsideReferenceBrackets: + Enabled: true + +Layout/SpaceInsideStringInterpolation: + Enabled: true + +Layout/Tab: + Enabled: true + +Layout/TrailingBlankLines: + Enabled: true + +Layout/TrailingWhitespace: + Enabled: true + +# Naming + +Naming/AsciiIdentifiers: + Enabled: true + +Naming/BinaryOperatorParameterName: + Enabled: true + +Naming/ClassAndModuleCamelCase: + Enabled: true + +Naming/ConstantName: + Enabled: true + +Naming/FileName: + Enabled: true + +Naming/HeredocDelimiterCase: + Enabled: true + +Naming/MethodName: + Enabled: true + +Naming/UncommunicativeBlockParamName: + Enabled: true + +Naming/VariableName: + Enabled: true + +Naming/VariableNumber: + Enabled: true + +# Performance + +Performance/Casecmp: + Enabled: true + +Performance/CompareWithBlock: + Enabled: true + +Performance/Count: + Enabled: true + +Performance/Detect: + Enabled: true + +Performance/DoubleStartEndWith: + Enabled: true + +Performance/EndWith: + Enabled: true + +Performance/FixedSize: + Enabled: true + +Performance/LstripRstrip: + Enabled: true + +Performance/RedundantSortBy: + Enabled: true + +Performance/RegexpMatch: + Enabled: true + +Performance/ReverseEach: + Enabled: true + +Performance/Sample: + Enabled: true + +Performance/Size: + Enabled: true + +Performance/StartWith: + Enabled: true + +Performance/StringReplacement: + Enabled: true + +Performance/TimesMap: + Enabled: true + +Performance/UriDefaultParser: + Enabled: true + +# Security + +Security/JSONLoad: + Enabled: true # Style Style/Alias: + Enabled: true EnforcedStyle: prefer_alias_method -Style/FrozenStringLiteralComment: +Style/AndOr: + Enabled: true EnforcedStyle: always -Style/MultilineBlockChain: - Enabled: false +Style/ArrayJoin: + Enabled: true -Style/PerlBackrefs: - Enabled: false +Style/AsciiComments: + Enabled: true -Style/SingleLineBlockParams: - Enabled: false +Style/Attr: + Enabled: true -Style/TrivialAccessors: - Enabled: false +Style/BarePercentLiterals: + Enabled: true -# We adopted raise instead of fail. -Style/SignalException: - EnforcedStyle: only_raise +Style/BeginBlock: + Enabled: true -Style/StringLiterals: - EnforcedStyle: double_quotes +Style/BlockComments: + Enabled: true -Style/StringLiteralsInInterpolation: - EnforcedStyle: double_quotes +Style/BlockDelimiters: + Enabled: true -# Having these make it easier to *not* forget to add one when adding a new -# value and you can simply copy the previous line. -Style/TrailingCommaInLiteral: - EnforcedStyleForMultiline: comma +Style/BracesAroundHashParameters: + Enabled: true -Style/TrailingUnderscoreVariable: - Enabled: false +Style/CharacterLiteral: + Enabled: true -# `String.new` is preferred style with enabled frozen string literal -Style/EmptyLiteral: - Enabled: false +Style/ClassCheck: + Enabled: true -# 1.8.7 support +Style/ClassMethods: + Enabled: true + +Style/ClassVars: + Enabled: true + +Style/ColonMethodCall: + Enabled: true + +Style/ColonMethodDefinition: + Enabled: true + +Style/CommandLiteral: + Enabled: true + +Style/CommentAnnotation: + Enabled: true + +Style/DefWithParentheses: + Enabled: true + +Style/Dir: + Enabled: true + +Style/DoubleNegation: + Enabled: true + +Style/EachForSimpleLoop: + Enabled: true + +Style/EmptyBlockParameter: + Enabled: true + +Style/EmptyCaseCondition: + Enabled: true + +Style/EmptyElse: + Enabled: true + +Style/EmptyLambdaParameter: + Enabled: true + +Style/Encoding: + Enabled: true + +Style/EndBlock: + Enabled: true + +Style/EvenOdd: + Enabled: true + +Style/For: + Enabled: true + +Style/FormatString: + Enabled: true + +Style/FrozenStringLiteralComment: + Enabled: true + EnforcedStyle: always +# 1.8.7 support Style/HashSyntax: + Enabled: true EnforcedStyle: hash_rockets -Style/Lambda: - Enabled: false +Style/IdenticalConditionalBranches: + Enabled: true + +Style/IfInsideElse: + Enabled: true + +Style/IfUnlessModifierOfIfUnless: + Enabled: true + +Style/IfWithSemicolon: + Enabled: true + +Style/InfiniteLoop: + Enabled: true + +Style/LambdaCall: + Enabled: true + +Style/LineEndConcatenation: + Enabled: true + +Style/MethodCallWithoutArgsParentheses: + Enabled: true + +Style/MethodDefParentheses: + Enabled: true + +Style/MinMax: + Enabled: true + +Style/MixinGrouping: + Enabled: true + +Style/MultilineIfThen: + Enabled: true + +Style/MultilineMemoization: + Enabled: true + +Style/MultilineTernaryOperator: + Enabled: true + +Style/MultipleComparison: + Enabled: true + +Style/MutableConstant: + Enabled: true + +Style/NegatedIf: + Enabled: true + +Style/NegatedWhile: + Enabled: true + +Style/NestedModifier: + Enabled: true + +Style/NestedParenthesizedCalls: + Enabled: true + +Style/NestedTernaryOperator: + Enabled: true + +Style/Next: + Enabled: true + +Style/NilComparison: + Enabled: true + +Style/NonNilCheck: + Enabled: true + +Style/Not: + Enabled: true + +Style/NumericLiteralPrefix: + Enabled: true + +Style/NumericLiterals: + Enabled: true + +Style/OneLineConditional: + Enabled: true + +Style/OptionalArguments: + Enabled: true + +Style/OrAssignment: + Enabled: true + +Style/ParallelAssignment: + Enabled: true -Style/EachWithObject: - Enabled: false +Style/ParenthesesAroundCondition: + Enabled: true -Style/SpecialGlobalVars: - Enabled: false +Style/PercentLiteralDelimiters: + Enabled: true -Style/TrailingCommaInArguments: - Enabled: false +Style/PercentQLiterals: + Enabled: true -Performance/FlatMap: - Enabled: false +Style/PreferredHashMethods: + Enabled: true -Security/YAMLLoad: - Enabled: false +Style/Proc: + Enabled: true -# Metrics +Style/RandomWithOffset: + Enabled: true -# We've chosen to use Rubocop only for style, and not for complexity or quality checks. -Metrics/ClassLength: - Enabled: false +Style/RedundantBegin: + Enabled: true -Metrics/ModuleLength: - Enabled: false +Style/RedundantConditional: + Enabled: true -Metrics/MethodLength: - Enabled: false +Style/RedundantException: + Enabled: true -Metrics/BlockNesting: - Enabled: false +Style/RedundantParentheses: + Enabled: true -Metrics/AbcSize: - Enabled: false +Style/RedundantSelf: + Enabled: true -Metrics/CyclomaticComplexity: - Enabled: false +Style/RegexpLiteral: + Enabled: true + +Style/RescueModifier: + Enabled: true + +Style/RescueStandardError: + Enabled: true + +Style/SelfAssignment: + Enabled: true + +Style/Semicolon: + Enabled: true + +# We adopted raise instead of fail. +Style/SignalException: + Enabled: true + EnforcedStyle: only_raise + +Style/SingleLineMethods: + Enabled: true + +Style/StabbyLambdaParentheses: + Enabled: true + +Style/StderrPuts: + Enabled: true + +Style/StringLiterals: + Enabled: true + EnforcedStyle: double_quotes + +Style/StringLiteralsInInterpolation: + Enabled: true + EnforcedStyle: double_quotes + +Style/StructInheritance: + Enabled: true + +Style/SymbolArray: + Enabled: true + EnforcedStyle: brackets + +Style/SymbolLiteral: + Enabled: true + +Style/SymbolProc: + Enabled: true + +Style/TernaryParentheses: + Enabled: true + +Style/TrailingBodyOnClass: + Enabled: true + +Style/TrailingBodyOnMethodDefinition: + Enabled: true + +Style/TrailingBodyOnModule: + Enabled: true + +# Having these make it easier to *not* forget to add one when adding a new +# value and you can simply copy the previous line. +Style/TrailingCommaInArrayLiteral: + Enabled: true + EnforcedStyleForMultiline: comma + +Style/TrailingCommaInHashLiteral: + Enabled: true + EnforcedStyleForMultiline: comma -Metrics/ParameterLists: - Enabled: false +Style/TrailingMethodEndStatement: + Enabled: true -Metrics/BlockLength: - Enabled: false +Style/UnlessElse: + Enabled: true -# It will be obvious which code is complex, Rubocop should only lint simple -# rules for us. -Metrics/PerceivedComplexity: - Enabled: false +Style/YodaCondition: + Enabled: true diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml deleted file mode 100644 index e8c49c05c4..0000000000 --- a/.rubocop_todo.yml +++ /dev/null @@ -1,385 +0,0 @@ -# This configuration was generated by -# `rubocop --auto-gen-config` -# on 2017-09-17 16:46:43 +0900 using RuboCop version 0.50.0. -# The point is for the user to remove these configuration records -# one by one as the offenses are removed from the code base. -# Note that changes in the inspected code, or installation of new -# versions of RuboCop, may require this file to be generated again. - -# Offense count: 10 -# Cop supports --auto-correct. -# Configuration parameters: SupportedStyles, IndentationWidth. -# SupportedStyles: special_inside_parentheses, consistent, align_brackets -Layout/IndentArray: - EnforcedStyle: consistent - -# Offense count: 40 -# Cop supports --auto-correct. -# Configuration parameters: EnforcedStyle, SupportedStyles. -# SupportedStyles: auto_detection, squiggly, active_support, powerpack, unindent -Layout/IndentHeredoc: - Enabled: false - -# Offense count: 3 -# Cop supports --auto-correct. -# Configuration parameters: EnforcedStyle, SupportedStyles, IndentationWidth. -# SupportedStyles: aligned, indented, indented_relative_to_receiver -Layout/MultilineMethodCallIndentation: - Exclude: - - 'lib/bundler/cli/common.rb' - - 'spec/bundler/plugin/source_list_spec.rb' - -# Offense count: 31 -Lint/AmbiguousBlockAssociation: - Exclude: - - 'lib/bundler/definition.rb' - - 'lib/bundler/resolver.rb' - - 'spec/bundler/compact_index_client/updater_spec.rb' - - 'spec/commands/init_spec.rb' - - 'spec/commands/install_spec.rb' - - 'spec/install/gems/flex_spec.rb' - - 'spec/lock/lockfile_bundler_1_spec.rb' - - 'spec/lock/lockfile_spec.rb' - - 'spec/other/major_deprecation_spec.rb' - - 'spec/runtime/setup_spec.rb' - - 'spec/support/helpers.rb' - - 'spec/support/indexes.rb' - -# Offense count: 2 -Lint/EmptyWhen: - Exclude: - - 'lib/bundler/friendly_errors.rb' - - 'spec/support/builders.rb' - -# Offense count: 3 -Lint/HandleExceptions: - Exclude: - - 'lib/bundler/psyched_yaml.rb' - - 'lib/bundler/vendored_persistent.rb' - -# Offense count: 1 -Lint/IneffectiveAccessModifier: - Exclude: - - 'lib/bundler/settings.rb' - -# Offense count: 6 -Lint/InterpolationCheck: - Exclude: - - 'lib/bundler/dsl.rb' - - 'lib/bundler/installer/standalone.rb' - - 'spec/commands/binstubs_spec.rb' - - 'spec/install/gems/standalone_spec.rb' - - 'spec/other/major_deprecation_spec.rb' - -# Offense count: 3 -Lint/NestedMethodDefinition: - Exclude: - - 'lib/bundler/inline.rb' - - 'spec/support/builders.rb' - -# Offense count: 5 -Lint/RescueException: - Exclude: - - 'lib/bundler/cli.rb' - - 'lib/bundler/dsl.rb' - - 'lib/bundler/friendly_errors.rb' - - 'lib/bundler/rubygems_integration.rb' - - 'lib/bundler/worker.rb' - -# Offense count: 29 -Lint/RescueWithoutErrorClass: - Enabled: false - -# Offense count: 2 -Lint/ShadowedException: - Exclude: - - 'lib/bundler.rb' - - 'lib/bundler/rubygems_integration.rb' - -# Offense count: 1 -# Configuration parameters: ContextCreatingMethods, MethodCreatingMethods. -Lint/UselessAccessModifier: - Exclude: - - 'lib/bundler/fetcher.rb' - -# Offense count: 6 -Lint/UselessAssignment: - Exclude: - - 'lib/bundler/index.rb' - - 'lib/bundler/installer.rb' - -# Offense count: 2564 -# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns. -# URISchemes: http, https -Metrics/LineLength: - Max: 207 - -# Offense count: 1 -Naming/AccessorMethodName: - Exclude: - - 'lib/bundler/source/git.rb' - -# Offense count: 31 -# Configuration parameters: Blacklist. -# Blacklist: END, (?-mix:EO[A-Z]{1}) -Naming/HeredocDelimiterNaming: - Enabled: false - -# Offense count: 9 -# Configuration parameters: NamePrefix, NamePrefixBlacklist, NameWhitelist. -# NamePrefix: is_, has_, have_ -# NamePrefixBlacklist: is_, has_, have_ -# NameWhitelist: is_a? -Naming/PredicateName: - Exclude: - - 'spec/**/*' - - 'lib/bundler/definition.rb' - - 'lib/bundler/installer/parallel_installer.rb' - - 'lib/bundler/settings.rb' - - 'lib/bundler/source/git.rb' - - 'lib/bundler/source/git/git_proxy.rb' - - 'lib/bundler/source/path.rb' - -# Offense count: 2 -Performance/Caller: - Exclude: - - 'lib/bundler/rubygems_integration.rb' - - 'spec/support/builders.rb' - -# Offense count: 9 -# Cop supports --auto-correct. -# Configuration parameters: AutoCorrect. -Performance/HashEachMethods: - Exclude: - - 'lib/bundler/definition.rb' - - 'lib/bundler/dependency.rb' - - 'lib/bundler/dsl.rb' - - 'lib/bundler/index.rb' - - 'lib/bundler/plugin.rb' - - 'spec/install/gems/standalone_spec.rb' - - 'spec/support/builders.rb' - - 'spec/support/helpers.rb' - -# Offense count: 7 -# Cop supports --auto-correct. -Performance/RedundantBlockCall: - Exclude: - - 'lib/bundler/gem_helper.rb' - - 'lib/bundler/retry.rb' - - 'lib/bundler/shared_helpers.rb' - - 'spec/support/helpers.rb' - -# Offense count: 2 -# Cop supports --auto-correct. -Performance/RedundantMatch: - Exclude: - - 'lib/bundler/definition.rb' - - 'lib/bundler/lockfile_parser.rb' - -# Offense count: 6 -# Cop supports --auto-correct. -# Configuration parameters: MaxKeyValuePairs. -Performance/RedundantMerge: - Exclude: - - 'lib/bundler/cli/gem.rb' - -# Offense count: 4 -Security/Eval: - Exclude: - - 'lib/bundler.rb' - - 'lib/bundler/endpoint_specification.rb' - - 'spec/support/streams.rb' - -# Offense count: 6 -Security/MarshalLoad: - Exclude: - - 'lib/bundler.rb' - - 'spec/install/gems/resolving_spec.rb' - - 'spec/support/artifice/compact_index.rb' - - 'spec/support/artifice/endpoint.rb' - -# Offense count: 3 -Style/CaseEquality: - Exclude: - - 'lib/bundler/match_platform.rb' - - 'lib/bundler/rubygems_ext.rb' - -# Offense count: 27 -# Configuration parameters: EnforcedStyle, SupportedStyles. -# SupportedStyles: nested, compact -Style/ClassAndModuleChildren: - Enabled: false - -# Offense count: 9 -# Cop supports --auto-correct. -# Configuration parameters: EnforcedStyle, SupportedStyles, SingleLineConditionsOnly, IncludeTernaryExpressions. -# SupportedStyles: assign_to_condition, assign_inside_condition -Style/ConditionalAssignment: - Exclude: - - 'lib/bundler/cli.rb' - - 'lib/bundler/cli/gem.rb' - - 'lib/bundler/cli/platform.rb' - - 'lib/bundler/dsl.rb' - - 'lib/bundler/lazy_specification.rb' - - 'lib/bundler/psyched_yaml.rb' - - 'lib/bundler/rubygems_integration.rb' - - 'lib/bundler/source/git.rb' - - 'lib/bundler/source/rubygems.rb' - -# Offense count: 167 -Style/Documentation: - Enabled: false - -# Offense count: 17 -# Cop supports --auto-correct. -# Configuration parameters: EnforcedStyle, SupportedStyles. -# SupportedStyles: compact, expanded -Style/EmptyMethod: - Exclude: - - 'exe/bundle_ruby' - - 'lib/bundler/cli.rb' - - 'lib/bundler/plugin/api/source.rb' - - 'lib/bundler/rubygems_integration.rb' - - 'lib/bundler/ui/silent.rb' - - 'spec/support/artifice/fail.rb' - -# Offense count: 5 -# Cop supports --auto-correct. -# Configuration parameters: EnforcedStyle, SupportedStyles, AutoCorrectEncodingComment. -# SupportedStyles: when_needed, always, never -Style/Encoding: - Exclude: - - 'Rakefile' - - 'bundler.gemspec' - - 'lib/bundler/friendly_errors.rb' - - 'spec/bundler/bundler_spec.rb' - - 'spec/install/gemfile_spec.rb' - - 'spec/install/gemspecs_spec.rb' - - 'spec/quality_es_spec.rb' - -# Offense count: 1 -# Configuration parameters: SupportedStyles. -# SupportedStyles: annotated, template -Style/FormatStringToken: - EnforcedStyle: template - -# Offense count: 2 -# Configuration parameters: AllowedVariables. -Style/GlobalVars: - Exclude: - - 'lib/bundler/cli.rb' - - 'spec/spec_helper.rb' - -# Offense count: 12 -# Configuration parameters: MinBodyLength. -Style/GuardClause: - Exclude: - - 'lib/bundler/cli/cache.rb' - - 'lib/bundler/cli/install.rb' - - 'lib/bundler/cli/outdated.rb' - - 'lib/bundler/cli/package.rb' - - 'lib/bundler/definition.rb' - - 'lib/bundler/installer.rb' - - 'lib/bundler/runtime.rb' - - 'lib/bundler/source/path/installer.rb' - - 'lib/bundler/source_list.rb' - - 'spec/commands/newgem_spec.rb' - - 'spec/support/sometimes.rb' - -# Offense count: 9 -# Cop supports --auto-correct. -# Configuration parameters: InverseMethods, InverseBlocks. -Style/InverseMethods: - Exclude: - - 'lib/bundler/cli/doctor.rb' - - 'lib/bundler/definition.rb' - - 'lib/bundler/dsl.rb' - - 'lib/bundler/index.rb' - - 'lib/bundler/resolver.rb' - - 'lib/bundler/resolver/spec_group.rb' - -# Offense count: 6 -Style/MethodMissing: - Exclude: - - 'lib/bundler/dep_proxy.rb' - - 'lib/bundler/dsl.rb' - - 'lib/bundler/lazy_specification.rb' - - 'lib/bundler/plugin/dsl.rb' - - 'lib/bundler/remote_specification.rb' - - 'spec/support/builders.rb' - -# Offense count: 2 -# Configuration parameters: EnforcedStyle, SupportedStyles. -# SupportedStyles: module_function, extend_self -Style/ModuleFunction: - Exclude: - - 'lib/bundler/shared_helpers.rb' - - 'spec/support/path.rb' - -# Offense count: 10 -# Cop supports --auto-correct. -Style/MultilineIfModifier: - Exclude: - - 'bin/with_rubygems' - - 'lib/bundler/installer.rb' - - 'lib/bundler/psyched_yaml.rb' - - 'lib/bundler/rubygems_ext.rb' - - 'lib/bundler/runtime.rb' - - 'lib/bundler/source/rubygems.rb' - -# Offense count: 5 -# Cop supports --auto-correct. -# Configuration parameters: AutoCorrect, EnforcedStyle, SupportedStyles. -# SupportedStyles: predicate, comparison -Style/NumericPredicate: - Exclude: - - 'spec/**/*' - - 'lib/bundler/gem_helper.rb' - - 'lib/bundler/mirror.rb' - - 'lib/bundler/source/path.rb' - -# Offense count: 24 -# Cop supports --auto-correct. -# Configuration parameters: EnforcedStyle, SupportedStyles. -# SupportedStyles: compact, exploded -Style/RaiseArgs: - Exclude: - - 'lib/bundler/cli/install.rb' - - 'lib/bundler/deployment.rb' - - 'lib/bundler/fetcher/downloader.rb' - - 'lib/bundler/fetcher/index.rb' - - 'lib/bundler/installer/standalone.rb' - - 'lib/bundler/rubygems_integration.rb' - - 'lib/bundler/shared_helpers.rb' - - 'lib/bundler/source/git/git_proxy.rb' - - 'lib/bundler/source/rubygems/remote.rb' - - 'spec/bundler/endpoint_specification_spec.rb' - - 'spec/bundler/fetcher/dependency_spec.rb' - - 'spec/bundler/fetcher/downloader_spec.rb' - - 'spec/bundler/fetcher/index_spec.rb' - - 'spec/bundler/rubygems_integration_spec.rb' - - 'spec/bundler/shared_helpers_spec.rb' - -# Offense count: 9 -# Cop supports --auto-correct. -# Configuration parameters: EnforcedStyleForMultiline, SupportedStylesForMultiline. -# SupportedStylesForMultiline: comma, consistent_comma, no_comma -Style/TrailingCommaInLiteral: - Exclude: - - 'lib/bundler/cli/gem.rb' - - 'lib/bundler/fetcher.rb' - - 'lib/bundler/gem_helpers.rb' - - 'lib/bundler/graph.rb' - - 'lib/bundler/ruby_version.rb' - - 'lib/bundler/similarity_detector.rb' - - 'spec/support/artifice/endpoint.rb' - -# Offense count: 14 -# Cop supports --auto-correct. -Style/UnneededInterpolation: - Exclude: - - 'lib/bundler/cli/config.rb' - - 'lib/bundler/env.rb' - - 'spec/bundler/shared_helpers_spec.rb' - - 'spec/cache/git_spec.rb' - - 'spec/commands/exec_spec.rb' diff --git a/.travis.yml b/.travis.yml index a1ab44d7f1..cff8821480 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,10 +1,10 @@ language: ruby +dist: xenial script: rake spec:travis before_script: - travis_retry rake -E 'module ::Bundler; VERSION = "0.0.0"; end' override_version - travis_retry rake spec:travis:deps - travis_retry rake man:build - - travis_retry rake spec:rubygems:clone_rubygems_$RGV branches: only: @@ -14,6 +14,10 @@ branches: - /.+-dev$/ - /.+-stable$/ +cache: + directories: + - tmp/rubocop + notifications: slack: on_success: change @@ -21,63 +25,51 @@ notifications: rooms: - secure: JxBi7DDJGkIF/7f/FSN/HUHpvV4EKfQccZHTPd1b2pNJn3GXo6u+tNVbAw2WjxYzPyPQI3ZcYBCU9SEXp/i7VmG8uMzh8Kyildw+miSKYKVb90uYqcsXWzbxwyNBgJLvyDkzST45H5lgnyAicee3WkFes/WDZikIajbH7ztdb04= -addons: - code_climate: - repo_token: - secure: "TrzIv116JLGUxm6PAUskCYrv8KTDguncKROVwbnjVPKTGDAgoDderd8JUdDEXrKoZ9qGLD2TPYKExt9/QDl71E+qHdWnVqWv4HKCUk2P9z/VLKzHuggOUBkCXiJUhjywUieCJhI3N92bfq2EjSBbu2/OFHqWOjLQ+QCooTEBjv8=" - rvm: - - 2.6.0 - - 2.5.3 - - 2.4.5 - - 2.3.8 + - 2.6.3 + - 2.5.5 + - 2.4.6 stages: - linting - test -# Rubygems versions MUST be available as rake tasks -# see Rakefile:125 for the list of possible RGV values env: # We need to know if changes to rubygems will break bundler on release + - RGV=master BUNDLER_SPEC_SUB_VERSION=3.0.0 - RGV=master # Test the latest rubygems release with all of our supported rubies - - RGV=v3.0.1 + - RGV=v3.0.3 BUNDLER_SPEC_SUB_VERSION=3.0.0 + - RGV=v3.0.3 jobs: include: - - rvm: 2.6.0 + - rvm: 2.6.3 script: rake rubocop stage: linting - # Ruby 2.5, Rubygems 2.7 and up - - rvm: 2.5.3 - env: RGV=v2.7.7 - stage: test - # Ruby 2.4, Rubygems 2.6 and up - - rvm: 2.4.5 - env: RGV=v2.6.14 + # Ruby 2.3 also tested in 2.x mode + - rvm: 2.3.8 + env: RGV=master stage: test - - rvm: 2.4.5 - env: RGV=v2.7.7 + - rvm: 2.3.8 + env: RGV=v3.0.3 stage: test - # Ruby 2.3, Rubygems 2.5 and up - - rvm: 2.3.7 - env: RGV=v2.5.2 + # Ruby 2.5, Rubygems 2.7 + - rvm: 2.5.5 + env: RGV=v2.7.9 stage: test - - rvm: 2.3.7 + # Ruby 2.4, Rubygems 2.6 + - rvm: 2.4.6 env: RGV=v2.6.14 stage: test - - rvm: 2.3.7 - env: RGV=v2.7.7 + # Ruby 2.3, Rubygems 2.5 + - rvm: 2.3.8 + env: RGV=v2.5.2 stage: test # Ruby-head (we want to know how we're doing, but not fail the build) - rvm: ruby-head env: RGV=master stage: test - # 1.x mode (we want to keep stuff passing in 1.x mode for now) - - rvm: 2.6.0 - env: RGV=v2.7.7 BUNDLER_SPEC_SUB_VERSION=1.98 - stage: test allow_failures: - rvm: ruby-head diff --git a/CHANGELOG.md b/CHANGELOG.md index d86054b2ff..7eafe43317 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,48 @@ +## 2.0.1 (2019-01-04) + +Changes: + + - Relaxed RubyGems requirement to `>= 2.5.0` ([#6867](https://github.com/bundler/bundler/pull/6867)) + +## 2.0.0 (2019-01-03) + +No new changes + +## 2.0.0.pre.3 (2018-12-30) + +Breaking Changes: + + - Bundler 2 now requires RubyGems 3.0.0 at minimum + +Changes: + + - Ruby 2.6 compatibility fixes (@segiddins) + - Import changes from Bundler 1.17.3 release + +Note: To upgrade your Gemfile to Bundler 2 you will need to run `bundle update --bundler` + +## 2.0.0.pre.2 (2018-11-27) + +Breaking Changes: + + - `:github` source in the Gemfile now defaults to using HTTPS + +Changes + + - Add compatibility for Bundler merge into ruby-src + +Note: To upgrade your Gemfile to Bundler 2 you will need to run `bundle update --bundler` + +## 2.0.0.pre.1 (2018-11-09) + +Breaking Changes: + + - Dropped support for versions of Ruby < 2.3 + - Dropped support for version of RubyGems < 2.5 + - Moved error messages from STDOUT to STDERR + +Note: To upgrade your Gemfile to Bundler 2 you will need to run `bundle update --bundler` + ## 1.17.3 (2018-12-27) Bugfixes: diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index fc4d57388d..cca34071bf 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -61,7 +61,7 @@ Once the admins get involved, they will follow a documented series of steps and You may get in touch with the Bundler admin team through any of the following methods: -- Email [the Bundler maintainers](http://bundler.io/contributors.html) as a group at [team@bundler.io](mailto:team@bundler.io). +- Email [the Bundler maintainers](https://bundler.io/contributors.html) as a group at [team@bundler.io](mailto:team@bundler.io). - Directly message any maintainer in private (through Slack, Twitter, email, or other available option) if that is more comfortable ### Further Enforcement @@ -1,6 +1,5 @@ [![Version ](https://img.shields.io/gem/v/bundler.svg?style=flat)](https://rubygems.org/gems/bundler) [![Build Status](https://img.shields.io/travis/bundler/bundler/master.svg?style=flat)](https://travis-ci.org/bundler/bundler) -[![Code Climate](https://img.shields.io/codeclimate/maintainability/bundler/bundler.svg?style=flat)](https://codeclimate.com/github/bundler/bundler) [![Inline docs ](http://inch-ci.org/github/bundler/bundler.svg?style=flat)](http://inch-ci.org/github/bundler/bundler) [![Slack ](http://bundler-slackin.herokuapp.com/badge.svg)](http://bundler-slackin.herokuapp.com) @@ -29,7 +28,7 @@ bundle install bundle exec rspec ``` -See [bundler.io](http://bundler.io) for the full documentation. +See [bundler.io](https://bundler.io) for the full documentation. ### Troubleshooting @@ -1,26 +1,16 @@ -# -*- encoding: utf-8 -*- # frozen_string_literal: true $:.unshift File.expand_path("../lib", __FILE__) -require "shellwords" require "benchmark" -NULL_DEVICE = (Gem.win_platform? ? "NUL" : "/dev/null") -RUBYGEMS_REPO = if `git -C "#{File.expand_path("..")}" remote --verbose 2> #{NULL_DEVICE}` =~ /rubygems/i +RUBYGEMS_REPO = if `git -C "#{File.expand_path("..")}" remote --verbose 2> #{IO::NULL}` =~ /rubygems/i File.expand_path("..") else File.expand_path("tmp/rubygems") end -def bundler_spec - @bundler_spec ||= Gem::Specification.load("bundler.gemspec") -end - -def safe_task(&block) - yield - true -rescue - false +def development_dependencies + @development_dependencies ||= Gem::Specification.load("bundler.gemspec").development_dependencies end # Benchmark task execution @@ -37,29 +27,32 @@ module Rake end end +desc "Run specs" +task :spec do + sh("bin/rspec") +end + namespace :spec do + def safe_task(&block) + yield + true + rescue StandardError + false + end + desc "Ensure spec dependencies are installed" task :deps do - deps = Hash[bundler_spec.development_dependencies.map do |d| + deps = Hash[development_dependencies.map do |d| [d.name, d.requirement.to_s] end] - deps["rubocop"] ||= "= 0.50.0" if RUBY_VERSION >= "2.0.0" # can't go in the gemspec because of the ruby version requirement - # JRuby can't build ronn or rdiscount, so we skip that - if defined?(RUBY_ENGINE) && RUBY_ENGINE == "jruby" - deps.delete("ronn") - deps.delete("rdiscount") - end + # JRuby can't build ronn, so we skip that + deps.delete("ronn") if defined?(RUBY_ENGINE) && RUBY_ENGINE == "jruby" gem_install_command = "install --no-document --conservative " + deps.sort_by {|name, _| name }.map do |name, version| "'#{name}:#{version}'" end.join(" ") sh %(#{Gem.ruby} -S gem #{gem_install_command}) - - # Download and install gems used inside tests - $LOAD_PATH.unshift("./spec") - require "support/rubygems_ext" - Spec::Rubygems.setup end namespace :travis do @@ -68,250 +61,236 @@ namespace :spec do system "sudo sed -i 's/1000::/1000:Travis:/g' /etc/passwd" # Strip secure_path so that RVM paths transmit through sudo -E system "sudo sed -i '/secure_path/d' /etc/sudoers" + # Refresh packages index that the ones we need can be installed + sh "sudo apt-get update" # Install groff so ronn can generate man/help pages sh "sudo apt-get install groff-base -y" # Install graphviz so that the viz specs can run - sh "sudo apt-get install graphviz -y 2>&1 | tail -n 2" + sh "sudo apt-get install graphviz -y" # Install the gems with a consistent version of RubyGems - sh "gem update --system 2.6.13" - - $LOAD_PATH.unshift("./spec") - require "support/rubygems_ext" - Spec::Rubygems::DEPS["codeclimate-test-reporter"] = "~> 0.6.0" if RUBY_VERSION >= "2.2.0" + sh "gem update --system 3.0.3" # Install the other gem deps, etc Rake::Task["spec:deps"].invoke end end -end -begin - rspec = bundler_spec.development_dependencies.find {|d| d.name == "rspec" } - gem "rspec", rspec.requirement.to_s - require "rspec/core/rake_task" - - desc "Run specs" - RSpec::Core::RakeTask.new - task :spec => "man:build" - - if RUBY_VERSION >= "2.0.0" - # can't go in the gemspec because of the ruby version requirement - gem "rubocop", "= 0.50.0" - require "rubocop/rake_task" - rubocop = RuboCop::RakeTask.new - rubocop.options = ["--parallel"] + task :clean do + rm_rf "tmp" end - namespace :spec do - task :clean do - rm_rf "tmp" - end - - desc "Run the real-world spec suite" - task :realworld => %w[set_realworld spec] - - namespace :realworld do - desc "Re-record cassettes for the realworld specs" - task :record => %w[set_record realworld] - - task :set_record do - ENV["BUNDLER_SPEC_FORCE_RECORD"] = "TRUE" - end - end - - task :set_realworld do - ENV["BUNDLER_REALWORLD_TESTS"] = "1" - end - - desc "Run the spec suite with the sudo tests" - task :sudo => %w[set_sudo spec clean_sudo] + desc "Run the real-world spec suite" + task :realworld => %w[set_realworld spec] - task :set_sudo do - ENV["BUNDLER_SUDO_TESTS"] = "1" - end + namespace :realworld do + desc "Re-record cassettes for the realworld specs" + task :record => %w[set_record realworld] - task :clean_sudo do - puts "Cleaning up sudo test files..." - system "sudo rm -rf #{File.expand_path("../tmp/sudo_gem_home", __FILE__)}" + task :set_record do + ENV["BUNDLER_SPEC_FORCE_RECORD"] = "TRUE" end + end - # RubyGems specs by version - namespace :rubygems do - rubyopt = ENV["RUBYOPT"] - # When editing this list, also edit .travis.yml! - branches = %w[master] - releases = %w[v2.5.2 v2.6.14 v2.7.7 v3.0.1] - (branches + releases).each do |rg| - desc "Run specs with RubyGems #{rg}" - RSpec::Core::RakeTask.new(rg) do |t| - t.rspec_opts = %w[--format progress --color] - t.ruby_opts = %w[-w] - end + task :set_realworld do + ENV["BUNDLER_REALWORLD_TESTS"] = "1" + end - # Create tasks like spec:rubygems:v1.8.3:sudo to run the sudo specs - namespace rg do - task :sudo => ["set_sudo", rg, "clean_sudo"] - task :realworld => ["set_realworld", rg] - end + desc "Run the spec suite with the sudo tests" + task :sudo => %w[set_sudo spec clean_sudo] - task "clone_rubygems_#{rg}" do - unless File.directory?(RUBYGEMS_REPO) - system("git clone https://github.com/rubygems/rubygems.git tmp/rubygems") - end - hash = nil - - if RUBYGEMS_REPO.start_with?(Dir.pwd) - Dir.chdir(RUBYGEMS_REPO) do - system("git remote update") - if rg == "master" - system("git checkout origin/master") - else - system("git checkout #{rg}") || raise("Unknown RubyGems ref #{rg}") - end - hash = `git rev-parse HEAD`.chomp - end - elsif rg != "master" - raise "need to be running against master with bundler as a submodule" - end + task :set_sudo do + ENV["BUNDLER_SUDO_TESTS"] = "1" + end - puts "Checked out rubygems '#{rg}' at #{hash}" - ENV["RUBYOPT"] = "-I#{File.join(RUBYGEMS_REPO, "lib")} #{rubyopt}" - puts "RUBYOPT=#{ENV["RUBYOPT"]}" - end + task :clean_sudo do + puts "Cleaning up sudo test files..." + system "sudo rm -rf #{File.expand_path("../tmp/sudo_gem_home", __FILE__)}" + end - task rg => ["man:build", "clone_rubygems_#{rg}"] - task "rubygems:all" => rg + # RubyGems specs by version + namespace :rubygems do + # When editing this list, also edit .travis.yml! + branches = %w[master] + releases = %w[v2.5.2 v2.6.14 v2.7.9 v3.0.3] + (branches + releases).each do |rg| + desc "Run specs with RubyGems #{rg}" + task rg do + sh("bin/rspec --format progress") end - desc "Run specs under a RubyGems checkout (set RG=path)" - RSpec::Core::RakeTask.new("co") do |t| - t.rspec_opts = %w[--format documentation --color] - t.ruby_opts = %w[-w] + # Create tasks like spec:rubygems:v1.8.3:sudo to run the sudo specs + namespace rg do + task :sudo => ["set_sudo", rg, "clean_sudo"] + task :realworld => ["set_realworld", rg] end - task "setup_co" do - rg = File.expand_path ENV["RG"] - puts "Running specs against RubyGems in #{rg}..." - ENV["RUBYOPT"] = "-I#{rg} #{rubyopt}" + task "set_#{rg}" do + ENV["RGV"] = rg end - task "co" => "setup_co" - task "rubygems:all" => "co" + task rg => ["set_#{rg}"] + task "rubygems:all" => rg end - desc "Run the tests on Travis CI against a RubyGem version (using ENV['RGV'])" - task :travis do - rg = ENV["RGV"] || raise("RubyGems version is required on Travis!") + desc "Run specs under a RubyGems checkout (set RGV=path)" + task "co" do + sh("bin/rspec --format progress") + end - # disallow making network requests on CI - ENV["BUNDLER_SPEC_PRE_RECORDED"] = "TRUE" + namespace "co" do + task :sudo => ["set_sudo", "co", "clean_sudo"] + task :realworld => ["set_realworld", "co"] + end - puts "\n\e[1;33m[Travis CI] Running bundler specs against RubyGems #{rg}\e[m\n\n" - specs = safe_task { Rake::Task["spec:rubygems:#{rg}"].invoke } + task "setup_co" do + ENV["RGV"] = RUBYGEMS_REPO + end - Rake::Task["spec:rubygems:#{rg}"].reenable + task "co" => "setup_co" + task "rubygems:all" => "co" + end - puts "\n\e[1;33m[Travis CI] Running bundler sudo specs against RubyGems #{rg}\e[m\n\n" - sudos = system("sudo -E rake spec:rubygems:#{rg}:sudo") - # clean up by chowning the newly root-owned tmp directory back to the travis user - system("sudo chown -R #{ENV["USER"]} #{File.join(File.dirname(__FILE__), "tmp")}") + desc "Run the tests on Travis CI against a RubyGem version (using ENV['RGV'])" + task :travis do + rg = ENV["RGV"] || raise("RubyGems version is required on Travis!") - Rake::Task["spec:rubygems:#{rg}"].reenable + rg = "co" if File.directory?(File.expand_path(ENV["RGV"])) - puts "\n\e[1;33m[Travis CI] Running bundler real world specs against RubyGems #{rg}\e[m\n\n" - realworld = safe_task { Rake::Task["spec:rubygems:#{rg}:realworld"].invoke } + # disallow making network requests on CI + ENV["BUNDLER_SPEC_PRE_RECORDED"] = "TRUE" - { "specs" => specs, "sudo" => sudos, "realworld" => realworld }.each do |name, passed| - if passed - puts "\e[0;32m[Travis CI] #{name} passed\e[m" - else - puts "\e[0;31m[Travis CI] #{name} failed\e[m" - end - end + puts "\n\e[1;33m[Travis CI] Running bundler specs against RubyGems #{rg}\e[m\n\n" + specs = safe_task { Rake::Task["spec:rubygems:#{rg}"].invoke } + + Rake::Task["spec:rubygems:#{rg}"].reenable + + puts "\n\e[1;33m[Travis CI] Running bundler sudo specs against RubyGems #{rg}\e[m\n\n" + sudos = system("sudo -E rake spec:rubygems:#{rg}:sudo") + # clean up by chowning the newly root-owned tmp directory back to the travis user + system("sudo chown -R #{ENV["USER"]} #{File.join(File.dirname(__FILE__), "tmp")}") + + Rake::Task["spec:rubygems:#{rg}"].reenable + + puts "\n\e[1;33m[Travis CI] Running bundler real world specs against RubyGems #{rg}\e[m\n\n" + realworld = safe_task { Rake::Task["spec:rubygems:#{rg}:realworld"].invoke } - unless specs && sudos && realworld - raise "Spec run failed, please review the log for more information" + { "specs" => specs, "sudo" => sudos, "realworld" => realworld }.each do |name, passed| + if passed + puts "\e[0;32m[Travis CI] #{name} passed\e[m" + else + puts "\e[0;31m[Travis CI] #{name} failed\e[m" end end - end -rescue LoadError - task :spec do - abort "Run `rake spec:deps` to be able to run the specs" - end - task :rubocop do - abort "Run `rake spec:deps` to be able to run rubocop" + unless specs && sudos && realworld + raise "Spec run failed, please review the log for more information" + end end end -begin - require "ronn" +desc "Run RuboCop" +task :rubocop do + sh("bin/rubocop --parallel") +end - namespace :man do - directory "man" +namespace :man do + if RUBY_ENGINE == "jruby" + task(:build) {} + else + ronn_dep = development_dependencies.find do |dep| + dep.name == "ronn" + end - index = [] - sources = Dir["man/*.ronn"].map {|f| File.basename(f, ".ronn") } - sources.map do |basename| - ronn = "man/#{basename}.ronn" - manual_section = ".1" unless basename =~ /\.(\d+)\Z/ - roff = "man/#{basename}#{manual_section}" + ronn_requirement = ronn_dep.requirement.to_s - index << [ronn, File.basename(roff)] + begin + gem "ronn", ronn_requirement - file roff => ["man", ronn] do - sh "#{Gem.ruby} -S ronn --roff --pipe #{ronn} > #{roff}" - end + require "ronn" + rescue LoadError + task(:build) { abort "We couln't activate ronn (#{ronn_requirement}). Try `gem install ronn:'#{ronn_requirement}'` to be able to build the help pages" } + else + directory "man" - file "#{roff}.txt" => roff do - sh "groff -Wall -mtty-char -mandoc -Tascii #{roff} | col -b > #{roff}.txt" - end + index = [] + sources = Dir["man/*.ronn"].map {|f| File.basename(f, ".ronn") } + sources.map do |basename| + ronn = "man/#{basename}.ronn" + manual_section = ".1" unless basename =~ /\.(\d+)\Z/ + roff = "man/#{basename}#{manual_section}" - task :build_all_pages => "#{roff}.txt" - end + index << [ronn, File.basename(roff)] - file "index.txt" do - index.map! do |(ronn, roff)| - [File.read(ronn).split(" ").first, roff] + file roff => ["man", ronn] do + sh "#{Gem.ruby} -S ronn --roff --pipe #{ronn} > #{roff}" + end + + file "#{roff}.txt" => roff do + sh "groff -Wall -mtty-char -mandoc -Tascii #{roff} | col -b > #{roff}.txt" + end + + task :build_all_pages => "#{roff}.txt" end - index = index.sort_by(&:first) - justification = index.map {|(n, _f)| n.length }.max + 4 - File.open("man/index.txt", "w") do |f| - index.each do |name, filename| - f << name.ljust(justification) << filename << "\n" + + file "index.txt" do + index.map! do |(ronn, roff)| + [File.read(ronn).split(" ").first, roff] + end + index = index.sort_by(&:first) + justification = index.map {|(n, _f)| n.length }.max + 4 + File.open("man/index.txt", "w") do |f| + index.each do |name, filename| + f << name.ljust(justification) << filename << "\n" + end end end - end - task :build_all_pages => "index.txt" + task :build_all_pages => "index.txt" - task :clean do - leftovers = Dir["man/*"].reject do |f| - File.extname(f) == ".ronn" + task :clean do + leftovers = Dir["man/*"].reject do |f| + File.extname(f) == ".ronn" + end + rm leftovers if leftovers.any? end - rm leftovers if leftovers.any? - end - desc "Build the man pages" - task :build => ["man:clean", "man:build_all_pages"] + desc "Build the man pages" + task :build => ["man:clean", "man:build_all_pages"] - desc "Remove all built man pages" - task :clobber do - rm_rf "lib/bundler/man" + desc "Remove all built man pages" + task :clobber do + rm_rf "lib/bundler/man" + end end - - task(:require) {} - end -rescue LoadError - namespace :man do - task(:require) { abort "Install the ronn gem to be able to release!" } - task(:build) { warn "Install the ronn gem to build the help pages" } end end +automatiek_dep = development_dependencies.find do |dep| + dep.name == "automatiek" +end + +automatiek_requirement = automatiek_dep.requirement.to_s + begin + gem "automatiek", automatiek_requirement + require "automatiek" +rescue LoadError + namespace :vendor do + desc "Vendor a specific version of molinillo" + task(:molinillo) { abort "We couldn't activate automatiek (#{automatiek_requirement}). Try `gem install automatiek:'#{automatiek_requirement}'` to be able to vendor gems" } + desc "Vendor a specific version of fileutils" + task(:fileutils) { abort "We couldn't activate automatiek (#{automatiek_requirement}). Try `gem install automatiek:'#{automatiek_requirement}'` to be able to vendor gems" } + + desc "Vendor a specific version of thor" + task(:thor) { abort "We couldn't activate automatiek (#{automatiek_requirement}). Try `gem install automatiek:'#{automatiek_requirement}'` to be able to vendor gems" } + + desc "Vendor a specific version of net-http-persistent" + task(:"net-http-persistent") { abort "We couldn't activate automatiek (#{automatiek_requirement}). Try `gem install automatiek:'#{automatiek_requirement}'` to be able to vendor gems" } + end +else + desc "Vendor a specific version of molinillo" Automatiek::RakeTask.new("molinillo") do |lib| lib.download = { :github => "https://github.com/CocoaPods/Molinillo" } lib.namespace = "Molinillo" @@ -319,6 +298,7 @@ begin lib.vendor_lib = "lib/bundler/vendor/molinillo" end + desc "Vendor a specific version of thor" Automatiek::RakeTask.new("thor") do |lib| lib.download = { :github => "https://github.com/erikhuda/thor" } lib.namespace = "Thor" @@ -326,6 +306,7 @@ begin lib.vendor_lib = "lib/bundler/vendor/thor" end + desc "Vendor a specific version of fileutils" Automatiek::RakeTask.new("fileutils") do |lib| lib.download = { :github => "https://github.com/ruby/fileutils" } lib.namespace = "FileUtils" @@ -333,6 +314,7 @@ begin lib.vendor_lib = "lib/bundler/vendor/fileutils" end + desc "Vendor a specific version of net-http-persistent" Automatiek::RakeTask.new("net-http-persistent") do |lib| lib.download = { :github => "https://github.com/drbrain/net-http-persistent" } lib.namespace = "Net::HTTP::Persistent" @@ -349,13 +331,6 @@ begin end lib.send(:extend, mixin) end -rescue LoadError - namespace :vendor do - task(:fileutils) { abort "Install the automatiek gem to be able to vendor gems." } - task(:molinillo) { abort "Install the automatiek gem to be able to vendor gems." } - task(:thor) { abort "Install the automatiek gem to be able to vendor gems." } - task("net-http-persistent") { abort "Install the automatiek gem to be able to vendor gems." } - end end task :override_version do @@ -368,14 +343,8 @@ task :override_version do File.open(version_file, "w") {|f| f << contents } end -desc "Update vendored SSL certs to match the certs vendored by RubyGems" -task :update_certs => "spec:rubygems:clone_rubygems_master" do - require "bundler/ssl_certs/certificate_manager" - Bundler::SSLCerts::CertificateManager.update_from!(RUBYGEMS_REPO) -end - task :default => :spec -Dir["task/*.{rb,rake}"].each(&method(:load)) +Dir["task/*.rake"].each(&method(:load)) task :generate_files => Rake::Task.tasks.select {|t| t.name.start_with?("lib/bundler/generated") } diff --git a/azure-pipelines.yml b/azure-pipelines.yml new file mode 100644 index 0000000000..3aa8f82d3d --- /dev/null +++ b/azure-pipelines.yml @@ -0,0 +1,6 @@ +jobs: +- job: Windows + pool: + vmImage: 'vs2017-win2016' + steps: + - template: .azure-pipelines/steps.yml @@ -6,14 +6,15 @@ load File.expand_path("../with_rubygems", __FILE__) if ENV["RGV"] require "rubygems" bundler_spec = Gem::Specification.load(File.expand_path("../../bundler.gemspec", __FILE__)) -bundler_spec.dependencies.each do |dep| - begin - gem dep.name, dep.requirement - rescue Gem::LoadError => e - $stderr.puts "#{e.message} (#{e.class})" - end +rake = bundler_spec.development_dependencies.find do |dep| + dep.name == "rake" end -Gem.finish_resolve if Gem.respond_to?(:finish_resolve) +rake_requirement = rake.requirement.to_s -load Gem.bin_path("rake", "rake") +begin + gem "rake", rake_requirement + load Gem.bin_path("rake", "rake") +rescue Gem::LoadError + warn "We couln't activate rake (#{rake_requirement}). Run `gem install rake:'#{rake_requirement}'`" +end @@ -6,10 +6,15 @@ load File.expand_path("../with_rubygems", __FILE__) if ENV["RGV"] require "rubygems" bundler_spec = Gem::Specification.load(File.expand_path("../../bundler.gemspec", __FILE__)) -bundler_spec.dependencies.each do |dep| - gem dep.name, dep.requirement +rspec = bundler_spec.development_dependencies.find do |dep| + dep.name == "rspec" end -Gem.finish_resolve if Gem.respond_to?(:finish_resolve) +rspec_requirement = rspec.requirement.to_s -load Gem.bin_path("rspec-core", "rspec") +begin + gem "rspec", rspec_requirement + load Gem.bin_path("rspec-core", "rspec") +rescue Gem::LoadError + warn "We couln't activate rspec (#{rspec_requirement}). Try `gem install rspec:'#{rspec_requirement}'`" +end diff --git a/bin/rubocop b/bin/rubocop index 81f4679fb8..ef86f084a9 100755 --- a/bin/rubocop +++ b/bin/rubocop @@ -6,12 +6,15 @@ load File.expand_path("../with_rubygems", __FILE__) if ENV["RGV"] require "rubygems" bundler_spec = Gem::Specification.load(File.expand_path("../../bundler.gemspec", __FILE__)) -bundler_spec.dependencies.each do |dep| - gem dep.name, dep.requirement +rubocop = bundler_spec.dependencies.find do |dep| + dep.name == "rubocop" end -gem "rubocop", "= 0.50.0" +rubocop_requirement = rubocop.requirement.to_s -Gem.finish_resolve if Gem.respond_to?(:finish_resolve) - -load Gem.bin_path("rubocop", "rubocop") +begin + gem "rubocop", rubocop_requirement + load Gem.bin_path("rubocop", "rubocop") +rescue Gem::LoadError + warn "We couln't activate rubocop (#{rubocop_requirement}). Try `gem install rubocop:'#{rubocop_requirement}'`" +end diff --git a/bin/with_rubygems b/bin/with_rubygems index d16c289822..96299669be 100755 --- a/bin/with_rubygems +++ b/bin/with_rubygems @@ -4,20 +4,24 @@ require "pathname" def run(*cmd) - return if system(*cmd) + return if system(*cmd, :out => IO::NULL) raise "Running `#{cmd.join(" ")}` failed" end version = ENV.delete("RGV") -rubygems_path = Pathname.new(__FILE__).join("../../tmp/rubygems").expand_path +rubygems_path = Pathname.new(version).expand_path unless rubygems_path.directory? - rubygems_path.parent.mkpath unless rubygems_path.directory? - run("git", "clone", "https://github.com/rubygems/rubygems.git", rubygems_path.to_s) + rubygems_path = Pathname.new("tmp/rubygems").expand_path + unless rubygems_path.directory? + rubygems_path.parent.mkpath unless rubygems_path.directory? + run("git", "clone", "https://github.com/rubygems/rubygems.git", rubygems_path.to_s) + end + Dir.chdir(rubygems_path) do + run("git remote update") + version = "v#{version}" if version =~ /\A\d/ + run("git", "checkout", version, "--quiet") + end end -Dir.chdir(rubygems_path) do - version = "v#{version}" if version =~ /\A\d/ - run("git", "checkout", version, "--quiet") -end if version rubygems_lib = rubygems_path + "lib" ENV["RUBYOPT"] = %(-I#{rubygems_lib} #{ENV["RUBYOPT"]}) diff --git a/bundler.gemspec b/bundler.gemspec index 8dda139c0a..bcc1027a40 100644 --- a/bundler.gemspec +++ b/bundler.gemspec @@ -1,11 +1,10 @@ -# coding: utf-8 # frozen_string_literal: true begin - require File.expand_path("../lib/bundler/version", __FILE__) + require_relative "lib/bundler/version" rescue LoadError # for Ruby core repository - require File.expand_path("../bundler/version", __FILE__) + require_relative "version" end Gem::Specification.new do |s| @@ -32,23 +31,16 @@ Gem::Specification.new do |s| } end - if s.version >= Gem::Version.new("2.a".dup) - s.required_ruby_version = ">= 2.3.0" - s.required_rubygems_version = ">= 2.5.0" - else - s.required_ruby_version = ">= 1.8.7" - s.required_rubygems_version = ">= 1.3.6" - end + s.required_ruby_version = ">= 2.3.0" + s.required_rubygems_version = ">= 2.5.0" s.add_development_dependency "automatiek", "~> 0.1.0" - s.add_development_dependency "mustache", "0.99.6" s.add_development_dependency "rake", "~> 12.0" - s.add_development_dependency "rdiscount", "~> 2.2" s.add_development_dependency "ronn", "~> 0.7.3" s.add_development_dependency "rspec", "~> 3.6" + s.add_development_dependency "rubocop", "= 0.65.0" - base_dir = File.dirname(__FILE__).gsub(%r{([^A-Za-z0-9_\-.,:\/@\n])}, "\\\\\\1") - s.files = IO.popen("git -C #{base_dir} ls-files -z", &:read).split("\x0").select {|f| f.match(%r{^(lib|exe)/}) } + s.files = Dir.glob("{lib,exe}/**/*", File::FNM_DOTMATCH).reject {|f| File.directory?(f) } # we don't check in man pages, but we need to ship them because # we use them to generate the long-form help for each command. diff --git a/doc/README.md b/doc/README.md index 926a34823a..5fe78d3254 100644 --- a/doc/README.md +++ b/doc/README.md @@ -1,8 +1,8 @@ # Docs: Contributing and developing Bundler -_If you're looking for documentation on how to use Bundler: visit [bundler.io](http://bundler.io/), or run `bundle help` from the command line. You may also be interested in [troubleshooting common issues](TROUBLESHOOTING.md) found when using Bundler._ +_If you're looking for documentation on how to use Bundler: visit [bundler.io](https://bundler.io/), or run `bundle help` from the command line. You may also be interested in [troubleshooting common issues](TROUBLESHOOTING.md) found when using Bundler._ -Bundler welcomes contributions from *everyone*. While contributing, please follow the project [code of conduct](http://bundler.io/conduct.html), so that everyone can be included. Maintainers are expected to work together with the community in accordance with [our project policies](POLICIES.md). +Bundler welcomes contributions from *everyone*. While contributing, please follow the project [code of conduct](https://bundler.io/conduct.html), so that everyone can be included. Maintainers are expected to work together with the community in accordance with [our project policies](POLICIES.md). If you'd like to help make Bundler better, you totally rock! Thanks for helping us make Bundler better. diff --git a/doc/TROUBLESHOOTING.md b/doc/TROUBLESHOOTING.md index 8bdac2c43c..d5ef596d34 100644 --- a/doc/TROUBLESHOOTING.md +++ b/doc/TROUBLESHOOTING.md @@ -25,10 +25,10 @@ Please open a ticket with [Heroku](https://www.heroku.com) if you're having trou ## Other problems -First, figure out exactly what it is that you're trying to do (see [XY Problem](http://xyproblem.info/)). Then, go to the [Bundler documentation website](http://bundler.io) and see if we have instructions on how to do that. +First, figure out exactly what it is that you're trying to do (see [XY Problem](http://xyproblem.info/)). Then, go to the [Bundler documentation website](https://bundler.io) and see if we have instructions on how to do that. Second, check [the compatibility -list](http://bundler.io/compatibility.html), and make sure that the version of Bundler that you are using works with the versions of Ruby and RubyGems that you are using. To see your versions: +list](https://bundler.io/compatibility.html), and make sure that the version of Bundler that you are using works with the versions of Ruby and RubyGems that you are using. To see your versions: # Bundler version bundle -v diff --git a/doc/contributing/BUG_TRIAGE.md b/doc/contributing/BUG_TRIAGE.md index b70c1285fe..fab584c7be 100644 --- a/doc/contributing/BUG_TRIAGE.md +++ b/doc/contributing/BUG_TRIAGE.md @@ -14,7 +14,7 @@ When you're looking at a ticket, here are the main questions to ask: * Are the steps to reproduce the bug clearly documented in the ticket? * Which versions of Bundler (1.1.x, 1.2.x, git, etc.) manifest this bug? * Which operating systems (OS X, Windows, Ubuntu, CentOS, etc.) manifest this bug? - * Which rubies (MRI, JRuby, Rubinius, etc.) and which versions (1.8.7, 1.9.3, etc.) have this bug? + * Which rubies (MRI, JRuby, Rubinius, etc.) and which versions (2.5, 2.6, etc.) have this bug? Strategies for triaging a ticket: * Be sure to ask the user to output the entirety of their `bundle env`. Sometimes users forget to post all of their `bundle env` output in the issue. @@ -22,6 +22,8 @@ Strategies for triaging a ticket: * If you're having trouble replicating their issue with your current environment, slowly try to incorporate the user's environment setup. As in, this is where you begin matching their environment. For example, try switching to the user's version of Ruby, RubyGems, RVM, et cetera, step by step. * Is the user running the latest version of bundler? If not, ask them to update by running `gem install bundler`. There's a chance that the newest version of bundler has already solved their problem. +If the issue still requires user information, apply the label "user feedback required". This will help identify stale issues in the future. + If you can't reproduce the issue, chances are good that the bug has been fixed already (hurrah!). That's a good time to post to the ticket explaining what you did and how it worked. If you can reproduce an issue, you're well on your way to fixing it. :) @@ -40,3 +42,12 @@ Everyone is welcome and encouraged to fix any open bug, improve an error message ## Duplicates! Finally, the ticket may be a duplicate of another older ticket. If you notice a ticket is a duplicate, simply comment on the ticket noting the original ticket’s number. For example, you could say “This is a duplicate of issue #42, and can be closed”. + +## Stale issues + +Any issue that is waiting for more information is what we could consider "stale". And the process is: + +1. If the issue is not updated in a while (2-4 weeks), we usually leave a comment saying "Hey :wave:, is this still a problem for you?". +2. If they don't respond within a week or two, then we will close the ticket. +3. If they do respond and they say it's still an issue, then we'll remind we are waiting for more information. +4. If the user doesn't provide the required information after being reminded, the ticket will be closed. diff --git a/doc/contributing/COMMUNITY.md b/doc/contributing/COMMUNITY.md index 053938ad07..7196ae7d1c 100644 --- a/doc/contributing/COMMUNITY.md +++ b/doc/contributing/COMMUNITY.md @@ -4,10 +4,10 @@ Community is an important part of all we do. If you’d like to be part of the B It would be tremendously helpful to have more people answering questions about Bundler (and often simply about [RubyGems](https://github.com/rubygems/rubygems) or Ruby itself) in our [issue tracker](https://github.com/bundler/bundler/issues) or on [Stack Overflow](http://stackoverflow.com/questions/tagged/bundler). -Additional documentation and explanation is always helpful, too. If you have any suggestions for the Bundler website [bundler.io](http://bundler.io), we would absolutely love it if you opened an issue or pull request on the [bundler-site](https://github.com/bundler/bundler-site) repository. +Additional documentation and explanation is always helpful, too. If you have any suggestions for the Bundler website [bundler.io](https://bundler.io), we would absolutely love it if you opened an issue or pull request on the [bundler-site](https://github.com/bundler/bundler-site) repository. Sharing your experiences and discoveries by writing them up is a valuable way to help others who have similar problems or experiences in the future. You can write a blog post, create an example and commit it to GitHub, take screenshots, or make videos. Publishing examples of how Bundler is used helps everyone, and we’ve discovered that people already use it in ways that we never imagined when we were writing it. If you’re still not sure what to write about, there are also several projects doing interesting things based on Bundler. They could probably use publicity too. -Finally, all contributors to the Bundler project must agree to the contributor [code of conduct](http://bundler.io/conduct.html). By participating in this project you agree to abide by its terms. +Finally, all contributors to the Bundler project must agree to the contributor [code of conduct](https://bundler.io/conduct.html). By participating in this project you agree to abide by its terms. diff --git a/doc/contributing/GETTING_HELP.md b/doc/contributing/GETTING_HELP.md index 55ccb5f5e9..11b5bf9b5e 100644 --- a/doc/contributing/GETTING_HELP.md +++ b/doc/contributing/GETTING_HELP.md @@ -5,7 +5,7 @@ If you have any questions after reading the documentation for contributing, plea The best ways to get in touch are: * [Bundler Slack](https://bundler.slack.com). - * Not a member of the Slack? Join the Bundler team slack [here](http://slack.bundler.io/)! + * Not a member of the Slack? Join the Bundler team slack [here](https://slack.bundler.io/)! * [Bundler mailing list](http://groups.google.com/group/ruby-bundler) You may also find our guide on [filing issues](ISSUES.md) to be helpful as well! diff --git a/doc/contributing/HOW_YOU_CAN_HELP.md b/doc/contributing/HOW_YOU_CAN_HELP.md index 284bae07b2..46cf33e65c 100644 --- a/doc/contributing/HOW_YOU_CAN_HELP.md +++ b/doc/contributing/HOW_YOU_CAN_HELP.md @@ -14,7 +14,7 @@ Generally, great ways to get started helping out with Bundler are: - [reporting bugs you encounter or suggesting new features](https://github.com/bundler/bundler/issues/new) - see our [issues guide](ISSUES.md) for help on filing issues - see the [new features documentation](../development/NEW_FEATURES.md) for more - - adding to or editing [the Bundler documentation website](http://bundler.io) and [Bundler man pages](http://bundler.io/man/bundle.1.html) + - adding to or editing [the Bundler documentation website](https://bundler.io) and [Bundler man pages](https://bundler.io/man/bundle.1.html) - [checking issues for completeness](BUG_TRIAGE.md) - closing issues that are not complete - adding a failing test for reproducible [reported bugs](https://github.com/bundler/bundler/issues) @@ -22,6 +22,6 @@ Generally, great ways to get started helping out with Bundler are: - improving existing code, including suggestions from [PullReview](https://www.pullreview.com/github/bundler/bundler/reviews/master) or [CodeClimate](https://codeclimate.com/github/bundler/bundler) - writing code (no patch is too small! fix typos or bad whitespace) - get started setting up your dev environment with [these instructions](../development/SETUP.md) - - backfilling [unit tests](https://github.com/bundler/bundler/tree/master/spec/bundler) for modules that lack [coverage](https://codeclimate.com/github/bundler/bundler/coverage) + - backfilling [unit tests](https://github.com/bundler/bundler/tree/master/spec/bundler) for modules that lack coverage. -If nothing on those lists looks good, [talk to us](http://slack.bundler.io/), and we'll figure out what you can help with. We can absolutely use your help, no matter what level of programming skill you have at the moment. +If nothing on those lists looks good, [talk to us](https://slack.bundler.io/), and we'll figure out what you can help with. We can absolutely use your help, no matter what level of programming skill you have at the moment. diff --git a/doc/contributing/ISSUES.md b/doc/contributing/ISSUES.md index 219a775719..361350badd 100644 --- a/doc/contributing/ISSUES.md +++ b/doc/contributing/ISSUES.md @@ -6,9 +6,9 @@ Before filing an issue, check our [troubleshooting guide](../TROUBLESHOOTING.md) ## Documentation -Instructions for common Bundler uses can be found on the [Bundler documentation site](http://bundler.io/). +Instructions for common Bundler uses can be found on the [Bundler documentation site](https://bundler.io/). -Detailed information about each Bundler command, including help with common problems, can be found in the [Bundler man pages](http://bundler.io/man/bundle.1.html) or [Bundler Command Line Reference](http://bundler.io/v1.11/commands.html). +Detailed information about each Bundler command, including help with common problems, can be found in the [Bundler man pages](https://bundler.io/man/bundle.1.html) or [Bundler Command Line Reference](https://bundler.io/v1.11/commands.html). ## Reporting unresolved problems diff --git a/doc/contributing/README.md b/doc/contributing/README.md index 624e37cb73..a068ee5cb9 100644 --- a/doc/contributing/README.md +++ b/doc/contributing/README.md @@ -1,6 +1,6 @@ # Bundler Contributor Guidelines -Thank you for your interest in making Bundler better! We welcome contributions from everyone. Dozens of contributors like you have submitted feature improvements, fixed bugs, and written new documentation. [Join the Bundler Slack community](http://slack.bundler.io/) to connect with the Bundler core team and other contributors like you. +Thank you for your interest in making Bundler better! We welcome contributions from everyone. Dozens of contributors like you have submitted feature improvements, fixed bugs, and written new documentation. [Join the Bundler Slack community](https://slack.bundler.io/) to connect with the Bundler core team and other contributors like you. Before submitting a contribution, read through the following guidelines: diff --git a/doc/documentation/README.md b/doc/documentation/README.md index bc2e1ceac6..0a9eceff8c 100644 --- a/doc/documentation/README.md +++ b/doc/documentation/README.md @@ -5,9 +5,9 @@ Code needs explanation, and sometimes those who know the code well have trouble Currently, Bundler has two main sources of documentation: 1. built-in `help` (including usage information and man pages) -2. [Bundler documentation site](http://bundler.io) +2. [Bundler documentation site](https://bundler.io) -If you have a suggestion or proposed change for [bundler.io](http://bundler.io), please open an issue or send a pull request to the [bundler-site](https://github.com/bundler/bundler-site) repository. +If you have a suggestion or proposed change for [bundler.io](https://bundler.io), please open an issue or send a pull request to the [bundler-site](https://github.com/bundler/bundler-site) repository. Not sure where to write documentation? In general, follow these guidelines: diff --git a/doc/documentation/VISION.md b/doc/documentation/VISION.md index 3d660ee36d..d401b94e77 100644 --- a/doc/documentation/VISION.md +++ b/doc/documentation/VISION.md @@ -3,7 +3,7 @@ Currently, documentation for using Bundler is spread across two places: 1. built-in `help` (including usage information and man pages) -2. [Bundler documentation site](http://bundler.io) +2. [Bundler documentation site](https://bundler.io) Additional documentation about using Bundler to publish gems can also be found on the [RubyGems guides](http://guides.rubygems.org/). diff --git a/doc/documentation/WRITING.md b/doc/documentation/WRITING.md index 2fb3292e27..3975b57043 100644 --- a/doc/documentation/WRITING.md +++ b/doc/documentation/WRITING.md @@ -53,11 +53,11 @@ $ bin/rspec ./spec/commands/help_spec.rb $ bin/rspec ./spec/quality_spec.rb ``` -# Writing docs for [the Bundler documentation site](http://www.bundler.io) +# Writing docs for [the Bundler documentation site](https://bundler.io) -If you'd like to submit a pull request for any of the primary commands or utilities on [the Bundler documentation site](http://www.bundler.io), please follow the instructions above for writing documentation for man pages from the `bundler/bundler` repository. They are the same in each case. +If you'd like to submit a pull request for any of the primary commands or utilities on [the Bundler documentation site](https://bundler.io), please follow the instructions above for writing documentation for man pages from the `bundler/bundler` repository. They are the same in each case. -Note: Editing `.ronn` files from the `bundler/bundler` repository for the primary commands and utilities documentation is all you need 🎉. There is no need to manually change anything in the `bundler/bundler-site` repository, because the man pages and the docs for primary commands and utilities on [the Bundler documentation site](http://www.bundler.io) are one in the same. They are generated automatically from the `bundler/bundler` repository's `.ronn` files from the `rake man/build` command. In other words, after updating `.ronn` file and running `rake man/build` in `bundler`, `.ronn` files map to the auto-generated files in the `source/man` directory of `bundler-site`. +Note: Editing `.ronn` files from the `bundler/bundler` repository for the primary commands and utilities documentation is all you need 🎉. There is no need to manually change anything in the `bundler/bundler-site` repository, because the man pages and the docs for primary commands and utilities on [the Bundler documentation site](https://bundler.io) are one in the same. They are generated automatically from the `bundler/bundler` repository's `.ronn` files from the `rake man/build` command. In other words, after updating `.ronn` file and running `rake man/build` in `bundler`, `.ronn` files map to the auto-generated files in the `source/man` directory of `bundler-site`. Additionally, if you'd like to add a guide or tutorial: in the `bundler/bundler-site` repository, go to `/bundler-site/source/current_version_of_bundler/guides` and add [a new Markdown file](https://guides.github.com/features/mastering-markdown/) (with an extension ending in `.md`). Be sure to correctly format the title of your new guide, like so: ``` diff --git a/lib/bundler.rb b/lib/bundler.rb index 137d916cc6..8ad5ab6634 100644 --- a/lib/bundler.rb +++ b/lib/bundler.rb @@ -1,21 +1,20 @@ # frozen_string_literal: true -require "bundler/compatibility_guard" +require_relative "bundler/compatibility_guard" -require "bundler/vendored_fileutils" +require_relative "bundler/vendored_fileutils" require "pathname" require "rbconfig" -require "thread" - -require "bundler/errors" -require "bundler/environment_preserver" -require "bundler/plugin" -require "bundler/rubygems_ext" -require "bundler/rubygems_integration" -require "bundler/version" -require "bundler/constants" -require "bundler/current_ruby" -require "bundler/build_metadata" + +require_relative "bundler/errors" +require_relative "bundler/environment_preserver" +require_relative "bundler/plugin" +require_relative "bundler/rubygems_ext" +require_relative "bundler/rubygems_integration" +require_relative "bundler/version" +require_relative "bundler/constants" +require_relative "bundler/current_ruby" +require_relative "bundler/build_metadata" module Bundler environment_preserver = EnvironmentPreserver.new(ENV, EnvironmentPreserver::BUNDLER_KEYS) @@ -198,19 +197,19 @@ module Bundler def user_bundle_path(dir = "home") env_var, fallback = case dir when "home" - ["BUNDLE_USER_HOME", Pathname.new(user_home).join(".bundle")] + ["BUNDLE_USER_HOME", proc { Pathname.new(user_home).join(".bundle") }] when "cache" - ["BUNDLE_USER_CACHE", user_bundle_path.join("cache")] + ["BUNDLE_USER_CACHE", proc { user_bundle_path.join("cache") }] when "config" - ["BUNDLE_USER_CONFIG", user_bundle_path.join("config")] + ["BUNDLE_USER_CONFIG", proc { user_bundle_path.join("config") }] when "plugin" - ["BUNDLE_USER_PLUGIN", user_bundle_path.join("plugin")] + ["BUNDLE_USER_PLUGIN", proc { user_bundle_path.join("plugin") }] else raise BundlerError, "Unknown user path requested: #{dir}" end # `fallback` will already be a Pathname, but Pathname.new() is # idempotent so it's OK - Pathname.new(ENV.fetch(env_var, fallback)) + Pathname.new(ENV.fetch(env_var, &fallback)) end def user_cache @@ -335,12 +334,46 @@ EOF with_env(unbundled_env) { yield } end + # Run subcommand with the environment present before Bundler was activated + def original_system(*args) + with_original_env { Kernel.system(*args) } + end + + # @deprecated Use `unbundled_system` instead def clean_system(*args) - with_clean_env { Kernel.system(*args) } + Bundler::SharedHelpers.major_deprecation( + 2, + "`Bundler.clean_system` has been deprecated in favor of `Bundler.unbundled_system`. " \ + "If you instead want to run the command in the environment before bundler was originally loaded, use `Bundler.original_system`" + ) + + with_env(unbundled_env) { Kernel.system(*args) } + end + + # Run subcommand in an environment with all bundler related variables removed + def unbundled_system(*args) + with_unbundled_env { Kernel.system(*args) } end + # Run a `Kernel.exec` to a subcommand with the environment present before Bundler was activated + def original_exec(*args) + with_original_env { Kernel.exec(*args) } + end + + # @deprecated Use `unbundled_exec` instead def clean_exec(*args) - with_clean_env { Kernel.exec(*args) } + Bundler::SharedHelpers.major_deprecation( + 2, + "`Bundler.clean_exec` has been deprecated in favor of `Bundler.unbundled_exec`. " \ + "If you instead want to exec to a command in the environment before bundler was originally loaded, use `Bundler.original_exec`" + ) + + with_env(unbundled_env) { Kernel.exec(*args) } + end + + # Run a `Kernel.exec` to a subcommand in an environment with all bundler related variables removed + def unbundled_exec(*args) + with_env(unbundled_env) { Kernel.exec(*args) } end def local_platform @@ -365,7 +398,7 @@ EOF # system binaries. If you put '-n foo' in your .gemrc, RubyGems will # install binstubs there instead. Unfortunately, RubyGems doesn't expose # that directory at all, so rather than parse .gemrc ourselves, we allow - # the directory to be set as well, via `bundle config bindir foo`. + # the directory to be set as well, via `bundle config set bindir foo`. Bundler.settings[:system_bindir] || Bundler.rubygems.gem_bindir end @@ -545,7 +578,7 @@ EOF rescue ScriptError, StandardError => e msg = "There was an error while loading `#{path.basename}`: #{e.message}" - if e.is_a?(LoadError) && RUBY_VERSION >= "1.9" + if e.is_a?(LoadError) msg += "\nDoes it try to require a relative path? That's been removed in Ruby 1.9" end diff --git a/lib/bundler/capistrano.rb b/lib/bundler/capistrano.rb index 1b7145b72b..573df95043 100644 --- a/lib/bundler/capistrano.rb +++ b/lib/bundler/capistrano.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -require "bundler/shared_helpers" +require_relative "shared_helpers" Bundler::SharedHelpers.major_deprecation 2, "The Bundler task for Capistrano. Please use http://github.com/capistrano/bundler" @@ -8,7 +8,7 @@ Bundler::SharedHelpers.major_deprecation 2, # # Add "require 'bundler/capistrano'" in your Capistrano deploy.rb, and # Bundler will be activated after each new deployment. -require "bundler/deployment" +require_relative "deployment" require "capistrano/version" if defined?(Capistrano::Version) && Gem::Version.new(Capistrano::Version).release >= Gem::Version.new("3.0") diff --git a/lib/bundler/cli.rb b/lib/bundler/cli.rb index c591884263..dd733a22ed 100644 --- a/lib/bundler/cli.rb +++ b/lib/bundler/cli.rb @@ -1,11 +1,10 @@ # frozen_string_literal: true -require "bundler" -require "bundler/vendored_thor" +require_relative "vendored_thor" module Bundler class CLI < Thor - require "bundler/cli/common" + require_relative "cli/common" package_name "Bundler" @@ -16,7 +15,7 @@ module Bundler def self.start(*) super - rescue Exception => e + rescue Exception => e # rubocop:disable Lint/RescueException Bundler.ui = UI::Shell.new raise e ensure @@ -61,11 +60,6 @@ module Bundler end end - def self.deprecated_option(*args, &blk) - return if Bundler.feature_flag.forget_cli_options? - method_option(*args, &blk) - end - check_unknown_options!(:except => [:config, :exec]) stop_on_unknown_option! :exec @@ -142,9 +136,9 @@ module Bundler Gemfile to a gem with a gemspec, the --gemspec option will automatically add each dependency listed in the gemspec file to the newly created Gemfile. D - deprecated_option "gemspec", :type => :string, :banner => "Use the specified .gemspec to create the Gemfile" + method_option "gemspec", :type => :string, :banner => "Use the specified .gemspec to create the Gemfile" def init - require "bundler/cli/init" + require_relative "cli/init" Init.new(options.dup).run end @@ -162,7 +156,7 @@ module Bundler "Specify a different path than the system default ($BUNDLE_PATH or $GEM_HOME).#{" Bundler will remember this value for future installs on this machine" unless Bundler.feature_flag.forget_cli_options?}" map "c" => "check" def check - require "bundler/cli/check" + require_relative "cli/check" Check.new(options).run end @@ -173,7 +167,7 @@ module Bundler method_option "install", :type => :boolean, :banner => "Runs 'bundle install' after removing the gems from the Gemfile" def remove(*gems) - require "bundler/cli/remove" + require_relative "cli/remove" Remove.new(gems, options).run end @@ -188,13 +182,13 @@ module Bundler If the bundle has already been installed, bundler will tell you so and then exit. D - deprecated_option "binstubs", :type => :string, :lazy_default => "bin", :banner => + method_option "binstubs", :type => :string, :lazy_default => "bin", :banner => "Generate bin stubs for bundled gems to ./bin" - deprecated_option "clean", :type => :boolean, :banner => + method_option "clean", :type => :boolean, :banner => "Run bundle clean automatically after install" - deprecated_option "deployment", :type => :boolean, :banner => + method_option "deployment", :type => :boolean, :banner => "Install using defaults tuned for deployment environments" - deprecated_option "frozen", :type => :boolean, :banner => + method_option "frozen", :type => :boolean, :banner => "Do not allow the Gemfile.lock to be updated after this install" method_option "full-index", :type => :boolean, :banner => "Fall back to using the single-file index of all gems" @@ -204,33 +198,38 @@ module Bundler "Specify the number of jobs to run in parallel" method_option "local", :type => :boolean, :banner => "Do not attempt to fetch gems remotely and use the gem cache instead" - deprecated_option "no-cache", :type => :boolean, :banner => + method_option "no-cache", :type => :boolean, :banner => "Don't update the existing gem cache." method_option "redownload", :type => :boolean, :aliases => "--force", :banner => "Force downloading every gem." - deprecated_option "no-prune", :type => :boolean, :banner => + method_option "no-prune", :type => :boolean, :banner => "Don't remove stale gems from the cache." - deprecated_option "path", :type => :string, :banner => + method_option "path", :type => :string, :banner => "Specify a different path than the system default ($BUNDLE_PATH or $GEM_HOME). Bundler will remember this value for future installs on this machine" method_option "quiet", :type => :boolean, :banner => "Only output warnings and errors." - deprecated_option "shebang", :type => :string, :banner => + method_option "shebang", :type => :string, :banner => "Specify a different shebang executable name than the default (usually 'ruby')" method_option "standalone", :type => :array, :lazy_default => [], :banner => "Make a bundle that can work without the Bundler runtime" - deprecated_option "system", :type => :boolean, :banner => + method_option "system", :type => :boolean, :banner => "Install to the system location ($BUNDLE_PATH or $GEM_HOME) even if the bundle was previously installed somewhere else for this application" method_option "trust-policy", :alias => "P", :type => :string, :banner => "Gem trust policy (like gem install -P). Must be one of " + Bundler.rubygems.security_policy_keys.join("|") - deprecated_option "without", :type => :array, :banner => + method_option "without", :type => :array, :banner => "Exclude gems that are part of the specified named group." - deprecated_option "with", :type => :array, :banner => + method_option "with", :type => :array, :banner => "Include gems that are part of the specified named group." map "i" => "install" def install SharedHelpers.major_deprecation(2, "The `--force` option has been renamed to `--redownload`") if ARGV.include?("--force") - require "bundler/cli/install" + + %w[clean deployment frozen no-cache no-prune path shebang system without with].each do |option| + remembered_flag_deprecation(option) + end + + require_relative "cli/install" Bundler.settings.temporary(:no_install => false) do Install.new(options.dup).run end @@ -276,60 +275,63 @@ module Bundler "Update everything." def update(*gems) SharedHelpers.major_deprecation(2, "The `--force` option has been renamed to `--redownload`") if ARGV.include?("--force") - require "bundler/cli/update" - Update.new(options, gems).run + require_relative "cli/update" + Bundler.settings.temporary(:no_install => false) do + Update.new(options, gems).run + end end - desc "show GEM [OPTIONS]", "Shows all gems that are part of the bundle, or the path to a given gem" - long_desc <<-D - Show lists the names and versions of all gems that are required by your Gemfile. - Calling show with [GEM] will list the exact location of that gem on your machine. - D - method_option "paths", :type => :boolean, - :banner => "List the paths of all gems that are required by your Gemfile." - method_option "outdated", :type => :boolean, - :banner => "Show verbose output including whether gems are outdated." - def show(gem_name = nil) - if ARGV[0] == "show" - rest = ARGV[1..-1] - - new_command = rest.find {|arg| !arg.start_with?("--") } ? "info" : "list" - - new_arguments = rest.map do |arg| - next arg if arg != "--paths" - next "--path" if new_command == "info" + unless Bundler.feature_flag.bundler_3_mode? + desc "show GEM [OPTIONS]", "Shows all gems that are part of the bundle, or the path to a given gem" + long_desc <<-D + Show lists the names and versions of all gems that are required by your Gemfile. + Calling show with [GEM] will list the exact location of that gem on your machine. + D + method_option "paths", :type => :boolean, + :banner => "List the paths of all gems that are required by your Gemfile." + method_option "outdated", :type => :boolean, + :banner => "Show verbose output including whether gems are outdated." + def show(gem_name = nil) + if ARGV[0] == "show" + rest = ARGV[1..-1] + + if flag = rest.find{|arg| ["--verbose", "--outdated"].include?(arg) } + Bundler::SharedHelpers.major_deprecation(2, "the `#{flag}` flag to `bundle show` was undocumented and will be removed without replacement") + else + new_command = rest.find {|arg| !arg.start_with?("--") } ? "info" : "list" + + new_arguments = rest.map do |arg| + next arg if arg != "--paths" + next "--path" if new_command == "info" + end + + old_argv = ARGV.join(" ") + new_argv = [new_command, *new_arguments.compact].join(" ") + + Bundler::SharedHelpers.major_deprecation(2, "use `bundle #{new_argv}` instead of `bundle #{old_argv}`") + end end - - old_argv = ARGV.join(" ") - new_argv = [new_command, *new_arguments.compact].join(" ") - - Bundler::SharedHelpers.major_deprecation(2, "use `bundle #{new_argv}` instead of `bundle #{old_argv}`") - end - require "bundler/cli/show" - Show.new(options, gem_name).run - end - # TODO: 2.0 remove `bundle show` - - if Bundler.feature_flag.list_command? - desc "list", "List all gems in the bundle" - method_option "name-only", :type => :boolean, :banner => "print only the gem names" - method_option "only-group", :type => :string, :banner => "print gems from a particular group" - method_option "without-group", :type => :string, :banner => "print all gems expect from a group" - method_option "paths", :type => :boolean, :banner => "print the path to each gem in the bundle" - def list - require "bundler/cli/list" - List.new(options).run + require_relative "cli/show" + Show.new(options, gem_name).run end + end - map %w[ls] => "list" - else - map %w[list] => "show" + desc "list", "List all gems in the bundle" + method_option "name-only", :type => :boolean, :banner => "print only the gem names" + method_option "only-group", :type => :string, :banner => "print gems from a particular group" + method_option "without-group", :type => :string, :banner => "print all gems except from a group" + method_option "paths", :type => :boolean, :banner => "print the path to each gem in the bundle" + def list + require_relative "cli/list" + List.new(options).run end + map %w[ls] => "list" + desc "info GEM [OPTIONS]", "Show information for the given gem" method_option "path", :type => :boolean, :banner => "Print full path to gem" def info(gem_name) - require "bundler/cli/info" + require_relative "cli/info" Info.new(options, gem_name).run end @@ -350,7 +352,7 @@ module Bundler method_option "all", :type => :boolean, :banner => "Install binstubs for all gems" def binstubs(*gems) - require "bundler/cli/binstubs" + require_relative "cli/binstubs" Binstubs.new(options, gems).run end @@ -361,12 +363,14 @@ module Bundler method_option "version", :aliases => "-v", :type => :string method_option "group", :aliases => "-g", :type => :string method_option "source", :aliases => "-s", :type => :string + method_option "git", :type => :string + method_option "branch", :type => :string method_option "skip-install", :type => :boolean, :banner => "Adds gem to the Gemfile but does not install it" method_option "optimistic", :type => :boolean, :banner => "Adds optimistic declaration of version to gem" method_option "strict", :type => :boolean, :banner => "Adds strict declaration of version to gem" def add(*gems) - require "bundler/cli/add" + require_relative "cli/add" Add.new(options.dup, gems).run end @@ -402,7 +406,7 @@ module Bundler method_option "only-explicit", :type => :boolean, :banner => "Only list gems specified in your Gemfile, not their dependencies" def outdated(*gems) - require "bundler/cli/outdated" + require_relative "cli/outdated" Outdated.new(options, gems).run end @@ -417,7 +421,7 @@ module Bundler method_option "all-platforms", :type => :boolean, :banner => "Include gems for all platforms present in the lockfile, not only the current one" method_option "no-prune", :type => :boolean, :banner => "Don't remove stale gems from the cache." def cache - require "bundler/cli/cache" + require_relative "cli/cache" Cache.new(options).run end end @@ -445,7 +449,7 @@ module Bundler bundle without having to download any additional gems. D def package - require "bundler/cli/package" + require_relative "cli/package" Package.new(options).run end map %w[pack] => :package @@ -460,7 +464,7 @@ module Bundler D map "e" => "exec" def exec(*args) - require "bundler/cli/exec" + require_relative "cli/exec" Exec.new(options, args).run end @@ -476,19 +480,19 @@ module Bundler will show the current value, as well as any superceded values and where they were specified. D - require "bundler/cli/config" + require_relative "cli/config" subcommand "config", Config desc "open GEM", "Opens the source directory of the given bundled gem" def open(name) - require "bundler/cli/open" + require_relative "cli/open" Open.new(options, name).run end - if Bundler.feature_flag.console_command? + unless Bundler.feature_flag.bundler_3_mode? desc "console [GROUP]", "Opens an IRB session with the bundle pre-loaded" def console(group = nil) - require "bundler/cli/console" + require_relative "cli/console" Console.new(options, group).run end end @@ -522,7 +526,7 @@ module Bundler end end - if Bundler.feature_flag.viz_command? + unless Bundler.feature_flag.bundler_3_mode? desc "viz [OPTIONS]", "Generates a visual dependency graph", :hide => true long_desc <<-D Viz generates a PNG file of the current Gemfile as a dependency graph. @@ -536,7 +540,7 @@ module Bundler method_option :without, :type => :array, :default => [], :aliases => "-W", :banner => "GROUP[ GROUP...]", :desc => "Exclude gems that are part of the specified named group." def viz SharedHelpers.major_deprecation 2, "The `viz` command has been moved to the `bundle-viz` gem, see https://github.com/bundler/bundler-viz" - require "bundler/cli/viz" + require_relative "cli/viz" Viz.new(options.dup).run end end @@ -545,14 +549,14 @@ module Bundler desc "gem NAME [OPTIONS]", "Creates a skeleton for creating a rubygem" method_option :exe, :type => :boolean, :default => false, :aliases => ["--bin", "-b"], :desc => "Generate a binary executable for your library." - method_option :coc, :type => :boolean, :desc => "Generate a code of conduct file. Set a default with `bundle config gem.coc true`." + method_option :coc, :type => :boolean, :desc => "Generate a code of conduct file. Set a default with `bundle config set gem.coc true`." method_option :edit, :type => :string, :aliases => "-e", :required => false, :banner => "EDITOR", :lazy_default => [ENV["BUNDLER_EDITOR"], ENV["VISUAL"], ENV["EDITOR"]].find {|e| !e.nil? && !e.empty? }, :desc => "Open generated gemspec in the specified editor (defaults to $EDITOR or $BUNDLER_EDITOR)" method_option :ext, :type => :boolean, :default => false, :desc => "Generate the boilerplate for C extension code" - method_option :mit, :type => :boolean, :desc => "Generate an MIT license file. Set a default with `bundle config gem.mit true`." + method_option :mit, :type => :boolean, :desc => "Generate an MIT license file. Set a default with `bundle config set gem.mit true`." method_option :test, :type => :string, :lazy_default => "rspec", :aliases => "-t", :banner => "rspec", - :desc => "Generate a test directory for your library, either rspec or minitest. Set a default with `bundle config gem.test rspec`." + :desc => "Generate a test directory for your library, either rspec or minitest. Set a default with `bundle config set gem.test rspec`." def gem(name) end @@ -560,7 +564,7 @@ module Bundler def gem_command.run(instance, args = []) arity = 1 # name - require "bundler/cli/gem" + require_relative "cli/gem" cmd_args = args + [instance] cmd_args.unshift(instance.options) @@ -588,7 +592,7 @@ module Bundler method_option "force", :type => :boolean, :default => false, :banner => "Forces clean even if --path is not set" def clean - require "bundler/cli/clean" + require_relative "cli/clean" Clean.new(options.dup).run end @@ -596,7 +600,7 @@ module Bundler method_option "ruby", :type => :boolean, :default => false, :banner => "only display ruby related platform information" def platform - require "bundler/cli/platform" + require_relative "cli/platform" Platform.new(options).run end @@ -607,7 +611,7 @@ module Bundler "Install gem into a bundler group" def inject(name, version) SharedHelpers.major_deprecation 2, "The `inject` command has been replaced by the `add` command" - require "bundler/cli/inject" + require_relative "cli/inject" Inject.new(options.dup, name, version).run end @@ -639,7 +643,7 @@ module Bundler method_option "conservative", :type => :boolean, :banner => "If updating, use bundle install conservative update behavior and do not allow shared dependencies to be updated" def lock - require "bundler/cli/lock" + require_relative "cli/lock" Lock.new(options).run end @@ -659,13 +663,13 @@ module Bundler method_option "quiet", :type => :boolean, :banner => "Only output warnings and errors." def doctor - require "bundler/cli/doctor" + require_relative "cli/doctor" Doctor.new(options).run end desc "issue", "Learn how to report an issue in Bundler" def issue - require "bundler/cli/issue" + require_relative "cli/issue" Issue.new.run end @@ -676,12 +680,12 @@ module Bundler checkout --force`. D def pristine(*gems) - require "bundler/cli/pristine" + require_relative "cli/pristine" Pristine.new(gems).run end if Bundler.feature_flag.plugins? - require "bundler/cli/plugin" + require_relative "cli/plugin" desc "plugin", "Manage the bundler plugins" subcommand "plugin", Plugin end @@ -714,7 +718,7 @@ module Bundler # Automatically invoke `bundle install` and resume if # Bundler.settings[:auto_install] exists. This is set through config cmd - # `bundle config auto_install 1`. + # `bundle config set auto_install 1`. # # Note that this method `nil`s out the global Definition object, so it # should be called first, before you instantiate anything like an @@ -786,5 +790,22 @@ module Bundler rescue RuntimeError nil end + + def remembered_flag_deprecation(name) + option = current_command.options[name] + flag_name = option.switch_name + + name_index = ARGV.find {|arg| flag_name == arg } + return unless name_index + + value = options[name] + value = value.join(" ").to_s if option.type == :array + + Bundler::SharedHelpers.major_deprecation 2,\ + "The `#{flag_name}` flag is deprecated because it relies on being " \ + "remembered accross bundler invokations, which bundler will no longer " \ + "do in future versions. Instead please use `bundle config #{name} " \ + "'#{value}'`, and stop using this flag" + end end end diff --git a/lib/bundler/cli/cache.rb b/lib/bundler/cli/cache.rb index 9d2ba87d34..cb7958e5d0 100644 --- a/lib/bundler/cli/cache.rb +++ b/lib/bundler/cli/cache.rb @@ -29,7 +29,7 @@ module Bundler if Bundler.definition.has_local_dependencies? && !Bundler.feature_flag.cache_all? Bundler.ui.warn "Your Gemfile contains path and git dependencies. If you want " \ "to package them as well, please pass the --all flag. This will be the default " \ - "on Bundler 2.0." + "on Bundler 3.0." end end end diff --git a/lib/bundler/cli/common.rb b/lib/bundler/cli/common.rb index 09a1753337..5ec541f722 100644 --- a/lib/bundler/cli/common.rb +++ b/lib/bundler/cli/common.rb @@ -49,10 +49,6 @@ module Bundler end def self.ask_for_spec_from(specs) - if !$stdout.tty? && ENV["BUNDLE_SPEC_RUN"].nil? - raise GemNotFound, gem_not_found_message(name, Bundler.definition.dependencies) - end - specs.each_with_index do |spec, index| Bundler.ui.info "#{index.succ} : #{spec.name}", true end @@ -63,7 +59,7 @@ module Bundler end def self.gem_not_found_message(missing_gem_name, alternatives) - require "bundler/similarity_detector" + require_relative "../similarity_detector" message = "Could not find gem '#{missing_gem_name}'." alternate_names = alternatives.map {|a| a.respond_to?(:name) ? a.name : a } suggestions = SimilarityDetector.new(alternate_names).similar_word_list(missing_gem_name) @@ -80,7 +76,9 @@ module Bundler def self.configure_gem_version_promoter(definition, options) patch_level = patch_level_options(options) + patch_level << :patch if patch_level.empty? && Bundler.settings[:prefer_patch] raise InvalidOption, "Provide only one of the following options: #{patch_level.join(", ")}" unless patch_level.length <= 1 + definition.gem_version_promoter.tap do |gvp| gvp.level = patch_level.first || :major gvp.strict = options[:strict] || options["update-strict"] || options["filter-strict"] diff --git a/lib/bundler/cli/config.rb b/lib/bundler/cli/config.rb index cc89465adc..1df2a55d9a 100644 --- a/lib/bundler/cli/config.rb +++ b/lib/bundler/cli/config.rb @@ -14,8 +14,20 @@ module Bundler scope_options method_option :delete, :type => :boolean, :banner => "delete" def base(name = nil, *value) - SharedHelpers.major_deprecation 3, - "Using the `config` command without a subcommand [list, get, set, unset]" + new_args = + if ARGV.size == 1 + ["config", "list"] + elsif ARGV.include?("--delete") + ARGV.map {|arg| arg == "--delete" ? "unset" : arg } + elsif ARGV.include?("--global") || ARGV.include?("--local") || ARGV.size == 3 + ["config", "set", *ARGV[1..-1]] + else + ["config", "get", ARGV[1]] + end + + SharedHelpers.major_deprecation 2, + "Using the `config` command without a subcommand [list, get, set, unset] is deprecated and will be removed in the future. Use `bundle #{new_args.join(" ")}` instead." + Base.new(options, name, value, self).run end diff --git a/lib/bundler/cli/doctor.rb b/lib/bundler/cli/doctor.rb index 3e0898ff8a..1b3913a300 100644 --- a/lib/bundler/cli/doctor.rb +++ b/lib/bundler/cli/doctor.rb @@ -4,8 +4,8 @@ require "rbconfig" module Bundler class CLI::Doctor - DARWIN_REGEX = /\s+(.+) \(compatibility / - LDD_REGEX = /\t\S+ => (\S+) \(\S+\)/ + DARWIN_REGEX = /\s+(.+) \(compatibility /.freeze + LDD_REGEX = /\t\S+ => (\S+) \(\S+\)/.freeze attr_reader :options @@ -56,7 +56,7 @@ module Bundler end def check! - require "bundler/cli/check" + require_relative "check" Bundler::CLI::Check.new({}).run end diff --git a/lib/bundler/cli/exec.rb b/lib/bundler/cli/exec.rb index c29d632307..6fdd55d106 100644 --- a/lib/bundler/cli/exec.rb +++ b/lib/bundler/cli/exec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -require "bundler/current_ruby" +require_relative "../current_ruby" module Bundler class CLI::Exec @@ -69,7 +69,7 @@ module Bundler Process.setproctitle(process_title(file, args)) if Process.respond_to?(:setproctitle) ui = Bundler.ui Bundler.ui = nil - require "bundler/setup" + require_relative "../setup" TRAPPED_SIGNALS.each {|s| trap(s, "DEFAULT") } Kernel.load(file) rescue SystemExit, SignalException diff --git a/lib/bundler/cli/gem.rb b/lib/bundler/cli/gem.rb index 58e2f8a3fd..3db1ec7843 100644 --- a/lib/bundler/cli/gem.rb +++ b/lib/bundler/cli/gem.rb @@ -11,7 +11,7 @@ module Bundler class CLI::Gem TEST_FRAMEWORK_VERSIONS = { "rspec" => "3.0", - "minitest" => "5.0" + "minitest" => "5.0", }.freeze attr_reader :options, :gem_name, :thor, :name, :target @@ -57,7 +57,7 @@ module Bundler :ext => options[:ext], :exe => options[:exe], :bundler_version => bundler_dependency_version, - :github_username => github_username.empty? ? "[USERNAME]" : github_username + :github_username => github_username.empty? ? "[USERNAME]" : github_username, } ensure_safe_gem_name(name, constant_array) @@ -69,7 +69,7 @@ module Bundler "Rakefile.tt" => "Rakefile", "README.md.tt" => "README.md", "bin/console.tt" => "bin/console", - "bin/setup.tt" => "bin/setup" + "bin/setup.tt" => "bin/setup", } executables = %w[ diff --git a/lib/bundler/cli/info.rb b/lib/bundler/cli/info.rb index 958b525067..4733675e8c 100644 --- a/lib/bundler/cli/info.rb +++ b/lib/bundler/cli/info.rb @@ -9,18 +9,24 @@ module Bundler end def run + Bundler.ui.silence do + Bundler.definition.validate_runtime! + Bundler.load.lock + end + spec = spec_for_gem(gem_name) - spec_not_found(gem_name) unless spec - return print_gem_path(spec) if @options[:path] - print_gem_info(spec) + if spec + return print_gem_path(spec) if @options[:path] + print_gem_info(spec) + end end private def spec_for_gem(gem_name) spec = Bundler.definition.specs.find {|s| s.name == gem_name } - spec || default_gem_spec(gem_name) + spec || default_gem_spec(gem_name) || Bundler::CLI::Common.select_spec(gem_name, :regex_match) end def default_gem_spec(gem_name) @@ -34,7 +40,13 @@ module Bundler end def print_gem_path(spec) - Bundler.ui.info spec.full_gem_path + path = if spec.name == "bundler" + File.expand_path("../../../..", __FILE__) + else + spec.full_gem_path + end + + Bundler.ui.info path end def print_gem_info(spec) diff --git a/lib/bundler/cli/init.rb b/lib/bundler/cli/init.rb index 40df797269..65dd08dfe9 100644 --- a/lib/bundler/cli/init.rb +++ b/lib/bundler/cli/init.rb @@ -41,7 +41,7 @@ module Bundler private def gemfile - @gemfile ||= Bundler.feature_flag.init_gems_rb? ? "gems.rb" : "Gemfile" + @gemfile ||= Bundler.settings[:init_gems_rb] ? "gems.rb" : "Gemfile" end end end diff --git a/lib/bundler/cli/install.rb b/lib/bundler/cli/install.rb index 03edc7fbd2..cf0c71d766 100644 --- a/lib/bundler/cli/install.rb +++ b/lib/bundler/cli/install.rb @@ -80,7 +80,7 @@ module Bundler warn_ambiguous_gems if CLI::Common.clean_after_install? - require "bundler/cli/clean" + require_relative "clean" Bundler::CLI::Clean.new(options).run end rescue GemNotFound, VersionConflict => e diff --git a/lib/bundler/cli/issue.rb b/lib/bundler/cli/issue.rb index 91f827ea99..054ce76315 100644 --- a/lib/bundler/cli/issue.rb +++ b/lib/bundler/cli/issue.rb @@ -13,10 +13,10 @@ module Bundler https://github.com/bundler/bundler/blob/master/doc/TROUBLESHOOTING.md 2. Instructions for common Bundler uses can be found on the documentation - site: http://bundler.io/ + site: https://bundler.io/ 3. Information about each Bundler command can be found in the Bundler - man pages: http://bundler.io/man/bundle.1.html + man pages: https://bundler.io/man/bundle.1.html Hopefully the troubleshooting steps above resolved your problem! If things still aren't working the way you expect them to, please let us know so @@ -33,7 +33,7 @@ module Bundler end def doctor - require "bundler/cli/doctor" + require_relative "doctor" Bundler::CLI::Doctor.new({}).run end end diff --git a/lib/bundler/cli/outdated.rb b/lib/bundler/cli/outdated.rb index 6cbb3452cb..3a0521de1e 100644 --- a/lib/bundler/cli/outdated.rb +++ b/lib/bundler/cli/outdated.rb @@ -221,9 +221,9 @@ module Bundler def check_for_deployment_mode return unless Bundler.frozen_bundle? suggested_command = if Bundler.settings.locations("frozen")[:global] - "bundle config --delete frozen" + "bundle config unset frozen" elsif Bundler.settings.locations("deployment").keys.&([:global, :local]).any? - "bundle config --delete deployment" + "bundle config unset deployment" else "bundle install --no-deployment" end diff --git a/lib/bundler/cli/package.rb b/lib/bundler/cli/package.rb index 2dcd0e1e29..120a3fdcf3 100644 --- a/lib/bundler/cli/package.rb +++ b/lib/bundler/cli/package.rb @@ -25,7 +25,7 @@ module Bundler private def install - require "bundler/cli/install" + require_relative "install" options = self.options.dup if Bundler.settings[:cache_all_platforms] options["local"] = false @@ -42,7 +42,7 @@ module Bundler if Bundler.definition.has_local_dependencies? && !Bundler.feature_flag.cache_all? Bundler.ui.warn "Your Gemfile contains path and git dependencies. If you want " \ "to package them as well, please pass the --all flag. This will be the default " \ - "on Bundler 2.0." + "on Bundler 3.0." end end end diff --git a/lib/bundler/cli/plugin.rb b/lib/bundler/cli/plugin.rb index b5dd5b6d4b..1155c4ec9b 100644 --- a/lib/bundler/cli/plugin.rb +++ b/lib/bundler/cli/plugin.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -require "bundler/vendored_thor" +require_relative "../vendored_thor" module Bundler class CLI::Plugin < Thor desc "install PLUGINS", "Install the plugin from the source" diff --git a/lib/bundler/cli/show.rb b/lib/bundler/cli/show.rb index 61756801b2..3748c25b89 100644 --- a/lib/bundler/cli/show.rb +++ b/lib/bundler/cli/show.rb @@ -24,7 +24,7 @@ module Bundler return unless spec path = spec.full_gem_path unless File.directory?(path) - Bundler.ui.warn "The gem #{gem_name} has been deleted. It was installed at:" + return Bundler.ui.warn "The gem #{gem_name} has been deleted. It was installed at: #{path}" end end return Bundler.ui.info(path) diff --git a/lib/bundler/cli/update.rb b/lib/bundler/cli/update.rb index b088853768..45d0374eef 100644 --- a/lib/bundler/cli/update.rb +++ b/lib/bundler/cli/update.rb @@ -58,21 +58,32 @@ module Bundler Bundler.settings.set_command_option_if_given :jobs, opts["jobs"] Bundler.definition.validate_runtime! + + if locked_gems = Bundler.definition.locked_gems + previous_locked_specs = locked_gems.specs.reduce({}) do |h, s| + h[s.name] = { :version => s.version, :source => s.source.to_s } + h + end + end + installer = Installer.install Bundler.root, Bundler.definition, opts Bundler.load.cache if Bundler.app_cache.exist? if CLI::Common.clean_after_install? - require "bundler/cli/clean" + require_relative "clean" Bundler::CLI::Clean.new(options).run end - if locked_gems = Bundler.definition.locked_gems + if locked_gems gems.each do |name| - locked_version = locked_gems.specs.find {|s| s.name == name } - locked_version &&= locked_version.version - next unless locked_version - new_version = Bundler.definition.specs[name].first - new_version &&= new_version.version + locked_spec = previous_locked_specs[name] + next unless locked_spec + locked_source = locked_spec[:source] + locked_version = locked_spec[:version] + new_spec = Bundler.definition.specs[name].first + new_source = new_spec.source.to_s + new_version = new_spec.version + next if locked_source != new_source if !new_version Bundler.ui.warn "Bundler attempted to update #{name} but it was removed from the bundle" elsif new_version < locked_version diff --git a/lib/bundler/compact_index_client.rb b/lib/bundler/compact_index_client.rb index 6c241ca07a..a5120dbba4 100644 --- a/lib/bundler/compact_index_client.rb +++ b/lib/bundler/compact_index_client.rb @@ -13,16 +13,11 @@ module Bundler class Error < StandardError; end - require "bundler/compact_index_client/cache" - require "bundler/compact_index_client/updater" + require_relative "compact_index_client/cache" + require_relative "compact_index_client/updater" attr_reader :directory - # @return [Lambda] A lambda that takes an array of inputs and a block, and - # maps the inputs with the block in parallel. - # - attr_accessor :in_parallel - def initialize(directory, fetcher) @directory = Pathname.new(directory) @updater = Updater.new(fetcher) @@ -31,7 +26,28 @@ module Bundler @info_checksums_by_name = {} @parsed_checksums = false @mutex = Mutex.new - @in_parallel = lambda do |inputs, &blk| + end + + def execution_mode=(block) + Bundler::CompactIndexClient.debug { "execution_mode=" } + @endpoints = Set.new + + @execution_mode = block + end + + # @return [Lambda] A lambda that takes an array of inputs and a block, and + # maps the inputs with the block in parallel. + # + def execution_mode + @execution_mode || sequentially + end + + def sequential_execution_mode! + self.execution_mode = sequentially + end + + def sequentially + @sequentially ||= lambda do |inputs, &blk| inputs.map(&blk) end end @@ -51,7 +67,7 @@ module Bundler def dependencies(names) Bundler::CompactIndexClient.debug { "dependencies(#{names})" } - in_parallel.call(names) do |name| + execution_mode.call(names) do |name| update_info(name) @cache.dependencies(name).map {|d| d.unshift(name) } end.flatten(1) diff --git a/lib/bundler/compact_index_client/updater.rb b/lib/bundler/compact_index_client/updater.rb index 4d6eb80044..40232019bc 100644 --- a/lib/bundler/compact_index_client/updater.rb +++ b/lib/bundler/compact_index_client/updater.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -require "bundler/vendored_fileutils" +require_relative "../vendored_fileutils" require "stringio" require "zlib" @@ -95,11 +95,7 @@ module Bundler end def slice_body(body, range) - if body.respond_to?(:byteslice) - body.byteslice(range) - else # pre-1.9.3 - body.unpack("@#{range.first}a#{range.end + 1}").first - end + body.byteslice(range) end def checksum_for_file(path) diff --git a/lib/bundler/compatibility_guard.rb b/lib/bundler/compatibility_guard.rb index 750a1db04f..eaff1a10d4 100644 --- a/lib/bundler/compatibility_guard.rb +++ b/lib/bundler/compatibility_guard.rb @@ -1,14 +1,9 @@ # frozen_string_literal: false -require "rubygems" -require "bundler/version" +require_relative "version" if Bundler::VERSION.split(".").first.to_i >= 2 if Gem::Version.new(Object::RUBY_VERSION.dup) < Gem::Version.new("2.3") abort "Bundler 2 requires Ruby 2.3 or later. Either install bundler 1 or update to a supported Ruby version." end - - if Gem::Version.new(Gem::VERSION.dup) < Gem::Version.new("2.5") - abort "Bundler 2 requires RubyGems 2.5 or later. Either install bundler 1 or update to a supported RubyGems version." - end end diff --git a/lib/bundler/definition.rb b/lib/bundler/definition.rb index 9d6fbfff59..506b0620d2 100644 --- a/lib/bundler/definition.rb +++ b/lib/bundler/definition.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -require "bundler/lockfile_parser" +require_relative "lockfile_parser" require "set" module Bundler @@ -385,7 +385,7 @@ module Bundler end def to_lock - require "bundler/lockfile_generator" + require_relative "lockfile_generator" LockfileGenerator.generate(self) end @@ -397,9 +397,9 @@ module Bundler unless explicit_flag suggested_command = if Bundler.settings.locations("frozen")[:global] - "bundle config --delete frozen" + "bundle config unset frozen" elsif Bundler.settings.locations("deployment").keys.&([:global, :local]).any? - "bundle config --delete deployment" + "bundle config unset deployment" else "bundle install --no-deployment" end @@ -643,7 +643,7 @@ module Bundler end def converge_rubygems_sources - return false if Bundler.feature_flag.lockfile_uses_separate_rubygems_sources? + return false if Bundler.feature_flag.disable_multisource? changes = false @@ -915,7 +915,7 @@ module Bundler # look for that gemspec (or its dependencies) default = sources.default_source source_requirements = { :default => default } - default = nil unless Bundler.feature_flag.lockfile_uses_separate_rubygems_sources? + default = nil unless Bundler.feature_flag.disable_multisource? dependencies.each do |dep| next unless source = dep.source || default source_requirements[dep.name] = source @@ -929,7 +929,7 @@ module Bundler def pinned_spec_names(skip = nil) pinned_names = [] - default = Bundler.feature_flag.lockfile_uses_separate_rubygems_sources? && sources.default_source + default = Bundler.feature_flag.disable_multisource? && sources.default_source @dependencies.each do |dep| next unless dep_source = dep.source || default next if dep_source == skip diff --git a/lib/bundler/dependency.rb b/lib/bundler/dependency.rb index 8840ad6a9c..0d588bc892 100644 --- a/lib/bundler/dependency.rb +++ b/lib/bundler/dependency.rb @@ -1,13 +1,13 @@ # frozen_string_literal: true require "rubygems/dependency" -require "bundler/shared_helpers" -require "bundler/rubygems_ext" +require_relative "shared_helpers" +require_relative "rubygems_ext" module Bundler class Dependency < Gem::Dependency attr_reader :autorequire - attr_reader :groups, :platforms, :gemfile + attr_reader :groups, :platforms, :gemfile, :git, :branch PLATFORM_MAP = { :ruby => Gem::Platform::RUBY, @@ -84,6 +84,8 @@ module Bundler @autorequire = nil @groups = Array(options["group"] || :default).map(&:to_sym) @source = options["source"] + @git = options["git"] + @branch = options["branch"] @platforms = Array(options["platforms"]) @env = options["env"] @should_include = options.fetch("should_include", true) diff --git a/lib/bundler/deployment.rb b/lib/bundler/deployment.rb index 291e158ca0..b432ae6ae1 100644 --- a/lib/bundler/deployment.rb +++ b/lib/bundler/deployment.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -require "bundler/shared_helpers" +require_relative "shared_helpers" Bundler::SharedHelpers.major_deprecation 2, "Bundler no longer integrates with " \ "Capistrano, but Capistrano provides its own integration with " \ "Bundler via the capistrano-bundler gem. Use it instead." diff --git a/lib/bundler/dsl.rb b/lib/bundler/dsl.rb index 6707fc5893..d3ead2a1ff 100644 --- a/lib/bundler/dsl.rb +++ b/lib/bundler/dsl.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true -require "bundler/dependency" -require "bundler/ruby_dsl" +require_relative "dependency" +require_relative "ruby_dsl" module Bundler class Dsl @@ -45,7 +45,7 @@ module Bundler @gemfiles << expanded_gemfile_path contents ||= Bundler.read_file(@gemfile.to_s) instance_eval(contents.dup.untaint, gemfile.to_s, 1) - rescue Exception => e + rescue Exception => e # rubocop:disable Lint/RescueException message = "There was an error " \ "#{e.is_a?(GemfileEvalError) ? "evaluating" : "parsing"} " \ "`#{File.basename gemfile.to_s}`: #{e.message}" @@ -290,37 +290,21 @@ module Bundler warn_deprecated_git_source(:github, <<-'RUBY'.strip, 'Change any "reponame" :github sources to "username/reponame".') "https://github.com/#{repo_name}.git" RUBY - # It would be better to use https instead of the git protocol, but this - # can break deployment of existing locked bundles when switching between - # different versions of Bundler. The change will be made in 2.0, which - # does not guarantee compatibility with the 1.x series. - # - # See https://github.com/bundler/bundler/pull/2569 for discussion - # - # This can be overridden by adding this code to your Gemfiles: - # - # git_source(:github) do |repo_name| - # repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/") - # "https://github.com/#{repo_name}.git" - # end repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/") - # TODO: 2.0 upgrade this setting to the default if Bundler.feature_flag.github_https? - Bundler::SharedHelpers.major_deprecation 2, "The `github.https` setting will be removed" "https://github.com/#{repo_name}.git" else + Bundler::SharedHelpers.major_deprecation 2, "Setting `github.https` to false is deprecated and won't be supported in the future." "git://github.com/#{repo_name}.git" end end - # TODO: 2.0 remove this deprecated git source git_source(:gist) do |repo_name| warn_deprecated_git_source(:gist, '"https://gist.github.com/#{repo_name}.git"') "https://gist.github.com/#{repo_name}.git" end - # TODO: 2.0 remove this deprecated git source git_source(:bitbucket) do |repo_name| warn_deprecated_git_source(:bitbucket, <<-'RUBY'.strip) user_name, repo_name = repo_name.split("/") @@ -441,10 +425,10 @@ repo_name ||= user_name message = String.new message << "You passed #{invalid_keys.map {|k| ":" + k }.join(", ")} " message << if invalid_keys.size > 1 - "as options for #{command}, but they are invalid." - else - "as an option for #{command}, but it is invalid." - end + "as options for #{command}, but they are invalid." + else + "as an option for #{command}, but it is invalid." + end message << " Valid options are: #{valid_keys.join(", ")}." message << " You may be able to resolve this by upgrading Bundler to the newest version." @@ -474,7 +458,7 @@ repo_name ||= user_name "should come from that source" unless Bundler.feature_flag.bundler_2_mode? msg += ". To downgrade this error to a warning, run " \ - "`bundle config --delete disable_multisource`" + "`bundle config unset disable_multisource`" end raise GemfileEvalError, msg else @@ -482,13 +466,12 @@ repo_name ||= user_name "Using `source` more than once without a block is a security risk, and " \ "may result in installing unexpected gems. To resolve this warning, use " \ "a block to indicate which gems should come from the secondary source. " \ - "To upgrade this warning to an error, run `bundle config " \ + "To upgrade this warning to an error, run `bundle config set " \ "disable_multisource true`." end end def warn_deprecated_git_source(name, replacement, additional_message = nil) - # TODO: 2.0 remove deprecation additional_message &&= " #{additional_message}" replacement = if replacement.count("\n").zero? "{|repo_name| #{replacement} }" @@ -496,8 +479,8 @@ repo_name ||= user_name "do |repo_name|\n#{replacement.to_s.gsub(/^/, " ")}\n end" end - Bundler::SharedHelpers.major_deprecation 2, <<-EOS -The :#{name} git source is deprecated, and will be removed in Bundler 2.0.#{additional_message} Add this code to the top of your Gemfile to ensure it continues to work: + Bundler::SharedHelpers.major_deprecation 3, <<-EOS +The :#{name} git source is deprecated, and will be removed in the future.#{additional_message} Add this code to the top of your Gemfile to ensure it continues to work: git_source(:#{name}) #{replacement} @@ -599,7 +582,7 @@ The :#{name} git source is deprecated, and will be removed in Bundler 2.0.#{addi description = self.description if dsl_path && description =~ /((#{Regexp.quote File.expand_path(dsl_path)}|#{Regexp.quote dsl_path.to_s}):\d+)/ trace_line = Regexp.last_match[1] - description = description.sub(/#{Regexp.quote trace_line}:\s*/, "").sub("\n", " - ") + description = description.sub(/\n.*\n(\.\.\.)? *\^~+$/, "").sub(/#{Regexp.quote trace_line}:\s*/, "").sub("\n", " - ") end [trace_line, description] end diff --git a/lib/bundler/env.rb b/lib/bundler/env.rb index 9cd9b8baca..a08db08aa0 100644 --- a/lib/bundler/env.rb +++ b/lib/bundler/env.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true -require "bundler/rubygems_integration" -require "bundler/source/git/git_proxy" +require_relative "rubygems_integration" +require_relative "source/git/git_proxy" module Bundler class Env @@ -100,8 +100,9 @@ module Bundler out << [" Full Path", Gem.ruby] out << [" Config Dir", Pathname.new(Gem::ConfigFile::SYSTEM_WIDE_CONFIG_FILE).dirname] out << ["RubyGems", Gem::VERSION] - out << [" Gem Home", ENV.fetch("GEM_HOME") { Gem.dir }] - out << [" Gem Path", ENV.fetch("GEM_PATH") { Gem.path.join(File::PATH_SEPARATOR) }] + out << [" Gem Home", Gem.dir] + out << [" Gem Path", Gem.path.join(File::PATH_SEPARATOR)] + out << [" User Home", Gem.user_home] out << [" User Path", Gem.user_dir] out << [" Bin Dir", Gem.bindir] if defined?(OpenSSL) diff --git a/lib/bundler/feature_flag.rb b/lib/bundler/feature_flag.rb index 0adbd9190f..07106abad7 100644 --- a/lib/bundler/feature_flag.rb +++ b/lib/bundler/feature_flag.rb @@ -27,38 +27,31 @@ module Bundler (1..10).each {|v| define_method("bundler_#{v}_mode?") { major_version >= v } } - settings_flag(:allow_bundler_dependency_conflicts) { bundler_2_mode? } - settings_flag(:allow_offline_install) { bundler_2_mode? } - settings_flag(:auto_clean_without_path) { bundler_2_mode? } - settings_flag(:auto_config_jobs) { bundler_2_mode? } - settings_flag(:cache_all) { bundler_2_mode? } - settings_flag(:cache_command_is_package) { bundler_2_mode? } - settings_flag(:console_command) { !bundler_2_mode? } - settings_flag(:default_install_uses_path) { bundler_2_mode? } - settings_flag(:deployment_means_frozen) { bundler_2_mode? } - settings_flag(:disable_multisource) { bundler_2_mode? } - settings_flag(:error_on_stderr) { bundler_2_mode? } - settings_flag(:forget_cli_options) { bundler_2_mode? } - settings_flag(:global_path_appends_ruby_scope) { bundler_2_mode? } - settings_flag(:global_gem_cache) { bundler_2_mode? } - settings_flag(:init_gems_rb) { bundler_2_mode? } - settings_flag(:list_command) { bundler_2_mode? } - settings_flag(:lockfile_uses_separate_rubygems_sources) { bundler_2_mode? } - settings_flag(:only_update_to_newer_versions) { bundler_2_mode? } - settings_flag(:path_relative_to_cwd) { bundler_2_mode? } + settings_flag(:allow_bundler_dependency_conflicts) { bundler_3_mode? } + settings_flag(:allow_offline_install) { bundler_3_mode? } + settings_flag(:auto_clean_without_path) { bundler_3_mode? } + settings_flag(:auto_config_jobs) { bundler_3_mode? } + settings_flag(:cache_all) { bundler_3_mode? } + settings_flag(:cache_command_is_package) { bundler_3_mode? } + settings_flag(:default_install_uses_path) { bundler_3_mode? } + settings_flag(:deployment_means_frozen) { bundler_3_mode? } + settings_flag(:disable_multisource) { bundler_3_mode? } + settings_flag(:forget_cli_options) { bundler_3_mode? } + settings_flag(:global_path_appends_ruby_scope) { bundler_3_mode? } + settings_flag(:global_gem_cache) { bundler_3_mode? } + settings_flag(:only_update_to_newer_versions) { bundler_3_mode? } + settings_flag(:path_relative_to_cwd) { bundler_3_mode? } settings_flag(:plugins) { @bundler_version >= Gem::Version.new("1.14") } - settings_flag(:prefer_gems_rb) { bundler_2_mode? } - settings_flag(:print_only_version_number) { bundler_2_mode? } - settings_flag(:setup_makes_kernel_gem_public) { !bundler_2_mode? } - settings_flag(:skip_default_git_sources) { bundler_2_mode? } - settings_flag(:specific_platform) { bundler_2_mode? } - settings_flag(:suppress_install_using_messages) { bundler_2_mode? } - settings_flag(:unlock_source_unlocks_spec) { !bundler_2_mode? } - settings_flag(:update_requires_all_flag) { bundler_2_mode? } - settings_flag(:use_gem_version_promoter_for_major_updates) { bundler_2_mode? } - settings_flag(:viz_command) { !bundler_2_mode? } + settings_flag(:print_only_version_number) { bundler_3_mode? } + settings_flag(:setup_makes_kernel_gem_public) { !bundler_3_mode? } + settings_flag(:skip_default_git_sources) { bundler_4_mode? } + settings_flag(:specific_platform) { bundler_3_mode? } + settings_flag(:suppress_install_using_messages) { bundler_3_mode? } + settings_flag(:unlock_source_unlocks_spec) { !bundler_3_mode? } + settings_flag(:update_requires_all_flag) { bundler_3_mode? } + settings_flag(:use_gem_version_promoter_for_major_updates) { bundler_3_mode? } - settings_option(:default_cli_command) { bundler_2_mode? ? :cli_help : :install } + settings_option(:default_cli_command) { bundler_3_mode? ? :cli_help : :install } settings_method(:github_https?, "github.https") { bundler_2_mode? } diff --git a/lib/bundler/fetcher.rb b/lib/bundler/fetcher.rb index 4dd42e42ff..7ec41d62c0 100644 --- a/lib/bundler/fetcher.rb +++ b/lib/bundler/fetcher.rb @@ -1,9 +1,10 @@ # frozen_string_literal: true -require "bundler/vendored_persistent" +require_relative "vendored_persistent" require "cgi" require "securerandom" require "zlib" +require "rubygems/request" module Bundler # Handles all the fetching with the rubygems server @@ -15,6 +16,8 @@ module Bundler # This error is raised when it looks like the network is down class NetworkDownError < HTTPError; end + # This error is raised if we should rate limit our requests to the API + class TooManyRequestsError < HTTPError; end # This error is raised if the API returns a 413 (only printed in verbose) class FallbackError < HTTPError; end # This is the error raised if OpenSSL fails the cert verification @@ -44,7 +47,7 @@ module Bundler remote_uri = filter_uri(remote_uri) super "Authentication is required for #{remote_uri}.\n" \ "Please supply credentials for this source. You can do this by running:\n" \ - " bundle config #{remote_uri} username:password" + " bundle config set #{remote_uri} username:password" end end # This error is raised if HTTP authentication is provided, but incorrect. @@ -226,7 +229,7 @@ module Bundler "GO_SERVER_URL" => "go", "SNAP_CI" => "snap", "CI_NAME" => ENV["CI_NAME"], - "CI" => "ci" + "CI" => "ci", } env_cis.find_all {|env, _| ENV[env] }.map {|_, ci| ci } end @@ -293,8 +296,7 @@ module Bundler end else store.set_default_paths - certs = File.expand_path("../ssl_certs/*/*.pem", __FILE__) - Dir.glob(certs).each {|c| store.add_file c } + Gem::Request.get_cert_files.each {|c| store.add_file c } end store end diff --git a/lib/bundler/fetcher/compact_index.rb b/lib/bundler/fetcher/compact_index.rb index cfc74d642c..1efd3e03af 100644 --- a/lib/bundler/fetcher/compact_index.rb +++ b/lib/bundler/fetcher/compact_index.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true -require "bundler/fetcher/base" -require "bundler/worker" +require_relative "base" +require_relative "../worker" module Bundler autoload :CompactIndexClient, "bundler/compact_index_client" @@ -39,7 +39,13 @@ module Bundler until remaining_gems.empty? log_specs "Looking up gems #{remaining_gems.inspect}" - deps = compact_index_client.dependencies(remaining_gems) + deps = begin + parallel_compact_index_client.dependencies(remaining_gems) + rescue TooManyRequestsError + @bundle_worker.stop if @bundle_worker + @bundle_worker = nil # reset it. Not sure if necessary + serial_compact_index_client.dependencies(remaining_gems) + end next_gems = deps.map {|d| d[3].map(&:first).flatten(1) }.flatten(1).uniq deps.each {|dep| gem_info << dep } complete_gems.concat(deps.map(&:first)).uniq! @@ -80,18 +86,26 @@ module Bundler private def compact_index_client - @compact_index_client ||= begin + @compact_index_client ||= SharedHelpers.filesystem_access(cache_path) do CompactIndexClient.new(cache_path, client_fetcher) - end.tap do |client| - client.in_parallel = lambda do |inputs, &blk| - func = lambda {|object, _index| blk.call(object) } - worker = bundle_worker(func) - inputs.each {|input| worker.enq(input) } - inputs.map { worker.deq } - end end + end + + def parallel_compact_index_client + compact_index_client.execution_mode = lambda do |inputs, &blk| + func = lambda {|object, _index| blk.call(object) } + worker = bundle_worker(func) + inputs.each {|input| worker.enq(input) } + inputs.map { worker.deq } end + + compact_index_client + end + + def serial_compact_index_client + compact_index_client.sequential_execution_mode! + compact_index_client end def bundle_worker(func = nil) diff --git a/lib/bundler/fetcher/dependency.rb b/lib/bundler/fetcher/dependency.rb index 1430d1ebeb..c52c32fb5b 100644 --- a/lib/bundler/fetcher/dependency.rb +++ b/lib/bundler/fetcher/dependency.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -require "bundler/fetcher/base" +require_relative "base" require "cgi" module Bundler diff --git a/lib/bundler/fetcher/downloader.rb b/lib/bundler/fetcher/downloader.rb index e0c5d13e50..73f125af91 100644 --- a/lib/bundler/fetcher/downloader.rb +++ b/lib/bundler/fetcher/downloader.rb @@ -34,6 +34,8 @@ module Bundler fetch(uri, new_headers) when Net::HTTPRequestEntityTooLarge raise FallbackError, response.body + when Net::HTTPTooManyRequests + raise TooManyRequestsError, response.body when Net::HTTPUnauthorized raise BadAuthenticationError, uri.host if uri.userinfo raise AuthenticationRequiredError, uri.host diff --git a/lib/bundler/fetcher/index.rb b/lib/bundler/fetcher/index.rb index eb32186eea..9beb0e27d8 100644 --- a/lib/bundler/fetcher/index.rb +++ b/lib/bundler/fetcher/index.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -require "bundler/fetcher/base" +require_relative "base" require "rubygems/remote_fetcher" module Bundler diff --git a/lib/bundler/friendly_errors.rb b/lib/bundler/friendly_errors.rb index ae3299a7c8..45faf02020 100644 --- a/lib/bundler/friendly_errors.rb +++ b/lib/bundler/friendly_errors.rb @@ -1,8 +1,7 @@ -# encoding: utf-8 # frozen_string_literal: true require "cgi" -require "bundler/vendored_thor" +require_relative "vendored_thor" module Bundler module FriendlyErrors @@ -45,7 +44,7 @@ module Bundler "Alternatively, you can increase the amount of memory the JVM is able to use by running Bundler with jruby -J-Xmx1024m -S bundle (JRuby defaults to 500MB)." else request_issue_report_for(error) end - rescue + rescue StandardError raise error end @@ -124,7 +123,7 @@ module Bundler yield rescue SignalException raise - rescue Exception => e + rescue Exception => e # rubocop:disable Lint/RescueException FriendlyErrors.log_error(e) exit FriendlyErrors.exit_status(e) end diff --git a/lib/bundler/gem_helper.rb b/lib/bundler/gem_helper.rb index ca39f122e9..33f1d51592 100644 --- a/lib/bundler/gem_helper.rb +++ b/lib/bundler/gem_helper.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true -require "bundler/vendored_thor" unless defined?(Thor) -require "bundler" +require_relative "vendored_thor" unless defined?(Thor) +require_relative "../bundler" require "shellwords" module Bundler @@ -75,7 +75,8 @@ module Bundler def build_gem file_name = nil - sh(%W[gem build -V #{spec_path}]) do + gem = ENV["BUNDLE_GEM"] ? ENV["BUNDLE_GEM"] : "gem" + sh(%W[#{gem} build -V #{spec_path}]) do file_name = File.basename(built_gem_path) SharedHelpers.filesystem_access(File.join(base, "pkg")) {|p| FileUtils.mkdir_p(p) } FileUtils.mv(built_gem_path, "pkg") @@ -86,7 +87,8 @@ module Bundler def install_gem(built_gem_path = nil, local = false) built_gem_path ||= build_gem - cmd = %W[gem install #{built_gem_path}] + gem = ENV["BUNDLE_GEM"] ? ENV["BUNDLE_GEM"] : "gem" + cmd = %W[#{gem} install #{built_gem_path}] cmd << "--local" if local out, status = sh_with_status(cmd) unless status.success? && out[/Successfully installed/] diff --git a/lib/bundler/gem_helpers.rb b/lib/bundler/gem_helpers.rb index 019ae10c66..9d35169b99 100644 --- a/lib/bundler/gem_helpers.rb +++ b/lib/bundler/gem_helpers.rb @@ -10,7 +10,7 @@ module Bundler [Gem::Platform.new("universal-mingw32"), Gem::Platform.new("universal-mingw32")], [Gem::Platform.new("x64-mingw32"), Gem::Platform.new("x64-mingw32")], [Gem::Platform.new("x86_64-mingw32"), Gem::Platform.new("x64-mingw32")], - [Gem::Platform.new("mingw32"), Gem::Platform.new("x86-mingw32")] + [Gem::Platform.new("mingw32"), Gem::Platform.new("x86-mingw32")], ].freeze def generic(p) diff --git a/lib/bundler/gem_tasks.rb b/lib/bundler/gem_tasks.rb index f736517bd7..bc725d3602 100644 --- a/lib/bundler/gem_tasks.rb +++ b/lib/bundler/gem_tasks.rb @@ -3,5 +3,5 @@ require "rake/clean" CLOBBER.include "pkg" -require "bundler/gem_helper" +require_relative "gem_helper" Bundler::GemHelper.install_tasks diff --git a/lib/bundler/graph.rb b/lib/bundler/graph.rb index de6bba0214..5644e41079 100644 --- a/lib/bundler/graph.rb +++ b/lib/bundler/graph.rb @@ -117,7 +117,7 @@ module Bundler :style => "filled", :fillcolor => "#B9B9D5", :shape => "box3d", - :fontsize => 16 + :fontsize => 16, }.merge(@node_options[group]) ) end @@ -142,7 +142,7 @@ module Bundler g.output @output_format.to_sym => "#{@output_file}.#{@output_format}" Bundler.ui.info "#{@output_file}.#{@output_format}" rescue ArgumentError => e - $stderr.puts "Unsupported output format. See Ruby-Graphviz/lib/graphviz/constants.rb" + warn "Unsupported output format. See Ruby-Graphviz/lib/graphviz/constants.rb" raise e end end diff --git a/lib/bundler/injector.rb b/lib/bundler/injector.rb index e67469f2dd..2cdda578e2 100644 --- a/lib/bundler/injector.rb +++ b/lib/bundler/injector.rb @@ -111,8 +111,10 @@ module Bundler end source = ", :source => \"#{d.source}\"" unless d.source.nil? + git = ", :git => \"#{d.git}\"" unless d.git.nil? + branch = ", :branch => \"#{d.branch}\"" unless d.branch.nil? - %(gem #{name}#{requirement}#{group}#{source}) + %(gem #{name}#{requirement}#{group}#{source}#{git}#{branch}) end.join("\n") end diff --git a/lib/bundler/inline.rb b/lib/bundler/inline.rb index 93355c9460..317bf892ab 100644 --- a/lib/bundler/inline.rb +++ b/lib/bundler/inline.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -require "bundler/compatibility_guard" +require_relative "compatibility_guard" # Allows for declaring a Gemfile inline in a ruby script, optionally installing # any gems that aren't already installed on the user's system. @@ -32,7 +32,7 @@ require "bundler/compatibility_guard" # puts Pod::VERSION # => "0.34.4" # def gemfile(install = false, options = {}, &gemfile) - require "bundler" + require_relative "../bundler" opts = options.dup ui = opts.delete(:ui) { Bundler::UI::Shell.new } @@ -49,26 +49,28 @@ def gemfile(install = false, options = {}, &gemfile) builder = Bundler::Dsl.new builder.instance_eval(&gemfile) - definition = builder.to_definition(nil, true) - def definition.lock(*); end - definition.validate_runtime! + Bundler.settings.temporary(:frozen => false) do + definition = builder.to_definition(nil, true) + def definition.lock(*); end + definition.validate_runtime! - missing_specs = proc do - definition.missing_specs? - end + missing_specs = proc do + definition.missing_specs? + end - Bundler.ui = ui if install - if install || missing_specs.call - Bundler.settings.temporary(:inline => true) do - installer = Bundler::Installer.install(Bundler.root, definition, :system => true) - installer.post_install_messages.each do |name, message| - Bundler.ui.info "Post-install message from #{name}:\n#{message}" + Bundler.ui = ui if install + if install || missing_specs.call + Bundler.settings.temporary(:inline => true, :disable_platform_warnings => true) do + installer = Bundler::Installer.install(Bundler.root, definition, :system => true) + installer.post_install_messages.each do |name, message| + Bundler.ui.info "Post-install message from #{name}:\n#{message}" + end end end - end - runtime = Bundler::Runtime.new(nil, definition) - runtime.setup.require + runtime = Bundler::Runtime.new(nil, definition) + runtime.setup.require + end ensure bundler_module = class << Bundler; self; end bundler_module.send(:define_method, :root, old_root) if old_root diff --git a/lib/bundler/installer.rb b/lib/bundler/installer.rb index dd30bd5b64..5bc53a8b61 100644 --- a/lib/bundler/installer.rb +++ b/lib/bundler/installer.rb @@ -2,10 +2,10 @@ require "erb" require "rubygems/dependency_installer" -require "bundler/worker" -require "bundler/installer/parallel_installer" -require "bundler/installer/standalone" -require "bundler/installer/gem_installer" +require_relative "worker" +require_relative "installer/parallel_installer" +require_relative "installer/standalone" +require_relative "installer/gem_installer" module Bundler class Installer @@ -275,14 +275,7 @@ module Bundler end def can_install_in_parallel? - if Bundler.rubygems.provides?(">= 2.1.0") - true - else - Bundler.ui.warn "RubyGems #{Gem::VERSION} is not threadsafe, so your "\ - "gems will be installed one at a time. Upgrade to RubyGems 2.1.0 " \ - "or higher to enable parallel gem installation." - false - end + true end def install_in_parallel(size, standalone, force = false) diff --git a/lib/bundler/installer/gem_installer.rb b/lib/bundler/installer/gem_installer.rb index e5e245f970..9689911d6c 100644 --- a/lib/bundler/installer/gem_installer.rb +++ b/lib/bundler/installer/gem_installer.rb @@ -1,5 +1,7 @@ # frozen_string_literal: true +require "shellwords" + module Bundler class GemInstaller attr_reader :spec, :standalone, :worker, :force, :installer @@ -56,7 +58,9 @@ module Bundler def spec_settings # Fetch the build settings, if there are any - Bundler.settings["build.#{spec.name}"] + if settings = Bundler.settings["build.#{spec.name}"] + Shellwords.shellsplit(settings) + end end def install diff --git a/lib/bundler/installer/parallel_installer.rb b/lib/bundler/installer/parallel_installer.rb index 469b15b96c..391540af0b 100644 --- a/lib/bundler/installer/parallel_installer.rb +++ b/lib/bundler/installer/parallel_installer.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true -require "bundler/worker" -require "bundler/installer/gem_installer" +require_relative "../worker" +require_relative "gem_installer" module Bundler class ParallelInstaller diff --git a/lib/bundler/lazy_specification.rb b/lib/bundler/lazy_specification.rb index d9cb01f810..cbd04b2c90 100644 --- a/lib/bundler/lazy_specification.rb +++ b/lib/bundler/lazy_specification.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true require "uri" -require "bundler/match_platform" +require_relative "match_platform" module Bundler class LazySpecification @@ -77,7 +77,7 @@ module Bundler if search && Gem::Platform.new(search.platform) != Gem::Platform.new(platform) && !search.runtime_dependencies.-(dependencies.reject {|d| d.type == :development }).empty? Bundler.ui.warn "Unable to use the platform-specific (#{search.platform}) version of #{name} (#{version}) " \ "because it has different dependencies from the #{platform} version. " \ - "To use the platform-specific version of the gem, run `bundle config specific_platform true` and install again." + "To use the platform-specific version of the gem, run `bundle config set specific_platform true` and install again." search = source.specs.search(self).last end search.dependencies = dependencies if search && (search.is_a?(RemoteSpecification) || search.is_a?(EndpointSpecification)) diff --git a/lib/bundler/lockfile_parser.rb b/lib/bundler/lockfile_parser.rb index a7d4dc56b7..5658ec1205 100644 --- a/lib/bundler/lockfile_parser.rb +++ b/lib/bundler/lockfile_parser.rb @@ -23,7 +23,7 @@ module Bundler PATH = "PATH".freeze PLUGIN = "PLUGIN SOURCE".freeze SPECS = " specs:".freeze - OPTIONS = /^ ([a-z]+): (.*)$/i + OPTIONS = /^ ([a-z]+): (.*)$/i.freeze SOURCE = [GIT, GEM, PATH, PLUGIN].freeze SECTIONS_BY_VERSION_INTRODUCED = { @@ -88,7 +88,7 @@ module Bundler send("parse_#{@state}", line) end end - @sources << @rubygems_aggregate unless Bundler.feature_flag.lockfile_uses_separate_rubygems_sources? + @sources << @rubygems_aggregate unless Bundler.feature_flag.disable_multisource? @specs = @specs.values.sort_by(&:identifier) warn_for_outdated_bundler_version rescue ArgumentError => e @@ -101,17 +101,11 @@ module Bundler return unless bundler_version prerelease_text = bundler_version.prerelease? ? " --pre" : "" current_version = Gem::Version.create(Bundler::VERSION) - case current_version.segments.first <=> bundler_version.segments.first - when -1 - raise LockfileError, "You must use Bundler #{bundler_version.segments.first} or greater with this lockfile." - when 0 - if current_version < bundler_version - Bundler.ui.warn "Warning: the running version of Bundler (#{current_version}) is older " \ - "than the version that created the lockfile (#{bundler_version}). We suggest you " \ - "upgrade to the latest version of Bundler by running `gem " \ - "install bundler#{prerelease_text}`.\n" - end - end + return unless current_version < bundler_version + Bundler.ui.warn "Warning: the running version of Bundler (#{current_version}) is older " \ + "than the version that created the lockfile (#{bundler_version}). We suggest you to " \ + "upgrade to the version that created the lockfile by running `gem install " \ + "bundler:#{bundler_version}#{prerelease_text}`.\n" end private @@ -139,7 +133,7 @@ module Bundler @sources << @current_source end when GEM - if Bundler.feature_flag.lockfile_uses_separate_rubygems_sources? + if Bundler.feature_flag.disable_multisource? @opts["remotes"] = @opts.delete("remote") @current_source = TYPES[@type].from_lock(@opts) @sources << @current_source @@ -183,7 +177,7 @@ module Bundler (?:-(.*))?\))? # Optional platform (!)? # Optional pinned marker $ # Line end - /xo + /xo.freeze def parse_dependency(line) return unless line =~ NAME_VERSION diff --git a/lib/bundler/match_platform.rb b/lib/bundler/match_platform.rb index 56cbbfb95d..69074925a6 100644 --- a/lib/bundler/match_platform.rb +++ b/lib/bundler/match_platform.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -require "bundler/gem_helpers" +require_relative "gem_helpers" module Bundler module MatchPlatform diff --git a/lib/bundler/plugin.rb b/lib/bundler/plugin.rb index 996d29aafb..02985fa9b0 100644 --- a/lib/bundler/plugin.rb +++ b/lib/bundler/plugin.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -require "bundler/plugin/api" +require_relative "plugin/api" module Bundler module Plugin diff --git a/lib/bundler/plugin/api/source.rb b/lib/bundler/plugin/api/source.rb index 586477efb5..b33926a181 100644 --- a/lib/bundler/plugin/api/source.rb +++ b/lib/bundler/plugin/api/source.rb @@ -37,7 +37,7 @@ module Bundler # # @!attribute [rw] dependency_names # @return [Array<String>] Names of dependencies that the source should - # try to resolve. It is not necessary to use this list intenally. This + # try to resolve. It is not necessary to use this list internally. This # is present to be compatible with `Definition` and is used by # rubygems source. module Source diff --git a/lib/bundler/plugin/index.rb b/lib/bundler/plugin/index.rb index faabf3a8d1..2d70a046bb 100644 --- a/lib/bundler/plugin/index.rb +++ b/lib/bundler/plugin/index.rb @@ -139,7 +139,7 @@ module Bundler data = index_f.read - require "bundler/yaml_serializer" + require_relative "../yaml_serializer" index = YAMLSerializer.load(data) @commands.merge!(index["commands"]) @@ -162,7 +162,7 @@ module Bundler "sources" => @sources, } - require "bundler/yaml_serializer" + require_relative "../yaml_serializer" SharedHelpers.filesystem_access(index_file) do |index_f| FileUtils.mkdir_p(index_f.dirname) File.open(index_f, "w") {|f| f.puts YAMLSerializer.dump(index) } diff --git a/lib/bundler/plugin/installer.rb b/lib/bundler/plugin/installer.rb index 713d679f12..4a262efac2 100644 --- a/lib/bundler/plugin/installer.rb +++ b/lib/bundler/plugin/installer.rb @@ -16,7 +16,7 @@ module Bundler version = options[:version] || [">= 0"] - Bundler.settings.temporary(:lockfile_uses_separate_rubygems_sources => false, :disable_multisource => false) do + Bundler.settings.temporary(:disable_multisource => false) do if options[:git] install_git(names, version, options) elsif options[:local_git] @@ -43,16 +43,11 @@ module Bundler private - # Rubocop misunderstands the semantics of this method, assuming an `else` code block - # that doesn't exist. See https://github.com/bbatsov/rubocop/issues/5702. - # - # rubocop:disable Style/GuardClause def check_sources_consistency!(options) if options.key?(:git) && options.key?(:local_git) raise InvalidOption, "Remote and local plugin git sources can't be both specified" end end - # rubocop:enable Style/GuardClause def install_git(names, version, options) uri = options.delete(:git) diff --git a/lib/bundler/psyched_yaml.rb b/lib/bundler/psyched_yaml.rb index e654416a5a..c086b7651c 100644 --- a/lib/bundler/psyched_yaml.rb +++ b/lib/bundler/psyched_yaml.rb @@ -27,7 +27,7 @@ module Bundler end end -require "bundler/deprecate" +require_relative "deprecate" begin Bundler::Deprecate.skip_during do require "rubygems/safe_yaml" diff --git a/lib/bundler/resolver.rb b/lib/bundler/resolver.rb index aaa7bb7583..d3e5f268cf 100644 --- a/lib/bundler/resolver.rb +++ b/lib/bundler/resolver.rb @@ -2,8 +2,8 @@ module Bundler class Resolver - require "bundler/vendored_molinillo" - require "bundler/resolver/spec_group" + require_relative "vendored_molinillo" + require_relative "resolver/spec_group" # Figures out the best possible configuration of gems that satisfies # the list of passed dependencies and any child dependencies without @@ -39,7 +39,7 @@ module Bundler @gem_version_promoter = gem_version_promoter @allow_bundler_dependency_conflicts = Bundler.feature_flag.allow_bundler_dependency_conflicts? @use_gvp = Bundler.feature_flag.use_gem_version_promoter_for_major_updates? || !@gem_version_promoter.major? - @lockfile_uses_separate_rubygems_sources = Bundler.feature_flag.lockfile_uses_separate_rubygems_sources? + @lockfile_uses_separate_rubygems_sources = Bundler.feature_flag.disable_multisource? end def start(requirements) @@ -172,13 +172,13 @@ module Bundler def name_for_explicit_dependency_source Bundler.default_gemfile.basename.to_s - rescue + rescue StandardError "Gemfile" end def name_for_locking_dependency_source Bundler.default_lockfile.basename.to_s - rescue + rescue StandardError "Gemfile.lock" end @@ -279,10 +279,10 @@ module Bundler versions_with_platforms = specs.map {|s| [s.version, s.platform] } message = String.new("Could not find gem '#{SharedHelpers.pretty_dependency(requirement)}' in #{source}#{cache_message}.\n") message << if versions_with_platforms.any? - "The source contains '#{name}' at: #{formatted_versions_with_platforms(versions_with_platforms)}" - else - "The source does not contain any versions of '#{name}'" - end + "The source contains '#{name}' at: #{formatted_versions_with_platforms(versions_with_platforms)}" + else + "The source does not contain any versions of '#{name}'" + end else message = "Could not find gem '#{requirement}' in any of the gem sources " \ "listed in your Gemfile#{cache_message}." @@ -375,12 +375,12 @@ module Bundler o << " " o << if relevant_sources.empty? - "in any of the sources.\n" - elsif metadata_requirement - "is not available in #{relevant_sources.join(" or ")}" - else - "in any of the relevant sources:\n #{relevant_sources * "\n "}\n" - end + "in any of the sources.\n" + elsif metadata_requirement + "is not available in #{relevant_sources.join(" or ")}" + else + "in any of the relevant sources:\n #{relevant_sources * "\n "}\n" + end end end, :version_for_spec => lambda {|spec| spec.version }, diff --git a/lib/bundler/retry.rb b/lib/bundler/retry.rb index 5e4f0c502d..d64958ba70 100644 --- a/lib/bundler/retry.rb +++ b/lib/bundler/retry.rb @@ -38,7 +38,7 @@ module Bundler @failed = false @current_run += 1 @result = block.call - rescue => e + rescue StandardError => e fail_attempt(e) end diff --git a/lib/bundler/ruby_version.rb b/lib/bundler/ruby_version.rb index e6c31a94c9..80dc444f93 100644 --- a/lib/bundler/ruby_version.rb +++ b/lib/bundler/ruby_version.rb @@ -49,7 +49,7 @@ module Bundler ([\d.]+) # ruby version (?:p(-?\d+))? # optional patchlevel (?:\s\((\S+)\s(.+)\))? # optional engine info - /xo + /xo.freeze # Returns a RubyVersion from the given string. # @param [String] the version string to match. @@ -74,7 +74,7 @@ module Bundler @host ||= [ RbConfig::CONFIG["host_cpu"], RbConfig::CONFIG["host_vendor"], - RbConfig::CONFIG["host_os"] + RbConfig::CONFIG["host_os"], ].join("-") end diff --git a/lib/bundler/rubygems_ext.rb b/lib/bundler/rubygems_ext.rb index d746bdb41b..96b93836c7 100644 --- a/lib/bundler/rubygems_ext.rb +++ b/lib/bundler/rubygems_ext.rb @@ -2,48 +2,27 @@ require "pathname" -if defined?(Gem::QuickLoader) - # Gem Prelude makes me a sad panda :'( - Gem::QuickLoader.load_full_rubygems_library -end - -require "rubygems" require "rubygems/specification" -begin - # Possible use in Gem::Specification#source below and require - # shouldn't be deferred. - require "rubygems/source" -rescue LoadError - # Not available before RubyGems 2.0.0, ignore - nil -end +# Possible use in Gem::Specification#source below and require +# shouldn't be deferred. +require "rubygems/source" -require "bundler/match_platform" +require_relative "match_platform" module Gem - @loaded_stacks = Hash.new {|h, k| h[k] = [] } - class Specification attr_accessor :remote, :location, :relative_loaded_from - if instance_methods(false).map(&:to_sym).include?(:source) - remove_method :source - attr_writer :source - def source - (defined?(@source) && @source) || Gem::Source::Installed.new - end - else - # rubocop:disable Lint/DuplicateMethods - attr_accessor :source - # rubocop:enable Lint/DuplicateMethods + remove_method :source + attr_writer :source + def source + (defined?(@source) && @source) || Gem::Source::Installed.new end alias_method :rg_full_gem_path, :full_gem_path alias_method :rg_loaded_from, :loaded_from - attr_writer :full_gem_path unless instance_methods.include?(:full_gem_path=) - def full_gem_path # this cannot check source.is_a?(Bundler::Plugin::API::Source) # because that _could_ trip the autoload, and if there are unresolved @@ -65,15 +44,7 @@ module Gem end def load_paths - return full_require_paths if respond_to?(:full_require_paths) - - require_paths.map do |require_path| - if require_path.include?(full_gem_path) - require_path - else - File.join(full_gem_path, require_path) - end - end + full_require_paths end if method_defined?(:extension_dir) @@ -87,10 +58,7 @@ module Gem end end - # RubyGems 1.8+ used only. - methods = instance_methods(false) - gem_dir = methods.first.is_a?(String) ? "gem_dir" : :gem_dir - remove_method :gem_dir if methods.include?(gem_dir) + remove_method :gem_dir if instance_methods(false).include?(:gem_dir) def gem_dir full_gem_path end @@ -160,32 +128,6 @@ module Gem end out end - - # Backport of performance enhancement added to RubyGems 1.4 - def matches_spec?(spec) - # name can be a Regexp, so use === - return false unless name === spec.name - return true if requirement.none? - - requirement.satisfied_by?(spec.version) - end unless allocate.respond_to?(:matches_spec?) - end - - class Requirement - # Backport of performance enhancement added to RubyGems 1.4 - def none? - # note that it might be tempting to replace with with RubyGems 2.0's - # improved implementation. Don't. It requires `DefaultRequirement` to be - # defined, and more importantantly, these overrides are not used when the - # running RubyGems defines these methods - to_s == ">= 0" - end unless allocate.respond_to?(:none?) - - # Backport of performance enhancement added to RubyGems 2.2 - def exact? - return false unless @requirements.size == 1 - @requirements[0][0] == "=" - end unless allocate.respond_to?(:exact?) end class Platform diff --git a/lib/bundler/rubygems_gem_installer.rb b/lib/bundler/rubygems_gem_installer.rb index 2b7fa8e0f6..b1076b4554 100644 --- a/lib/bundler/rubygems_gem_installer.rb +++ b/lib/bundler/rubygems_gem_installer.rb @@ -66,7 +66,7 @@ module Bundler If you wish to continue installing the downloaded gem, and are certain it does not pose a \ security issue despite the mismatching checksum, do the following: - 1. run `bundle config disable_checksum_validation true` to turn off checksum verification + 1. run `bundle config set disable_checksum_validation true` to turn off checksum verification 2. run `bundle install` (More info: The expected SHA256 checksum was #{checksum.inspect}, but the \ diff --git a/lib/bundler/rubygems_integration.rb b/lib/bundler/rubygems_integration.rb index 783d106e7b..ae1c1943e5 100644 --- a/lib/bundler/rubygems_integration.rb +++ b/lib/bundler/rubygems_integration.rb @@ -1,14 +1,12 @@ # frozen_string_literal: true -require "monitor" -require "rubygems" -require "rubygems/config_file" - module Bundler class RubygemsIntegration if defined?(Gem::Ext::Builder::CHDIR_MONITOR) EXT_LOCK = Gem::Ext::Builder::CHDIR_MONITOR else + require "monitor" + EXT_LOCK = Monitor.new end @@ -22,6 +20,7 @@ module Bundler def initialize @replaced_methods = {} + backport_ext_builder_monitor end def version @@ -112,7 +111,7 @@ module Bundler end def configuration - require "bundler/psyched_yaml" + require_relative "psyched_yaml" Gem.configuration rescue Gem::SystemExitException, LoadError => e Bundler.ui.error "#{e.class}: #{e.message}" @@ -200,10 +199,6 @@ module Bundler Gem::ConfigMap end - def repository_subdirectories - %w[cache doc gems specifications] - end - def clear_paths Gem.clear_paths end @@ -212,26 +207,14 @@ module Bundler Gem.bin_path(gem, bin, ver) end - def path_separator - File::PATH_SEPARATOR - end - def preserve_paths # this is a no-op outside of RubyGems 1.8 yield end def loaded_gem_paths - # RubyGems 2.2+ can put binary extension into dedicated folders, - # therefore use RubyGems facilities to obtain their load paths. - if Gem::Specification.method_defined? :full_require_paths - loaded_gem_paths = Gem.loaded_specs.map {|_, s| s.full_require_paths } - loaded_gem_paths.flatten - else - $LOAD_PATH.select do |p| - Bundler.rubygems.gem_path.any? {|gp| p =~ /^#{Regexp.escape(gp)}/ } - end - end + loaded_gem_paths = Gem.loaded_specs.map {|_, s| s.full_require_paths } + loaded_gem_paths.flatten end def load_plugins @@ -250,36 +233,12 @@ module Bundler EXT_LOCK end - def fetch_specs(all, pre, &blk) - require "rubygems/spec_fetcher" - specs = Gem::SpecFetcher.new.list(all, pre) - specs.each { yield } if block_given? - specs - end - def fetch_prerelease_specs fetch_specs(false, true) rescue Gem::RemoteFetcher::FetchError {} # if we can't download them, there aren't any end - # TODO: This is for older versions of RubyGems... should we support the - # X-Gemfile-Source header on these old versions? - # Maybe the newer implementation will work on older RubyGems? - # It seems difficult to keep this implementation and still send the header. - def fetch_all_remote_specs(remote) - old_sources = Bundler.rubygems.sources - Bundler.rubygems.sources = [remote.uri.to_s] - # Fetch all specs, minus prerelease specs - spec_list = fetch_specs(true, false) - # Then fetch the prerelease specs - fetch_prerelease_specs.each {|k, v| spec_list[k].concat(v) } - - spec_list.values.first - ensure - Bundler.rubygems.sources = old_sources - end - def with_build_args(args) ext_lock.synchronize do old_args = build_args @@ -292,22 +251,13 @@ module Bundler end end - def install_with_build_args(args) - with_build_args(args) { yield } - end - - def gem_from_path(path, policy = nil) - require "rubygems/format" - Gem::Format.from_file_by_path(path, policy) - end - def spec_from_gem(path, policy = nil) require "rubygems/security" - require "bundler/psyched_yaml" + require_relative "psyched_yaml" gem_from_path(path, security_policies[policy]).spec rescue Gem::Package::FormatError raise GemspecError, "Could not read gem at #{path}. It may be corrupted." - rescue Exception, Gem::Exception, Gem::Security::Exception => e + rescue Exception, Gem::Exception, Gem::Security::Exception => e # rubocop:disable Lint/RescueException if e.is_a?(Gem::Security::Exception) || e.message =~ /unknown trust policy|unsigned gem/i || e.message =~ /couldn't verify (meta)?data signature/i @@ -319,23 +269,10 @@ module Bundler end end - def build(spec, skip_validation = false) - require "rubygems/builder" - Gem::Builder.new(spec).build - end - def build_gem(gem_dir, spec) build(spec) end - def download_gem(spec, uri, path) - uri = Bundler.settings.mirror_for(uri) - fetcher = Gem::RemoteFetcher.new(configuration[:http_proxy]) - Bundler::Retry.new("download gem from #{uri}").attempts do - fetcher.download(spec, uri, path) - end - end - def security_policy_keys %w[High Medium Low AlmostNo No].map {|level| "#{level}Security" } end @@ -359,12 +296,17 @@ module Bundler end end + # RubyGems-generated binstubs call Kernel#gem def binstubs_call_gem? - true + !provides?(">= 2.5.2") end + # only 2.5.2+ has all of the stub methods we want to use, and since this + # is a performance optimization _only_, + # we'll restrict ourselves to the most + # recent RG versions instead of all versions that have stubs def stubs_provide_full_functionality? - false + provides?(">= 2.5.2") end def replace_gem(specs, specs_by_name) @@ -413,63 +355,45 @@ module Bundler end end - def stub_source_index(specs) - Gem::SourceIndex.send(:alias_method, :old_initialize, :initialize) - redefine_method(Gem::SourceIndex, :initialize) do |*args| - @gems = {} - # You're looking at this thinking: Oh! This is how I make those - # rubygems deprecations go away! - # - # You'd be correct BUT using of this method in production code - # must be approved by the rubygems team itself! - # - # This is your warning. If you use this and don't have approval - # we can't protect you. - # - Deprecate.skip_during do - self.spec_dirs = *args - add_specs(*specs) - end - end - end - # Used to make bin stubs that are not created by bundler work # under bundler. The new Gem.bin_path only considers gems in # +specs+ - def replace_bin_path(specs, specs_by_name) + def replace_bin_path(specs_by_name) gem_class = (class << Gem; self; end) redefine_method(gem_class, :find_spec_for_exe) do |gem_name, *args| exec_name = args.first + raise ArgumentError, "you must supply exec_name" unless exec_name spec_with_name = specs_by_name[gem_name] - spec = if exec_name - if spec_with_name && spec_with_name.executables.include?(exec_name) - spec_with_name - else - specs.find {|s| s.executables.include?(exec_name) } - end - else - spec_with_name - end + matching_specs_by_exec_name = specs_by_name.values.select {|s| s.executables.include?(exec_name) } + spec = matching_specs_by_exec_name.delete(spec_with_name) - unless spec + unless spec || !matching_specs_by_exec_name.empty? message = "can't find executable #{exec_name} for gem #{gem_name}" - if !exec_name || spec_with_name.nil? + if spec_with_name.nil? message += ". #{gem_name} is not currently included in the bundle, " \ "perhaps you meant to add it to your #{Bundler.default_gemfile.basename}?" end raise Gem::Exception, message end - raise Gem::Exception, "no default executable for #{spec.full_name}" unless exec_name ||= spec.default_executable - - unless spec.name == gem_name - Bundler::SharedHelpers.major_deprecation 2, + unless spec + spec = matching_specs_by_exec_name.shift + warn \ "Bundler is using a binstub that was created for a different gem (#{spec.name}).\n" \ "You should run `bundle binstub #{gem_name}` " \ "to work around a system/bundle conflict." end + + unless matching_specs_by_exec_name.empty? + conflicting_names = matching_specs_by_exec_name.map(&:name).join(", ") + warn \ + "The `#{exec_name}` executable in the `#{spec.name}` gem is being loaded, but it's also present in other gems (#{conflicting_names}).\n" \ + "If you meant to run the executable for another gem, make sure you use a project specific binstub (`bundle binstub <gem_name>`).\n" \ + "If you plan to use multiple conflicting executables, generate binstubs for them and disambiguate their names." + end + spec end @@ -514,33 +438,23 @@ module Bundler h end + Bundler.rubygems.default_stubs.each do |stub| + default_spec = stub.to_spec + default_spec_name = default_spec.name + next if specs_by_name.key?(default_spec_name) + + specs << default_spec + specs_by_name[default_spec_name] = default_spec + end + replace_gem(specs, specs_by_name) stub_rubygems(specs) - replace_bin_path(specs, specs_by_name) + replace_bin_path(specs_by_name) replace_refresh Gem.clear_paths end - # This backports the correct segment generation code from RubyGems 1.4+ - # by monkeypatching it into the method in RubyGems 1.3.6 and 1.3.7. - def backport_segment_generation - redefine_method(Gem::Version, :segments) do - @segments ||= @version.scan(/[0-9]+|[a-z]+/i).map do |s| - /^\d+$/ =~ s ? s.to_i : s - end - end - end - - # This backport fixes the marshaling of @segments. - def backport_yaml_initialize - redefine_method(Gem::Version, :yaml_initialize) do |_, map| - @version = map["version"] - @segments = nil - @hash = nil - end - end - # This backports base_dir which replaces installation path # RubyGems 1.8+ def backport_base_dir @@ -613,286 +527,129 @@ module Bundler end end - # RubyGems 1.4 through 1.6 - class Legacy < RubygemsIntegration - def initialize - super - backport_base_dir - backport_cache_file - backport_spec_file - backport_yaml_initialize - end + def stub_rubygems(specs) + Gem::Specification.all = specs - def stub_rubygems(specs) - # RubyGems versions lower than 1.7 use SourceIndex#from_gems_in - source_index_class = (class << Gem::SourceIndex; self; end) - redefine_method(source_index_class, :from_gems_in) do |*args| - Gem::SourceIndex.new.tap do |source_index| - source_index.spec_dirs = *args - source_index.add_specs(*specs) - end - end + Gem.post_reset do + Gem::Specification.all = specs end - def all_specs - Gem.source_index.gems.values + redefine_method((class << Gem; self; end), :finish_resolve) do |*| + [] end + end - def find_name(name) - Gem.source_index.find_name(name) - end + def fetch_specs(source, remote, name) + path = source + "#{name}.#{Gem.marshal_version}.gz" + fetcher = gem_remote_fetcher + fetcher.headers = { "X-Gemfile-Source" => remote.original_uri.to_s } if remote.original_uri + string = fetcher.fetch_path(path) + Bundler.load_marshal(string) + rescue Gem::RemoteFetcher::FetchError => e + # it's okay for prerelease to fail + raise e unless name == "prerelease_specs" + end - def validate(spec) - # These versions of RubyGems always validate in "packaging" mode, - # which is too strict for the kinds of checks we care about. As a - # result, validation is disabled on versions of RubyGems below 1.7. - end + def fetch_all_remote_specs(remote) + source = remote.uri.is_a?(URI) ? remote.uri : URI.parse(source.to_s) - def post_reset_hooks - [] - end + specs = fetch_specs(source, remote, "specs") + pres = fetch_specs(source, remote, "prerelease_specs") || [] - def reset - end + specs.concat(pres) end - # RubyGems versions 1.3.6 and 1.3.7 - class Ancient < Legacy - def initialize - super - backport_segment_generation + def download_gem(spec, uri, path) + uri = Bundler.settings.mirror_for(uri) + fetcher = gem_remote_fetcher + fetcher.headers = { "X-Gemfile-Source" => spec.remote.original_uri.to_s } if spec.remote.original_uri + Bundler::Retry.new("download gem from #{uri}").attempts do + fetcher.download(spec, uri, path) end end - # RubyGems 1.7 - class Transitional < Legacy - def stub_rubygems(specs) - stub_source_index(specs) - end - - def validate(spec) - # Missing summary is downgraded to a warning in later versions, - # so we set it to an empty string to prevent an exception here. - spec.summary ||= "" - RubygemsIntegration.instance_method(:validate).bind(self).call(spec) - end + def gem_remote_fetcher + require "resolv" + proxy = configuration[:http_proxy] + dns = Resolv::DNS.new + Bundler::GemRemoteFetcher.new(proxy, dns) end - # RubyGems 1.8.5-1.8.19 - class Modern < RubygemsIntegration - def stub_rubygems(specs) - Gem::Specification.all = specs - - Gem.post_reset do - Gem::Specification.all = specs - end + def gem_from_path(path, policy = nil) + require "rubygems/package" + p = Gem::Package.new(path) + p.security_policy = policy if policy + p + end - stub_source_index(specs) - end + def build(spec, skip_validation = false) + require "rubygems/package" + Gem::Package.build(spec, skip_validation) + end - def all_specs - Gem::Specification.to_a - end + def repository_subdirectories + Gem::REPOSITORY_SUBDIRECTORIES + end - def find_name(name) - Gem::Specification.find_all_by_name name - end + def install_with_build_args(args) + yield end - # RubyGems 1.8.0 to 1.8.4 - class AlmostModern < Modern - # RubyGems [>= 1.8.0, < 1.8.5] has a bug that changes Gem.dir whenever - # you call Gem::Installer#install with an :install_dir set. We have to - # change it back for our sudo mode to work. - def preserve_paths - old_dir = gem_dir - old_path = gem_path - yield - Gem.use_paths(old_dir, old_path) - end + def path_separator + Gem.path_separator end - # RubyGems 1.8.20+ - class MoreModern < Modern - # RubyGems 1.8.20 and adds the skip_validation parameter, so that's - # when we start passing it through. - def build(spec, skip_validation = false) - require "rubygems/builder" - Gem::Builder.new(spec).build(skip_validation) + def all_specs + require_relative "remote_specification" + Gem::Specification.stubs.map do |stub| + StubSpecification.from_stub(stub) end end - # RubyGems 2.0 - class Future < RubygemsIntegration - def stub_rubygems(specs) - Gem::Specification.all = specs - - Gem.post_reset do - Gem::Specification.all = specs + def backport_ext_builder_monitor + # So we can avoid requiring "rubygems/ext" in its entirety + Gem.module_eval <<-RB, __FILE__, __LINE__ + 1 + module Ext end + RB - redefine_method((class << Gem; self; end), :finish_resolve) do |*| - [] - end - end - - def all_specs - Gem::Specification.to_a - end - - def find_name(name) - Gem::Specification.find_all_by_name name - end - - def fetch_specs(source, remote, name) - path = source + "#{name}.#{Gem.marshal_version}.gz" - fetcher = gem_remote_fetcher - fetcher.headers = { "X-Gemfile-Source" => remote.original_uri.to_s } if remote.original_uri - string = fetcher.fetch_path(path) - Bundler.load_marshal(string) - rescue Gem::RemoteFetcher::FetchError => e - # it's okay for prerelease to fail - raise e unless name == "prerelease_specs" - end - - def fetch_all_remote_specs(remote) - source = remote.uri.is_a?(URI) ? remote.uri : URI.parse(source.to_s) - - specs = fetch_specs(source, remote, "specs") - pres = fetch_specs(source, remote, "prerelease_specs") || [] - - specs.concat(pres) - end + require "rubygems/ext/builder" - def download_gem(spec, uri, path) - uri = Bundler.settings.mirror_for(uri) - fetcher = gem_remote_fetcher - fetcher.headers = { "X-Gemfile-Source" => spec.remote.original_uri.to_s } if spec.remote.original_uri - Bundler::Retry.new("download gem from #{uri}").attempts do - fetcher.download(spec, uri, path) + Gem::Ext::Builder.class_eval do + unless const_defined?(:CHDIR_MONITOR) + const_set(:CHDIR_MONITOR, EXT_LOCK) end - end - - def gem_remote_fetcher - require "resolv" - proxy = configuration[:http_proxy] - dns = Resolv::DNS.new - Bundler::GemRemoteFetcher.new(proxy, dns) - end - - def gem_from_path(path, policy = nil) - require "rubygems/package" - p = Gem::Package.new(path) - p.security_policy = policy if policy - p - end - - def build(spec, skip_validation = false) - require "rubygems/package" - Gem::Package.build(spec, skip_validation) - end - - def repository_subdirectories - Gem::REPOSITORY_SUBDIRECTORIES - end - def install_with_build_args(args) - yield - end - - def path_separator - Gem.path_separator + remove_const(:CHDIR_MUTEX) if const_defined?(:CHDIR_MUTEX) + const_set(:CHDIR_MUTEX, const_get(:CHDIR_MONITOR)) end end - # RubyGems 2.1.0 - class MoreFuture < Future - def initialize - super - backport_ext_builder_monitor - end - - def all_specs - require "bundler/remote_specification" - Gem::Specification.stubs.map do |stub| - StubSpecification.from_stub(stub) - end - end - - def backport_ext_builder_monitor - # So we can avoid requiring "rubygems/ext" in its entirety - Gem.module_eval <<-RB, __FILE__, __LINE__ + 1 - module Ext - end - RB - - require "rubygems/ext/builder" - - Gem::Ext::Builder.class_eval do - unless const_defined?(:CHDIR_MONITOR) - const_set(:CHDIR_MONITOR, EXT_LOCK) - end - - remove_const(:CHDIR_MUTEX) if const_defined?(:CHDIR_MUTEX) - const_set(:CHDIR_MUTEX, const_get(:CHDIR_MONITOR)) - end - end + def find_name(name) + Gem::Specification.stubs_for(name).map(&:to_spec) + end - if Gem::Specification.respond_to?(:stubs_for) - def find_name(name) - Gem::Specification.stubs_for(name).map(&:to_spec) - end - else - def find_name(name) - Gem::Specification.stubs.find_all do |spec| - spec.name == name - end.map(&:to_spec) - end + if Gem::Specification.respond_to?(:default_stubs) + def default_stubs + Gem::Specification.default_stubs("*.gemspec") end - - def use_gemdeps(gemfile) - ENV["BUNDLE_GEMFILE"] ||= File.expand_path(gemfile) - require "bundler/gemdeps" - runtime = Bundler.setup - Bundler.ui = nil - activated_spec_names = runtime.requested_specs.map(&:to_spec).sort_by(&:name) - [Gemdeps.new(runtime), activated_spec_names] + else + def default_stubs + Gem::Specification.send(:default_stubs, "*.gemspec") end + end - if provides?(">= 2.5.2") - # RubyGems-generated binstubs call Kernel#gem - def binstubs_call_gem? - false - end - - # only 2.5.2+ has all of the stub methods we want to use, and since this - # is a performance optimization _only_, - # we'll restrict ourselves to the most - # recent RG versions instead of all versions that have stubs - def stubs_provide_full_functionality? - true - end - end + def use_gemdeps(gemfile) + ENV["BUNDLE_GEMFILE"] ||= File.expand_path(gemfile) + require_relative "gemdeps" + runtime = Bundler.setup + Bundler.ui = nil + activated_spec_names = runtime.requested_specs.map(&:to_spec).sort_by(&:name) + [Gemdeps.new(runtime), activated_spec_names] end end def self.rubygems - @rubygems ||= if RubygemsIntegration.provides?(">= 2.1.0") - RubygemsIntegration::MoreFuture.new - elsif RubygemsIntegration.provides?(">= 1.99.99") - RubygemsIntegration::Future.new - elsif RubygemsIntegration.provides?(">= 1.8.20") - RubygemsIntegration::MoreModern.new - elsif RubygemsIntegration.provides?(">= 1.8.5") - RubygemsIntegration::Modern.new - elsif RubygemsIntegration.provides?(">= 1.8.0") - RubygemsIntegration::AlmostModern.new - elsif RubygemsIntegration.provides?(">= 1.7.0") - RubygemsIntegration::Transitional.new - elsif RubygemsIntegration.provides?(">= 1.4.0") - RubygemsIntegration::Legacy.new - else # RubyGems 1.3.6 and 1.3.7 - RubygemsIntegration::Ancient.new - end + @rubygems ||= RubygemsIntegration.new end end diff --git a/lib/bundler/runtime.rb b/lib/bundler/runtime.rb index 762e7b3ec6..83945868f9 100644 --- a/lib/bundler/runtime.rb +++ b/lib/bundler/runtime.rb @@ -163,7 +163,7 @@ module Bundler gem_dirs = Dir["#{Gem.dir}/gems/*"] gem_files = Dir["#{Gem.dir}/cache/*.gem"] gemspec_files = Dir["#{Gem.dir}/specifications/*.gemspec"] - extension_dirs = Dir["#{Gem.dir}/extensions/*/*/*"] + extension_dirs = Dir["#{Gem.dir}/extensions/*/*/*"] + Dir["#{Gem.dir}/bundler/gems/extensions/*/*/*"] spec_gem_paths = [] # need to keep git sources around spec_git_paths = @definition.spec_git_paths diff --git a/lib/bundler/settings.rb b/lib/bundler/settings.rb index fe68d510ff..2d0c4174ae 100644 --- a/lib/bundler/settings.rb +++ b/lib/bundler/settings.rb @@ -18,7 +18,6 @@ module Bundler cache_all cache_all_platforms cache_command_is_package - console_command default_install_uses_path deployment deployment_means_frozen @@ -29,28 +28,26 @@ module Bundler disable_platform_warnings disable_shared_gems disable_version_check - error_on_stderr force_ruby_platform forget_cli_options frozen gem.coc gem.mit + github.https global_path_appends_ruby_scope global_gem_cache ignore_messages init_gems_rb - list_command - lockfile_uses_separate_rubygems_sources - major_deprecations no_install no_prune only_update_to_newer_versions path_relative_to_cwd path.system plugins - prefer_gems_rb + prefer_patch print_only_version_number setup_makes_kernel_gem_public + silence_deprecations silence_root_warning skip_default_git_sources specific_platform @@ -58,7 +55,6 @@ module Bundler unlock_source_unlocks_spec update_requires_all_flag use_gem_version_promoter_for_major_updates - viz_command ].freeze NUMBER_KEYS = %w[ @@ -75,7 +71,9 @@ module Bundler ].freeze DEFAULT_CONFIG = { + :silence_deprecations => false, :disable_version_check => true, + :prefer_patch => false, :redirect => 5, :retry => 3, :timeout => 10, @@ -106,18 +104,6 @@ module Bundler temporary(key => value) value else - command = if value.nil? - "bundle config --delete #{key}" - else - "bundle config #{key} #{Array(value).join(":")}" - end - - Bundler::SharedHelpers.major_deprecation 2,\ - "flags passed to commands " \ - "will no longer be automatically remembered. Instead please set flags " \ - "you want remembered between commands using `bundle config " \ - "<setting name> <setting value>`, i.e. `#{command}`" - set_local(key, value) end end @@ -371,7 +357,7 @@ module Bundler return unless file SharedHelpers.filesystem_access(file) do |p| FileUtils.mkdir_p(p.dirname) - require "bundler/yaml_serializer" + require_relative "yaml_serializer" p.open("w") {|f| f.write(YAMLSerializer.dump(hash)) } end end @@ -406,26 +392,12 @@ module Bundler Pathname.new(@root).join("config") if @root end - CONFIG_REGEX = %r{ # rubocop:disable Style/RegexpLiteral - ^ - (BUNDLE_.+):\s # the key - (?: !\s)? # optional exclamation mark found with ruby 1.9.3 - (['"]?) # optional opening quote - (.* # contents of the value - (?: # optionally, up until the next key - (\n(?!BUNDLE).+)* - ) - ) - \2 # matching closing quote - $ - }xo - def load_config(config_file) return {} if !config_file || ignore_config? SharedHelpers.filesystem_access(config_file, :read) do |file| valid_file = file.exist? && !file.size.zero? return {} unless valid_file - require "bundler/yaml_serializer" + require_relative "yaml_serializer" YAMLSerializer.load file.read end end @@ -441,7 +413,7 @@ module Bundler (https?.*?) # URI (\.#{Regexp.union(PER_URI_OPTIONS)})? # optional suffix key \z - /ix + /ix.freeze # TODO: duplicates Rubygems#normalize_uri # TODO: is this the correct place to validate mirror URIs? diff --git a/lib/bundler/setup.rb b/lib/bundler/setup.rb index ac6a5bf861..d156f494a8 100644 --- a/lib/bundler/setup.rb +++ b/lib/bundler/setup.rb @@ -1,18 +1,19 @@ # frozen_string_literal: true -require "bundler/shared_helpers" +require_relative "shared_helpers" if Bundler::SharedHelpers.in_bundle? - require "bundler" + require_relative "../bundler" if STDOUT.tty? || ENV["BUNDLER_FORCE_TTY"] + Bundler.ui = Bundler::UI::Shell.new begin Bundler.setup rescue Bundler::BundlerError => e - puts "\e[31m#{e.message}\e[0m" - puts e.backtrace.join("\n") if ENV["DEBUG"] + Bundler.ui.warn "\e[31m#{e.message}\e[0m" + Bundler.ui.warn e.backtrace.join("\n") if ENV["DEBUG"] if e.is_a?(Bundler::GemNotFound) - puts "\e[33mRun `bundle install` to install missing gems.\e[0m" + Bundler.ui.warn "\e[33mRun `bundle install` to install missing gems.\e[0m" end exit e.status_code end diff --git a/lib/bundler/shared_helpers.rb b/lib/bundler/shared_helpers.rb index e09e5e8b74..a0982f561f 100644 --- a/lib/bundler/shared_helpers.rb +++ b/lib/bundler/shared_helpers.rb @@ -1,25 +1,15 @@ # frozen_string_literal: true -require "bundler/compatibility_guard" +require_relative "compatibility_guard" require "pathname" +require "rbconfig" require "rubygems" -require "bundler/version" -require "bundler/constants" -require "bundler/rubygems_integration" -require "bundler/current_ruby" - -module Gem - class Dependency - # This is only needed for RubyGems < 1.4 - unless method_defined? :requirement - def requirement - version_requirements - end - end - end -end +require_relative "version" +require_relative "constants" +require_relative "rubygems_integration" +require_relative "current_ruby" module Bundler module SharedHelpers @@ -113,9 +103,7 @@ module Bundler # # @see {Bundler::PermissionError} def filesystem_access(path, action = :write, &block) - # Use block.call instead of yield because of a bug in Ruby 2.2.2 - # See https://github.com/bundler/bundler/issues/5341 for details - block.call(path.dup.untaint) + yield(path.dup.untaint) rescue Errno::EACCES raise PermissionError.new(path, action) rescue Errno::EAGAIN @@ -142,32 +130,26 @@ module Bundler def major_deprecation(major_version, message) bundler_major_version = Bundler.bundler_major_version if bundler_major_version > major_version - require "bundler/errors" - raise DeprecatedError, "[REMOVED FROM #{major_version.succ}.0] #{message}" + require_relative "errors" + raise DeprecatedError, "[REMOVED] #{message}" end - return unless bundler_major_version >= major_version || prints_major_deprecations? + return unless bundler_major_version >= major_version && prints_major_deprecations? @major_deprecation_ui ||= Bundler::UI::Shell.new("no-color" => true) ui = Bundler.ui.is_a?(@major_deprecation_ui.class) ? Bundler.ui : @major_deprecation_ui - ui.warn("[DEPRECATED FOR #{major_version}.0] #{message}") + ui.warn("[DEPRECATED] #{message}") end def print_major_deprecations! multiple_gemfiles = search_up(".") do |dir| gemfiles = gemfile_names.select {|gf| File.file? File.expand_path(gf, dir) } next if gemfiles.empty? - break false if gemfiles.size == 1 - end - if multiple_gemfiles && Bundler.bundler_major_version == 1 - Bundler::SharedHelpers.major_deprecation 2, \ - "gems.rb and gems.locked will be preferred to Gemfile and Gemfile.lock." + break gemfiles.size != 1 end - - if RUBY_VERSION < "2" - major_deprecation(2, "Bundler will only support ruby >= 2.0, you are running #{RUBY_VERSION}") - end - return if Bundler.rubygems.provides?(">= 2") - major_deprecation(2, "Bundler will only support rubygems >= 2.0, you are running #{Bundler.rubygems.version}") + return unless multiple_gemfiles + message = "Multiple gemfiles (gems.rb and Gemfile) detected. " \ + "Make sure you remove Gemfile and Gemfile.lock since bundler is ignoring them in favor of gems.rb and gems.rb.locked." + Bundler.ui.warn message end def trap(signal, override = false, &block) @@ -247,13 +229,11 @@ module Bundler def find_gemfile(order_matters = false) given = ENV["BUNDLE_GEMFILE"] return given if given && !given.empty? - names = gemfile_names - names.reverse! if order_matters && Bundler.feature_flag.prefer_gems_rb? - find_file(*names) + find_file(*gemfile_names) end def gemfile_names - ["Gemfile", "gems.rb"] + ["gems.rb", "Gemfile"] end def find_file(*names) @@ -277,7 +257,7 @@ module Bundler # avoid stepping above the tmp directory when testing gemspec = if ENV["BUNDLE_RUBY"] && ENV["BUNDLE_GEM"] # for Ruby Core - "lib/bundler.gemspec" + "lib/bundler/bundler.gemspec" else "bundler.gemspec" end @@ -307,20 +287,10 @@ module Bundler public :set_env def set_bundle_variables - begin - exe_file = Bundler.rubygems.bin_path("bundler", "bundle", VERSION) - unless File.exist?(exe_file) - exe_file = File.expand_path("../../../exe/bundle", __FILE__) - end - Bundler::SharedHelpers.set_env "BUNDLE_BIN_PATH", exe_file - rescue Gem::GemNotFoundException - exe_file = File.expand_path("../../../exe/bundle", __FILE__) - # for Ruby core repository - exe_file = File.expand_path("../../../../bin/bundle", __FILE__) unless File.exist?(exe_file) - Bundler::SharedHelpers.set_env "BUNDLE_BIN_PATH", exe_file - end - - # Set BUNDLE_GEMFILE + exe_file = File.expand_path("../../../exe/bundle", __FILE__) + # for Ruby core repository + exe_file = File.expand_path("../../../../bin/bundle", __FILE__) unless File.exist?(exe_file) + Bundler::SharedHelpers.set_env "BUNDLE_BIN_PATH", exe_file Bundler::SharedHelpers.set_env "BUNDLE_GEMFILE", find_gemfile(:order_matters).to_s Bundler::SharedHelpers.set_env "BUNDLER_VERSION", Bundler::VERSION end @@ -341,7 +311,7 @@ module Bundler def set_rubylib rubylib = (ENV["RUBYLIB"] || "").split(File::PATH_SEPARATOR) - rubylib.unshift bundler_ruby_lib + rubylib.unshift bundler_ruby_lib unless RbConfig::CONFIG["rubylibdir"] == bundler_ruby_lib Bundler::SharedHelpers.set_env "RUBYLIB", rubylib.uniq.join(File::PATH_SEPARATOR) end @@ -350,9 +320,6 @@ module Bundler end def clean_load_path - # handle 1.9 where system gems are always on the load path - return unless defined?(::Gem) - bundler_lib = bundler_ruby_lib loaded_gem_paths = Bundler.rubygems.loaded_gem_paths @@ -372,10 +339,9 @@ module Bundler end def prints_major_deprecations? - require "bundler" - deprecation_release = Bundler::VERSION.split(".").drop(1).include?("99") - return false if !deprecation_release && !Bundler.settings[:major_deprecations] - require "bundler/deprecate" + require_relative "../bundler" + return false if Bundler.settings[:silence_deprecations] + require_relative "deprecate" return false if Bundler::Deprecate.skip true end diff --git a/lib/bundler/similarity_detector.rb b/lib/bundler/similarity_detector.rb index b7f3ee7afa..f698f46a4c 100644 --- a/lib/bundler/similarity_detector.rb +++ b/lib/bundler/similarity_detector.rb @@ -51,7 +51,7 @@ module Bundler dm[i][j] = [ dm[i - 1][j - 1] + (this[j - 1] == that[i - 1] ? 0 : sub), dm[i][j - 1] + ins, - dm[i - 1][j] + del + dm[i - 1][j] + del, ].min end end diff --git a/lib/bundler/source/git.rb b/lib/bundler/source/git.rb index 8a31fa307f..aa24a87ed7 100644 --- a/lib/bundler/source/git.rb +++ b/lib/bundler/source/git.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -require "bundler/vendored_fileutils" +require_relative "../vendored_fileutils" require "uri" module Bundler @@ -118,18 +118,19 @@ module Bundler def local_override!(path) return false if local? + original_path = path path = Pathname.new(path) path = path.expand_path(Bundler.root) unless path.relative? unless options["branch"] || Bundler.settings[:disable_local_branch_check] raise GitError, "Cannot use local override for #{name} at #{path} because " \ - ":branch is not specified in Gemfile. Specify a branch or use " \ - "`bundle config --delete` to remove the local override" + ":branch is not specified in Gemfile. Specify a branch or run " \ + "`bundle config unset local.#{override_for(original_path)}` to remove the local override" end unless path.exist? raise GitError, "Cannot use local override for #{name} because #{path} " \ - "does not exist. Check `bundle config --delete` to remove the local override" + "does not exist. Run `bundle config unset local.#{override_for(original_path)}` to remove the local override" end set_local!(path) @@ -328,6 +329,10 @@ module Bundler def extension_cache_slug(_) extension_dir_name end + + def override_for(path) + Bundler.settings.local_overrides.key(path) + end end end end diff --git a/lib/bundler/source/git/git_proxy.rb b/lib/bundler/source/git/git_proxy.rb index cd964f7e56..3db31f0237 100644 --- a/lib/bundler/source/git/git_proxy.rb +++ b/lib/bundler/source/git/git_proxy.rb @@ -253,7 +253,7 @@ module Bundler ensure STDERR.reopen backup_stderr end - $stderr.puts URICredentialsFilter.credential_filtered_string(captured_err, uri) if uri && !captured_err.empty? + Bundler.ui.warn URICredentialsFilter.credential_filtered_string(captured_err, uri) if uri && !captured_err.empty? return_value end end diff --git a/lib/bundler/source/path.rb b/lib/bundler/source/path.rb index ed734bf549..5f3f1bc2e4 100644 --- a/lib/bundler/source/path.rb +++ b/lib/bundler/source/path.rb @@ -191,10 +191,10 @@ module Bundler else message = String.new("The path `#{expanded_path}` ") message << if File.exist?(expanded_path) - "is not a directory." - else - "does not exist." - end + "is not a directory." + else + "does not exist." + end raise PathError, message end diff --git a/lib/bundler/source/rubygems.rb b/lib/bundler/source/rubygems.rb index 9e5032c079..86fd329089 100644 --- a/lib/bundler/source/rubygems.rb +++ b/lib/bundler/source/rubygems.rb @@ -51,7 +51,7 @@ module Bundler end def can_lock?(spec) - return super if Bundler.feature_flag.lockfile_uses_separate_rubygems_sources? + return super if Bundler.feature_flag.disable_multisource? spec.source.is_a?(Rubygems) end @@ -106,7 +106,7 @@ module Bundler end end - if installed?(spec) && !force + if (installed?(spec) || Plugin.installed?(spec.name)) && !force print_using_message "Using #{version_message(spec)}" return nil # no post-install message end @@ -124,7 +124,7 @@ module Bundler begin s = Bundler.rubygems.spec_from_gem(path, Bundler.settings["trust-policy"]) spec.__swap__(s) - rescue + rescue StandardError Bundler.rm_rf(path) raise end diff --git a/lib/bundler/source_list.rb b/lib/bundler/source_list.rb index ac2adacb3d..d3f649a12c 100644 --- a/lib/bundler/source_list.rb +++ b/lib/bundler/source_list.rb @@ -1,5 +1,7 @@ # frozen_string_literal: true +require "set" + module Bundler class SourceList attr_reader :path_sources, @@ -41,17 +43,14 @@ module Bundler end def global_rubygems_source=(uri) - if Bundler.feature_flag.lockfile_uses_separate_rubygems_sources? + if Bundler.feature_flag.disable_multisource? @global_rubygems_source ||= rubygems_aggregate_class.new("remotes" => uri) end add_rubygems_remote(uri) end def add_rubygems_remote(uri) - if Bundler.feature_flag.lockfile_uses_separate_rubygems_sources? - return if Bundler.feature_flag.disable_multisource? - raise InvalidOption, "`lockfile_uses_separate_rubygems_sources` cannot be set without `disable_multisource` being set" - end + return if Bundler.feature_flag.disable_multisource? @rubygems_aggregate.add_remote(uri) @rubygems_aggregate end @@ -77,12 +76,10 @@ module Bundler end def lock_sources - if Bundler.feature_flag.lockfile_uses_separate_rubygems_sources? - [[default_source], @rubygems_sources, git_sources, path_sources, plugin_sources].map do |sources| - sources.sort_by(&:to_s) - end.flatten(1) + lock_sources = (path_sources + git_sources + plugin_sources).sort_by(&:to_s) + if Bundler.feature_flag.disable_multisource? + lock_sources + rubygems_sources.sort_by(&:to_s) else - lock_sources = (path_sources + git_sources + plugin_sources).sort_by(&:to_s) lock_sources << combine_rubygems_sources end end @@ -97,7 +94,7 @@ module Bundler end end - replacement_rubygems = !Bundler.feature_flag.lockfile_uses_separate_rubygems_sources? && + replacement_rubygems = !Bundler.feature_flag.disable_multisource? && replacement_sources.detect {|s| s.is_a?(Source::Rubygems) } @rubygems_aggregate = replacement_rubygems if replacement_rubygems @@ -150,7 +147,7 @@ module Bundler if source.uri =~ /^git\:/ Bundler.ui.warn "The git source `#{source.uri}` uses the `git` protocol, " \ "which transmits data without encryption. Disable this warning with " \ - "`bundle config git.allow_insecure true`, or switch to the `https` " \ + "`bundle config set git.allow_insecure true`, or switch to the `https` " \ "protocol to keep your data secure." end end diff --git a/lib/bundler/ssl_certs/.document b/lib/bundler/ssl_certs/.document deleted file mode 100644 index fb66f13c33..0000000000 --- a/lib/bundler/ssl_certs/.document +++ /dev/null @@ -1 +0,0 @@ -# Ignore all files in this directory diff --git a/lib/bundler/ssl_certs/certificate_manager.rb b/lib/bundler/ssl_certs/certificate_manager.rb deleted file mode 100644 index 26fc38ec18..0000000000 --- a/lib/bundler/ssl_certs/certificate_manager.rb +++ /dev/null @@ -1,66 +0,0 @@ -# frozen_string_literal: true - -require "bundler/vendored_fileutils" -require "net/https" -require "openssl" - -module Bundler - module SSLCerts - class CertificateManager - attr_reader :bundler_cert_path, :bundler_certs, :rubygems_certs - - def self.update_from!(rubygems_path) - new(rubygems_path).update! - end - - def initialize(rubygems_path = nil) - if rubygems_path - rubygems_cert_path = File.join(rubygems_path, "lib/rubygems/ssl_certs") - @rubygems_certs = certificates_in(rubygems_cert_path) - end - - @bundler_cert_path = File.expand_path("..", __FILE__) - @bundler_certs = certificates_in(bundler_cert_path) - end - - def up_to_date? - rubygems_certs.all? do |rc| - bundler_certs.find do |bc| - File.basename(bc) == File.basename(rc) && FileUtils.compare_file(bc, rc) - end - end - end - - def update! - return if up_to_date? - - FileUtils.rm bundler_certs - FileUtils.cp rubygems_certs, bundler_cert_path - end - - def connect_to(host) - http = Net::HTTP.new(host, 443) - http.use_ssl = true - http.verify_mode = OpenSSL::SSL::VERIFY_PEER - http.cert_store = store - http.head("/") - end - - private - - def certificates_in(path) - Dir[File.join(path, "**/*.pem")].sort - end - - def store - @store ||= begin - store = OpenSSL::X509::Store.new - bundler_certs.each do |cert| - store.add_file cert - end - store - end - end - end - end -end diff --git a/lib/bundler/ssl_certs/index.rubygems.org/GlobalSignRootCA.pem b/lib/bundler/ssl_certs/index.rubygems.org/GlobalSignRootCA.pem deleted file mode 100644 index f4ce4ca43d..0000000000 --- a/lib/bundler/ssl_certs/index.rubygems.org/GlobalSignRootCA.pem +++ /dev/null @@ -1,21 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG -A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv -b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw -MDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i -YWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT -aWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ -jc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp -xy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp -1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG -snUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ -U26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8 -9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E -BTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B -AQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz -yj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE -38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP -AbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad -DKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME -HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A== ------END CERTIFICATE----- diff --git a/lib/bundler/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem b/lib/bundler/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem deleted file mode 100644 index 9e6810ab70..0000000000 --- a/lib/bundler/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +++ /dev/null @@ -1,23 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBs -MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 -d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j -ZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAwMFoXDTMxMTExMDAwMDAwMFowbDEL -MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3 -LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug -RVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm -+9S75S0tMqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTW -PNt0OKRKzE0lgvdKpVMSOO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEM -xChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFB -Ik5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQNAQTXKFx01p8VdteZOE3 -hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUeh10aUAsg -EsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQF -MAMBAf8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaA -FLE+w2kD+L9HAdSYJhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3Nec -nzyIZgYIVyHbIUf4KmeqvxgydkAQV8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6z -eM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFpmyPInngiK3BD41VHMWEZ71jF -hS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkKmNEVX58Svnw2 -Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe -vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep -+OkuE6N36B9K ------END CERTIFICATE----- diff --git a/lib/bundler/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem b/lib/bundler/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem deleted file mode 100644 index 20585f1c01..0000000000 --- a/lib/bundler/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +++ /dev/null @@ -1,25 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU -MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs -IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290 -MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux -FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h -bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v -dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt -H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9 -uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX -mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX -a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN -E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0 -WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD -VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0 -Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU -cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx -IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN -AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH -YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5 -6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC -Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX -c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a -mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ= ------END CERTIFICATE----- diff --git a/lib/bundler/stub_specification.rb b/lib/bundler/stub_specification.rb index 0dd024024a..bad69c9a14 100644 --- a/lib/bundler/stub_specification.rb +++ b/lib/bundler/stub_specification.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -require "bundler/remote_specification" +require_relative "remote_specification" module Bundler class StubSpecification < RemoteSpecification @@ -13,17 +13,13 @@ module Bundler attr_accessor :stub, :ignored - # Pre 2.2.0 did not include extension_dir - # https://github.com/rubygems/rubygems/commit/9485ca2d101b82a946d6f327f4bdcdea6d4946ea - if Bundler.rubygems.provides?(">= 2.2.0") - def source=(source) - super - # Stub has no concept of source, which means that extension_dir may be wrong - # This is the case for git-based gems. So, instead manually assign the extension dir - return unless source.respond_to?(:extension_dir_name) - path = File.join(stub.extensions_dir, source.extension_dir_name) - stub.extension_dir = File.expand_path(path) - end + def source=(source) + super + # Stub has no concept of source, which means that extension_dir may be wrong + # This is the case for git-based gems. So, instead manually assign the extension dir + return unless source.respond_to?(:extension_dir_name) + path = File.join(stub.extensions_dir, source.extension_dir_name) + stub.extension_dir = File.expand_path(path) end def to_yaml @@ -32,11 +28,9 @@ module Bundler # @!group Stub Delegates - if Bundler.rubygems.provides?(">= 2.3") - # This is defined directly to avoid having to load every installed spec - def missing_extensions? - stub.missing_extensions? - end + # This is defined directly to avoid having to load every installed spec + def missing_extensions? + stub.missing_extensions? end def activated @@ -57,16 +51,12 @@ module Bundler stub.full_gem_path || method_missing(:full_gem_path) end - if Bundler.rubygems.provides?(">= 2.2.0") - def full_require_paths - stub.full_require_paths - end + def full_require_paths + stub.full_require_paths + end - # This is what we do in bundler/rubygems_ext - # full_require_paths is always implemented in >= 2.2.0 - def load_paths - full_require_paths - end + def load_paths + full_require_paths end def loaded_from diff --git a/lib/bundler/templates/newgem/Gemfile.tt b/lib/bundler/templates/newgem/Gemfile.tt index c114bd6665..4cd2e40f4f 100644 --- a/lib/bundler/templates/newgem/Gemfile.tt +++ b/lib/bundler/templates/newgem/Gemfile.tt @@ -1,6 +1,4 @@ source "https://rubygems.org" -git_source(:github) {|repo_name| "https://github.com/#{repo_name}" } - # Specify your gem's dependencies in <%= config[:name] %>.gemspec gemspec diff --git a/lib/bundler/templates/newgem/newgem.gemspec.tt b/lib/bundler/templates/newgem/newgem.gemspec.tt index c1a50fe912..18060942c3 100644 --- a/lib/bundler/templates/newgem/newgem.gemspec.tt +++ b/lib/bundler/templates/newgem/newgem.gemspec.tt @@ -1,12 +1,4 @@ -<%- if RUBY_VERSION < "2.0.0" -%> -# coding: utf-8 - -lib = File.expand_path("../lib", __FILE__) -<%- else -%> -lib = File.expand_path("lib", __dir__) -<%- end -%> -$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) -require "<%= config[:namespaced_path] %>/version" +require_relative 'lib/<%=config[:namespaced_path]%>/version' Gem::Specification.new do |spec| spec.name = <%= config[:name].inspect %> @@ -40,7 +32,7 @@ Gem::Specification.new do |spec| <%- end -%> spec.add_development_dependency "bundler", "~> <%= config[:bundler_version] %>" - spec.add_development_dependency "rake", "~> 10.0" + spec.add_development_dependency "rake", "~> 12.0" <%- if config[:ext] -%> spec.add_development_dependency "rake-compiler" <%- end -%> diff --git a/lib/bundler/templates/newgem/test/test_helper.rb.tt b/lib/bundler/templates/newgem/test/test_helper.rb.tt index 335c4704ec..7d7db165ec 100644 --- a/lib/bundler/templates/newgem/test/test_helper.rb.tt +++ b/lib/bundler/templates/newgem/test/test_helper.rb.tt @@ -1,8 +1,4 @@ -<%- if RUBY_VERSION < "2.0.0" -%> -$LOAD_PATH.unshift File.expand_path("../../lib", __FILE__) -<%- else -%> $LOAD_PATH.unshift File.expand_path("../lib", __dir__) -<%- end -%> require "<%= config[:namespaced_path] %>" require "minitest/autorun" diff --git a/lib/bundler/templates/newgem/travis.yml.tt b/lib/bundler/templates/newgem/travis.yml.tt index 7a3381a889..eab16addca 100644 --- a/lib/bundler/templates/newgem/travis.yml.tt +++ b/lib/bundler/templates/newgem/travis.yml.tt @@ -1,5 +1,4 @@ --- -sudo: false language: ruby cache: bundler rvm: diff --git a/lib/bundler/ui/rg_proxy.rb b/lib/bundler/ui/rg_proxy.rb index e2f98481db..ef6def225b 100644 --- a/lib/bundler/ui/rg_proxy.rb +++ b/lib/bundler/ui/rg_proxy.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -require "bundler/ui" +require_relative "../ui" require "rubygems/user_interaction" module Bundler diff --git a/lib/bundler/ui/shell.rb b/lib/bundler/ui/shell.rb index 16e3d15713..8e49fa5885 100644 --- a/lib/bundler/ui/shell.rb +++ b/lib/bundler/ui/shell.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -require "bundler/vendored_thor" +require_relative "../vendored_thor" module Bundler module UI @@ -35,14 +35,12 @@ module Bundler return if @warning_history.include? msg @warning_history << msg - return tell_err(msg, :yellow, newline) if Bundler.feature_flag.error_on_stderr? - tell_me(msg, :yellow, newline) + tell_err(msg, :yellow, newline) end def error(msg, newline = nil) return unless level("error") - return tell_err(msg, :red, newline) if Bundler.feature_flag.error_on_stderr? - tell_me(msg, :red, newline) + tell_err(msg, :red, newline) end def debug(msg, newline = nil) diff --git a/lib/bundler/vendor/fileutils/lib/fileutils.rb b/lib/bundler/vendor/fileutils/lib/fileutils.rb index cc69740845..fb7777eb49 100644 --- a/lib/bundler/vendor/fileutils/lib/fileutils.rb +++ b/lib/bundler/vendor/fileutils/lib/fileutils.rb @@ -1,4 +1,13 @@ # frozen_string_literal: true + +begin + require 'rbconfig' +rescue LoadError + # for make mjit-headers +end + +require "bundler/vendor/fileutils/lib/fileutils/version" + # # = fileutils.rb # @@ -56,7 +65,7 @@ # # There are some `low level' methods, which do not accept any option: # -# Bundler::FileUtils.copy_entry(src, dest, preserve = false, dereference = false) +# Bundler::FileUtils.copy_entry(src, dest, preserve = false, dereference_root = false, remove_destination = false) # Bundler::FileUtils.copy_file(src, dest, preserve = false, dereference = true) # Bundler::FileUtils.copy_stream(srcstream, deststream) # Bundler::FileUtils.remove_entry(path, force = false) @@ -84,7 +93,6 @@ # files/directories. This equates to passing the <tt>:noop</tt> and # <tt>:verbose</tt> flags to methods in Bundler::FileUtils. # - module Bundler::FileUtils def self.private_module_function(name) #:nodoc: @@ -106,19 +114,22 @@ module Bundler::FileUtils # # Changes the current directory to the directory +dir+. # - # If this method is called with block, resumes to the old - # working directory after the block execution finished. + # If this method is called with block, resumes to the previous + # working directory after the block execution has finished. # - # Bundler::FileUtils.cd('/', :verbose => true) # chdir and report it + # Bundler::FileUtils.cd('/') # change directory # - # Bundler::FileUtils.cd('/') do # chdir + # Bundler::FileUtils.cd('/', :verbose => true) # change directory and report it + # + # Bundler::FileUtils.cd('/') do # change directory # # ... # do something # end # return to original directory # def cd(dir, verbose: nil, &block) # :yield: dir fu_output_message "cd #{dir}" if verbose - Dir.chdir(dir, &block) + result = Dir.chdir(dir, &block) fu_output_message 'cd -' if verbose and block + result end module_function :cd @@ -245,15 +256,15 @@ module Bundler::FileUtils fu_output_message "rmdir #{parents ? '-p ' : ''}#{list.join ' '}" if verbose return if noop list.each do |dir| - begin - Dir.rmdir(dir = remove_trailing_slash(dir)) - if parents + Dir.rmdir(dir = remove_trailing_slash(dir)) + if parents + begin until (parent = File.dirname(dir)) == '.' or parent == dir dir = parent Dir.rmdir(dir) end + rescue Errno::ENOTEMPTY, Errno::EEXIST, Errno::ENOENT end - rescue Errno::ENOTEMPTY, Errno::EEXIST, Errno::ENOENT end end end @@ -295,6 +306,39 @@ module Bundler::FileUtils # # :call-seq: + # Bundler::FileUtils.cp_lr(src, dest, noop: nil, verbose: nil, dereference_root: true, remove_destination: false) + # + # Hard link +src+ to +dest+. If +src+ is a directory, this method links + # all its contents recursively. If +dest+ is a directory, links + # +src+ to +dest/src+. + # + # +src+ can be a list of files. + # + # # Installing the library "mylib" under the site_ruby directory. + # Bundler::FileUtils.rm_r site_ruby + '/mylib', :force => true + # Bundler::FileUtils.cp_lr 'lib/', site_ruby + '/mylib' + # + # # Examples of linking several files to target directory. + # Bundler::FileUtils.cp_lr %w(mail.rb field.rb debug/), site_ruby + '/tmail' + # Bundler::FileUtils.cp_lr Dir.glob('*.rb'), '/home/aamine/lib/ruby', :noop => true, :verbose => true + # + # # If you want to link all contents of a directory instead of the + # # directory itself, c.f. src/x -> dest/x, src/y -> dest/y, + # # use the following code. + # Bundler::FileUtils.cp_lr 'src/.', 'dest' # cp_lr('src', 'dest') makes dest/src, but this doesn't. + # + def cp_lr(src, dest, noop: nil, verbose: nil, + dereference_root: true, remove_destination: false) + fu_output_message "cp -lr#{remove_destination ? ' --remove-destination' : ''} #{[src,dest].flatten.join ' '}" if verbose + return if noop + fu_each_src_dest(src, dest) do |s, d| + link_entry s, d, dereference_root, remove_destination + end + end + module_function :cp_lr + + # + # :call-seq: # Bundler::FileUtils.ln_s(target, link, force: nil, noop: nil, verbose: nil) # Bundler::FileUtils.ln_s(target, dir, force: nil, noop: nil, verbose: nil) # Bundler::FileUtils.ln_s(targets, dir, force: nil, noop: nil, verbose: nil) @@ -340,6 +384,26 @@ module Bundler::FileUtils module_function :ln_sf # + # Hard links a file system entry +src+ to +dest+. + # If +src+ is a directory, this method links its contents recursively. + # + # Both of +src+ and +dest+ must be a path name. + # +src+ must exist, +dest+ must not exist. + # + # If +dereference_root+ is true, this method dereferences the tree root. + # + # If +remove_destination+ is true, this method removes each destination file before copy. + # + def link_entry(src, dest, dereference_root = false, remove_destination = false) + Entry_.new(src, nil, dereference_root).traverse do |ent| + destent = Entry_.new(dest, ent.rel, false) + File.unlink destent.path if remove_destination && File.file?(destent.path) + ent.link destent.path + end + end + module_function :link_entry + + # # Copies a file content +src+ to +dest+. If +dest+ is a directory, # copies +src+ to +dest/src+. # @@ -412,7 +476,7 @@ module Bundler::FileUtils def copy_entry(src, dest, preserve = false, dereference_root = false, remove_destination = false) Entry_.new(src, nil, dereference_root).wrap_traverse(proc do |ent| destent = Entry_.new(dest, ent.rel, false) - File.unlink destent.path if remove_destination && File.file?(destent.path) + File.unlink destent.path if remove_destination && (File.file?(destent.path) || File.symlink?(destent.path)) ent.copy destent.path end, proc do |ent| destent = Entry_.new(dest, ent.rel, false) @@ -461,13 +525,12 @@ module Bundler::FileUtils if destent.exist? if destent.directory? raise Errno::EEXIST, d - else - destent.remove_file if rename_cannot_overwrite_file? end end begin File.rename s, d - rescue Errno::EXDEV + rescue Errno::EXDEV, + Errno::EPERM # move from unencrypted to encrypted dir (ext4) copy_entry s, d, true if secure remove_entry_secure s, force @@ -485,11 +548,6 @@ module Bundler::FileUtils alias move mv module_function :move - def rename_cannot_overwrite_file? #:nodoc: - /emx/ =~ RUBY_PLATFORM - end - private_module_function :rename_cannot_overwrite_file? - # # Remove file(s) specified in +list+. This method cannot remove directories. # All StandardErrors are ignored when the :force option is set. @@ -601,8 +659,8 @@ module Bundler::FileUtils # # For details of this security vulnerability, see Perl's case: # - # * http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2005-0448 - # * http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-0452 + # * https://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2005-0448 + # * https://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-0452 # # For fileutils.rb, this vulnerability is reported in [ruby-dev:26100]. # @@ -626,22 +684,38 @@ module Bundler::FileUtils unless parent_st.sticky? raise ArgumentError, "parent directory is world writable, Bundler::FileUtils#remove_entry_secure does not work; abort: #{path.inspect} (parent directory mode #{'%o' % parent_st.mode})" end + # freeze tree root euid = Process.euid - File.open(fullpath + '/.') {|f| - unless fu_stat_identical_entry?(st, f.stat) - # symlink (TOC-to-TOU attack?) - File.unlink fullpath - return - end - f.chown euid, -1 - f.chmod 0700 - unless fu_stat_identical_entry?(st, File.lstat(fullpath)) - # TOC-to-TOU attack? - File.unlink fullpath - return - end - } + dot_file = fullpath + "/." + begin + File.open(dot_file) {|f| + unless fu_stat_identical_entry?(st, f.stat) + # symlink (TOC-to-TOU attack?) + File.unlink fullpath + return + end + f.chown euid, -1 + f.chmod 0700 + } + rescue Errno::EISDIR # JRuby in non-native mode can't open files as dirs + File.lstat(dot_file).tap {|fstat| + unless fu_stat_identical_entry?(st, fstat) + # symlink (TOC-to-TOU attack?) + File.unlink fullpath + return + end + File.chown euid, -1, dot_file + File.chmod 0700, dot_file + } + end + + unless fu_stat_identical_entry?(st, File.lstat(fullpath)) + # TOC-to-TOU attack? + File.unlink fullpath + return + end + # ---- tree root is frozen ---- root = Entry_.new(path) root.preorder_traverse do |ent| @@ -742,8 +816,15 @@ module Bundler::FileUtils # def compare_stream(a, b) bsize = fu_stream_blksize(a, b) - sa = String.new(capacity: bsize) - sb = String.new(capacity: bsize) + + if RUBY_VERSION > "2.4" + sa = String.new(capacity: bsize) + sb = String.new(capacity: bsize) + else + sa = String.new + sb = String.new + end + begin a.read(bsize, sa) b.read(bsize, sb) @@ -1001,11 +1082,6 @@ module Bundler::FileUtils end module_function :chown_R - begin - require 'etc' - rescue LoadError # rescue LoadError for miniruby - end - def fu_get_uid(user) #:nodoc: return nil unless user case user @@ -1014,6 +1090,7 @@ module Bundler::FileUtils when /\A\d+\z/ user.to_i else + require 'etc' Etc.getpwnam(user) ? Etc.getpwnam(user).uid : nil end end @@ -1027,6 +1104,7 @@ module Bundler::FileUtils when /\A\d+\z/ group.to_i else + require 'etc' Etc.getgrnam(group) ? Etc.getgrnam(group).gid : nil end end @@ -1067,8 +1145,11 @@ module Bundler::FileUtils module StreamUtils_ private - def fu_windows? - /mswin|mingw|bccwin|emx/ =~ RUBY_PLATFORM + case (defined?(::RbConfig) ? ::RbConfig::CONFIG['host_os'] : ::RUBY_PLATFORM) + when /mswin|mingw/ + def fu_windows?; true end + else + def fu_windows?; false end end def fu_copy_stream0(src, dest, blksize = nil) #:nodoc: @@ -1193,9 +1274,15 @@ module Bundler::FileUtils def entries opts = {} opts[:encoding] = ::Encoding::UTF_8 if fu_windows? - Dir.entries(path(), opts)\ - .reject {|n| n == '.' or n == '..' }\ - .map {|n| Entry_.new(prefix(), join(rel(), n.untaint)) } + + files = if Dir.respond_to?(:children) + Dir.children(path, opts) + else + Dir.entries(path(), opts) + .reject {|n| n == '.' or n == '..' } + end + + files.map {|n| Entry_.new(prefix(), join(rel(), n.untaint)) } end def stat @@ -1250,6 +1337,22 @@ module Bundler::FileUtils end end + def link(dest) + case + when directory? + if !File.exist?(dest) and descendant_directory?(dest, path) + raise ArgumentError, "cannot link directory %s to itself %s" % [path, dest] + end + begin + Dir.mkdir dest + rescue + raise unless File.directory?(dest) + end + else + File.link path(), dest + end + end + def copy(dest) lstat case diff --git a/lib/bundler/vendor/fileutils/lib/fileutils/version.rb b/lib/bundler/vendor/fileutils/lib/fileutils/version.rb new file mode 100644 index 0000000000..6d8504ccd5 --- /dev/null +++ b/lib/bundler/vendor/fileutils/lib/fileutils/version.rb @@ -0,0 +1,5 @@ +# frozen_string_literal: true + +module Bundler::FileUtils + VERSION = "1.2.0" +end diff --git a/lib/bundler/vendor/thor/lib/thor/actions.rb b/lib/bundler/vendor/thor/lib/thor/actions.rb index e6698572a9..b06feac2a0 100644 --- a/lib/bundler/vendor/thor/lib/thor/actions.rb +++ b/lib/bundler/vendor/thor/lib/thor/actions.rb @@ -113,8 +113,10 @@ class Bundler::Thor # the script started). # def relative_to_original_destination_root(path, remove_dot = true) - path = path.dup - if path.gsub!(@destination_stack[0], ".") + root = @destination_stack[0] + if path.start_with?(root) && [File::SEPARATOR, File::ALT_SEPARATOR, nil, ''].include?(path[root.size..root.size]) + path = path.dup + path[0...root.size] = '.' remove_dot ? (path[2..-1] || "") : path else path @@ -217,6 +219,7 @@ class Bundler::Thor shell.padding += 1 if verbose contents = if is_uri + require "open-uri" open(path, "Accept" => "application/x-thor-template", &:read) else open(path, &:read) @@ -252,9 +255,16 @@ class Bundler::Thor say_status :run, desc, config.fetch(:verbose, true) - unless options[:pretend] - config[:capture] ? `#{command}` : system(command.to_s) + return if options[:pretend] + + result = config[:capture] ? `#{command}` : system(command.to_s) + + if config[:abort_on_failure] + success = config[:capture] ? $?.success? : result + abort unless success end + + result end # Executes a ruby script (taking into account WIN32 platform quirks). diff --git a/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb b/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb index 4c83bebc86..cc29db05a8 100644 --- a/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +++ b/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb @@ -60,6 +60,9 @@ class Bundler::Thor # destination. If a block is given instead of destination, the content of # the url is yielded and used as location. # + # +get+ relies on open-uri, so passing application user input would provide + # a command injection attack vector. + # # ==== Parameters # source<String>:: the address of the given content. # destination<String>:: the relative path to the destination root. @@ -117,7 +120,13 @@ class Bundler::Thor context = config.delete(:context) || instance_eval("binding") create_file destination, nil, config do - content = CapturableERB.new(::File.binread(source), nil, "-", "@output_buffer").tap do |erb| + match = ERB.version.match(/(\d+\.\d+\.\d+)/) + capturable_erb = if match && match[1] >= "2.2.0" # Ruby 2.6+ + CapturableERB.new(::File.binread(source), :trim_mode => "-", :eoutvar => "@output_buffer") + else + CapturableERB.new(::File.binread(source), nil, "-", "@output_buffer") + end + content = capturable_erb.tap do |erb| erb.filename = source end.result(context) content = yield(content) if block @@ -301,7 +310,7 @@ class Bundler::Thor def comment_lines(path, flag, *args) flag = flag.respond_to?(:source) ? flag.source : flag - gsub_file(path, /^(\s*)([^#|\n]*#{flag})/, '\1# \2', *args) + gsub_file(path, /^(\s*)([^#\n]*#{flag})/, '\1# \2', *args) end # Removes a file at the given location. diff --git a/lib/bundler/vendor/thor/lib/thor/base.rb b/lib/bundler/vendor/thor/lib/thor/base.rb index 7e41dc226b..e79d03d087 100644 --- a/lib/bundler/vendor/thor/lib/thor/base.rb +++ b/lib/bundler/vendor/thor/lib/thor/base.rb @@ -466,13 +466,13 @@ class Bundler::Thor dispatch(nil, given_args.dup, nil, config) rescue Bundler::Thor::Error => e config[:debug] || ENV["THOR_DEBUG"] == "1" ? (raise e) : config[:shell].error(e.message) - exit(1) if exit_on_failure? + exit(false) if exit_on_failure? rescue Errno::EPIPE # This happens if a thor command is piped to something like `head`, # which closes the pipe when it's done reading. This will also # mean that if the pipe is closed, further unnecessary # computation will not occur. - exit(0) + exit(true) end # Allows to use private methods from parent in child classes as commands. @@ -493,8 +493,7 @@ class Bundler::Thor alias_method :public_task, :public_command def handle_no_command_error(command, has_namespace = $thor_runner) #:nodoc: - raise UndefinedCommandError, "Could not find command #{command.inspect} in #{namespace.inspect} namespace." if has_namespace - raise UndefinedCommandError, "Could not find command #{command.inspect}." + raise UndefinedCommandError.new(command, all_commands.keys, (namespace if has_namespace)) end alias_method :handle_no_task_error, :handle_no_command_error diff --git a/lib/bundler/vendor/thor/lib/thor/error.rb b/lib/bundler/vendor/thor/lib/thor/error.rb index 2f816081f3..16c68294e4 100644 --- a/lib/bundler/vendor/thor/lib/thor/error.rb +++ b/lib/bundler/vendor/thor/lib/thor/error.rb @@ -1,4 +1,23 @@ class Bundler::Thor + Correctable = + begin + require 'did_you_mean' + + # In order to support versions of Ruby that don't have keyword + # arguments, we need our own spell checker class that doesn't take key + # words. Even though this code wouldn't be hit because of the check + # above, it's still necessary because the interpreter would otherwise be + # unable to parse the file. + class NoKwargSpellChecker < DidYouMean::SpellChecker # :nodoc: + def initialize(dictionary) + @dictionary = dictionary + end + end + + DidYouMean::Correctable + rescue LoadError, NameError + end + # Bundler::Thor::Error is raised when it's caused by wrong usage of thor classes. Those # errors have their backtrace suppressed and are nicely shown to the user. # @@ -10,6 +29,35 @@ class Bundler::Thor # Raised when a command was not found. class UndefinedCommandError < Error + class SpellChecker + attr_reader :error + + def initialize(error) + @error = error + end + + def corrections + @corrections ||= spell_checker.correct(error.command).map(&:inspect) + end + + def spell_checker + NoKwargSpellChecker.new(error.all_commands) + end + end + + attr_reader :command, :all_commands + + def initialize(command, all_commands, namespace) + @command = command + @all_commands = all_commands + + message = "Could not find command #{command.inspect}" + message = namespace ? "#{message} in #{namespace.inspect} namespace." : "#{message}." + + super(message) + end + + prepend Correctable if Correctable end UndefinedTaskError = UndefinedCommandError @@ -22,6 +70,33 @@ class Bundler::Thor end class UnknownArgumentError < Error + class SpellChecker + attr_reader :error + + def initialize(error) + @error = error + end + + def corrections + @corrections ||= + error.unknown.flat_map { |unknown| spell_checker.correct(unknown) }.uniq.map(&:inspect) + end + + def spell_checker + @spell_checker ||= NoKwargSpellChecker.new(error.switches) + end + end + + attr_reader :switches, :unknown + + def initialize(switches, unknown) + @switches = switches + @unknown = unknown + + super("Unknown switches #{unknown.map(&:inspect).join(', ')}") + end + + prepend Correctable if Correctable end class RequiredArgumentMissingError < InvocationError @@ -29,4 +104,11 @@ class Bundler::Thor class MalformattedArgumentError < InvocationError end + + if Correctable + DidYouMean::SPELL_CHECKERS.merge!( + 'Bundler::Thor::UndefinedCommandError' => UndefinedCommandError::SpellChecker, + 'Bundler::Thor::UnknownArgumentError' => UnknownArgumentError::SpellChecker + ) + end end diff --git a/lib/bundler/vendor/thor/lib/thor/group.rb b/lib/bundler/vendor/thor/lib/thor/group.rb index 05ddc10cd3..30db46529e 100644 --- a/lib/bundler/vendor/thor/lib/thor/group.rb +++ b/lib/bundler/vendor/thor/lib/thor/group.rb @@ -61,7 +61,7 @@ class Bundler::Thor::Group invocations[name] = false invocation_blocks[name] = block if block_given? - class_eval <<-METHOD, __FILE__, __LINE__ + class_eval <<-METHOD, __FILE__, __LINE__ + 1 def _invoke_#{name.to_s.gsub(/\W/, '_')} klass, command = self.class.prepare_for_invocation(nil, #{name.inspect}) @@ -120,7 +120,7 @@ class Bundler::Thor::Group invocations[name] = true invocation_blocks[name] = block if block_given? - class_eval <<-METHOD, __FILE__, __LINE__ + class_eval <<-METHOD, __FILE__, __LINE__ + 1 def _invoke_from_option_#{name.to_s.gsub(/\W/, '_')} return unless options[#{name.inspect}] diff --git a/lib/bundler/vendor/thor/lib/thor/parser/options.rb b/lib/bundler/vendor/thor/lib/thor/parser/options.rb index 70f6366842..179f4fa015 100644 --- a/lib/bundler/vendor/thor/lib/thor/parser/options.rb +++ b/lib/bundler/vendor/thor/lib/thor/parser/options.rb @@ -44,6 +44,7 @@ class Bundler::Thor @shorts = {} @switches = {} @extra = [] + @stopped_parsing_after_extra_index = nil options.each do |option| @switches[option.switch_name] = option @@ -66,6 +67,7 @@ class Bundler::Thor if result == OPTS_END shift @parsing_options = false + @stopped_parsing_after_extra_index ||= @extra.size super else result @@ -99,6 +101,7 @@ class Bundler::Thor elsif @stop_on_unknown @parsing_options = false @extra << shifted + @stopped_parsing_after_extra_index ||= @extra.size @extra << shift while peek break elsif match @@ -120,9 +123,11 @@ class Bundler::Thor end def check_unknown! + to_check = @stopped_parsing_after_extra_index ? @extra[0...@stopped_parsing_after_extra_index] : @extra + # an unknown option starts with - or -- and has no more --'s afterward. - unknown = @extra.select { |str| str =~ /^--?(?:(?!--).)*$/ } - raise UnknownArgumentError, "Unknown switches '#{unknown.join(', ')}'" unless unknown.empty? + unknown = to_check.select { |str| str =~ /^--?(?:(?!--).)*$/ } + raise UnknownArgumentError.new(@switches.keys, unknown) unless unknown.empty? end protected diff --git a/lib/bundler/vendor/thor/lib/thor/runner.rb b/lib/bundler/vendor/thor/lib/thor/runner.rb index b110b8d478..65ae422d7f 100644 --- a/lib/bundler/vendor/thor/lib/thor/runner.rb +++ b/lib/bundler/vendor/thor/lib/thor/runner.rb @@ -3,7 +3,7 @@ require "bundler/vendor/thor/lib/thor/group" require "bundler/vendor/thor/lib/thor/core_ext/io_binary_read" require "yaml" -require "digest" +require "digest/md5" require "pathname" class Bundler::Thor::Runner < Bundler::Thor #:nodoc: # rubocop:disable ClassLength @@ -90,7 +90,7 @@ class Bundler::Thor::Runner < Bundler::Thor #:nodoc: # rubocop:disable ClassLeng end thor_yaml[as] = { - :filename => Digest(:MD5).hexdigest(name + as), + :filename => Digest::MD5.hexdigest(name + as), :location => location, :namespaces => Bundler::Thor::Util.namespaces_in_content(contents, base) } diff --git a/lib/bundler/vendor/thor/lib/thor/shell.rb b/lib/bundler/vendor/thor/lib/thor/shell.rb index e945549324..a68cdf8a98 100644 --- a/lib/bundler/vendor/thor/lib/thor/shell.rb +++ b/lib/bundler/vendor/thor/lib/thor/shell.rb @@ -55,7 +55,7 @@ class Bundler::Thor # Common methods that are delegated to the shell. SHELL_DELEGATED_METHODS.each do |method| - module_eval <<-METHOD, __FILE__, __LINE__ + module_eval <<-METHOD, __FILE__, __LINE__ + 1 def #{method}(*args,&block) shell.#{method}(*args,&block) end diff --git a/lib/bundler/vendor/thor/lib/thor/shell/basic.rb b/lib/bundler/vendor/thor/lib/thor/shell/basic.rb index 5162390efd..52648fee8f 100644 --- a/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +++ b/lib/bundler/vendor/thor/lib/thor/shell/basic.rb @@ -1,6 +1,8 @@ class Bundler::Thor module Shell class Basic + DEFAULT_TERMINAL_WIDTH = 80 + attr_accessor :base attr_reader :padding @@ -45,6 +47,10 @@ class Bundler::Thor # Asks something to the user and receives a response. # + # If a default value is specified it will be presented to the user + # and allows them to select that value with an empty response. This + # option is ignored when limited answers are supplied. + # # If asked to limit the correct responses, you can pass in an # array of acceptable answers. If one of those is not supplied, # they will be shown a message stating that one of those answers @@ -61,6 +67,8 @@ class Bundler::Thor # ==== Example # ask("What is your name?") # + # ask("What is the planet furthest from the sun?", :default => "Pluto") + # # ask("What is your favorite Neopolitan flavor?", :limited_to => ["strawberry", "chocolate", "vanilla"]) # # ask("What is your password?", :echo => false) @@ -222,8 +230,20 @@ class Bundler::Thor paras = message.split("\n\n") paras.map! do |unwrapped| - unwrapped.strip.tr("\n", " ").squeeze(" ").gsub(/.{1,#{width}}(?:\s|\Z)/) { ($& + 5.chr).gsub(/\n\005/, "\n").gsub(/\005/, "\n") } - end + counter = 0 + unwrapped.split(" ").inject do |memo, word| + word = word.gsub(/\n\005/, "\n").gsub(/\005/, "\n") + counter = 0 if word.include? "\n" + if (counter + word.length + 1) < width + memo = "#{memo} #{word}" + counter += (word.length + 1) + else + memo = "#{memo}\n#{word}" + counter = word.length + end + memo + end + end.compact! paras.each do |para| para.split("\n").each do |line| @@ -239,11 +259,11 @@ class Bundler::Thor # # ==== Parameters # destination<String>:: the destination file to solve conflicts - # block<Proc>:: an optional block that returns the value to be used in diff + # block<Proc>:: an optional block that returns the value to be used in diff and merge # def file_collision(destination) return true if @always_force - options = block_given? ? "[Ynaqdh]" : "[Ynaqh]" + options = block_given? ? "[Ynaqdhm]" : "[Ynaqh]" loop do answer = ask( @@ -267,6 +287,13 @@ class Bundler::Thor when is?(:diff) show_diff(destination, yield) if block_given? say "Retrying..." + when is?(:merge) + if block_given? && !merge_tool.empty? + merge(destination, yield) + return nil + end + + say "Please specify merge tool to `THOR_MERGE` env." else say file_collision_help end @@ -279,11 +306,11 @@ class Bundler::Thor result = if ENV["THOR_COLUMNS"] ENV["THOR_COLUMNS"].to_i else - unix? ? dynamic_width : 80 + unix? ? dynamic_width : DEFAULT_TERMINAL_WIDTH end - result < 10 ? 80 : result + result < 10 ? DEFAULT_TERMINAL_WIDTH : result rescue - 80 + DEFAULT_TERMINAL_WIDTH end # Called if something goes wrong during the execution. This is used by Bundler::Thor @@ -344,6 +371,7 @@ class Bundler::Thor q - quit, abort d - diff, show the differences between the old and the new h - help, show this help + m - merge, run merge tool HELP end @@ -432,6 +460,23 @@ class Bundler::Thor end correct_answer end + + def merge(destination, content) #:nodoc: + require "tempfile" + Tempfile.open([File.basename(destination), File.extname(destination)], File.dirname(destination)) do |temp| + temp.write content + temp.rewind + system %(#{merge_tool} "#{temp.path}" "#{destination}") + end + end + + def merge_tool #:nodoc: + @merge_tool ||= ENV["THOR_MERGE"] || git_merge_tool + end + + def git_merge_tool #:nodoc: + `git config merge.tool`.rstrip rescue "" + end end end end diff --git a/lib/bundler/vendor/thor/lib/thor/version.rb b/lib/bundler/vendor/thor/lib/thor/version.rb index df8f18821a..98f2b79081 100644 --- a/lib/bundler/vendor/thor/lib/thor/version.rb +++ b/lib/bundler/vendor/thor/lib/thor/version.rb @@ -1,3 +1,3 @@ class Bundler::Thor - VERSION = "0.20.0" + VERSION = "0.20.3" end diff --git a/lib/bundler/vendored_fileutils.rb b/lib/bundler/vendored_fileutils.rb index d14e98baf7..4b71759224 100644 --- a/lib/bundler/vendored_fileutils.rb +++ b/lib/bundler/vendored_fileutils.rb @@ -2,7 +2,7 @@ module Bundler; end if RUBY_VERSION >= "2.4" - require "bundler/vendor/fileutils/lib/fileutils" + require_relative "vendor/fileutils/lib/fileutils" else # the version we vendor is 2.4+ require "fileutils" diff --git a/lib/bundler/vendored_molinillo.rb b/lib/bundler/vendored_molinillo.rb index 061b634f72..d1976f5cb4 100644 --- a/lib/bundler/vendored_molinillo.rb +++ b/lib/bundler/vendored_molinillo.rb @@ -1,4 +1,4 @@ # frozen_string_literal: true module Bundler; end -require "bundler/vendor/molinillo/lib/molinillo" +require_relative "vendor/molinillo/lib/molinillo" diff --git a/lib/bundler/vendored_persistent.rb b/lib/bundler/vendored_persistent.rb index de9c42fcc1..7670b83992 100644 --- a/lib/bundler/vendored_persistent.rb +++ b/lib/bundler/vendored_persistent.rb @@ -15,7 +15,7 @@ module Bundler end end end -require "bundler/vendor/net-http-persistent/lib/net/http/persistent" +require_relative "vendor/net-http-persistent/lib/net/http/persistent" module Bundler class PersistentHTTP < Persistent::Net::HTTP::Persistent diff --git a/lib/bundler/vendored_thor.rb b/lib/bundler/vendored_thor.rb index 8cca090f55..b0b7e7be84 100644 --- a/lib/bundler/vendored_thor.rb +++ b/lib/bundler/vendored_thor.rb @@ -5,4 +5,4 @@ module Bundler Kernel.send(:require, "bundler/vendor/thor/lib/thor/actions") end end -require "bundler/vendor/thor/lib/thor" +require_relative "vendor/thor/lib/thor" diff --git a/lib/bundler/version.rb b/lib/bundler/version.rb index 75d0817cca..cfd6300950 100644 --- a/lib/bundler/version.rb +++ b/lib/bundler/version.rb @@ -1,13 +1,10 @@ # frozen_string_literal: false -# Ruby 1.9.3 and old RubyGems don't play nice with frozen version strings -# rubocop:disable MutableConstant - module Bundler # We're doing this because we might write tests that deal # with other versions of bundler and we are unsure how to # handle this better. - VERSION = "2.0.0.dev" unless defined?(::Bundler::VERSION) + VERSION = "2.1.0.pre.1".freeze unless defined?(::Bundler::VERSION) def self.overwrite_loaded_gem_version begin diff --git a/lib/bundler/vlad.rb b/lib/bundler/vlad.rb index 68181e7db8..538e8c3e74 100644 --- a/lib/bundler/vlad.rb +++ b/lib/bundler/vlad.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -require "bundler/shared_helpers" +require_relative "shared_helpers" Bundler::SharedHelpers.major_deprecation 2, "The Bundler task for Vlad" @@ -8,7 +8,7 @@ Bundler::SharedHelpers.major_deprecation 2, # # Add "require 'bundler/vlad'" in your Vlad deploy.rb, and # include the vlad:bundle:install task in your vlad:deploy task. -require "bundler/deployment" +require_relative "deployment" include Rake::DSL if defined? Rake::DSL diff --git a/lib/bundler/worker.rb b/lib/bundler/worker.rb index e91cfa7805..3471654b43 100644 --- a/lib/bundler/worker.rb +++ b/lib/bundler/worker.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "thread" - module Bundler class Worker POISON = Object.new @@ -62,7 +60,7 @@ module Bundler def apply_func(obj, i) @func.call(obj, i) - rescue Exception => e + rescue Exception => e # rubocop:disable Lint/RescueException WrappedException.new(e) end diff --git a/lib/bundler/yaml_serializer.rb b/lib/bundler/yaml_serializer.rb index 0fd81c40ef..374b3bb5e3 100644 --- a/lib/bundler/yaml_serializer.rb +++ b/lib/bundler/yaml_serializer.rb @@ -32,7 +32,7 @@ module Bundler (.*) # value \1 # matching closing quote $ - /xo + /xo.freeze HASH_REGEX = / ^ @@ -40,12 +40,11 @@ module Bundler (.+) # key (?::(?=(?:\s|$))) # : (without the lookahead the #key includes this when : is present in value) [ ]? - (?: !\s)? # optional exclamation mark found with ruby 1.9.3 (['"]?) # optional opening quote (.*) # value \3 # matching closing quote $ - /xo + /xo.freeze def load(str) res = {} diff --git a/man/bundle-add.ronn b/man/bundle-add.ronn index 1e2d732ec6..26cbe55647 100644 --- a/man/bundle-add.ronn +++ b/man/bundle-add.ronn @@ -3,7 +3,7 @@ bundle-add(1) -- Add gem to the Gemfile and run bundle install ## SYNOPSIS -`bundle add` <GEM_NAME> [--group=GROUP] [--version=VERSION] [--source=SOURCE] [--skip-install] [--strict] [--optimistic] +`bundle add` <GEM_NAME> [--group=GROUP] [--version=VERSION] [--source=SOURCE] [--git=GIT] [--branch=BRANCH] [--skip-install] [--strict] [--optimistic] ## DESCRIPTION Adds the named gem to the Gemfile and run `bundle install`. `bundle install` can be avoided by using the flag `--skip-install`. @@ -30,6 +30,12 @@ bundle add rails --group "development, test" * `--source`, , `-s`: Specify the source for the added gem. +* `--git`: + Specify the git source for the added gem. + +* `--branch`: + Specify the git branch for the added gem. + * `--skip-install`: Adds the gem to the Gemfile but does not install it. diff --git a/man/bundle-config.ronn b/man/bundle-config.ronn index 379b778348..9242a59f95 100644 --- a/man/bundle-config.ronn +++ b/man/bundle-config.ronn @@ -3,7 +3,7 @@ bundle-config(1) -- Set bundler configuration options ## SYNOPSIS -`bundle config` [<name> [<value>]] +`bundle config` [list|get|set|unset] [<name> [<value>]] ## DESCRIPTION @@ -16,39 +16,45 @@ Bundler loads configuration settings in this order: 3. Global config (`~/.bundle/config`) 4. Bundler default config -Executing `bundle config` with no parameters will print a list of all -bundler configuration for the current bundle, and where that configuration +Executing `bundle config list` with will print a list of all bundler +configuration for the current bundle, and where that configuration was set. -Executing `bundle config <name>` will print the value of that configuration +Executing `bundle config get <name>` will print the value of that configuration setting, and where it was set. -Executing `bundle config <name> <value>` will set that configuration to the +Executing `bundle config set <name> <value>` will set that configuration to the value specified for all bundles executed as the current user. The configuration will be stored in `~/.bundle/config`. If <name> already is set, <name> will be overridden and user will be warned. -Executing `bundle config --global <name> <value>` works the same as above. +Executing `bundle config set --global <name> <value>` works the same as above. -Executing `bundle config --local <name> <value>` will set that configuration to +Executing `bundle config set --local <name> <value>` will set that configuration to the local application. The configuration will be stored in `app/.bundle/config`. -Executing `bundle config --delete <name>` will delete the configuration in both -local and global sources. Not compatible with --global or --local flag. +Executing `bundle config unset <name>` will delete the configuration in both +local and global sources. + +Executing `bundle config unset --global <name>` will delete the configuration +only from the user configuration. + +Executing `bundle config unset --local <name> <value>` will delete the +configuration only from the local application. Executing bundle with the `BUNDLE_IGNORE_CONFIG` environment variable set will cause it to ignore all configuration. -Executing `bundle config disable_multisource true` upgrades the warning about +Executing `bundle config set disable_multisource true` upgrades the warning about the Gemfile containing multiple primary sources to an error. Executing `bundle -config --delete disable_multisource` downgrades this error to a warning. +config unset disable_multisource` downgrades this error to a warning. ## REMEMBERING OPTIONS Flags passed to `bundle install` or the Bundler runtime, such as `--path foo` or `--without production`, are not remembered between commands. -If these options must be remembered,they must be set using `bundle config` -(e.g., `bundle config path foo`). +If these options must be remembered, they must be set using `bundle config` +(e.g., `bundle config set path foo`). The options that can be configured are: @@ -92,7 +98,7 @@ pass configuration flags to `gem install` to specify where to find the Since the specific location of that executable can change from machine to machine, you can specify these flags on a per-machine basis. - bundle config build.mysql --with-mysql-config=/usr/local/mysql/bin/mysql_config + bundle config set build.mysql --with-mysql-config=/usr/local/mysql/bin/mysql_config After running this command, every time bundler needs to install the `mysql` gem, it will pass along the flags you specified. @@ -169,7 +175,7 @@ learn more about their operation in [bundle install(1)](bundle-install.1.html). * `disable_multisource` (`BUNDLE_DISABLE_MULTISOURCE`): When set, Gemfiles containing multiple sources will produce errors instead of warnings. - Use `bundle config --delete disable_multisource` to unset. + Use `bundle config unset disable_multisource` to unset. * `disable_platform_warnings` (`BUNDLE_DISABLE_PLATFORM_WARNINGS`): Disable warnings during bundle install when a dependency is unused on the current platform. * `disable_shared_gems` (`BUNDLE_DISABLE_SHARED_GEMS`): @@ -177,8 +183,6 @@ learn more about their operation in [bundle install(1)](bundle-install.1.html). * `disable_version_check` (`BUNDLE_DISABLE_VERSION_CHECK`): Stop Bundler from checking if a newer Bundler version is available on rubygems.org. -* `error_on_stderr` (`BUNDLE_ERROR_ON_STDERR`): - Print Bundler errors to stderr. * `force_ruby_platform` (`BUNDLE_FORCE_RUBY_PLATFORM`): Ignore the current machine's platform and install only `ruby` platform gems. As a result, gems with native extensions will be compiled from source. @@ -208,11 +212,6 @@ learn more about their operation in [bundle install(1)](bundle-install.1.html). Generate a `gems.rb` instead of a `Gemfile` when running `bundle init`. * `jobs` (`BUNDLE_JOBS`): The number of gems Bundler can install in parallel. Defaults to 1. -* `list_command` (`BUNDLE_LIST_COMMAND`) - Enable new list command feature -* `major_deprecations` (`BUNDLE_MAJOR_DEPRECATIONS`): - Whether Bundler should print deprecation warnings for behavior that will - be changed in the next major version. * `no_install` (`BUNDLE_NO_INSTALL`): Whether `bundle package` should skip installing gems. * `no_prune` (`BUNDLE_NO_PRUNE`): @@ -231,8 +230,8 @@ learn more about their operation in [bundle install(1)](bundle-install.1.html). Makes `--path` relative to the CWD instead of the `Gemfile`. * `plugins` (`BUNDLE_PLUGINS`): Enable Bundler's experimental plugin system. -* `prefer_gems_rb` (`BUNDLE_PREFER_GEMS_RB`) - Prefer `gems.rb` to `Gemfile` when Bundler is searching for a Gemfile. +* `prefer_patch` (BUNDLE_PREFER_PATCH): + Prefer updating only to next patch version during updates. Makes `bundle update` calls equivalent to `bundler update --patch`. * `print_only_version_number` (`BUNDLE_PRINT_ONLY_VERSION_NUMBER`) Print only version number from `bundler --version`. * `redirect` (`BUNDLE_REDIRECT`): @@ -245,6 +244,9 @@ learn more about their operation in [bundle install(1)](bundle-install.1.html). * `shebang` (`BUNDLE_SHEBANG`): The program name that should be invoked for generated binstubs. Defaults to the ruby install name used to generate the binstub. +* `silence_deprecations` (`BUNDLE_SILENCE_DEPRECATIONS`): + Whether Bundler should silence deprecation warnings for behavior that will + be changed in the next major version. * `silence_root_warning` (`BUNDLE_SILENCE_ROOT_WARNING`): Silence the warning Bundler prints when installing gems as root. * `skip_default_git_sources` (`BUNDLE_SKIP_DEFAULT_GIT_SOURCES`): @@ -300,11 +302,11 @@ Bundler also allows you to work against a git repository locally instead of using the remote version. This can be achieved by setting up a local override: - bundle config local.GEM_NAME /path/to/local/git/repository + bundle config set local.GEM_NAME /path/to/local/git/repository For example, in order to use a local Rack repository, a developer could call: - bundle config local.rack ~/Work/git/rack + bundle config set local.rack ~/Work/git/rack Now instead of checking out the remote git repository, the local override will be used. Similar to a path source, every time the local @@ -334,21 +336,21 @@ Bundler supports overriding gem sources with mirrors. This allows you to configure rubygems.org as the gem source in your Gemfile while still using your mirror to fetch gems. - bundle config mirror.SOURCE_URL MIRROR_URL + bundle config set mirror.SOURCE_URL MIRROR_URL For example, to use a mirror of rubygems.org hosted at rubygems-mirror.org: - bundle config mirror.http://rubygems.org http://rubygems-mirror.org + bundle config set mirror.http://rubygems.org http://rubygems-mirror.org Each mirror also provides a fallback timeout setting. If the mirror does not respond within the fallback timeout, Bundler will try to use the original server instead of the mirror. - bundle config mirror.SOURCE_URL.fallback_timeout TIMEOUT + bundle config set mirror.SOURCE_URL.fallback_timeout TIMEOUT For example, to fall back to rubygems.org after 3 seconds: - bundle config mirror.https://rubygems.org.fallback_timeout 3 + bundle config set mirror.https://rubygems.org.fallback_timeout 3 The default fallback timeout is 0.1 seconds, but the setting can currently only accept whole seconds (for example, 1, 15, or 30). @@ -358,12 +360,12 @@ only accept whole seconds (for example, 1, 15, or 30). Bundler allows you to configure credentials for any gem source, which allows you to avoid putting secrets into your Gemfile. - bundle config SOURCE_HOSTNAME USERNAME:PASSWORD + bundle config set SOURCE_HOSTNAME USERNAME:PASSWORD For example, to save the credentials of user `claudette` for the gem source at `gems.longerous.com`, you would run: - bundle config gems.longerous.com claudette:s00pers3krit + bundle config set gems.longerous.com claudette:s00pers3krit Or you can set the credentials as an environment variable like this: @@ -371,7 +373,7 @@ Or you can set the credentials as an environment variable like this: For gems with a git source with HTTP(S) URL you can specify credentials like so: - bundle config https://github.com/bundler/bundler.git username:password + bundle config set https://github.com/bundler/bundler.git username:password Or you can set the credentials as an environment variable like so: diff --git a/man/bundle-init.ronn b/man/bundle-init.ronn index 7504af7bab..9d3d97deea 100644 --- a/man/bundle-init.ronn +++ b/man/bundle-init.ronn @@ -26,4 +26,4 @@ results in all string literals in the file being implicitly frozen. ## SEE ALSO -[Gemfile(5)](http://bundler.io/man/gemfile.5.html) +[Gemfile(5)](https://bundler.io/man/gemfile.5.html) diff --git a/man/bundle.ronn b/man/bundle.ronn index 0005692abd..5b1712394a 100644 --- a/man/bundle.ronn +++ b/man/bundle.ronn @@ -10,7 +10,7 @@ bundle(1) -- Ruby Dependency Management Bundler manages an `application's dependencies` through its entire life across many machines systematically and repeatably. -See [the bundler website](http://bundler.io) for information on getting +See [the bundler website](https://bundler.io) for information on getting started, and Gemfile(5) for more information on the `Gemfile` format. ## OPTIONS @@ -73,7 +73,7 @@ We divide `bundle` subcommands into primary commands and utilities: * [`bundle open(1)`](bundle-open.1.html): Open an installed gem in the editor -* [`bundle lock(1)`](bundle-lock.1.hmtl): +* [`bundle lock(1)`](bundle-lock.1.html): Generate a lockfile for your dependencies * [`bundle viz(1)`](bundle-viz.1.html): diff --git a/man/gemfile.5.ronn b/man/gemfile.5.ronn index c941463edc..9fe4176a30 100644 --- a/man/gemfile.5.ronn +++ b/man/gemfile.5.ronn @@ -176,7 +176,7 @@ are not available). Note that on `bundle install`, bundler downloads and evaluates all gems, in order to create a single canonical list of all of the required gems and their dependencies. This means that you cannot list different versions of the same gems in different -groups. For more details, see [Understanding Bundler](http://bundler.io/rationale.html). +groups. For more details, see [Understanding Bundler](https://bundler.io/rationale.html). ### PLATFORMS diff --git a/spec/bundler/bundler_spec.rb b/spec/bundler/bundler_spec.rb index 194d6752b2..9b772bffef 100644 --- a/spec/bundler/bundler_spec.rb +++ b/spec/bundler/bundler_spec.rb @@ -1,4 +1,3 @@ -# encoding: utf-8 # frozen_string_literal: true require "bundler" @@ -313,10 +312,9 @@ EOF let(:bundle_path) { Pathname("#{tmpdir}/bundle") } def clear_cached_requires_sudo - # Private in ruby 1.8.7 return unless Bundler.instance_variable_defined?(:@requires_sudo_ran) - Bundler.send(:remove_instance_variable, :@requires_sudo_ran) - Bundler.send(:remove_instance_variable, :@requires_sudo) + Bundler.remove_instance_variable(:@requires_sudo_ran) + Bundler.remove_instance_variable(:@requires_sudo) end before do @@ -383,14 +381,8 @@ EOF after do FileUtils.rm_rf("tmp/vendor/bundle") FileUtils.rm_rf("tmp/vendor/bin_dir") - if Bundler.respond_to?(:remove_instance_variable) - Bundler.remove_instance_variable(:@requires_sudo_ran) - Bundler.remove_instance_variable(:@requires_sudo) - else - # TODO: Remove these code when Bundler drops Ruby 1.8.7 support - Bundler.send(:remove_instance_variable, :@requires_sudo_ran) - Bundler.send(:remove_instance_variable, :@requires_sudo) - end + Bundler.remove_instance_variable(:@requires_sudo_ran) + Bundler.remove_instance_variable(:@requires_sudo) end context "writable paths" do it "should return false and display nothing" do @@ -465,6 +457,7 @@ MESSAGE it "should use custom home path as root for other paths" do ENV["BUNDLE_USER_HOME"] = bundle_user_home_custom.to_s + allow(Bundler.rubygems).to receive(:user_home).and_raise expect(Bundler.user_bundle_path).to eq(bundle_user_home_custom) expect(Bundler.user_bundle_path("home")).to eq(bundle_user_home_custom) expect(Bundler.user_bundle_path("cache")).to eq(bundle_user_home_custom.join("cache")) diff --git a/spec/bundler/cli_spec.rb b/spec/bundler/cli_spec.rb index c82d46587e..2e12fbfc6b 100644 --- a/spec/bundler/cli_spec.rb +++ b/spec/bundler/cli_spec.rb @@ -28,10 +28,10 @@ RSpec.describe "bundle executable" do end context "with no arguments" do - it "prints a concise help message", :bundler => "2" do + it "prints a concise help message", :bundler => "3" do bundle! "" - expect(last_command.stderr).to be_empty - expect(last_command.stdout).to include("Bundler version #{Bundler::VERSION}"). + expect(err).to be_empty + expect(out).to include("Bundler version #{Bundler::VERSION}"). and include("\n\nBundler commands:\n\n"). and include("\n\n Primary commands:\n"). and include("\n\n Utilities:\n"). @@ -60,11 +60,11 @@ RSpec.describe "bundle executable" do G bundle :install, :env => { "RUBYGEMS_GEMDEPS" => "foo" } - expect(out).to include("RUBYGEMS_GEMDEPS") - expect(out).to include("conflict with Bundler") + expect(err).to include("RUBYGEMS_GEMDEPS") + expect(err).to include("conflict with Bundler") bundle :install, :env => { "RUBYGEMS_GEMDEPS" => "" } - expect(out).not_to include("RUBYGEMS_GEMDEPS") + expect(err).not_to include("RUBYGEMS_GEMDEPS") end end @@ -72,17 +72,17 @@ RSpec.describe "bundle executable" do it "prints the running command" do gemfile "" bundle! "info bundler", :verbose => true - expect(last_command.stdout).to start_with("Running `bundle info bundler --verbose` with bundler #{Bundler::VERSION}") + expect(out).to start_with("Running `bundle info bundler --verbose` with bundler #{Bundler::VERSION}") end it "doesn't print defaults" do install_gemfile! "", :verbose => true - expect(last_command.stdout).to start_with("Running `bundle install --retry 0 --verbose` with bundler #{Bundler::VERSION}") + expect(out).to start_with("Running `bundle install --retry 0 --verbose` with bundler #{Bundler::VERSION}") end it "doesn't print defaults" do install_gemfile! "", :verbose => true - expect(last_command.stdout).to start_with("Running `bundle install --retry 0 --verbose` with bundler #{Bundler::VERSION}") + expect(out).to start_with("Running `bundle install --retry 0 --verbose` with bundler #{Bundler::VERSION}") end end @@ -97,7 +97,7 @@ RSpec.describe "bundle executable" do let(:bundler_version) { "1.1" } let(:latest_version) { nil } before do - bundle! "config --global disable_version_check false" + bundle! "config set --global disable_version_check false" simulate_bundler_version(bundler_version) if latest_version @@ -125,20 +125,20 @@ RSpec.describe "bundle executable" do let(:latest_version) { "222.0" } it "prints the version warning" do bundle "fail" - expect(last_command.stdout).to start_with(<<-EOS.strip) + expect(err).to start_with(<<-EOS.strip) The latest bundler is #{latest_version}, but you are currently running #{bundler_version}. To install the latest version, run `gem install bundler` EOS end context "and disable_version_check is set" do - before { bundle! "config disable_version_check true" } + before { bundle! "config set disable_version_check true" } include_examples "no warning" end context "running a parseable command" do it "prints no warning" do - bundle! "config --parseable foo" + bundle! "config get --parseable foo" expect(last_command.stdboth).to eq "" bundle "platform --ruby" @@ -150,7 +150,7 @@ To install the latest version, run `gem install bundler` let(:latest_version) { "222.0.0.pre.4" } it "prints the version warning" do bundle "fail" - expect(last_command.stdout).to start_with(<<-EOS.strip) + expect(err).to start_with(<<-EOS.strip) The latest bundler is #{latest_version}, but you are currently running #{bundler_version}. To install the latest version, run `gem install bundler --pre` EOS @@ -161,12 +161,12 @@ To install the latest version, run `gem install bundler --pre` end RSpec.describe "bundler executable" do - it "shows the bundler version just as the `bundle` executable does", :bundler => "< 2" do + it "shows the bundler version just as the `bundle` executable does", :bundler => "< 3" do bundler "--version" expect(out).to eq("Bundler version #{Bundler::VERSION}") end - it "shows the bundler version just as the `bundle` executable does", :bundler => "2" do + it "shows the bundler version just as the `bundle` executable does", :bundler => "3" do bundler "--version" expect(out).to eq(Bundler::VERSION) end diff --git a/spec/bundler/definition_spec.rb b/spec/bundler/definition_spec.rb index ceb7b4bf05..f048728a9f 100644 --- a/spec/bundler/definition_spec.rb +++ b/spec/bundler/definition_spec.rb @@ -34,7 +34,7 @@ RSpec.describe Bundler::Definition do end describe "detects changes" do - it "for a path gem with changes", :bundler => "< 2" do + it "for a path gem with changes", :bundler => "< 3" do build_lib "foo", "1.0", :path => lib_path("foo") install_gemfile <<-G @@ -72,7 +72,7 @@ RSpec.describe Bundler::Definition do G end - it "for a path gem with changes", :bundler => "2" do + it "for a path gem with changes", :bundler => "3" do build_lib "foo", "1.0", :path => lib_path("foo") install_gemfile <<-G @@ -88,17 +88,17 @@ RSpec.describe Bundler::Definition do expect(out).to match(/re-resolving dependencies/) lockfile_should_be <<-G - GEM - remote: file://localhost#{gem_repo1}/ - specs: - rack (1.0.0) - PATH remote: #{lib_path("foo")} specs: foo (1.0) rack (= 1.0) + GEM + remote: file://localhost#{gem_repo1}/ + specs: + rack (1.0.0) + PLATFORMS #{lockfile_platforms} @@ -110,7 +110,7 @@ RSpec.describe Bundler::Definition do G end - it "for a path gem with deps and no changes", :bundler => "< 2" do + it "for a path gem with deps and no changes" do build_lib "foo", "1.0", :path => lib_path("foo") do |s| s.add_dependency "rack", "1.0" s.add_development_dependency "net-ssh", "1.0" @@ -137,43 +137,6 @@ RSpec.describe Bundler::Definition do rack (1.0.0) PLATFORMS - ruby - - DEPENDENCIES - foo! - - BUNDLED WITH - #{Bundler::VERSION} - G - end - - it "for a path gem with deps and no changes", :bundler => "2" do - build_lib "foo", "1.0", :path => lib_path("foo") do |s| - s.add_dependency "rack", "1.0" - s.add_development_dependency "net-ssh", "1.0" - end - - install_gemfile <<-G - source "file://localhost#{gem_repo1}" - gem "foo", :path => "#{lib_path("foo")}" - G - - bundle :check, :env => { "DEBUG" => 1 } - - expect(out).to match(/using resolution from the lockfile/) - lockfile_should_be <<-G - GEM - remote: file://localhost#{gem_repo1}/ - specs: - rack (1.0.0) - - PATH - remote: #{lib_path("foo")} - specs: - foo (1.0) - rack (= 1.0) - - PLATFORMS #{lockfile_platforms} DEPENDENCIES diff --git a/spec/bundler/dsl_spec.rb b/spec/bundler/dsl_spec.rb index 89528eb745..a17bfd4938 100644 --- a/spec/bundler/dsl_spec.rb +++ b/spec/bundler/dsl_spec.rb @@ -27,25 +27,58 @@ RSpec.describe Bundler::Dsl do context "github_https feature flag" do it "is true when github.https is true" do - bundle "config github.https true" - expect(Bundler.feature_flag.github_https?).to eq "true" + bundle "config set github.https true" + expect(Bundler.feature_flag.github_https?).to eq true end end - context "default hosts (git, gist)", :bundler => "< 2" do - context "when github.https config is true" do - before { bundle "config github.https true" } - it "converts :github to :git using https" do - subject.gem("sparks", :github => "indirect/sparks") - github_uri = "https://github.com/indirect/sparks.git" + shared_examples_for "the github DSL" do |protocol| + context "when full repo is used" do + let(:repo) { "indirect/sparks" } + + it "converts :github to URI using #{protocol}" do + subject.gem("sparks", :github => repo) + github_uri = "#{protocol}://github.com/#{repo}.git" expect(subject.dependencies.first.source.uri).to eq(github_uri) end end - it "converts :github to :git" do - subject.gem("sparks", :github => "indirect/sparks") - github_uri = "git://github.com/indirect/sparks.git" - expect(subject.dependencies.first.source.uri).to eq(github_uri) + context "when shortcut repo is used" do + let(:repo) { "rails" } + + it "converts :github to URI using #{protocol}" do + subject.gem("sparks", :github => repo) + github_uri = "#{protocol}://github.com/#{repo}/#{repo}.git" + expect(subject.dependencies.first.source.uri).to eq(github_uri) + end + end + end + + context "default hosts (git, gist)" do + context "when github.https config is true" do + before { bundle "config set github.https true" } + + it_behaves_like "the github DSL", "https" + end + + context "when github.https config is false", :bundler => "2" do + before { bundle "config set github.https false" } + + it_behaves_like "the github DSL", "git" + end + + context "when github.https config is false", :bundler => "3" do + before { bundle "config set github.https false" } + + pending "should show a proper message about the removed setting" + end + + context "by default", :bundler => "2" do + it_behaves_like "the github DSL", "https" + end + + context "by default", :bundler => "3" do + it_behaves_like "the github DSL", "https" end it "converts numeric :gist to :git" do @@ -60,12 +93,6 @@ RSpec.describe Bundler::Dsl do expect(subject.dependencies.first.source.uri).to eq(github_uri) end - it "converts 'rails' to 'rails/rails'" do - subject.gem("rails", :github => "rails") - github_uri = "git://github.com/rails/rails.git" - expect(subject.dependencies.first.source.uri).to eq(github_uri) - end - it "converts :bitbucket to :git" do subject.gem("not-really-a-gem", :bitbucket => "mcorp/flatlab-rails") bitbucket_uri = "https://mcorp@bitbucket.org/mcorp/flatlab-rails.git" @@ -79,7 +106,7 @@ RSpec.describe Bundler::Dsl do end end - context "default git sources", :bundler => "2" do + context "default git sources", :bundler => "4" do it "has none" do expect(subject.instance_variable_get(:@git_sources)).to eq({}) end @@ -245,7 +272,33 @@ RSpec.describe Bundler::Dsl do # gem 'spree_api' # gem 'spree_backend' # end - describe "#github", :bundler => "< 2" do + describe "#github", :bundler => "< 3" do + it "from github" do + spree_gems = %w[spree_core spree_api spree_backend] + subject.github "spree" do + spree_gems.each {|spree_gem| subject.send :gem, spree_gem } + end + + subject.dependencies.each do |d| + expect(d.source.uri).to eq("https://github.com/spree/spree.git") + end + end + end + + describe "#github", :bundler => "3" do + it "from github" do + spree_gems = %w[spree_core spree_api spree_backend] + subject.github "spree" do + spree_gems.each {|spree_gem| subject.send :gem, spree_gem } + end + + subject.dependencies.each do |d| + expect(d.source.uri).to eq("https://github.com/spree/spree.git") + end + end + end + + describe "#github", :bundler => "3" do it "from github" do spree_gems = %w[spree_core spree_api spree_backend] subject.github "spree" do @@ -253,12 +306,12 @@ RSpec.describe Bundler::Dsl do end subject.dependencies.each do |d| - expect(d.source.uri).to eq("git://github.com/spree/spree.git") + expect(d.source.uri).to eq("https://github.com/spree/spree.git") end end end - describe "#github", :bundler => "2" do + describe "#github", :bundler => "4" do it "from github" do expect do spree_gems = %w[spree_core spree_api spree_backend] diff --git a/spec/bundler/env_spec.rb b/spec/bundler/env_spec.rb index 20bd38b021..8323a9a7b3 100644 --- a/spec/bundler/env_spec.rb +++ b/spec/bundler/env_spec.rb @@ -1,5 +1,6 @@ # frozen_string_literal: true +require "openssl" require "bundler/settings" RSpec.describe Bundler::Env do @@ -17,6 +18,54 @@ RSpec.describe Bundler::Env do expect(out).to include(OpenSSL::OPENSSL_VERSION) end + describe "rubygems paths" do + it "prints gem home" do + with_clear_paths("GEM_HOME", "/a/b/c") do + out = described_class.report + expect(out).to include("Gem Home /a/b/c") + end + end + + it "prints gem path" do + with_clear_paths("GEM_PATH", "/a/b/c:/d/e/f") do + out = described_class.report + expect(out).to include("Gem Path /a/b/c:/d/e/f") + end + end + + it "prints user home" do + with_clear_paths("HOME", "/a/b/c") do + out = described_class.report + expect(out).to include("User Home /a/b/c") + end + end + + it "prints user path" do + with_clear_paths("HOME", "/a/b/c") do + out = described_class.report + expect(out).to include("User Path /a/b/c/.gem") + end + end + + it "prints bin dir" do + with_clear_paths("GEM_HOME", "/a/b/c") do + out = described_class.report + expect(out).to include("Bin Dir /a/b/c/bin") + end + end + + private + + def with_clear_paths(env_var, env_value) + old_env_var = ENV[env_var] + ENV[env_var] = env_value + Gem.clear_paths + yield + ensure + ENV[env_var] = old_env_var + end + end + context "when there is a Gemfile and a lockfile and print_gemfile is true" do before do gemfile "gem 'rack', '1.0.0'" diff --git a/spec/bundler/fetcher/compact_index_spec.rb b/spec/bundler/fetcher/compact_index_spec.rb index e0f58766ea..5a2d22193a 100644 --- a/spec/bundler/fetcher/compact_index_spec.rb +++ b/spec/bundler/fetcher/compact_index_spec.rb @@ -44,7 +44,7 @@ RSpec.describe Bundler::Fetcher::CompactIndex do end end - context "when OpenSSL is FIPS-enabled", :ruby => ">= 2.0.0" do + context "when OpenSSL is FIPS-enabled" do def remove_cached_md5_availability return unless Bundler::SharedHelpers.instance_variable_defined?(:@md5_available) Bundler::SharedHelpers.remove_instance_variable(:@md5_available) diff --git a/spec/bundler/friendly_errors_spec.rb b/spec/bundler/friendly_errors_spec.rb index 2a1be491ef..07ec196b86 100644 --- a/spec/bundler/friendly_errors_spec.rb +++ b/spec/bundler/friendly_errors_spec.rb @@ -16,7 +16,7 @@ RSpec.describe Bundler, "friendly errors" do FileUtils.rm(Gem.configuration.config_file_name) end - it "reports a relevant friendly error message", :ruby => ">= 1.9", :rubygems => "< 2.5.0" do + it "reports a relevant friendly error message" do gemfile <<-G source "file://#{gem_repo1}" gem "rack" @@ -24,22 +24,7 @@ RSpec.describe Bundler, "friendly errors" do bundle :install, :env => { "DEBUG" => true } - expect(out).to include("Your RubyGems configuration") - expect(out).to include("invalid YAML syntax") - expect(out).to include("Psych::SyntaxError") - expect(out).not_to include("ERROR REPORT TEMPLATE") - expect(exitstatus).to eq(25) if exitstatus - end - - it "reports a relevant friendly error message", :ruby => ">= 1.9", :rubygems => ">= 2.5.0" do - gemfile <<-G - source "file://#{gem_repo1}" - gem "rack" - G - - bundle :install, :env => { "DEBUG" => true } - - expect(last_command.stderr).to include("Failed to load #{home(".gemrc")}") + expect(err).to include("Failed to load #{home(".gemrc")}") expect(exitstatus).to eq(0) if exitstatus end end diff --git a/spec/bundler/gem_helper_spec.rb b/spec/bundler/gem_helper_spec.rb index e2cd7e8bc6..315a2290c7 100644 --- a/spec/bundler/gem_helper_spec.rb +++ b/spec/bundler/gem_helper_spec.rb @@ -49,7 +49,7 @@ RSpec.describe Bundler::GemHelper do end end - context "gem management" do + context "gem management", :ruby_repo do def mock_confirm_message(message) expect(Bundler.ui).to receive(:confirm).with(message) end @@ -209,11 +209,12 @@ RSpec.describe Bundler::GemHelper do end context "succeeds" do + let(:repo) { build_git("foo", :bare => true) } + before do - Dir.chdir(gem_repo1) { `git init --bare` } Dir.chdir(app_path) do - `git remote add origin file://#{gem_repo1}` - `git commit -a -m "initial commit"` + sys_exec("git remote add origin file://#{repo.path}") + sys_exec('git commit -a -m "initial commit"') end end diff --git a/spec/bundler/installer/gem_installer_spec.rb b/spec/bundler/installer/gem_installer_spec.rb index 7340a3acc0..8f8d1c6d15 100644 --- a/spec/bundler/installer/gem_installer_spec.rb +++ b/spec/bundler/installer/gem_installer_spec.rb @@ -10,14 +10,14 @@ RSpec.describe Bundler::GemInstaller do subject { described_class.new(spec, installer) } context "spec_settings is nil" do - it "invokes install method with empty build_args", :rubygems => ">= 2" do + it "invokes install method with empty build_args" do allow(spec_source).to receive(:install).with(spec, :force => false, :ensure_builtin_gems_cached => false, :build_args => []) subject.install_from_spec end end context "spec_settings is build option" do - it "invokes install method with build_args", :rubygems => ">= 2" do + it "invokes install method with build_args" do allow(Bundler.settings).to receive(:[]).with(:bin) allow(Bundler.settings).to receive(:[]).with(:inline) allow(Bundler.settings).to receive(:[]).with(:forget_cli_options) @@ -26,4 +26,15 @@ RSpec.describe Bundler::GemInstaller do subject.install_from_spec end end + + context "spec_settings is build option with spaces" do + it "invokes install method with build_args" do + allow(Bundler.settings).to receive(:[]).with(:bin) + allow(Bundler.settings).to receive(:[]).with(:inline) + allow(Bundler.settings).to receive(:[]).with(:forget_cli_options) + allow(Bundler.settings).to receive(:[]).with("build.dummy").and_return("--with-dummy-config=dummy --with-another-dummy-config") + expect(spec_source).to receive(:install).with(spec, :force => false, :ensure_builtin_gems_cached => false, :build_args => ["--with-dummy-config=dummy", "--with-another-dummy-config"]) + subject.install_from_spec + end + end end diff --git a/spec/bundler/mirror_spec.rb b/spec/bundler/mirror_spec.rb index acd0895f2f..fb476b8465 100644 --- a/spec/bundler/mirror_spec.rb +++ b/spec/bundler/mirror_spec.rb @@ -298,8 +298,8 @@ RSpec.describe Bundler::Settings::TCPSocketProbe do context "with a listening TCP Server" do def with_server_and_mirror - server = TCPServer.new("127.0.0.1", 0) - mirror = Bundler::Settings::Mirror.new("http://localhost:#{server.addr[1]}", 1) + server = TCPServer.new("0.0.0.0", 0) + mirror = Bundler::Settings::Mirror.new("http://0.0.0.0:#{server.addr[1]}", 1) yield server, mirror server.close unless server.closed? end diff --git a/spec/bundler/rubygems_integration_spec.rb b/spec/bundler/rubygems_integration_spec.rb index b1b15d9e5d..26cbaa630b 100644 --- a/spec/bundler/rubygems_integration_spec.rb +++ b/spec/bundler/rubygems_integration_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true RSpec.describe Bundler::RubygemsIntegration do - it "uses the same chdir lock as rubygems", :rubygems => "2.1" do + it "uses the same chdir lock as rubygems" do expect(Bundler.rubygems.ext_lock).to eq(Gem::Ext::Builder::CHDIR_MONITOR) end @@ -15,30 +15,18 @@ RSpec.describe Bundler::RubygemsIntegration do end subject { Bundler.rubygems.validate(spec) } - it "skips overly-strict gemspec validation", :rubygems => "< 1.7" do - expect(spec).to_not receive(:validate) - subject - end - - it "validates with packaging mode disabled", :rubygems => "1.7" do + it "validates with packaging mode disabled" do expect(spec).to receive(:validate).with(false) subject end - it "should set a summary to avoid an overly-strict error", :rubygems => "~> 1.7.0" do - spec.summary = nil - expect { subject }.not_to raise_error - expect(spec.summary).to eq("") - end - context "with an invalid spec" do before do expect(spec).to receive(:validate).with(false). and_raise(Gem::InvalidSpecificationException.new("TODO is not an author")) end - it "should raise a Gem::InvalidSpecificationException and produce a helpful warning message", - :rubygems => "1.7" do + it "should raise a Gem::InvalidSpecificationException and produce a helpful warning message" do expect { subject }.to raise_error(Gem::InvalidSpecificationException, "The gemspec at #{__FILE__} is not valid. "\ "Please fix this gemspec.\nThe validation error was 'TODO is not an author'\n") @@ -53,7 +41,7 @@ RSpec.describe Bundler::RubygemsIntegration do end end - describe "#download_gem", :rubygems => ">= 2.0" do + describe "#download_gem" do let(:bundler_retry) { double(Bundler::Retry) } let(:retry) { double("Bundler::Retry") } let(:uri) { URI.parse("https://foo.bar") } @@ -78,7 +66,7 @@ RSpec.describe Bundler::RubygemsIntegration do end end - describe "#fetch_all_remote_specs", :rubygems => ">= 2.0" do + describe "#fetch_all_remote_specs" do let(:uri) { URI("https://example.com") } let(:fetcher) { double("gem_remote_fetcher") } let(:specs_response) { Marshal.dump(["specs"]) } diff --git a/spec/bundler/shared_helpers_spec.rb b/spec/bundler/shared_helpers_spec.rb index b66c43fd92..f42d9ed485 100644 --- a/spec/bundler/shared_helpers_spec.rb +++ b/spec/bundler/shared_helpers_spec.rb @@ -14,7 +14,7 @@ RSpec.describe Bundler::SharedHelpers do before { ENV["BUNDLE_GEMFILE"] = "/path/Gemfile" } context "Gemfile is present" do - let(:expected_gemfile_path) { Pathname.new("/path/Gemfile") } + let(:expected_gemfile_path) { Pathname.new("/path/Gemfile").expand_path } it "returns the Gemfile path" do expect(subject.default_gemfile).to eq(expected_gemfile_path) @@ -261,6 +261,15 @@ RSpec.describe Bundler::SharedHelpers do subject.set_bundle_environment end + it "ignores if bundler_ruby_lib is same as rubylibdir" do + allow(Bundler::SharedHelpers).to receive(:bundler_ruby_lib).and_return(RbConfig::CONFIG["rubylibdir"]) + + subject.set_bundle_environment + + paths = (ENV["RUBYLIB"]).split(File::PATH_SEPARATOR) + expect(paths.count(RbConfig::CONFIG["rubylibdir"])).to eq(0) + end + it "exits if bundle path contains the unix-like path separator" do if Gem.respond_to?(:path_separator) allow(Gem).to receive(:path_separator).and_return(":") @@ -279,7 +288,7 @@ RSpec.describe Bundler::SharedHelpers do ) end - context "with a jruby path_separator regex", :ruby => "1.9" do + context "with a jruby path_separator regex" do # In versions of jruby that supported ruby 1.8, the path separator was the standard File::PATH_SEPARATOR let(:regex) { Regexp.new("(?<!jar:file|jar|file|classpath|uri:classloader|uri|http|https):") } it "does not exit if bundle path is the standard uri path" do @@ -380,7 +389,7 @@ RSpec.describe Bundler::SharedHelpers do context "bundle executable in ENV['BUNDLE_BIN_PATH'] does not exist" do before { ENV["BUNDLE_BIN_PATH"] = "/does/not/exist" } - before { Bundler.rubygems.replace_bin_path [], [] } + before { Bundler.rubygems.replace_bin_path [] } it "sets BUNDLE_BIN_PATH to the bundle executable file" do subject.set_bundle_environment @@ -446,7 +455,7 @@ RSpec.describe Bundler::SharedHelpers do end end - context "system throws Errno::ENOTSUP", :ruby => "1.9" do + context "system throws Errno::ENOTSUP" do let(:file_op_block) { proc {|_path| raise Errno::ENOTSUP } } it "raises a OperationNotSupportedError" do diff --git a/spec/bundler/source_list_spec.rb b/spec/bundler/source_list_spec.rb index ce3353012c..a78b80ec3b 100644 --- a/spec/bundler/source_list_spec.rb +++ b/spec/bundler/source_list_spec.rb @@ -75,7 +75,7 @@ RSpec.describe Bundler::SourceList do let(:msg) do "The git source `git://existing-git.org/path.git` " \ "uses the `git` protocol, which transmits data without encryption. " \ - "Disable this warning with `bundle config git.allow_insecure true`, " \ + "Disable this warning with `bundle config set git.allow_insecure true`, " \ "or switch to the `https` protocol to keep your data secure." end @@ -115,7 +115,7 @@ RSpec.describe Bundler::SourceList do end end - describe "#add_rubygems_remote", :bundler => "< 2" do + describe "#add_rubygems_remote", :bundler => "< 3" do let!(:returned_source) { source_list.add_rubygems_remote("https://rubygems.org/") } it "returns the aggregate rubygems source" do @@ -372,7 +372,7 @@ RSpec.describe Bundler::SourceList do source_list.add_git_source("uri" => "git://first-git.org/path.git") end - it "combines the rubygems sources into a single instance, removing duplicate remotes from the end", :bundler => "< 2" do + it "combines the rubygems sources into a single instance, removing duplicate remotes from the end", :bundler => "< 3" do expect(source_list.lock_sources).to eq [ Bundler::Source::Git.new("uri" => "git://first-git.org/path.git"), Bundler::Source::Git.new("uri" => "git://second-git.org/path.git"), @@ -391,21 +391,21 @@ RSpec.describe Bundler::SourceList do ] end - it "returns all sources, without combining rubygems sources", :bundler => "2" do + it "returns all sources, without combining rubygems sources", :bundler => "3" do expect(source_list.lock_sources).to eq [ - Bundler::Source::Rubygems.new, - Bundler::Source::Rubygems.new("remotes" => ["https://duplicate-rubygems.org"]), - Bundler::Source::Rubygems.new("remotes" => ["https://first-rubygems.org"]), - Bundler::Source::Rubygems.new("remotes" => ["https://second-rubygems.org"]), - Bundler::Source::Rubygems.new("remotes" => ["https://third-rubygems.org"]), Bundler::Source::Git.new("uri" => "git://first-git.org/path.git"), Bundler::Source::Git.new("uri" => "git://second-git.org/path.git"), Bundler::Source::Git.new("uri" => "git://third-git.org/path.git"), + ASourcePlugin.new("uri" => "https://second-plugin.org/random"), + ASourcePlugin.new("uri" => "https://third-bar.org/foo"), Bundler::Source::Path.new("path" => "/first/path/to/gem"), Bundler::Source::Path.new("path" => "/second/path/to/gem"), Bundler::Source::Path.new("path" => "/third/path/to/gem"), - ASourcePlugin.new("uri" => "https://second-plugin.org/random"), - ASourcePlugin.new("uri" => "https://third-bar.org/foo"), + Bundler::Source::Rubygems.new, + Bundler::Source::Rubygems.new("remotes" => ["https://duplicate-rubygems.org"]), + Bundler::Source::Rubygems.new("remotes" => ["https://first-rubygems.org"]), + Bundler::Source::Rubygems.new("remotes" => ["https://second-rubygems.org"]), + Bundler::Source::Rubygems.new("remotes" => ["https://third-rubygems.org"]), ] end end diff --git a/spec/bundler/source_spec.rb b/spec/bundler/source_spec.rb index 9ef8e7e50f..d70fd7e549 100644 --- a/spec/bundler/source_spec.rb +++ b/spec/bundler/source_spec.rb @@ -60,6 +60,10 @@ RSpec.describe Bundler::Source do before { Bundler.ui = Bundler::UI::Shell.new } it "should return a string with the spec name and version and locked spec version" do + if Bundler.ui.instance_variable_get(:@shell).is_a?(Bundler::Thor::Shell::Basic) + skip "tty color is not supported with Thor::Shell::Basic environment." + end + expect(subject.version_message(spec)).to eq("nokogiri >= 1.6\e[32m (was < 1.5)\e[0m") end end @@ -79,6 +83,10 @@ RSpec.describe Bundler::Source do before { Bundler.ui = Bundler::UI::Shell.new } it "should return a string with the locked spec version in yellow" do + if Bundler.ui.instance_variable_get(:@shell).is_a?(Bundler::Thor::Shell::Basic) + skip "tty color is not supported with Thor::Shell::Basic environment." + end + expect(subject.version_message(spec)).to eq("nokogiri 1.6.1\e[33m (was 1.7.0)\e[0m") end end @@ -92,6 +100,10 @@ RSpec.describe Bundler::Source do before { Bundler.ui = Bundler::UI::Shell.new } it "should return a string with the locked spec version in green" do + if Bundler.ui.instance_variable_get(:@shell).is_a?(Bundler::Thor::Shell::Basic) + skip "tty color is not supported with Thor::Shell::Basic environment." + end + expect(subject.version_message(spec)).to eq("nokogiri 1.7.1\e[32m (was 1.7.0)\e[0m") end end diff --git a/spec/bundler/ssl_certs/certificate_manager_spec.rb b/spec/bundler/ssl_certs/certificate_manager_spec.rb deleted file mode 100644 index 8403b554b5..0000000000 --- a/spec/bundler/ssl_certs/certificate_manager_spec.rb +++ /dev/null @@ -1,140 +0,0 @@ -# frozen_string_literal: true - -require "bundler/ssl_certs/certificate_manager" - -RSpec.describe Bundler::SSLCerts::CertificateManager do - let(:rubygems_path) { root } - let(:stub_cert) { File.join(root.to_s, "lib", "rubygems", "ssl_certs", "rubygems.org", "ssl-cert.pem") } - let(:rubygems_certs_dir) { File.join(root.to_s, "lib", "rubygems", "ssl_certs", "rubygems.org") } - - subject { described_class.new(rubygems_path) } - - # Pretend bundler root is rubygems root - before do - # Backing up rubygems certificates - FileUtils.mv(rubygems_certs_dir, rubygems_certs_dir + ".back") if ruby_core? - - FileUtils.mkdir_p(rubygems_certs_dir) - FileUtils.touch(stub_cert) - end - - after do - FileUtils.rm_rf(rubygems_certs_dir) - - # Restore rubygems certificates - FileUtils.mv(rubygems_certs_dir + ".back", rubygems_certs_dir) if ruby_core? - end - - describe "#update_from" do - let(:cert_manager) { double(:cert_manager) } - - before { allow(described_class).to receive(:new).with(rubygems_path).and_return(cert_manager) } - - it "should update the certs through a new certificate manager" do - allow(cert_manager).to receive(:update!) - expect(described_class.update_from!(rubygems_path)).to be_nil - end - end - - describe "#initialize" do - it "should set bundler_cert_path as path of the subdir with bundler ssl certs" do - expect(subject.bundler_cert_path).to eq(File.join(root, "lib/bundler/ssl_certs")) - end - - it "should set bundler_certs as the paths of the bundler ssl certs" do - expect(subject.bundler_certs).to include(File.join(root, "lib/bundler/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem")) - expect(subject.bundler_certs).to include(File.join(root, "lib/bundler/ssl_certs/index.rubygems.org/GlobalSignRootCA.pem")) - end - - context "when rubygems_path is not nil" do - it "should set rubygems_certs" do - expect(subject.rubygems_certs).to include(File.join(root, "lib", "rubygems", "ssl_certs", "rubygems.org", "ssl-cert.pem")) - end - end - end - - describe "#up_to_date?" do - context "when bundler certs and rubygems certs are the same" do - before do - bundler_certs = Dir[File.join(root.to_s, "lib", "bundler", "ssl_certs", "**", "*.pem")] - FileUtils.rm(stub_cert) - FileUtils.cp(bundler_certs, rubygems_certs_dir) - end - - it "should return true" do - expect(subject).to be_up_to_date - end - end - - context "when bundler certs and rubygems certs are not the same" do - it "should return false" do - expect(subject).to_not be_up_to_date - end - end - end - - describe "#update!" do - context "when certificate manager is not up to date" do - before do - allow(subject).to receive(:up_to_date?).and_return(false) - allow(bundler_fileutils).to receive(:rm) - allow(bundler_fileutils).to receive(:cp) - end - - it "should remove the current bundler certs" do - expect(bundler_fileutils).to receive(:rm).with(subject.bundler_certs) - subject.update! - end - - it "should copy the rubygems certs into bundler certs" do - expect(bundler_fileutils).to receive(:cp).with(subject.rubygems_certs, subject.bundler_cert_path) - subject.update! - end - - it "should return nil" do - expect(subject.update!).to be_nil - end - end - - context "when certificate manager is up to date" do - before { allow(subject).to receive(:up_to_date?).and_return(true) } - - it "should return nil" do - expect(subject.update!).to be_nil - end - end - end - - describe "#connect_to" do - let(:host) { "http://www.host.com" } - let(:http) { Net::HTTP.new(host, 443) } - let(:cert_store) { OpenSSL::X509::Store.new } - let(:http_header_response) { double(:http_header_response) } - - before do - allow(Net::HTTP).to receive(:new).with(host, 443).and_return(http) - allow(OpenSSL::X509::Store).to receive(:new).and_return(cert_store) - allow(http).to receive(:head).with("/").and_return(http_header_response) - end - - it "should use ssl for the http request" do - expect(http).to receive(:use_ssl=).with(true) - subject.connect_to(host) - end - - it "use verify peer mode" do - expect(http).to receive(:verify_mode=).with(OpenSSL::SSL::VERIFY_PEER) - subject.connect_to(host) - end - - it "set its cert store as a OpenSSL::X509::Store populated with bundler certs" do - expect(cert_store).to receive(:add_file).at_least(:once) - expect(http).to receive(:cert_store=).with(cert_store) - subject.connect_to(host) - end - - it "return the headers of the request response" do - expect(subject.connect_to(host)).to eq(http_header_response) - end - end -end diff --git a/spec/bundler/stub_specification_spec.rb b/spec/bundler/stub_specification_spec.rb index 5521d83769..7495b5d661 100644 --- a/spec/bundler/stub_specification_spec.rb +++ b/spec/bundler/stub_specification_spec.rb @@ -13,12 +13,10 @@ RSpec.describe Bundler::StubSpecification do described_class.from_stub(gemspec) end - if Bundler.rubygems.provides?(">= 2.1") - describe "#from_stub" do - it "returns the same stub if already a Bundler::StubSpecification" do - stub = described_class.from_stub(with_bundler_stub_spec) - expect(stub).to be(with_bundler_stub_spec) - end + describe "#from_stub" do + it "returns the same stub if already a Bundler::StubSpecification" do + stub = described_class.from_stub(with_bundler_stub_spec) + expect(stub).to be(with_bundler_stub_spec) end end end diff --git a/spec/bundler/ui/shell_spec.rb b/spec/bundler/ui/shell_spec.rb index 951a446aff..632477096e 100644 --- a/spec/bundler/ui/shell_spec.rb +++ b/spec/bundler/ui/shell_spec.rb @@ -21,20 +21,9 @@ RSpec.describe Bundler::UI::Shell do describe "#warn" do before { subject.level = "warn" } - it "prints to stdout", :bundler => "< 2" do - expect { subject.warn("warning") }.to output("warning\n").to_stdout - end - - it "prints to stderr", :bundler => "2" do + it "prints to stderr" do expect { subject.warn("warning") }.to output("warning\n").to_stderr end - - context "when stderr flag is enabled" do - before { Bundler.settings.temporary(:error_on_stderr => true) } - it "prints to stderr" do - expect { subject.warn("warning!") }.to output("warning!\n").to_stderr - end - end end describe "#debug" do @@ -46,27 +35,16 @@ RSpec.describe Bundler::UI::Shell do describe "#error" do before { subject.level = "error" } - it "prints to stdout", :bundler => "< 2" do - expect { subject.error("error!!!") }.to output("error!!!\n").to_stdout - end - - it "prints to stderr", :bundler => "2" do + it "prints to stderr" do expect { subject.error("error!!!") }.to output("error!!!\n").to_stderr end - context "when stderr flag is enabled" do - before { Bundler.settings.temporary(:error_on_stderr => true) } - it "prints to stderr" do - expect { subject.error("error!!!") }.to output("error!!!\n").to_stderr - end - - context "when stderr is closed" do - it "doesn't report anything" do - output = capture(:stderr, :closed => true) do - subject.error("Something went wrong") - end - expect(output).to_not eq("Something went wrong\n") + context "when stderr is closed" do + it "doesn't report anything" do + output = capture(:stderr, :closed => true) do + subject.error("Something went wrong") end + expect(output).to_not eq("Something went wrong\n") end end end diff --git a/spec/bundler/ui_spec.rb b/spec/bundler/ui_spec.rb index 6ef8729277..6df0d2e290 100644 --- a/spec/bundler/ui_spec.rb +++ b/spec/bundler/ui_spec.rb @@ -2,7 +2,7 @@ RSpec.describe Bundler::UI do describe Bundler::UI::Silent do - it "has the same instance methods as Shell", :ruby => ">= 1.9" do + it "has the same instance methods as Shell" do shell = Bundler::UI::Shell methods = proc do |cls| cls.instance_methods.map do |i| @@ -13,7 +13,7 @@ RSpec.describe Bundler::UI do expect(methods.call(described_class)).to eq(methods.call(shell)) end - it "has the same instance class as Shell", :ruby => ">= 1.9" do + it "has the same instance class as Shell" do shell = Bundler::UI::Shell methods = proc do |cls| cls.methods.map do |i| diff --git a/spec/bundler/vendored_persistent_spec.rb b/spec/bundler/vendored_persistent_spec.rb index d62279447d..c760c067e0 100644 --- a/spec/bundler/vendored_persistent_spec.rb +++ b/spec/bundler/vendored_persistent_spec.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require "spec_helper" require "bundler/vendored_persistent" RSpec.describe Bundler::PersistentHTTP do diff --git a/spec/cache/cache_path_spec.rb b/spec/cache/cache_path_spec.rb index 69d3809964..a4572af11e 100644 --- a/spec/cache/cache_path_spec.rb +++ b/spec/cache/cache_path_spec.rb @@ -17,7 +17,7 @@ RSpec.describe "bundle package" do context "with config cache_path" do it "caches gems at given path" do - bundle "config cache_path vendor/cache-foo" + bundle "config set cache_path vendor/cache-foo" bundle :package expect(bundled_app("vendor/cache-foo/rack-1.0.0.gem")).to exist end diff --git a/spec/cache/gems_spec.rb b/spec/cache/gems_spec.rb index 4a0b953830..4fc43a50a0 100644 --- a/spec/cache/gems_spec.rb +++ b/spec/cache/gems_spec.rb @@ -74,16 +74,16 @@ RSpec.describe "bundle cache" do end context "using system gems" do - before { bundle! "config path.system true" } + before { bundle! "config set path.system true" } it_behaves_like "when there are only gemsources" end context "installing into a local path" do - before { bundle! "config path ./.bundle" } + before { bundle! "config set path ./.bundle" } it_behaves_like "when there are only gemsources" end - describe "when there is a built-in gem", :ruby => "2.0" do + describe "when there is a built-in gem" do before :each do build_repo2 do build_gem "builtin_gem", "1.0.2" @@ -97,7 +97,7 @@ RSpec.describe "bundle cache" do end it "uses builtin gems when installing to system gems" do - bundle! "config path.system true" + bundle! "config set path.system true" install_gemfile %(gem 'builtin_gem', '1.0.2') expect(the_bundle).to include_gems("builtin_gem 1.0.2") end @@ -129,7 +129,7 @@ RSpec.describe "bundle cache" do end it "errors if the builtin gem isn't available to cache" do - bundle! "config path.system true" + bundle! "config set path.system true" install_gemfile <<-G gem 'builtin_gem', '1.0.2' @@ -137,7 +137,7 @@ RSpec.describe "bundle cache" do bundle :cache expect(exitstatus).to_not eq(0) if exitstatus - expect(out).to include("builtin_gem-1.0.2 is built in to Ruby, and can't be cached") + expect(err).to include("builtin_gem-1.0.2 is built in to Ruby, and can't be cached") end end @@ -196,7 +196,7 @@ RSpec.describe "bundle cache" do it "adds and removes when gems are updated" do update_repo2 - bundle "update", :all => bundle_update_requires_all? + bundle "update", :all => true expect(cached_gem("rack-1.2")).to exist expect(cached_gem("rack-1.0.0")).not_to exist end diff --git a/spec/cache/git_spec.rb b/spec/cache/git_spec.rb index 33387dbbb2..d31d607d25 100644 --- a/spec/cache/git_spec.rb +++ b/spec/cache/git_spec.rb @@ -59,7 +59,7 @@ end bundle! "#{cmd}", forgotten_command_line_options([:all, :cache_all] => true) bundle! "#{cmd}", forgotten_command_line_options([:all, :cache_all] => true) - expect(last_command.stdout).to include "Updating files in vendor/cache" + expect(out).to include "Updating files in vendor/cache" FileUtils.rm_rf lib_path("foo-1.0") expect(the_bundle).to include_gems "foo 1.0" end @@ -81,7 +81,7 @@ end ref = git.ref_for("master", 11) expect(ref).not_to eq(old_ref) - bundle! "update", :all => bundle_update_requires_all? + bundle! "update", :all => true bundle! "#{cmd}", forgotten_command_line_options([:all, :cache_all] => true) expect(bundled_app("vendor/cache/foo-1.0-#{ref}")).to exist @@ -127,7 +127,7 @@ end gem "foo", :git => '#{lib_path("foo-invalid")}', :branch => :master G - bundle %(config local.foo #{lib_path("foo-1.0")}) + bundle %(config set local.foo #{lib_path("foo-1.0")}) bundle "install" bundle "#{cmd}", forgotten_command_line_options([:all, :cache_all] => true) @@ -168,7 +168,7 @@ end expect(the_bundle).to include_gems "has_submodule 1.0" end - it "displays warning message when detecting git repo in Gemfile", :bundler => "< 2" do + it "displays warning message when detecting git repo in Gemfile", :bundler => "< 3" do build_git "foo" install_gemfile <<-G @@ -177,7 +177,7 @@ end bundle "#{cmd}" - expect(out).to include("Your Gemfile contains path and git dependencies.") + expect(err).to include("Your Gemfile contains path and git dependencies.") end it "does not display warning message if cache_all is set in bundle config" do @@ -190,7 +190,7 @@ end bundle cmd, forgotten_command_line_options([:all, :cache_all] => true) bundle cmd - expect(out).not_to include("Your Gemfile contains path and git dependencies.") + expect(err).not_to include("Your Gemfile contains path and git dependencies.") end it "caches pre-evaluated gemspecs" do diff --git a/spec/cache/path_spec.rb b/spec/cache/path_spec.rb index 8c6a843476..0d7b154a37 100644 --- a/spec/cache/path_spec.rb +++ b/spec/cache/path_spec.rb @@ -86,7 +86,7 @@ expect(bundled_app("vendor/cache/bar-1.0")).not_to exist end - it "raises a warning without --all", :bundler => "< 2" do + it "raises a warning without --all", :bundler => "< 3" do build_lib "foo" install_gemfile <<-G @@ -94,7 +94,7 @@ G bundle cmd - expect(out).to match(/please pass the \-\-all flag/) + expect(err).to match(/please pass the \-\-all flag/) expect(bundled_app("vendor/cache/foo-1.0")).not_to exist end diff --git a/spec/cache/platform_spec.rb b/spec/cache/platform_spec.rb index c0622a3c94..b3c4643ef5 100644 --- a/spec/cache/platform_spec.rb +++ b/spec/cache/platform_spec.rb @@ -41,7 +41,7 @@ RSpec.describe "bundle cache with multiple platforms" do end it "ensures that a successful bundle update does not delete gems for other platforms" do - bundle! "update", :all => bundle_update_requires_all? + bundle! "update", :all => true expect(bundled_app("vendor/cache/rack-1.0.0.gem")).to exist expect(bundled_app("vendor/cache/activesupport-2.3.5.gem")).to exist diff --git a/spec/commands/add_spec.rb b/spec/commands/add_spec.rb index 9f11adbcf8..f5b3f49bb1 100644 --- a/spec/commands/add_spec.rb +++ b/spec/commands/add_spec.rb @@ -11,6 +11,8 @@ RSpec.describe "bundle add" do build_gem "dog", "1.1.3.pre" end + build_git "foo", "2.0" + install_gemfile <<-G source "file://#{gem_repo2}" gem "weakling", "~> 0.0.1" @@ -21,7 +23,7 @@ RSpec.describe "bundle add" do it "shows error" do bundle "add" - expect(last_command.bundler_err).to include("Please specify gems to add") + expect(err).to include("Please specify gems to add") end end @@ -89,6 +91,28 @@ RSpec.describe "bundle add" do end end + describe "with --git" do + it "adds dependency with specified github source" do + bundle "add foo --git=#{lib_path("foo-2.0")}" + + expect(bundled_app("Gemfile").read).to match(/gem "foo", "~> 2.0", :git => "#{lib_path("foo-2.0")}"/) + expect(the_bundle).to include_gems "foo 2.0" + end + end + + describe "with --git and --branch" do + before do + update_git "foo", "2.0", :branch => "test" + end + + it "adds dependency with specified github source and branch" do + bundle "add foo --git=#{lib_path("foo-2.0")} --branch=test" + + expect(bundled_app("Gemfile").read).to match(/gem "foo", "~> 2.0", :git => "#{lib_path("foo-2.0")}", :branch => "test"/) + expect(the_bundle).to include_gems "foo 2.0" + end + end + describe "with --skip-install" do it "adds gem to Gemfile but is not installed" do bundle "add foo --skip-install --version=2.0" @@ -106,23 +130,23 @@ RSpec.describe "bundle add" do it "shows error message when version is not formatted correctly" do bundle "add 'foo' -v='~>1 . 0'" - expect(out).to match("Invalid gem requirement pattern '~>1 . 0'") + expect(err).to match("Invalid gem requirement pattern '~>1 . 0'") end it "shows error message when gem cannot be found" do bundle "add 'werk_it'" - expect(out).to match("Could not find gem 'werk_it' in") + expect(err).to match("Could not find gem 'werk_it' in") bundle "add 'werk_it' -s='file://#{gem_repo2}'" - expect(out).to match("Could not find gem 'werk_it' in rubygems repository") + expect(err).to match("Could not find gem 'werk_it' in rubygems repository") end it "shows error message when source cannot be reached" do bundle "add 'baz' --source='http://badhostasdf'" - expect(out).to include("Could not reach host badhostasdf. Check your network connection and try again.") + expect(err).to include("Could not reach host badhostasdf. Check your network connection and try again.") bundle "add 'baz' --source='file://does/not/exist'" - expect(out).to include("Could not fetch specs from file://does/not/exist/") + expect(err).to include("Could not fetch specs from file://does/not/exist/") end describe "with --optimistic" do @@ -153,7 +177,7 @@ RSpec.describe "bundle add" do it "throws error" do bundle "add 'foo' --strict --optimistic" - expect(out).to include("You can not specify `--strict` and `--optimistic` at the same time") + expect(err).to include("You can not specify `--strict` and `--optimistic` at the same time") end end @@ -168,8 +192,8 @@ RSpec.describe "bundle add" do it "throws error if any of the specified gems are present in the gemfile with different version" do bundle "add weakling bar" - expect(out).to include("You cannot specify the same gem twice with different version requirements") - expect(out).to include("You specified: weakling (~> 0.0.1) and weakling (>= 0).") + expect(err).to include("You cannot specify the same gem twice with different version requirements") + expect(err).to include("You specified: weakling (~> 0.0.1) and weakling (>= 0).") end end @@ -182,8 +206,8 @@ RSpec.describe "bundle add" do bundle "add 'rack' --version=1.1" - expect(out).to include("You cannot specify the same gem twice with different version requirements") - expect(out).to include("If you want to update the gem version, run `bundle update rack`. You may also need to change the version requirement specified in the Gemfile if it's too restrictive") + expect(err).to include("You cannot specify the same gem twice with different version requirements") + expect(err).to include("If you want to update the gem version, run `bundle update rack`. You may also need to change the version requirement specified in the Gemfile if it's too restrictive") end it "shows error when added without version requirements" do @@ -194,9 +218,9 @@ RSpec.describe "bundle add" do bundle "add 'rack'" - expect(out).to include("Gem already added.") - expect(out).to include("You cannot specify the same gem twice with different version requirements") - expect(out).not_to include("If you want to update the gem version, run `bundle update rack`. You may also need to change the version requirement specified in the Gemfile if it's too restrictive") + expect(err).to include("Gem already added.") + expect(err).to include("You cannot specify the same gem twice with different version requirements") + expect(err).not_to include("If you want to update the gem version, run `bundle update rack`. You may also need to change the version requirement specified in the Gemfile if it's too restrictive") end end @@ -209,9 +233,9 @@ RSpec.describe "bundle add" do bundle "add 'rack' --version=1.1" - expect(out).to include("You cannot specify the same gem twice with different version requirements") - expect(out).to include("If you want to update the gem version, run `bundle update rack`.") - expect(out).not_to include("You may also need to change the version requirement specified in the Gemfile if it's too restrictive") + expect(err).to include("You cannot specify the same gem twice with different version requirements") + expect(err).to include("If you want to update the gem version, run `bundle update rack`.") + expect(err).not_to include("You may also need to change the version requirement specified in the Gemfile if it's too restrictive") end end end diff --git a/spec/commands/binstubs_spec.rb b/spec/commands/binstubs_spec.rb index 2f014f2631..4f310784c7 100644 --- a/spec/commands/binstubs_spec.rb +++ b/spec/commands/binstubs_spec.rb @@ -59,7 +59,7 @@ RSpec.describe "bundle binstubs <gem>" do bundle "binstubs" expect(exitstatus).to eq(1) if exitstatus - expect(out).to include("`bundle binstubs` needs at least one gem to run.") + expect(err).to include("`bundle binstubs` needs at least one gem to run.") end it "displays an error when used with --all and gems" do @@ -70,7 +70,7 @@ RSpec.describe "bundle binstubs <gem>" do bundle "binstubs rack", :all => true expect(last_command).to be_failure - expect(last_command.bundler_err).to include("Cannot specify --all with specific gems") + expect(err).to include("Cannot specify --all with specific gems") end context "when generating bundle binstub outside bundler" do @@ -88,7 +88,7 @@ RSpec.describe "bundle binstubs <gem>" do sys_exec "bin/rackup" - expect(last_command.stderr).to include("was not generated by Bundler") + expect(err).to include("was not generated by Bundler") end end @@ -133,9 +133,9 @@ RSpec.describe "bundle binstubs <gem>" do context "when BUNDLER_VERSION is set" do it "runs the correct version of bundler" do - sys_exec "BUNDLER_VERSION='999.999.999' #{bundled_app("bin/bundle")} install" + sys_exec "#{bundled_app("bin/bundle")} install", "BUNDLER_VERSION" => "999.999.999" expect(exitstatus).to eq(42) if exitstatus - expect(last_command.stderr).to include("Activating bundler (999.999.999) failed:"). + expect(err).to include("Activating bundler (999.999.999) failed:"). and include("To install the version of bundler this project requires, run `gem install bundler -v '999.999.999'`") end end @@ -145,7 +145,7 @@ RSpec.describe "bundle binstubs <gem>" do lockfile lockfile.gsub(system_bundler_version, "999.999.999") sys_exec "#{bundled_app("bin/bundle")} install" expect(exitstatus).to eq(42) if exitstatus - expect(last_command.stderr).to include("Activating bundler (999.999.999) failed:"). + expect(err).to include("Activating bundler (999.999.999) failed:"). and include("To install the version of bundler this project requires, run `gem install bundler -v '999.999.999'`") end @@ -154,7 +154,7 @@ RSpec.describe "bundle binstubs <gem>" do lockfile lockfile.gsub(system_bundler_version, "44.0") sys_exec "#{bundled_app("bin/bundle")} install" expect(exitstatus).to eq(42) if exitstatus - expect(last_command.stderr).to include("Activating bundler (44.0) failed:"). + expect(err).to include("Activating bundler (44.0) failed:"). and include("To install the version of bundler this project requires, run `gem install bundler -v '44.0'`") end @@ -163,7 +163,7 @@ RSpec.describe "bundle binstubs <gem>" do lockfile lockfile.gsub(system_bundler_version, "2.12.0.a") sys_exec "#{bundled_app("bin/bundle")} install" expect(exitstatus).to eq(42) if exitstatus - expect(last_command.stderr).to include("Activating bundler (2.12.0.a) failed:"). + expect(err).to include("Activating bundler (2.12.0.a) failed:"). and include("To install the version of bundler this project requires, run `gem install bundler -v '2.12.0.a'`") end end @@ -173,13 +173,13 @@ RSpec.describe "bundle binstubs <gem>" do it "calls through to the latest bundler version" do sys_exec! "#{bundled_app("bin/bundle")} update --bundler" - expect(last_command.stdout).to eq %(system bundler #{system_bundler_version}\n["update", "--bundler"]) + expect(out).to eq %(system bundler #{system_bundler_version}\n["update", "--bundler"]) end it "calls through to the explicit bundler version" do sys_exec "#{bundled_app("bin/bundle")} update --bundler=999.999.999" expect(exitstatus).to eq(42) if exitstatus - expect(last_command.stderr).to include("Activating bundler (999.999.999) failed:"). + expect(err).to include("Activating bundler (999.999.999) failed:"). and include("To install the version of bundler this project requires, run `gem install bundler -v '999.999.999'`") end end @@ -202,10 +202,10 @@ RSpec.describe "bundle binstubs <gem>" do context "when requesting a different bundler version" do before { lockfile lockfile.gsub(Bundler::VERSION, "999.999.999") } - it "attempts to load that version", :ruby_repo do + it "attempts to load that version" do sys_exec bundled_app("bin/rackup").to_s expect(exitstatus).to eq(42) if exitstatus - expect(last_command.stderr).to include("Activating bundler (999.999.999) failed:"). + expect(err).to include("Activating bundler (999.999.999) failed:"). and include("To install the version of bundler this project requires, run `gem install bundler -v '999.999.999'`") end end @@ -278,7 +278,7 @@ RSpec.describe "bundle binstubs <gem>" do bundle "binstubs doesnt_exist" expect(exitstatus).to eq(7) if exitstatus - expect(out).to include("Could not find gem 'doesnt_exist'.") + expect(err).to include("Could not find gem 'doesnt_exist'.") end end @@ -294,7 +294,7 @@ RSpec.describe "bundle binstubs <gem>" do expect(bundled_app("exec/rackup")).to exist end - it "setting is saved for bundle install", :bundler => "< 2" do + it "setting is saved for bundle install", :bundler => "< 3" do install_gemfile <<-G source "file://#{gem_repo1}" gem "rack" @@ -350,8 +350,8 @@ RSpec.describe "bundle binstubs <gem>" do expect(bundled_app("bin/rackup")).to exist expect(File.read(bundled_app("bin/rackup"))).to eq("OMG") - expect(out).to include("Skipped rackup") - expect(out).to include("overwrite skipped stubs, use --force") + expect(err).to include("Skipped rackup") + expect(err).to include("overwrite skipped stubs, use --force") end context "when using --force" do @@ -382,8 +382,8 @@ RSpec.describe "bundle binstubs <gem>" do G bundle "binstubs rack-obama" - expect(out).to include("rack-obama has no executables") - expect(out).to include("rack has: rackup") + expect(err).to include("rack-obama has no executables") + expect(err).to include("rack has: rackup") end it "works if child gems don't have bins" do @@ -393,7 +393,7 @@ RSpec.describe "bundle binstubs <gem>" do G bundle "binstubs actionpack" - expect(out).to include("no executables for the gem actionpack") + expect(err).to include("no executables for the gem actionpack") end it "works if the gem has development dependencies" do @@ -403,7 +403,7 @@ RSpec.describe "bundle binstubs <gem>" do G bundle "binstubs with_development_dependency" - expect(out).to include("no executables for the gem with_development_dependency") + expect(err).to include("no executables for the gem with_development_dependency") end end @@ -414,7 +414,7 @@ RSpec.describe "bundle binstubs <gem>" do gem "rack" G - bundle "config auto_install 1" + bundle "config set auto_install 1" bundle "binstubs rack" expect(out).to include("Installing rack 1.0.0") expect(the_bundle).to include_gems "rack 1.0.0" @@ -426,7 +426,7 @@ RSpec.describe "bundle binstubs <gem>" do gem "rack" G - bundle "config auto_install 1" + bundle "config set auto_install 1" bundle "binstubs rack", :env => { "BUNDLE_INSTALL" => 1 } expect(out).not_to include("Installing rack 1.0.0") end diff --git a/spec/commands/check_spec.rb b/spec/commands/check_spec.rb index f2af446fbf..cf88736612 100644 --- a/spec/commands/check_spec.rb +++ b/spec/commands/check_spec.rb @@ -58,7 +58,7 @@ RSpec.describe "bundle check" do G bundle :check - expect(out).to include("Bundler can't satisfy your Gemfile's dependencies.") + expect(err).to include("Bundler can't satisfy your Gemfile's dependencies.") end it "prints a generic error if a Gemfile.lock does not exist and a toplevel dependency does not exist" do @@ -69,7 +69,7 @@ RSpec.describe "bundle check" do bundle :check expect(exitstatus).to be > 0 if exitstatus - expect(out).to include("Bundler can't satisfy your Gemfile's dependencies.") + expect(err).to include("Bundler can't satisfy your Gemfile's dependencies.") end it "prints a generic message if you changed your lockfile" do @@ -89,10 +89,10 @@ RSpec.describe "bundle check" do G bundle :check - expect(out).to include("Bundler can't satisfy your Gemfile's dependencies.") + expect(err).to include("Bundler can't satisfy your Gemfile's dependencies.") end - it "remembers --without option from install", :bundler => "< 2" do + it "remembers --without option from install", :bundler => "< 3" do gemfile <<-G source "file://#{gem_repo1}" group :foo do @@ -106,7 +106,7 @@ RSpec.describe "bundle check" do end it "uses the without setting" do - bundle! "config without foo" + bundle! "config set without foo" install_gemfile! <<-G source "file://#{gem_repo1}" group :foo do @@ -132,7 +132,7 @@ RSpec.describe "bundle check" do G bundle "check" - expect(out).to include("* rack (1.0.0)") + expect(err).to include("* rack (1.0.0)") expect(exitstatus).to eq(1) if exitstatus end @@ -201,13 +201,13 @@ RSpec.describe "bundle check" do it "outputs an error when the default Gemfile is not found" do bundle :check expect(exitstatus).to eq(10) if exitstatus - expect(out).to include("Could not locate Gemfile") + expect(err).to include("Could not locate Gemfile") end it "does not output fatal error message" do bundle :check expect(exitstatus).to eq(10) if exitstatus - expect(out).not_to include("Unfortunately, a fatal error has occurred. ") + expect(err).not_to include("Unfortunately, a fatal error has occurred. ") end it "should not crash when called multiple times on a new machine" do @@ -238,7 +238,7 @@ RSpec.describe "bundle check" do expect(last_command).to be_failure end - context "--path", :bundler => "< 2" do + context "--path", :bundler => "< 3" do before do gemfile <<-G source "file://#{gem_repo1}" @@ -254,7 +254,7 @@ RSpec.describe "bundle check" do expect(out).to include("The Gemfile's dependencies are satisfied") end - it "should write to .bundle/config", :bundler => "< 2" do + it "should write to .bundle/config", :bundler => "< 3" do bundle "check --path vendor/bundle" bundle! "check" end @@ -269,7 +269,7 @@ RSpec.describe "bundle check" do bundle "check --path vendor/bundle" expect(exitstatus).to eq(1) if exitstatus - expect(out).to match(/The following gems are missing/) + expect(err).to match(/The following gems are missing/) end end @@ -292,8 +292,8 @@ RSpec.describe "bundle check" do it "shows what is missing with the current Gemfile if it is not satisfied" do simulate_new_machine bundle :check - expect(out).to match(/The following gems are missing/) - expect(out).to include("* rack (1.0") + expect(err).to match(/The following gems are missing/) + expect(err).to include("* rack (1.0") end end @@ -338,7 +338,7 @@ RSpec.describe "bundle check" do it "does not change the lock but warns" do lockfile lock_with(Bundler::VERSION.succ) bundle! :check - expect(last_command.bundler_err).to include("the running version of Bundler (#{Bundler::VERSION}) is older than the version that created the lockfile (#{Bundler::VERSION.succ})") + expect(err).to include("the running version of Bundler (#{Bundler::VERSION}) is older than the version that created the lockfile (#{Bundler::VERSION.succ})") lockfile_should_be lock_with(Bundler::VERSION.succ) end end diff --git a/spec/commands/clean_spec.rb b/spec/commands/clean_spec.rb index 37cbeeb4e7..0053947c85 100644 --- a/spec/commands/clean_spec.rb +++ b/spec/commands/clean_spec.rb @@ -142,7 +142,7 @@ RSpec.describe "bundle clean" do bundle :clean digest = Digest(:SHA1).hexdigest(git_path.to_s) - cache_path = Bundler::VERSION.start_with?("1.") ? vendored_gems("cache/bundler/git/foo-1.0-#{digest}") : home(".bundle/cache/git/foo-1.0-#{digest}") + cache_path = Bundler::VERSION.start_with?("2.") ? vendored_gems("cache/bundler/git/foo-1.0-#{digest}") : home(".bundle/cache/git/foo-1.0-#{digest}") expect(cache_path).to exist end @@ -201,7 +201,7 @@ RSpec.describe "bundle clean" do update_git "foo", :path => lib_path("foo-bar") revision2 = revision_for(lib_path("foo-bar")) - bundle! "update", :all => bundle_update_requires_all? + bundle! "update", :all => true bundle! :clean expect(out).to include("Removing foo-bar (#{revision[0..11]})") @@ -276,7 +276,7 @@ RSpec.describe "bundle clean" do end it "displays an error when used without --path" do - bundle! "config path.system true" + bundle! "config set path.system true" install_gemfile <<-G source "file://#{gem_repo1}" @@ -286,7 +286,7 @@ RSpec.describe "bundle clean" do bundle :clean expect(exitstatus).to eq(15) if exitstatus - expect(out).to include("--force") + expect(err).to include("--force") end # handling bundle clean upgrade path from the pre's @@ -320,9 +320,7 @@ RSpec.describe "bundle clean" do end it "does not call clean automatically when using system gems" do - bundle! "config path.system true" - - bundle! :config + bundle! "config set path.system true" install_gemfile! <<-G source "file://#{gem_repo1}" @@ -331,19 +329,18 @@ RSpec.describe "bundle clean" do gem "rack" G - bundle! "info thin" - install_gemfile! <<-G source "file://#{gem_repo1}" gem "rack" G - sys_exec! "gem list" + gem = ruby_core? ? ENV["BUNDLE_GEM"] : "gem" + sys_exec! "#{gem} list" expect(out).to include("rack (1.0.0)").and include("thin (1.0)") end - it "--clean should override the bundle setting on install", :bundler => "< 2" do + it "--clean should override the bundle setting on install", :bundler => "< 3" do gemfile <<-G source "file://#{gem_repo1}" @@ -363,7 +360,7 @@ RSpec.describe "bundle clean" do should_not_have_gems "thin-1.0" end - it "--clean should override the bundle setting on update", :bundler => "< 2" do + it "--clean should override the bundle setting on update", :bundler => "< 3" do build_repo2 gemfile <<-G @@ -377,13 +374,13 @@ RSpec.describe "bundle clean" do build_gem "foo", "1.0.1" end - bundle! "update", :all => bundle_update_requires_all? + bundle! "update", :all => true should_have_gems "foo-1.0.1" should_not_have_gems "foo-1.0" end - it "automatically cleans when path has not been set", :bundler => "2" do + it "automatically cleans when path has not been set", :bundler => "3" do build_repo2 install_gemfile! <<-G @@ -440,12 +437,12 @@ RSpec.describe "bundle clean" do build_gem "foo", "1.0.1" end - bundle! :update, :all => bundle_update_requires_all? + bundle! :update, :all => true should_have_gems "foo-1.0", "foo-1.0.1" end it "does not clean on bundle update when using --system" do - bundle! "config path.system true" + bundle! "config set path.system true" build_repo2 @@ -459,14 +456,15 @@ RSpec.describe "bundle clean" do update_repo2 do build_gem "foo", "1.0.1" end - bundle! :update, :all => bundle_update_requires_all? + bundle! :update, :all => true - sys_exec! "gem list" + gem = ruby_core? ? ENV["BUNDLE_GEM"] : "gem" + sys_exec! "#{gem} list" expect(out).to include("foo (1.0.1, 1.0)") end it "cleans system gems when --force is used" do - bundle! "config path.system true" + bundle! "config set path.system true" gemfile <<-G source "file://#{gem_repo1}" @@ -485,7 +483,8 @@ RSpec.describe "bundle clean" do bundle "clean --force" expect(out).to include("Removing foo (1.0)") - sys_exec "gem list" + gem = ruby_core? ? ENV["BUNDLE_GEM"] : "gem" + sys_exec "#{gem} list" expect(out).not_to include("foo (1.0)") expect(out).to include("rack (1.0.0)") end @@ -516,10 +515,11 @@ RSpec.describe "bundle clean" do bundle :clean, :force => true - expect(out).to include(system_gem_path.to_s) - expect(out).to include("grant write permissions") + expect(err).to include(system_gem_path.to_s) + expect(err).to include("grant write permissions") - sys_exec "gem list" + gem = ruby_core? ? ENV["BUNDLE_GEM"] : "gem" + sys_exec "#{gem} list" expect(out).to include("foo (1.0)") expect(out).to include("rack (1.0.0)") end @@ -556,7 +556,7 @@ RSpec.describe "bundle clean" do end it "when using --force on system gems, it doesn't remove binaries" do - bundle! "config path.system true" + bundle! "config set path.system true" build_repo2 update_repo2 do @@ -646,8 +646,6 @@ RSpec.describe "bundle clean" do bundle :install - bundle "configuration --delete path" - bundle "clean --dry-run" expect(out).not_to include("Removing foo (1.0)") @@ -667,7 +665,7 @@ RSpec.describe "bundle clean" do G bundle "install", forgotten_command_line_options(:path => "vendor/bundle", :clean => false) - bundle "config dry_run false" + bundle "config set dry_run false" gemfile <<-G source "file://#{gem_repo1}" @@ -705,14 +703,14 @@ RSpec.describe "bundle clean" do gem "weakling" G - bundle! "config auto_install 1" + bundle! "config set auto_install 1" bundle! :clean expect(out).to include("Installing weakling 0.0.3") should_have_gems "thin-1.0", "rack-1.0.0", "weakling-0.0.3" should_not_have_gems "foo-1.0" end - it "doesn't remove extensions artifacts from bundled git gems after clean", :ruby_repo, :rubygems => "2.2" do + it "doesn't remove extensions artifacts from bundled git gems after clean", :ruby_repo do build_git "very_simple_git_binary", &:add_c_extension revision = revision_for(lib_path("very_simple_git_binary-1.0")) @@ -734,7 +732,7 @@ RSpec.describe "bundle clean" do expect(vendored_gems("bundler/gems/very_simple_git_binary-1.0-#{revision[0..11]}")).to exist end - it "removes extension directories", :ruby_repo, :rubygems => "2.2" do + it "removes extension directories", :ruby_repo do gemfile <<-G source "file://#{gem_repo1}" @@ -768,4 +766,43 @@ RSpec.describe "bundle clean" do expect(very_simple_binary_extensions_dir).not_to exist expect(simple_binary_extensions_dir).to exist end + + it "removes git extension directories", :ruby_repo do + build_git "very_simple_git_binary", &:add_c_extension + + revision = revision_for(lib_path("very_simple_git_binary-1.0")) + short_revision = revision[0..11] + + gemfile <<-G + source "file://#{gem_repo1}" + + gem "thin" + gem "very_simple_git_binary", :git => "#{lib_path("very_simple_git_binary-1.0")}", :ref => "#{revision}" + G + + bundle! "install", forgotten_command_line_options(:path => "vendor/bundle") + + very_simple_binary_extensions_dir = + Pathname.glob("#{vendored_gems}/bundler/gems/extensions/*/*/very_simple_git_binary-1.0-#{short_revision}").first + + expect(very_simple_binary_extensions_dir).to exist + + gemfile <<-G + gem "very_simple_git_binary", :git => "#{lib_path("very_simple_git_binary-1.0")}", :ref => "#{revision}" + G + + bundle! "install" + bundle! :clean + expect(out).to include("Removing thin (1.0)") + expect(very_simple_binary_extensions_dir).to exist + + gemfile <<-G + G + + bundle! "install" + bundle! :clean + expect(out).to eq("Removing very_simple_git_binary-1.0 (#{short_revision})") + + expect(very_simple_binary_extensions_dir).not_to exist + end end diff --git a/spec/commands/config_spec.rb b/spec/commands/config_spec.rb index 61734ef005..40fab95803 100644 --- a/spec/commands/config_spec.rb +++ b/spec/commands/config_spec.rb @@ -2,10 +2,10 @@ RSpec.describe ".bundle/config" do describe "config" do - before { bundle "config foo bar" } + before { bundle "config set foo bar" } it "prints a detailed report of local and user configuration" do - bundle "config" + bundle "config list" expect(out).to include("Settings are listed in order of priority. The top value will be used") expect(out).to include("foo\nSet for the current user") @@ -14,21 +14,21 @@ RSpec.describe ".bundle/config" do context "given --parseable flag" do it "prints a minimal report of local and user configuration" do - bundle "config --parseable" + bundle "config list --parseable" expect(out).to include("foo=bar") end context "with global config" do it "prints config assigned to local scope" do - bundle "config --local foo bar2" - bundle "config --parseable" + bundle "config set --local foo bar2" + bundle "config list --parseable" expect(out).to include("foo=bar2") end end context "with env overwrite" do it "prints config with env" do - bundle "config --parseable", :env => { "BUNDLE_FOO" => "bar3" } + bundle "config list --parseable", :env => { "BUNDLE_FOO" => "bar3" } expect(out).to include("foo=bar3") end end @@ -74,21 +74,21 @@ RSpec.describe ".bundle/config" do end it "is the default" do - bundle "config foo global" + bundle "config set foo global" run "puts Bundler.settings[:foo]" expect(out).to eq("global") end it "can also be set explicitly" do - bundle! "config --global foo global" + bundle! "config set --global foo global" run! "puts Bundler.settings[:foo]" expect(out).to eq("global") end it "has lower precedence than local" do - bundle "config --local foo local" + bundle "config set --local foo local" - bundle "config --global foo global" + bundle "config set --global foo global" expect(out).to match(/Your application has set foo to "local"/) run "puts Bundler.settings[:foo]" @@ -99,7 +99,7 @@ RSpec.describe ".bundle/config" do begin ENV["BUNDLE_FOO"] = "env" - bundle "config --global foo global" + bundle "config set --global foo global" expect(out).to match(/You have a bundler environment variable for foo set to "env"/) run "puts Bundler.settings[:foo]" @@ -110,16 +110,16 @@ RSpec.describe ".bundle/config" do end it "can be deleted" do - bundle "config --global foo global" - bundle "config --delete foo" + bundle "config set --global foo global" + bundle "config unset foo" run "puts Bundler.settings[:foo] == nil" expect(out).to eq("true") end it "warns when overriding" do - bundle "config --global foo previous" - bundle "config --global foo global" + bundle "config set --global foo previous" + bundle "config set --global foo global" expect(out).to match(/You are replacing the current global value of foo/) run "puts Bundler.settings[:foo]" @@ -127,8 +127,8 @@ RSpec.describe ".bundle/config" do end it "does not warn when using the same value twice" do - bundle "config --global foo value" - bundle "config --global foo value" + bundle "config set --global foo value" + bundle "config set --global foo value" expect(out).not_to match(/You are replacing the current global value of foo/) run "puts Bundler.settings[:foo]" @@ -136,22 +136,22 @@ RSpec.describe ".bundle/config" do end it "expands the path at time of setting" do - bundle "config --global local.foo .." + bundle "config set --global local.foo .." run "puts Bundler.settings['local.foo']" expect(out).to eq(File.expand_path(Dir.pwd + "/..")) end it "saves with parseable option" do - bundle "config --global --parseable foo value" + bundle "config set --global --parseable foo value" expect(out).to eq("foo=value") run "puts Bundler.settings['foo']" expect(out).to eq("value") end context "when replacing a current value with the parseable flag" do - before { bundle "config --global foo value" } + before { bundle "config set --global foo value" } it "prints the current value in a parseable format" do - bundle "config --global --parseable foo value2" + bundle "config set --global --parseable foo value2" expect(out).to eq "foo=value2" run "puts Bundler.settings['foo']" expect(out).to eq("value2") @@ -168,7 +168,7 @@ RSpec.describe ".bundle/config" do end it "can also be set explicitly" do - bundle "config --local foo local" + bundle "config set --local foo local" run "puts Bundler.settings[:foo]" expect(out).to eq("local") end @@ -176,7 +176,7 @@ RSpec.describe ".bundle/config" do it "has higher precedence than env" do begin ENV["BUNDLE_FOO"] = "env" - bundle "config --local foo local" + bundle "config set --local foo local" run "puts Bundler.settings[:foo]" expect(out).to eq("local") @@ -186,16 +186,16 @@ RSpec.describe ".bundle/config" do end it "can be deleted" do - bundle "config --local foo local" - bundle "config --delete foo" + bundle "config set --local foo local" + bundle "config unset foo" run "puts Bundler.settings[:foo] == nil" expect(out).to eq("true") end it "warns when overriding" do - bundle "config --local foo previous" - bundle "config --local foo local" + bundle "config set --local foo previous" + bundle "config set --local foo local" expect(out).to match(/You are replacing the current local value of foo/) run "puts Bundler.settings[:foo]" @@ -203,14 +203,14 @@ RSpec.describe ".bundle/config" do end it "expands the path at time of setting" do - bundle "config --local local.foo .." + bundle "config set --local local.foo .." run "puts Bundler.settings['local.foo']" expect(out).to eq(File.expand_path(Dir.pwd + "/..")) end it "can be deleted with parseable option" do - bundle "config --local foo value" - bundle "config --delete --parseable foo" + bundle "config set --local foo value" + bundle "config unset --parseable foo" expect(out).to eq "" run "puts Bundler.settings['foo'] == nil" expect(out).to eq("true") @@ -262,29 +262,29 @@ RSpec.describe ".bundle/config" do describe "parseable option" do it "prints an empty string" do - bundle "config foo --parseable" + bundle "config get foo --parseable" expect(out).to eq "" end it "only prints the value of the config" do - bundle "config foo local" - bundle "config foo --parseable" + bundle "config set foo local" + bundle "config get foo --parseable" expect(out).to eq "foo=local" end it "can print global config" do - bundle "config --global bar value" - bundle "config bar --parseable" + bundle "config set --global bar value" + bundle "config get bar --parseable" expect(out).to eq "bar=value" end it "prefers local config over global" do - bundle "config --local bar value2" - bundle "config --global bar value" - bundle "config bar --parseable" + bundle "config set --local bar value2" + bundle "config set --global bar value" + bundle "config get bar --parseable" expect(out).to eq "bar=value2" end @@ -299,7 +299,7 @@ RSpec.describe ".bundle/config" do end it "configures mirrors using keys with `mirror.`" do - bundle "config --local mirror.http://gems.example.org http://gem-mirror.example.org" + bundle "config set --local mirror.http://gems.example.org http://gem-mirror.example.org" run(<<-E) Bundler.settings.gem_mirrors.each do |k, v| puts "\#{k} => \#{v}" @@ -317,26 +317,26 @@ E end it "saves quotes" do - bundle "config foo something\\'" + bundle "config set foo something\\'" run "puts Bundler.settings[:foo]" expect(out).to eq("something'") end - it "doesn't return quotes around values", :ruby => "1.9" do - bundle "config foo '1'" + it "doesn't return quotes around values" do + bundle "config set foo '1'" run "puts Bundler.settings.send(:global_config_file).read" expect(out).to include('"1"') run "puts Bundler.settings[:foo]" expect(out).to eq("1") end - it "doesn't duplicate quotes around values", :if => (RUBY_VERSION >= "2.1") do + it "doesn't duplicate quotes around values" do bundled_app(".bundle").mkpath File.open(bundled_app(".bundle/config"), "w") do |f| f.write 'BUNDLE_FOO: "$BUILD_DIR"' end - bundle "config bar baz" + bundle "config set bar baz" run "puts Bundler.settings.send(:local_config_file).read" # Starting in Ruby 2.1, YAML automatically adds double quotes @@ -345,12 +345,12 @@ E end it "doesn't duplicate quotes around long wrapped values" do - bundle "config foo #{long_string}" + bundle "config set foo #{long_string}" run "puts Bundler.settings[:foo]" expect(out).to eq(long_string) - bundle "config bar baz" + bundle "config set bar baz" run "puts Bundler.settings[:foo]" expect(out).to eq(long_string) @@ -376,101 +376,101 @@ E end it "doesn't wrap values" do - bundle "config foo #{long_string}" + bundle "config set foo #{long_string}" run "puts Bundler.settings[:foo]" expect(out).to match(long_string) end it "can read wrapped unquoted values" do - bundle "config foo #{long_string_without_special_characters}" + bundle "config set foo #{long_string_without_special_characters}" run "puts Bundler.settings[:foo]" expect(out).to match(long_string_without_special_characters) end end describe "subcommands" do - it "list" do + it "list", :ruby_repo do bundle! "config list" - expect(last_command.stdout).to eq "Settings are listed in order of priority. The top value will be used.\nspec_run\nSet via BUNDLE_SPEC_RUN: \"true\"" + expect(out).to eq "Settings are listed in order of priority. The top value will be used.\nspec_run\nSet via BUNDLE_SPEC_RUN: \"true\"" bundle! "config list", :parseable => true - expect(last_command.stdout).to eq "spec_run=true" + expect(out).to eq "spec_run=true" end it "get" do ENV["BUNDLE_BAR"] = "bar_val" bundle! "config get foo" - expect(last_command.stdout).to eq "Settings for `foo` in order of priority. The top value will be used\nYou have not configured a value for `foo`" + expect(out).to eq "Settings for `foo` in order of priority. The top value will be used\nYou have not configured a value for `foo`" ENV["BUNDLE_FOO"] = "foo_val" bundle! "config get foo --parseable" - expect(last_command.stdout).to eq "foo=foo_val" + expect(out).to eq "foo=foo_val" bundle! "config get foo" - expect(last_command.stdout).to eq "Settings for `foo` in order of priority. The top value will be used\nSet via BUNDLE_FOO: \"foo_val\"" + expect(out).to eq "Settings for `foo` in order of priority. The top value will be used\nSet via BUNDLE_FOO: \"foo_val\"" end it "set" do bundle! "config set foo 1" - expect(last_command.stdout).to eq "" + expect(out).to eq "" bundle! "config set --local foo 2" - expect(last_command.stdout).to eq "" + expect(out).to eq "" bundle! "config set --global foo 3" - expect(last_command.stdout).to eq "Your application has set foo to \"2\". This will override the global value you are currently setting" + expect(out).to eq "Your application has set foo to \"2\". This will override the global value you are currently setting" bundle! "config set --parseable --local foo 4" - expect(last_command.stdout).to eq "foo=4" + expect(out).to eq "foo=4" bundle! "config set --local foo 4.1" - expect(last_command.stdout).to eq "You are replacing the current local value of foo, which is currently \"4\"" + expect(out).to eq "You are replacing the current local value of foo, which is currently \"4\"" bundle "config set --global --local foo 5" expect(last_command).to be_failure - expect(last_command.bundler_err).to eq "The options global and local were specified. Please only use one of the switches at a time." + expect(err).to eq "The options global and local were specified. Please only use one of the switches at a time." end it "unset" do bundle! "config unset foo" - expect(last_command.stdout).to eq "" + expect(out).to eq "" bundle! "config set foo 1" bundle! "config unset foo --parseable" - expect(last_command.stdout).to eq "" + expect(out).to eq "" bundle! "config set --local foo 1" bundle! "config set --global foo 2" bundle! "config unset foo" - expect(last_command.stdout).to eq "" + expect(out).to eq "" expect(bundle!("config get foo")).to eq "Settings for `foo` in order of priority. The top value will be used\nYou have not configured a value for `foo`" bundle! "config set --local foo 1" bundle! "config set --global foo 2" bundle! "config unset foo --local" - expect(last_command.stdout).to eq "" + expect(out).to eq "" expect(bundle!("config get foo")).to eq "Settings for `foo` in order of priority. The top value will be used\nSet for the current user (#{home(".bundle/config")}): \"2\"" bundle! "config unset foo --global" - expect(last_command.stdout).to eq "" + expect(out).to eq "" expect(bundle!("config get foo")).to eq "Settings for `foo` in order of priority. The top value will be used\nYou have not configured a value for `foo`" bundle! "config set --local foo 1" bundle! "config set --global foo 2" bundle! "config unset foo --global" - expect(last_command.stdout).to eq "" + expect(out).to eq "" expect(bundle!("config get foo")).to eq "Settings for `foo` in order of priority. The top value will be used\nSet for your local app (#{bundled_app(".bundle/config")}): \"1\"" bundle! "config unset foo --local" - expect(last_command.stdout).to eq "" + expect(out).to eq "" expect(bundle!("config get foo")).to eq "Settings for `foo` in order of priority. The top value will be used\nYou have not configured a value for `foo`" bundle "config unset foo --local --global" expect(last_command).to be_failure - expect(last_command.bundler_err).to eq "The options global and local were specified. Please only use one of the switches at a time." + expect(err).to eq "The options global and local were specified. Please only use one of the switches at a time." end end end @@ -485,10 +485,10 @@ RSpec.describe "setting gemfile via config" do G end - bundle "config --local gemfile #{bundled_app("NotGemfile")}" + bundle "config set --local gemfile #{bundled_app("NotGemfile")}" expect(File.exist?(".bundle/config")).to eq(true) - bundle "config" + bundle "config list" expect(out).to include("NotGemfile") end end diff --git a/spec/commands/console_spec.rb b/spec/commands/console_spec.rb index 9bf66e8f5b..cba618db80 100644 --- a/spec/commands/console_spec.rb +++ b/spec/commands/console_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe "bundle console", :bundler => "< 2" do +RSpec.describe "bundle console", :bundler => "< 3" do before :each do install_gemfile <<-G source "file://#{gem_repo1}" @@ -31,7 +31,7 @@ RSpec.describe "bundle console", :bundler => "< 2" do source "file://#{gem_repo1}" gem "pry" G - bundle "config console pry" + bundle "config set console pry" bundle "console" do |input, _, _| input.puts("__method__") @@ -41,7 +41,7 @@ RSpec.describe "bundle console", :bundler => "< 2" do end it "falls back to IRB if the other REPL isn't available" do - bundle "config console pry" + bundle "config set console pry" # make sure pry isn't there bundle "console" do |input, _, _| @@ -94,7 +94,7 @@ RSpec.describe "bundle console", :bundler => "< 2" do gem "foo" G - bundle "config auto_install 1" + bundle "config set auto_install 1" bundle :console do |input, _, _| input.puts("puts 'hello'") input.puts("exit") diff --git a/spec/commands/exec_spec.rb b/spec/commands/exec_spec.rb index 7503b9db5f..24aa5f46fe 100644 --- a/spec/commands/exec_spec.rb +++ b/spec/commands/exec_spec.rb @@ -38,7 +38,7 @@ RSpec.describe "bundle exec" do gem "rack" G - bundle "exec 'cd #{tmp("gems")} && rackup'", :env => { :RUBYOPT => "-r#{spec_dir.join("support/hax")}" } + bundle "exec 'cd #{tmp("gems")} && rackup'" expect(out).to include("1.0.0") end @@ -51,7 +51,7 @@ RSpec.describe "bundle exec" do it "works when exec'ing to ruby" do install_gemfile 'gem "rack"' - bundle "exec ruby -e 'puts %{hi}'", :env => { :RUBYOPT => "-r#{spec_dir.join("support/hax")}" } + bundle "exec ruby -e 'puts %{hi}'" expect(out).to eq("hi") end @@ -79,30 +79,23 @@ RSpec.describe "bundle exec" do require 'tempfile' io = Tempfile.new("io-test-fd") args = %W[#{Gem.ruby} -I#{lib} #{bindir.join("bundle")} exec --keep-file-descriptors #{Gem.ruby} #{command.path} \#{io.to_i}] - args << { io.to_i => io } if RUBY_VERSION >= "2.0" + args << { io.to_i => io } exec(*args) end G install_gemfile "" - with_env_vars "RUBYOPT" => "-r#{spec_dir.join("support/hax")}" do - sys_exec "#{Gem.ruby} #{command.path}" - end - - if Bundler.current_ruby.ruby_2? - expect(out).to eq("") - else - expect(out).to eq("Ruby version #{RUBY_VERSION} defaults to keeping non-standard file descriptors on Kernel#exec.") - end + sys_exec "#{Gem.ruby} #{command.path}" - expect(err).to lack_errors + expect(out).to eq("") + expect(err).to be_empty end it "accepts --keep-file-descriptors" do install_gemfile "" bundle "exec --keep-file-descriptors echo foobar" - expect(err).to lack_errors + expect(err).to be_empty end it "can run a command named --verbose" do @@ -147,6 +140,112 @@ RSpec.describe "bundle exec" do end end + context "with default gems" do + let(:system_gems_to_install) { [] } + + let(:default_irb_version) { ruby "gem 'irb', '< 999999'; require 'irb'; puts IRB::VERSION" } + + context "when not specified in Gemfile" do + before do + skip "irb isn't a default gem" if default_irb_version.empty? + + install_gemfile "" + end + + it "uses version provided by ruby" do + bundle! "exec irb --version" + + expect(out).to include(default_irb_version) + expect(err).to be_empty + end + end + + context "when specified in Gemfile directly" do + let(:specified_irb_version) { "0.9.6" } + + before do + skip "irb isn't a default gem" if default_irb_version.empty? + + build_repo2 do + build_gem "irb", specified_irb_version do |s| + s.executables = "irb" + end + end + + install_gemfile <<-G + source "file://#{gem_repo2}" + gem "irb", "#{specified_irb_version}" + G + end + + it "uses version specified" do + bundle! "exec irb --version" + + expect(out).to include(specified_irb_version) + expect(err).to be_empty + end + end + + context "when specified in Gemfile indirectly" do + let(:indirect_irb_version) { "0.9.6" } + + before do + skip "irb isn't a default gem" if default_irb_version.empty? + + build_repo2 do + build_gem "irb", indirect_irb_version do |s| + s.executables = "irb" + end + + build_gem "gem_depending_on_old_irb" do |s| + s.add_dependency "irb", indirect_irb_version + end + end + + install_gemfile <<-G + source "file://#{gem_repo2}" + gem "gem_depending_on_old_irb" + G + + bundle! "exec irb --version" + end + + it "uses resolved version" do + expect(out).to include(indirect_irb_version) + expect(err).to be_empty + end + end + end + + it "warns about executable conflicts" do + build_repo2 do + build_gem "rack_two", "1.0.0" do |s| + s.executables = "rackup" + end + end + + bundle "config set path.system true" + + install_gemfile <<-G + source "file://#{gem_repo1}" + gem "rack", "0.9.1" + G + + Dir.chdir bundled_app2 do + install_gemfile bundled_app2("Gemfile"), <<-G + source "file://#{gem_repo2}" + gem "rack_two", "1.0.0" + G + end + + bundle! "exec rackup" + + expect(last_command.stderr).to eq( + "Bundler is using a binstub that was created for a different gem (rack).\n" \ + "You should run `bundle binstub rack_two` to work around a system/bundle conflict." + ) + end + it "handles gems installed with --without" do install_gemfile <<-G, forgotten_command_line_options(:without => "middleware") source "file://#{gem_repo1}" @@ -201,8 +300,8 @@ RSpec.describe "bundle exec" do bundle "exec foobarbaz" expect(exitstatus).to eq(127) if exitstatus - expect(out).to include("bundler: command not found: foobarbaz") - expect(out).to include("Install missing gem executables with `bundle install`") + expect(err).to include("bundler: command not found: foobarbaz") + expect(err).to include("Install missing gem executables with `bundle install`") end it "errors nicely when the argument is not executable" do @@ -213,7 +312,7 @@ RSpec.describe "bundle exec" do bundle "exec touch foo" bundle "exec ./foo" expect(exitstatus).to eq(126) if exitstatus - expect(out).to include("bundler: not executable: ./foo") + expect(err).to include("bundler: not executable: ./foo") end it "errors nicely when no arguments are passed" do @@ -223,33 +322,19 @@ RSpec.describe "bundle exec" do bundle "exec" expect(exitstatus).to eq(128) if exitstatus - expect(out).to include("bundler: exec needs a command to run") + expect(err).to include("bundler: exec needs a command to run") end - it "raises a helpful error when exec'ing to something outside of the bundle", :ruby_repo, :rubygems => ">= 2.5.2" do - bundle! "config clean false" # want to keep the rackup binstub + it "raises a helpful error when exec'ing to something outside of the bundle", :ruby_repo do + bundle! "config set clean false" # want to keep the rackup binstub install_gemfile! <<-G source "file://#{gem_repo1}" gem "with_license" G [true, false].each do |l| - bundle! "config disable_exec_load #{l}" + bundle! "config set disable_exec_load #{l}" bundle "exec rackup" - expect(last_command.stderr).to include "can't find executable rackup for gem rack. rack is not currently included in the bundle, perhaps you meant to add it to your Gemfile?" - end - end - - # Different error message on old RG versions (before activate_bin_path) because they - # called `Kernel#gem` directly - it "raises a helpful error when exec'ing to something outside of the bundle", :rubygems => "< 2.5.2" do - install_gemfile! <<-G - source "file://#{gem_repo1}" - gem "with_license" - G - [true, false].each do |l| - bundle! "config disable_exec_load #{l}" - bundle "exec rackup", :env => { :RUBYOPT => "-r#{spec_dir.join("support/hax")}" } - expect(last_command.stderr).to include "rack is not part of the bundle. Add it to your Gemfile." + expect(err).to include "can't find executable rackup for gem rack. rack is not currently included in the bundle, perhaps you meant to add it to your Gemfile?" end end @@ -350,14 +435,14 @@ RSpec.describe "bundle exec" do end it "works when unlocked" do - bundle "exec 'cd #{tmp("gems")} && rackup'", :env => { :RUBYOPT => "-r#{spec_dir.join("support/hax")}" } + bundle "exec 'cd #{tmp("gems")} && rackup'" expect(out).to eq("1.0.0") expect(out).to include("1.0.0") end it "works when locked" do expect(the_bundle).to be_locked - bundle "exec 'cd #{tmp("gems")} && rackup'", :env => { :RUBYOPT => "-r#{spec_dir.join("support/hax")}" } + bundle "exec 'cd #{tmp("gems")} && rackup'" expect(out).to include("1.0.0") end end @@ -440,13 +525,13 @@ RSpec.describe "bundle exec" do gem "foo" G - bundle "config auto_install 1" + bundle "config set auto_install 1" bundle "exec rackup" expect(out).to include("Installing foo 1.0") end - describe "with gems bundled via :path with invalid gemspecs", :ruby_repo do - it "outputs the gemspec validation errors", :rubygems => ">= 1.7.2" do + describe "with gems bundled via :path with invalid gemspecs" do + it "outputs the gemspec validation errors" do build_lib "foo" gemspec = lib_path("foo-1.0").join("foo.gemspec").to_s @@ -483,7 +568,7 @@ RSpec.describe "bundle exec" do Bundler.rubygems.extend(Monkey) G bundle "install --deployment" - bundle "exec ruby -e '`#{bindir.join("bundler")} -v`; puts $?.success?'", :env => { :RUBYOPT => "-r#{spec_dir.join("support/hax")}" } + bundle "exec ruby -e '`#{bindir.join("bundler")} -v`; puts $?.success?'" expect(out).to match("true") end end @@ -516,21 +601,21 @@ RSpec.describe "bundle exec" do let(:rack) { "RACK: 1.0.0" } let(:process) do title = "PROCESS: #{path}" - title += " arg1 arg2" if RUBY_VERSION >= "2.1" + title += " arg1 arg2" title end let(:exit_code) { 0 } let(:expected) { [exec, args, rack, process].join("\n") } let(:expected_err) { "" } - subject { bundle "exec #{path} arg1 arg2", :env => { :RUBYOPT => "-r#{spec_dir.join("support/hax")}" } } + subject { bundle "exec #{path} arg1 arg2" } shared_examples_for "it runs" do it "like a normally executed executable" do subject expect(exitstatus).to eq(exit_code) if exitstatus - expect(last_command.stderr).to eq(expected_err) - expect(last_command.stdout).to eq(expected) + expect(err).to eq(expected_err) + expect(out).to eq(expected) end end @@ -553,15 +638,10 @@ RSpec.describe "bundle exec" do let(:executable) do ex = super() ex << "\n" - if LessThanProc.with(RUBY_VERSION).call("1.9") - # Ruby < 1.9 needs a flush for a exit by signal, later - # rubies do not - ex << "STDOUT.flush\n" - end ex << "raise SignalException, 'SIGTERM'\n" ex end - let(:expected_err) { RUBY_PLATFORM =~ /darwin/ ? "" : "Terminated" } + let(:expected_err) { "" } let(:exit_code) do # signal mask 128 + plus signal 15 -> TERM # this is specified by C99 @@ -570,22 +650,7 @@ RSpec.describe "bundle exec" do it_behaves_like "it runs" end - context "the executable is empty", :bundler => "< 2" do - let(:executable) { "" } - - let(:exit_code) { 0 } - let(:expected) { "#{path} is empty" } - let(:expected_err) { "" } - if LessThanProc.with(RUBY_VERSION).call("1.9") - # Kernel#exec in ruby < 1.9 will raise Errno::ENOEXEC if the command content is empty, - # even if the command is set as an executable. - pending "Kernel#exec is different" - else - it_behaves_like "it runs" - end - end - - context "the executable is empty", :bundler => "2" do + context "the executable is empty" do let(:executable) { "" } let(:exit_code) { 0 } @@ -594,18 +659,7 @@ RSpec.describe "bundle exec" do it_behaves_like "it runs" end - context "the executable raises", :bundler => "< 2" do - let(:executable) { super() << "\nraise 'ERROR'" } - let(:exit_code) { 1 } - let(:expected) { super() << "\nbundler: failed to load command: #{path} (#{path})" } - let(:expected_err) do - "RuntimeError: ERROR\n #{path}:10" + - (Bundler.current_ruby.ruby_18? ? "" : ":in `<top (required)>'") - end - it_behaves_like "it runs" - end - - context "the executable raises", :bundler => "2" do + context "the executable raises" do let(:executable) { super() << "\nraise 'ERROR'" } let(:exit_code) { 1 } let(:expected_err) do @@ -615,16 +669,7 @@ RSpec.describe "bundle exec" do it_behaves_like "it runs" end - context "the executable raises an error without a backtrace", :bundler => "< 2" do - let(:executable) { super() << "\nclass Err < Exception\ndef backtrace; end;\nend\nraise Err" } - let(:exit_code) { 1 } - let(:expected) { super() << "\nbundler: failed to load command: #{path} (#{path})" } - let(:expected_err) { "Err: Err" } - - it_behaves_like "it runs" - end - - context "the executable raises an error without a backtrace", :bundler => "2" do + context "the executable raises an error without a backtrace" do let(:executable) { super() << "\nclass Err < Exception\ndef backtrace; end;\nend\nraise Err" } let(:exit_code) { 1 } let(:expected_err) { "bundler: failed to load command: #{path} (#{path})\nErr: Err" } @@ -638,7 +683,7 @@ RSpec.describe "bundle exec" do it_behaves_like "it runs" end - context "when Bundler.setup fails", :bundler => "< 2" do + context "when Bundler.setup fails", :bundler => "< 3" do before do gemfile <<-G gem 'rack', '2' @@ -647,7 +692,8 @@ RSpec.describe "bundle exec" do end let(:exit_code) { Bundler::GemNotFound.new.status_code } - let(:expected) { <<-EOS.strip } + let(:expected) { "" } + let(:expected_err) { <<-EOS.strip } \e[31mCould not find gem 'rack (= 2)' in any of the gem sources listed in your Gemfile.\e[0m \e[33mRun `bundle install` to install missing gems.\e[0m EOS @@ -655,7 +701,7 @@ RSpec.describe "bundle exec" do it_behaves_like "it runs" end - context "when Bundler.setup fails", :bundler => "2" do + context "when Bundler.setup fails", :bundler => "3" do before do gemfile <<-G gem 'rack', '2' @@ -664,7 +710,8 @@ RSpec.describe "bundle exec" do end let(:exit_code) { Bundler::GemNotFound.new.status_code } - let(:expected) { <<-EOS.strip } + let(:expected) { "" } + let(:expected_err) { <<-EOS.strip } \e[31mCould not find gem 'rack (= 2)' in locally installed gems. The source contains 'rack' at: 1.0.0\e[0m \e[33mRun `bundle install` to install missing gems.\e[0m @@ -685,7 +732,7 @@ The source contains 'rack' at: 1.0.0\e[0m let(:process) { "PROCESS: ruby #{path} arg1 arg2" } before do - bundle "config disable_exec_load true" + bundle "config set disable_exec_load true" end it_behaves_like "it runs" @@ -709,21 +756,13 @@ __FILE__: #{path.to_s.inspect} context "when the path is relative" do let(:path) { super().relative_path_from(bundled_app) } - if LessThanProc.with(RUBY_VERSION).call("1.9") - pending "relative paths have ./ __FILE__" - else - it_behaves_like "it runs" - end + it_behaves_like "it runs" end context "when the path is relative with a leading ./" do let(:path) { Pathname.new("./#{super().relative_path_from(Pathname.pwd)}") } - if LessThanProc.with(RUBY_VERSION).call("< 1.9") - pending "relative paths with ./ have absolute __FILE__" - else - it_behaves_like "it runs" - end + pending "relative paths with ./ have absolute __FILE__" end end @@ -751,7 +790,7 @@ __FILE__: #{path.to_s.inspect} end RUBY - it "receives the signal", :ruby => ">= 1.9.3" do + it "receives the signal" do bundle!("exec #{path}") do |_, o, thr| o.gets # Consumes 'Started' and ensures that thread has started Process.kill("INT", thr.pid) @@ -797,9 +836,7 @@ __FILE__: #{path.to_s.inspect} bundle :install, :system_bundler => true, :path => "vendor/bundler" end - it "overrides disable_shared_gems so bundler can be found" do - skip "bundler 1.16.x is not support with Ruby 2.6 on Travis CI" if RUBY_VERSION >= "2.6" - + it "overrides disable_shared_gems so bundler can be found", :ruby_repo, :rubygems => ">= 2.6.2" do system_gems :bundler file = bundled_app("file_that_bundle_execs.rb") create_file(file, <<-RB) @@ -849,7 +886,7 @@ __FILE__: #{path.to_s.inspect} # sanity check that we get the newer, custom version without bundler sys_exec("#{Gem.ruby} #{file}") - expect(last_command.stderr).to include("custom openssl should not be loaded") + expect(err).to include("custom openssl should not be loaded") end end end diff --git a/spec/commands/help_spec.rb b/spec/commands/help_spec.rb index 56b1b6f722..f4f90b9347 100644 --- a/spec/commands/help_spec.rb +++ b/spec/commands/help_spec.rb @@ -1,15 +1,6 @@ # frozen_string_literal: true RSpec.describe "bundle help" do - # RubyGems 1.4+ no longer load gem plugins so this test is no longer needed - it "complains if older versions of bundler are installed", :rubygems => "< 1.4" do - system_gems "bundler-0.8.1" - - bundle "help" - expect(err).to include("older than 0.9") - expect(err).to include("running `gem cleanup bundler`.") - end - it "uses mann when available" do with_fake_man do bundle "help gemfile" @@ -81,7 +72,7 @@ RSpec.describe "bundle help" do with_fake_man do bundle "instill -h" end - expect(out).to include('Could not find command "instill".') + expect(err).to include('Could not find command "instill".') end it "is called when only using the --help flag" do diff --git a/spec/commands/info_spec.rb b/spec/commands/info_spec.rb index a9ab8fc210..f0f4b5f87d 100644 --- a/spec/commands/info_spec.rb +++ b/spec/commands/info_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true RSpec.describe "bundle info" do - context "info from specific gem in gemfile" do + context "with a standard Gemfile" do before do install_gemfile <<-G source "file://#{gem_repo1}" @@ -9,23 +9,39 @@ RSpec.describe "bundle info" do G end - it "prints information about the current gem" do + it "creates a Gemfile.lock when invoked with a gem name" do + FileUtils.rm("Gemfile.lock") + + bundle "info rails" + + expect(bundled_app("Gemfile.lock")).to exist + end + + it "prints information if gem exists in bundle" do bundle "info rails" expect(out).to include "* rails (2.3.2) \tSummary: This is just a fake gem for testing -\tHomepage: http://example.com" - expect(out).to match(%r{Path\: .*\/rails\-2\.3\.2}) +\tHomepage: http://example.com +\tPath: #{default_bundle_path("gems", "rails-2.3.2")}" end - context "given a gem that is not installed" do - it "prints missing gem error" do - bundle "info foo" - expect(out).to eq "Could not find gem 'foo'." - end + it "prints path if gem exists in bundle" do + bundle "info rails --path" + expect(out).to eq(default_bundle_path("gems", "rails-2.3.2").to_s) + end + + it "prints the path to the running bundler" do + bundle "info bundler --path" + expect(out).to eq(root.to_s) + end + + it "complains if gem not in bundle" do + bundle "info missing" + expect(err).to eq("Could not find gem 'missing'.") end context "given a default gem shippped in ruby", :ruby_repo do - it "prints information about the default gem", :if => (RUBY_VERSION >= "2.0") do + it "prints information about the default gem" do bundle "info rdoc" expect(out).to include("* rdoc") expect(out).to include("Default Gem: yes") @@ -34,7 +50,7 @@ RSpec.describe "bundle info" do context "when gem does not have homepage" do before do - build_repo1 do + build_repo2 do build_gem "rails", "2.3.2" do |s| s.executables = "rails" s.summary = "Just another test gem" @@ -46,12 +62,84 @@ RSpec.describe "bundle info" do expect(out).to_not include("Homepage:") end end + end + + context "with a git repo in the Gemfile" do + before :each do + @git = build_git "foo", "1.0" + end + + it "prints out git info" do + install_gemfile <<-G + gem "foo", :git => "#{lib_path("foo-1.0")}" + G + expect(the_bundle).to include_gems "foo 1.0" + + bundle "info foo" + expect(out).to include("foo (1.0 #{@git.ref_for("master", 6)}") + end - context "given --path option" do - it "prints the path to the gem" do - bundle "info rails" - expect(out).to match(%r{.*\/rails\-2\.3\.2}) + it "prints out branch names other than master" do + update_git "foo", :branch => "omg" do |s| + s.write "lib/foo.rb", "FOO = '1.0.omg'" end + @revision = revision_for(lib_path("foo-1.0"))[0...6] + + install_gemfile <<-G + gem "foo", :git => "#{lib_path("foo-1.0")}", :branch => "omg" + G + expect(the_bundle).to include_gems "foo 1.0.omg" + + bundle "info foo" + expect(out).to include("foo (1.0 #{@git.ref_for("omg", 6)}") + end + + it "doesn't print the branch when tied to a ref" do + sha = revision_for(lib_path("foo-1.0")) + install_gemfile <<-G + gem "foo", :git => "#{lib_path("foo-1.0")}", :ref => "#{sha}" + G + + bundle "info foo" + expect(out).to include("foo (1.0 #{sha[0..6]})") + end + + it "handles when a version is a '-' prerelease", :rubygems => "2.1" do + @git = build_git("foo", "1.0.0-beta.1", :path => lib_path("foo")) + install_gemfile <<-G + gem "foo", "1.0.0-beta.1", :git => "#{lib_path("foo")}" + G + expect(the_bundle).to include_gems "foo 1.0.0.pre.beta.1" + + bundle! "info foo" + expect(out).to include("foo (1.0.0.pre.beta.1") + end + end + + context "with a valid regexp for gem name", :ruby_repo do + it "presents alternatives" do + install_gemfile <<-G + source "file://#{gem_repo1}" + gem "rack" + gem "rack-obama" + G + + bundle "info rac" + expect(out).to eq "1 : rack\n2 : rack-obama\n0 : - exit -\n>" + end + end + + context "with an invalid regexp for gem name" do + it "does not find the gem" do + install_gemfile <<-G + source "file://#{gem_repo1}" + gem "rails" + G + + invalid_regexp = "[]" + + bundle "info #{invalid_regexp}" + expect(err).to include("Could not find gem '#{invalid_regexp}'.") end end end diff --git a/spec/commands/init_spec.rb b/spec/commands/init_spec.rb index 9b5bd95814..7960ce85bd 100644 --- a/spec/commands/init_spec.rb +++ b/spec/commands/init_spec.rb @@ -1,19 +1,13 @@ # frozen_string_literal: true RSpec.describe "bundle init" do - it "generates a Gemfile", :bundler => "< 2" do + it "generates a Gemfile" do bundle! :init expect(out).to include("Writing new Gemfile") expect(bundled_app("Gemfile")).to be_file end - it "generates a gems.rb", :bundler => "2" do - bundle! :init - expect(out).to include("Writing new gems.rb") - expect(bundled_app("gems.rb")).to be_file - end - - context "when a Gemfile already exists", :bundler => "< 2" do + context "when a Gemfile already exists" do before do create_file "Gemfile", <<-G gem "rails" @@ -26,28 +20,11 @@ RSpec.describe "bundle init" do it "notifies the user that an existing Gemfile already exists" do bundle :init - expect(out).to include("Gemfile already exists") + expect(err).to include("Gemfile already exists") end end - context "when gems.rb already exists", :bundler => ">= 2" do - before do - create_file("gems.rb", <<-G) - gem "rails" - G - end - - it "does not change existing Gemfiles" do - expect { bundle :init }.not_to change { File.read(bundled_app("gems.rb")) } - end - - it "notifies the user that an existing gems.rb already exists" do - bundle :init - expect(out).to include("gems.rb already exists") - end - end - - context "when a Gemfile exists in a parent directory", :bundler => "< 2" do + context "when a Gemfile exists in a parent directory" do let(:subdir) { "child_dir" } it "lets users generate a Gemfile in a child directory" do @@ -77,29 +54,12 @@ RSpec.describe "bundle init" do bundle :init end - expect(out).to include("directory is not writable") + expect(err).to include("directory is not writable") expect(Dir[bundled_app("#{subdir}/*")]).to be_empty end end - context "when a gems.rb file exists in a parent directory", :bundler => ">= 2" do - let(:subdir) { "child_dir" } - - it "lets users generate a Gemfile in a child directory" do - bundle! :init - - FileUtils.mkdir bundled_app(subdir) - - Dir.chdir bundled_app(subdir) do - bundle! :init - end - - expect(out).to include("Writing new gems.rb") - expect(bundled_app("#{subdir}/gems.rb")).to be_file - end - end - - context "given --gemspec option", :bundler => "< 2" do + context "given --gemspec option" do let(:spec_file) { tmp.join("test.gemspec") } it "should generate from an existing gemspec" do @@ -115,11 +75,7 @@ RSpec.describe "bundle init" do bundle :init, :gemspec => spec_file - gemfile = if Bundler::VERSION[0, 2] == "1." - bundled_app("Gemfile").read - else - bundled_app("gems.rb").read - end + gemfile = bundled_app("Gemfile").read expect(gemfile).to match(%r{source 'https://rubygems.org'}) expect(gemfile.scan(/gem "rack", "= 1.0.1"/).size).to eq(1) expect(gemfile.scan(/gem "rspec", "= 1.2"/).size).to eq(1) @@ -138,15 +94,55 @@ RSpec.describe "bundle init" do end bundle :init, :gemspec => spec_file - expect(last_command.bundler_err).to include("There was an error while loading `test.gemspec`") + expect(err).to include("There was an error while loading `test.gemspec`") end end end context "when init_gems_rb setting is enabled" do - before { bundle "config init_gems_rb true" } + before { bundle "config set init_gems_rb true" } + + it "generates a gems.rb" do + bundle! :init + expect(out).to include("Writing new gems.rb") + expect(bundled_app("gems.rb")).to be_file + end + + context "when gems.rb already exists" do + before do + create_file("gems.rb", <<-G) + gem "rails" + G + end + + it "does not change existing Gemfiles" do + expect { bundle :init }.not_to change { File.read(bundled_app("gems.rb")) } + end + + it "notifies the user that an existing gems.rb already exists" do + bundle :init + expect(err).to include("gems.rb already exists") + end + end + + context "when a gems.rb file exists in a parent directory" do + let(:subdir) { "child_dir" } + + it "lets users generate a Gemfile in a child directory" do + bundle! :init + + FileUtils.mkdir bundled_app(subdir) + + Dir.chdir bundled_app(subdir) do + bundle! :init + end + + expect(out).to include("Writing new gems.rb") + expect(bundled_app("#{subdir}/gems.rb")).to be_file + end + end - context "given --gemspec option", :bundler => "< 2" do + context "given --gemspec option" do let(:spec_file) { tmp.join("test.gemspec") } before do diff --git a/spec/commands/inject_spec.rb b/spec/commands/inject_spec.rb index b7ffc89a34..da31849be7 100644 --- a/spec/commands/inject_spec.rb +++ b/spec/commands/inject_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe "bundle inject", :bundler => "< 2" do +RSpec.describe "bundle inject", :bundler => "< 3" do before :each do gemfile <<-G source "file://#{gem_repo1}" @@ -37,14 +37,14 @@ RSpec.describe "bundle inject", :bundler => "< 2" do context "with injected gems already in the Gemfile" do it "doesn't add existing gems" do bundle "inject 'rack' '> 0'" - expect(out).to match(/cannot specify the same gem twice/i) + expect(err).to match(/cannot specify the same gem twice/i) end end context "incorrect arguments" do it "fails when more than 2 arguments are passed" do bundle "inject gem_name 1 v" - expect(out).to eq(<<-E.strip) + expect(err).to eq(<<-E.strip) ERROR: "bundle inject" was called with arguments ["gem_name", "1", "v"] Usage: "bundle inject GEM VERSION" E @@ -79,10 +79,10 @@ Usage: "bundle inject GEM VERSION" context "when frozen" do before do bundle "install" - if Bundler.feature_flag.bundler_2_mode? - bundle! "config --local deployment true" + if Bundler.feature_flag.bundler_3_mode? + bundle! "config set --local deployment true" else - bundle! "config --local frozen true" + bundle! "config set --local frozen true" end end @@ -109,7 +109,7 @@ Usage: "bundle inject GEM VERSION" gem "rack-obama" G bundle "inject 'rack' '> 0'" - expect(out).to match(/trying to install in deployment mode after changing/) + expect(err).to match(/trying to install in deployment mode after changing/) expect(bundled_app("Gemfile.lock").read).not_to match(/rack-obama/) end diff --git a/spec/commands/install_spec.rb b/spec/commands/install_spec.rb index 394f672fef..1a027a77c9 100644 --- a/spec/commands/install_spec.rb +++ b/spec/commands/install_spec.rb @@ -8,7 +8,7 @@ RSpec.describe "bundle install with gem sources" do G bundle :install - expect(out).to match(/no dependencies/) + expect(err).to match(/no dependencies/) end it "does not make a lockfile if the install fails" do @@ -16,7 +16,7 @@ RSpec.describe "bundle install with gem sources" do raise StandardError, "FAIL" G - expect(last_command.bundler_err).to include('StandardError, "FAIL"') + expect(err).to include('StandardError, "FAIL"') expect(bundled_app("Gemfile.lock")).not_to exist end @@ -29,7 +29,7 @@ RSpec.describe "bundle install with gem sources" do expect(bundled_app("Gemfile.lock")).to exist end - it "does not create ./.bundle by default", :bundler => "< 2" do + it "does not create ./.bundle by default", :bundler => "< 3" do gemfile <<-G source "file://#{gem_repo1}" gem "rack" @@ -275,14 +275,14 @@ RSpec.describe "bundle install with gem sources" do expect(the_bundle).to include_gems "rack 1.0" end - it "allows running bundle install --system without deleting foo", :bundler => "< 2" do + it "allows running bundle install --system without deleting foo", :bundler => "< 3" do bundle "install", forgotten_command_line_options(:path => "vendor") bundle "install", forgotten_command_line_options(:system => true) FileUtils.rm_rf(bundled_app("vendor")) expect(the_bundle).to include_gems "rack 1.0" end - it "allows running bundle install --system after deleting foo", :bundler => "< 2" do + it "allows running bundle install --system after deleting foo", :bundler => "< 3" do bundle "install", forgotten_command_line_options(:path => "vendor") FileUtils.rm_rf(bundled_app("vendor")) bundle "install", forgotten_command_line_options(:system => true) @@ -290,7 +290,7 @@ RSpec.describe "bundle install with gem sources" do end end - it "finds gems in multiple sources", :bundler => "< 2" do + it "finds gems in multiple sources", :bundler => "< 3" do build_repo2 update_repo2 @@ -311,7 +311,7 @@ RSpec.describe "bundle install with gem sources" do G bundle :install - expect(out).to include("Your Gemfile has no gem server sources") + expect(err).to include("Your Gemfile has no gem server sources") end it "creates a Gemfile.lock on a blank Gemfile" do @@ -329,9 +329,9 @@ RSpec.describe "bundle install with gem sources" do gem "rack" G - expect(out).to include("Your Gemfile lists the gem rack (>= 0) more than once.") - expect(out).to include("Remove any duplicate entries and specify the gem only once (per group).") - expect(out).to include("While it's not a problem now, it could cause errors if you change the version of one of them later.") + expect(err).to include("Your Gemfile lists the gem rack (>= 0) more than once.") + expect(err).to include("Remove any duplicate entries and specify the gem only once (per group).") + expect(err).to include("While it's not a problem now, it could cause errors if you change the version of one of them later.") end it "with same versions" do @@ -341,9 +341,9 @@ RSpec.describe "bundle install with gem sources" do gem "rack", "1.0" G - expect(out).to include("Your Gemfile lists the gem rack (= 1.0) more than once.") - expect(out).to include("Remove any duplicate entries and specify the gem only once (per group).") - expect(out).to include("While it's not a problem now, it could cause errors if you change the version of one of them later.") + expect(err).to include("Your Gemfile lists the gem rack (= 1.0) more than once.") + expect(err).to include("Remove any duplicate entries and specify the gem only once (per group).") + expect(err).to include("While it's not a problem now, it could cause errors if you change the version of one of them later.") end end @@ -355,8 +355,8 @@ RSpec.describe "bundle install with gem sources" do gem "rack", "1.0" G - expect(out).to include("You cannot specify the same gem twice with different version requirements") - expect(out).to include("You specified: rack (>= 0) and rack (= 1.0).") + expect(err).to include("You cannot specify the same gem twice with different version requirements") + expect(err).to include("You specified: rack (>= 0) and rack (= 1.0).") end it "when different versions of both dependencies are specified" do @@ -366,25 +366,25 @@ RSpec.describe "bundle install with gem sources" do gem "rack", "1.1" G - expect(out).to include("You cannot specify the same gem twice with different version requirements") - expect(out).to include("You specified: rack (= 1.0) and rack (= 1.1).") + expect(err).to include("You cannot specify the same gem twice with different version requirements") + expect(err).to include("You specified: rack (= 1.0) and rack (= 1.1).") end end it "gracefully handles error when rubygems server is unavailable" do install_gemfile <<-G, :artifice => nil source "file://#{gem_repo1}" - source "http://localhost:9384" do + source "http://0.0.0.0:9384" do gem 'foo' end G bundle :install, :artifice => nil - expect(out).to include("Could not fetch specs from http://localhost:9384/") - expect(out).not_to include("file://") + expect(err).to include("Could not fetch specs from http://0.0.0.0:9384/") + expect(err).not_to include("file://") end - it "fails gracefully when downloading an invalid specification from the full index", :rubygems => "2.5" do + it "fails gracefully when downloading an invalid specification from the full index" do build_repo2 do build_gem "ajp-rails", "0.0.0", :gemspec => false, :skip_validation => true do |s| bad_deps = [["ruby-ajp", ">= 0.2.0"], ["rails", ">= 0.14"]] @@ -404,7 +404,7 @@ RSpec.describe "bundle install with gem sources" do G expect(last_command.stdboth).not_to match(/Error Report/i) - expect(last_command.bundler_err).to include("An error occurred while installing ajp-rails (0.0.0), and Bundler cannot continue."). + expect(err).to include("An error occurred while installing ajp-rails (0.0.0), and Bundler cannot continue."). and include(normalize_uri_file("Make sure that `gem install ajp-rails -v '0.0.0' --source 'file://localhost#{gem_repo2}/'` succeeds before bundling.")) end @@ -442,7 +442,7 @@ RSpec.describe "bundle install with gem sources" do ::RUBY_VERSION = '2.0.1' ruby '~> 2.2' G - expect(out).to include("Your Ruby version is 2.0.1, but your Gemfile specified ~> 2.2") + expect(err).to include("Your Ruby version is 2.0.1, but your Gemfile specified ~> 2.2") end end @@ -529,8 +529,8 @@ RSpec.describe "bundle install with gem sources" do G bundle :install, :quiet => true - expect(out).to include("Could not find gem 'rack'") - expect(out).to_not include("Your Gemfile has no gem server sources") + expect(err).to include("Could not find gem 'rack'") + expect(err).to_not include("Your Gemfile has no gem server sources") end end @@ -547,8 +547,8 @@ RSpec.describe "bundle install with gem sources" do FileUtils.chmod(0o500, bundled_app("vendor")) bundle :install, forgotten_command_line_options(:path => "vendor") - expect(out).to include(bundled_app("vendor").to_s) - expect(out).to include("grant write permissions") + expect(err).to include(bundled_app("vendor").to_s) + expect(err).to include("grant write permissions") end end @@ -577,10 +577,10 @@ RSpec.describe "bundle install with gem sources" do G end - it "should display a helpful messag explaining how to fix it" do + it "should display a helpful message explaining how to fix it" do bundle :install, :env => { "BUNDLE_RUBYGEMS__ORG" => "user:pass{word" } expect(exitstatus).to eq(17) if exitstatus - expect(out).to eq("Please CGI escape your usernames and passwords before " \ + expect(err).to eq("Please CGI escape your usernames and passwords before " \ "setting them for authentication.") end end diff --git a/spec/commands/licenses_spec.rb b/spec/commands/licenses_spec.rb index 144931fb27..21fd8eaf2f 100644 --- a/spec/commands/licenses_spec.rb +++ b/spec/commands/licenses_spec.rb @@ -12,7 +12,7 @@ RSpec.describe "bundle licenses" do it "prints license information for all gems in the bundle" do bundle "licenses" - expect(out).to include("bundler: Unknown") + expect(err).to include("bundler: Unknown") expect(out).to include("with_license: MIT") end @@ -24,7 +24,7 @@ RSpec.describe "bundle licenses" do gem "foo" G - bundle "config auto_install 1" + bundle "config set auto_install 1" bundle :licenses expect(out).to include("Installing foo 1.0") end diff --git a/spec/commands/list_spec.rb b/spec/commands/list_spec.rb index 5305176c65..346b47517e 100644 --- a/spec/commands/list_spec.rb +++ b/spec/commands/list_spec.rb @@ -1,20 +1,11 @@ # frozen_string_literal: true -RSpec.describe "bundle list", :bundler => "2" do - before do - install_gemfile <<-G - source "file://#{gem_repo1}" - - gem "rack" - gem "rspec", :group => [:test] - G - end - +RSpec.describe "bundle list" do context "with name-only and paths option" do it "raises an error" do bundle "list --name-only --paths" - expect(out).to eq "The `--name-only` and `--paths` options cannot be used together" + expect(err).to eq "The `--name-only` and `--paths` options cannot be used together" end end @@ -22,11 +13,20 @@ RSpec.describe "bundle list", :bundler => "2" do it "raises an error" do bundle "list --without-group dev --only-group test" - expect(out).to eq "The `--only-group` and `--without-group` options cannot be used together" + expect(err).to eq "The `--only-group` and `--without-group` options cannot be used together" end end describe "with without-group option" do + before do + install_gemfile <<-G + source "file://#{gem_repo1}" + + gem "rack" + gem "rspec", :group => [:test] + G + end + context "when group is present" do it "prints the gems not in the specified group" do bundle! "list --without-group test" @@ -40,12 +40,21 @@ RSpec.describe "bundle list", :bundler => "2" do it "raises an error" do bundle "list --without-group random" - expect(out).to eq "`random` group could not be found." + expect(err).to eq "`random` group could not be found." end end end describe "with only-group option" do + before do + install_gemfile <<-G + source "file://#{gem_repo1}" + + gem "rack" + gem "rspec", :group => [:test] + G + end + context "when group is present" do it "prints the gems in the specified group" do bundle! "list --only-group default" @@ -59,12 +68,21 @@ RSpec.describe "bundle list", :bundler => "2" do it "raises an error" do bundle "list --only-group random" - expect(out).to eq "`random` group could not be found." + expect(err).to eq "`random` group could not be found." end end end context "with name-only option" do + before do + install_gemfile <<-G + source "file://#{gem_repo1}" + + gem "rack" + gem "rspec", :group => [:test] + G + end + it "prints only the name of the gems in the bundle" do bundle "list --name-only" @@ -82,7 +100,6 @@ RSpec.describe "bundle list", :bundler => "2" do build_git "git_test", "1.0.0", :path => lib_path("git_test") build_lib("gemspec_test", :path => tmp.join("gemspec_test")) do |s| - s.write("Gemfile", "source :rubygems\ngemspec") s.add_dependency "bar", "=1.0.0" end @@ -93,8 +110,6 @@ RSpec.describe "bundle list", :bundler => "2" do gem "git_test", :git => "#{lib_path("git_test")}" gemspec :path => "#{tmp.join("gemspec_test")}" G - - bundle! "install" end it "prints the path of each gem in the bundle" do @@ -119,13 +134,35 @@ RSpec.describe "bundle list", :bundler => "2" do end end - it "lists gems installed in the bundle" do - bundle "list" - expect(out).to include(" * rack (1.0.0)") + context "without options" do + before do + install_gemfile <<-G + source "file://#{gem_repo1}" + + gem "rack" + gem "rspec", :group => [:test] + G + end + + it "lists gems installed in the bundle" do + bundle "list" + expect(out).to include(" * rack (1.0.0)") + end end - it "aliases the ls command to list" do - bundle "ls" - expect(out).to include("Gems included by the bundle") + context "when using the ls alias" do + before do + install_gemfile <<-G + source "file://#{gem_repo1}" + + gem "rack" + gem "rspec", :group => [:test] + G + end + + it "runs the list command" do + bundle "ls" + expect(out).to include("Gems included by the bundle") + end end end diff --git a/spec/commands/lock_spec.rb b/spec/commands/lock_spec.rb index d99ddaf294..7aaf5c178e 100644 --- a/spec/commands/lock_spec.rb +++ b/spec/commands/lock_spec.rb @@ -38,8 +38,8 @@ RSpec.describe "bundle lock" do actionpack (= 2.3.2) activerecord (= 2.3.2) activeresource (= 2.3.2) - rake (= 10.0.2) - rake (10.0.2) + rake (= 12.3.2) + rake (12.3.2) with_license (1.0) PLATFORMS @@ -86,7 +86,7 @@ RSpec.describe "bundle lock" do it "does not fetch remote specs when using the --local option" do bundle "lock --update --local" - expect(out).to match(/sources listed in your Gemfile|installed locally/) + expect(err).to match(/sources listed in your Gemfile|installed locally/) end it "works with --gemfile flag" do @@ -133,7 +133,7 @@ RSpec.describe "bundle lock" do end it "update specific gems using --update" do - lockfile @lockfile.gsub("2.3.2", "2.3.1").gsub("10.0.2", "10.0.1") + lockfile @lockfile.gsub("2.3.2", "2.3.1").gsub("12.3.2", "10.0.1") bundle "lock --update rails rake" @@ -144,7 +144,7 @@ RSpec.describe "bundle lock" do lockfile @lockfile bundle "lock --update blahblah" - expect(out).to eq("Could not find gem 'blahblah'.") + expect(err).to eq("Could not find gem 'blahblah'.") expect(read_lockfile).to eq(@lockfile) end @@ -225,7 +225,7 @@ RSpec.describe "bundle lock" do it "warns when adding an unknown platform" do bundle "lock --add-platform foobarbaz" - expect(out).to include("The platform `foobarbaz` is unknown to RubyGems and adding it will likely lead to resolution errors") + expect(err).to include("The platform `foobarbaz` is unknown to RubyGems and adding it will likely lead to resolution errors") end it "allows removing platforms" do @@ -242,7 +242,7 @@ RSpec.describe "bundle lock" do it "errors when removing all platforms" do bundle "lock --remove-platform #{local_platforms.join(" ")}" - expect(last_command.bundler_err).to include("Removing all platforms from the bundle is not allowed") + expect(err).to include("Removing all platforms from the bundle is not allowed") end # from https://github.com/bundler/bundler/issues/4896 diff --git a/spec/commands/newgem_spec.rb b/spec/commands/newgem_spec.rb index 2914ba66c5..dcd36d3fe4 100644 --- a/spec/commands/newgem_spec.rb +++ b/spec/commands/newgem_spec.rb @@ -162,7 +162,7 @@ RSpec.describe "bundle gem" do load_paths = [lib, spec] load_path_str = "-I#{load_paths.join(File::PATH_SEPARATOR)}" - sys_exec "PATH=\"\" #{Gem.ruby} #{load_path_str} #{bindir.join("bundle")} gem #{gem_name}" + sys_exec "#{Gem.ruby} #{load_path_str} #{bindir.join("bundle")} gem #{gem_name}", "PATH" => "" end it "creates the gem without the need for git" do @@ -178,7 +178,7 @@ RSpec.describe "bundle gem" do end end - it "generates a valid gemspec" do + it "generates a valid gemspec", :ruby_repo do in_app_root bundle! "gem newgem --bin" @@ -197,7 +197,7 @@ RSpec.describe "bundle gem" do end Dir.chdir(bundled_app("newgem")) do - gems = ["rake-10.0.2", :bundler] + gems = ["rake-12.3.2", :bundler] # for Ruby core repository, Ruby 2.6+ has bundler as standard library. gems.delete(:bundler) if ruby_core? system_gems gems, :path => :bundle_path @@ -289,7 +289,7 @@ RSpec.describe "bundle gem" do it_should_behave_like "git config is absent" end - it "sets gemspec metadata['allowed_push_host']", :rubygems => "2.0" do + it "sets gemspec metadata['allowed_push_host']" do expect(generated_gem.gemspec.metadata["allowed_push_host"]). to match(/mygemserver\.com/) end @@ -303,7 +303,7 @@ RSpec.describe "bundle gem" do end it "runs rake without problems" do - system_gems ["rake-10.0.2"] + system_gems ["rake-12.3.2"] rakefile = strip_whitespace <<-RAKEFILE task :default do @@ -381,7 +381,7 @@ RSpec.describe "bundle gem" do expect(bundled_app("test_gem/spec/spec_helper.rb")).to exist end - it "depends on a specific version of rspec", :rubygems => ">= 1.8.1" do + it "depends on a specific version of rspec" do rspec_dep = generated_gem.gemspec.development_dependencies.find {|d| d.name == "rspec" } expect(rspec_dep).to be_specific end @@ -399,7 +399,7 @@ RSpec.describe "bundle gem" do before do reset! in_app_root - bundle "config gem.test rspec" + bundle "config set gem.test rspec" bundle "gem #{gem_name}" end @@ -414,7 +414,7 @@ RSpec.describe "bundle gem" do before do reset! in_app_root - bundle "config gem.test rspec" + bundle "config set gem.test rspec" bundle "gem #{gem_name} --test=minitest" end @@ -431,7 +431,7 @@ RSpec.describe "bundle gem" do bundle "gem #{gem_name} --test=minitest" end - it "depends on a specific version of minitest", :rubygems => ">= 1.8.1" do + it "depends on a specific version of minitest" do rspec_dep = generated_gem.gemspec.development_dependencies.find {|d| d.name == "minitest" } expect(rspec_dep).to be_specific end @@ -458,7 +458,7 @@ RSpec.describe "bundle gem" do before do reset! in_app_root - bundle "config gem.test minitest" + bundle "config set gem.test minitest" bundle "gem #{gem_name}" end @@ -585,7 +585,7 @@ RSpec.describe "bundle gem" do end it "runs rake without problems" do - system_gems ["rake-10.0.2"] + system_gems ["rake-12.3.2"] rakefile = strip_whitespace <<-RAKEFILE task :default do @@ -770,22 +770,22 @@ RSpec.describe "bundle gem" do it "fails gracefully with a ." do bundle "gem foo.gemspec" - expect(last_command.bundler_err).to end_with("Invalid gem name foo.gemspec -- `Foo.gemspec` is an invalid constant name") + expect(err).to end_with("Invalid gem name foo.gemspec -- `Foo.gemspec` is an invalid constant name") end it "fails gracefully with a ^" do bundle "gem ^" - expect(last_command.bundler_err).to end_with("Invalid gem name ^ -- `^` is an invalid constant name") + expect(err).to end_with("Invalid gem name ^ -- `^` is an invalid constant name") end it "fails gracefully with a space" do bundle "gem 'foo bar'" - expect(last_command.bundler_err).to end_with("Invalid gem name foo bar -- `Foo bar` is an invalid constant name") + expect(err).to end_with("Invalid gem name foo bar -- `Foo bar` is an invalid constant name") end it "fails gracefully when multiple names are passed" do bundle "gem foo bar baz" - expect(last_command.bundler_err).to eq(<<-E.strip) + expect(err).to eq(<<-E.strip) ERROR: "bundle gem" was called with arguments ["foo", "bar", "baz"] Usage: "bundle gem NAME [OPTIONS]" E @@ -802,22 +802,22 @@ Usage: "bundle gem NAME [OPTIONS]" context "with an existing const name" do subject { "gem" } - it { expect(out).to include("Invalid gem name #{subject}") } + it { expect(err).to include("Invalid gem name #{subject}") } end context "with an existing hyphenated const name" do subject { "gem-specification" } - it { expect(out).to include("Invalid gem name #{subject}") } + it { expect(err).to include("Invalid gem name #{subject}") } end context "starting with an existing const name" do subject { "gem-somenewconstantname" } - it { expect(out).not_to include("Invalid gem name #{subject}") } + it { expect(err).not_to include("Invalid gem name #{subject}") } end context "ending with an existing const name" do subject { "somenewconstantname-gem" } - it { expect(out).not_to include("Invalid gem name #{subject}") } + it { expect(err).not_to include("Invalid gem name #{subject}") } end end @@ -850,7 +850,7 @@ Usage: "bundle gem NAME [OPTIONS]" it "asks about MIT license" do global_config "BUNDLE_GEM__TEST" => "false", "BUNDLE_GEM__COC" => "false" - bundle :config + bundle "config list" bundle "gem foobar" do |input, _, _| input.puts "yes" @@ -876,7 +876,7 @@ Usage: "bundle gem NAME [OPTIONS]" FileUtils.touch("conflict-foobar") end bundle "gem conflict-foobar" - expect(last_command.bundler_err).to include("Errno::ENOTDIR") + expect(err).to include("Errno::ENOTDIR") expect(exitstatus).to eql(32) if exitstatus end end @@ -887,7 +887,7 @@ Usage: "bundle gem NAME [OPTIONS]" FileUtils.mkdir_p("conflict-foobar/Gemfile") end bundle! "gem conflict-foobar" - expect(last_command.stdout).to include("file_clash conflict-foobar/Gemfile"). + expect(out).to include("file_clash conflict-foobar/Gemfile"). and include "Initializing git repo in #{bundled_app("conflict-foobar")}" end end diff --git a/spec/commands/open_spec.rb b/spec/commands/open_spec.rb index 5cab846fb5..659445da33 100644 --- a/spec/commands/open_spec.rb +++ b/spec/commands/open_spec.rb @@ -30,7 +30,7 @@ RSpec.describe "bundle open" do it "complains if gem not in bundle" do bundle "open missing", :env => { "EDITOR" => "echo editor", "VISUAL" => "", "BUNDLER_EDITOR" => "" } - expect(out).to match(/could not find gem 'missing'/i) + expect(err).to match(/could not find gem 'missing'/i) end it "does not blow up if the gem to open does not have a Gemfile" do @@ -48,7 +48,7 @@ RSpec.describe "bundle open" do it "suggests alternatives for similar-sounding gems" do bundle "open Rails", :env => { "EDITOR" => "echo editor", "VISUAL" => "", "BUNDLER_EDITOR" => "" } - expect(out).to match(/did you mean rails\?/i) + expect(err).to match(/did you mean rails\?/i) end it "opens the gem with short words" do @@ -80,7 +80,7 @@ RSpec.describe "bundle open" do gem "foo" G - bundle "config auto_install 1" + bundle "config set auto_install 1" bundle "open rails", :env => { "EDITOR" => "echo editor", "VISUAL" => "", "BUNDLER_EDITOR" => "" } expect(out).to include("Installing foo 1.0") end diff --git a/spec/commands/outdated_spec.rb b/spec/commands/outdated_spec.rb index 394db664d8..843bebf6e0 100644 --- a/spec/commands/outdated_spec.rb +++ b/spec/commands/outdated_spec.rb @@ -202,7 +202,7 @@ RSpec.describe "bundle outdated" do build_gem "activesupport", "2.3.4" end - bundle! "config clean false" + bundle! "config set clean false" install_gemfile <<-G source "file://#{gem_repo2}" @@ -398,7 +398,7 @@ RSpec.describe "bundle outdated" do describe "with invalid gem name" do it "returns could not find gem name" do bundle "outdated invalid_gem_name" - expect(out).to include("Could not find gem 'invalid_gem_name'.") + expect(err).to include("Could not find gem 'invalid_gem_name'.") end it "returns non-zero exit code" do @@ -414,12 +414,12 @@ RSpec.describe "bundle outdated" do gem "foo" G - bundle "config auto_install 1" + bundle "config set auto_install 1" bundle :outdated expect(out).to include("Installing foo 1.0") end - context "after bundle install --deployment", :bundler => "< 2" do + context "after bundle install --deployment", :bundler => "< 3" do before do install_gemfile <<-G, forgotten_command_line_options(:deployment => true) source "file://#{gem_repo2}" @@ -434,14 +434,14 @@ RSpec.describe "bundle outdated" do bundle "outdated" expect(last_command).to be_failure - expect(out).to include("You are trying to check outdated gems in deployment mode.") - expect(out).to include("Run `bundle outdated` elsewhere.") - expect(out).to include("If this is a development machine, remove the ") - expect(out).to include("Gemfile freeze\nby running `bundle install --no-deployment`.") + expect(err).to include("You are trying to check outdated gems in deployment mode.") + expect(err).to include("Run `bundle outdated` elsewhere.") + expect(err).to include("If this is a development machine, remove the ") + expect(err).to include("Gemfile freeze\nby running `bundle install --no-deployment`.") end end - context "after bundle config deployment true" do + context "after bundle config set deployment true" do before do install_gemfile <<-G source "file://#{gem_repo2}" @@ -449,7 +449,7 @@ RSpec.describe "bundle outdated" do gem "rack" gem "foo" G - bundle! "config deployment true" + bundle! "config set deployment true" end it "outputs a helpful message about being in deployment mode" do @@ -457,10 +457,10 @@ RSpec.describe "bundle outdated" do bundle "outdated" expect(last_command).to be_failure - expect(out).to include("You are trying to check outdated gems in deployment mode.") - expect(out).to include("Run `bundle outdated` elsewhere.") - expect(out).to include("If this is a development machine, remove the ") - expect(out).to include("Gemfile freeze\nby running `bundle config --delete deployment`.") + expect(err).to include("You are trying to check outdated gems in deployment mode.") + expect(err).to include("Run `bundle outdated` elsewhere.") + expect(err).to include("If this is a development machine, remove the ") + expect(err).to include("Gemfile freeze\nby running `bundle config unset deployment`.") end end diff --git a/spec/commands/package_spec.rb b/spec/commands/package_spec.rb index 6351909bc7..b9cc079c5c 100644 --- a/spec/commands/package_spec.rb +++ b/spec/commands/package_spec.rb @@ -141,7 +141,7 @@ RSpec.describe "bundle package" do end end - context "with --path", :bundler => "< 2" do + context "with --path", :bundler => "< 3" do it "sets root directory for gems" do gemfile <<-D source "file://#{gem_repo1}" @@ -179,10 +179,22 @@ RSpec.describe "bundle package" do expect(the_bundle).to include_gems "rack 1.0.0" end + + it "does not prevent installing gems with bundle update" do + gemfile <<-D + source "file://#{gem_repo1}" + gem "rack", "1.0.0" + D + + bundle! "package --no-install" + bundle! "update --all" + + expect(the_bundle).to include_gems "rack 1.0.0" + end end context "with --all-platforms" do - it "puts the gems in vendor/cache even for other rubies", :ruby => "2.1" do + it "puts the gems in vendor/cache even for other rubies" do gemfile <<-D source "file://#{gem_repo1}" gem 'rack', :platforms => :ruby_19 @@ -205,7 +217,7 @@ RSpec.describe "bundle package" do subject { bundle :package, forgotten_command_line_options(:frozen => true) } it "tries to install with frozen" do - bundle! "config deployment true" + bundle! "config set deployment true" gemfile <<-G source "file://#{gem_repo1}" gem "rack" @@ -213,9 +225,9 @@ RSpec.describe "bundle package" do G subject expect(exitstatus).to eq(16) if exitstatus - expect(out).to include("deployment mode") - expect(out).to include("You have added to the Gemfile") - expect(out).to include("* rack-obama") + expect(err).to include("deployment mode") + expect(err).to include("You have added to the Gemfile") + expect(err).to include("* rack-obama") bundle "env" expect(out).to include("frozen").or include("deployment") end @@ -266,7 +278,7 @@ RSpec.describe "bundle install with gem sources" do end bundle :install - expect(err).to lack_errors + expect(err).to be_empty expect(the_bundle).to include_gems "rack 1.0" end diff --git a/spec/commands/pristine_spec.rb b/spec/commands/pristine_spec.rb index a868465c03..93eb81f2af 100644 --- a/spec/commands/pristine_spec.rb +++ b/spec/commands/pristine_spec.rb @@ -42,13 +42,20 @@ RSpec.describe "bundle pristine", :ruby_repo do expect(changes_txt).to_not be_file end - it "does not delete the bundler gem" do + it "does not delete the bundler gem", :rubygems => ">= 2.6.2" do ENV["BUNDLER_SPEC_KEEP_DEFAULT_BUNDLER_GEM"] = "true" system_gems :bundler bundle! "install" bundle! "pristine", :system_bundler => true bundle! "-v", :system_bundler => true - expect(out).to end_with(Bundler::VERSION) + + expected = if Bundler::VERSION < "3.0" + "Bundler version" + else + Bundler::VERSION + end + + expect(out).to start_with(expected) end end @@ -88,7 +95,7 @@ RSpec.describe "bundle pristine", :ruby_repo do bundle "pristine" expect(File.read(changed_file)).to include(diff) - expect(out).to include("Cannot pristine #{spec.name} (#{spec.version}#{spec.git_version}). Gem is sourced from local path.") + expect(err).to include("Cannot pristine #{spec.name} (#{spec.version}#{spec.git_version}). Gem is sourced from local path.") end it "reinstall gemspec dependency" do @@ -111,7 +118,7 @@ RSpec.describe "bundle pristine", :ruby_repo do FileUtils.touch(changes_txt) expect(changes_txt).to be_file bundle "pristine" - expect(out).to include("Cannot pristine #{spec.name} (#{spec.version}#{spec.git_version}). Gem is sourced from local path.") + expect(err).to include("Cannot pristine #{spec.name} (#{spec.version}#{spec.git_version}). Gem is sourced from local path.") expect(changes_txt).to be_file end end @@ -135,8 +142,8 @@ RSpec.describe "bundle pristine", :ruby_repo do bundle! "pristine foo bar weakling" - expect(out).to include("Cannot pristine bar (1.0). Gem is sourced from local path."). - and include("Installing weakling 1.0") + expect(err).to include("Cannot pristine bar (1.0). Gem is sourced from local path.") + expect(out).to include("Installing weakling 1.0") expect(weakling_changes_txt).not_to be_file expect(foo_changes_txt).not_to be_file @@ -145,7 +152,7 @@ RSpec.describe "bundle pristine", :ruby_repo do it "raises when one of them is not in the lockfile" do bundle "pristine abcabcabc" - expect(out).to include("Could not find gem 'abcabcabc'.") + expect(err).to include("Could not find gem 'abcabcabc'.") end end @@ -153,7 +160,7 @@ RSpec.describe "bundle pristine", :ruby_repo do let(:very_simple_binary) { Bundler.definition.specs["very_simple_binary"].first } let(:c_ext_dir) { Pathname.new(very_simple_binary.full_gem_path).join("ext") } let(:build_opt) { "--with-ext-lib=#{c_ext_dir}" } - before { bundle "config build.very_simple_binary -- #{build_opt}" } + before { bundle "config set build.very_simple_binary -- #{build_opt}" } # This just verifies that the generated Makefile from the c_ext gem makes # use of the build_args from the bundle config @@ -170,7 +177,7 @@ RSpec.describe "bundle pristine", :ruby_repo do let(:git_with_ext) { Bundler.definition.specs["git_with_ext"].first } let(:c_ext_dir) { Pathname.new(git_with_ext.full_gem_path).join("ext") } let(:build_opt) { "--with-ext-lib=#{c_ext_dir}" } - before { bundle "config build.git_with_ext -- #{build_opt}" } + before { bundle "config set build.git_with_ext -- #{build_opt}" } # This just verifies that the generated Makefile from the c_ext gem makes # use of the build_args from the bundle config diff --git a/spec/commands/remove_spec.rb b/spec/commands/remove_spec.rb index daed91c034..7695d2a881 100644 --- a/spec/commands/remove_spec.rb +++ b/spec/commands/remove_spec.rb @@ -9,7 +9,7 @@ RSpec.describe "bundle remove" do bundle "remove" - expect(out).to include("Please specify gems to remove.") + expect(err).to include("Please specify gems to remove.") end end @@ -54,7 +54,7 @@ RSpec.describe "bundle remove" do bundle "remove rack" - expect(out).to include("`rack` is not specified in #{bundled_app("Gemfile")} so it could not be removed.") + expect(err).to include("`rack` is not specified in #{bundled_app("Gemfile")} so it could not be removed.") end end end @@ -91,7 +91,7 @@ RSpec.describe "bundle remove" do bundle "remove rails rack minitest" - expect(out).to include("`rack` is not specified in #{bundled_app("Gemfile")} so it could not be removed.") + expect(err).to include("`rack` is not specified in #{bundled_app("Gemfile")} so it could not be removed.") gemfile_should_be <<-G source "file://#{gem_repo1}" @@ -318,7 +318,7 @@ RSpec.describe "bundle remove" do bundle "remove rails" - expect(out).to include("Gems could not be removed. rack (>= 0) would also have been removed.") + expect(err).to include("Gems could not be removed. rack (>= 0) would also have been removed.") gemfile_should_be <<-G source "file://#{gem_repo1}" gem "rack"; gem "rails" @@ -436,7 +436,7 @@ RSpec.describe "bundle remove" do bundle "remove rack" - expect(out).to include("`rack` is not specified in #{bundled_app("Gemfile")} so it could not be removed.") + expect(err).to include("`rack` is not specified in #{bundled_app("Gemfile")} so it could not be removed.") end end @@ -456,7 +456,7 @@ RSpec.describe "bundle remove" do bundle "remove rack" expect(out).to include("rack was removed.") - expect(out).to include("`rack` is not specified in #{bundled_app("Gemfile-other")} so it could not be removed.") + expect(err).to include("`rack` is not specified in #{bundled_app("Gemfile-other")} so it could not be removed.") gemfile_should_be <<-G source "file://#{gem_repo1}" @@ -481,7 +481,7 @@ RSpec.describe "bundle remove" do bundle "remove rack" expect(out).to include("rack was removed.") - expect(out).to include("Gems could not be removed. rails (>= 0) would also have been removed.") + expect(err).to include("Gems could not be removed. rails (>= 0) would also have been removed.") gemfile_should_be <<-G source "file://#{gem_repo1}" @@ -505,7 +505,7 @@ RSpec.describe "bundle remove" do bundle "remove rack" - expect(out).to include("Gems could not be removed. rails (>= 0) would also have been removed.") + expect(err).to include("Gems could not be removed. rails (>= 0) would also have been removed.") expect(bundled_app("Gemfile-other").read).to include("gem \"rack\"") gemfile_should_be <<-G source "file://#{gem_repo1}" diff --git a/spec/commands/show_spec.rb b/spec/commands/show_spec.rb index 102b9534de..6e1986e35f 100644 --- a/spec/commands/show_spec.rb +++ b/spec/commands/show_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe "bundle show" do +RSpec.describe "bundle show", :bundler => "< 3" do context "with a standard Gemfile" do before :each do install_gemfile <<-G @@ -25,30 +25,24 @@ RSpec.describe "bundle show" do expect(bundled_app("Gemfile.lock")).to exist end - it "prints path if gem exists in bundle", :bundler => "< 2" do + it "prints path if gem exists in bundle" do bundle "show rails" expect(out).to eq(default_bundle_path("gems", "rails-2.3.2").to_s) end - it "prints path if gem exists in bundle", :bundler => "2" do + it "prints deprecation" do bundle "show rails" - expect(out).to eq( - "[DEPRECATED FOR 2.0] use `bundle info rails` instead of `bundle show rails`\n" + - default_bundle_path("gems", "rails-2.3.2").to_s - ) + expect(err).to eq("[DEPRECATED] use `bundle info rails` instead of `bundle show rails`") end - it "prints path if gem exists in bundle (with --paths option)", :bundler => "< 2" do + it "prints path if gem exists in bundle (with --paths option)" do bundle "show rails --paths" expect(out).to eq(default_bundle_path("gems", "rails-2.3.2").to_s) end - it "prints path if gem exists in bundle (with --paths option)", :bundler => "2" do + it "prints deprecation when called with a gem and the --paths option" do bundle "show rails --paths" - expect(out).to eq( - "[DEPRECATED FOR 2.0] use `bundle info rails --path` instead of `bundle show rails --paths`\n" + - default_bundle_path("gems", "rails-2.3.2").to_s - ) + expect(err).to eq("[DEPRECATED] use `bundle info rails --path` instead of `bundle show rails --paths`") end it "warns if path no longer exists on disk" do @@ -56,32 +50,28 @@ RSpec.describe "bundle show" do bundle "show rails" - expect(out).to match(/has been deleted/i). - and include(default_bundle_path("gems", "rails-2.3.2").to_s) + expect(err).to match(/has been deleted/i) + expect(err).to match(default_bundle_path("gems", "rails-2.3.2").to_s) end - it "prints the path to the running bundler", :bundler => "< 2" do + it "prints the path to the running bundler" do bundle "show bundler" expect(out).to eq(root.to_s) end - it "prints the path to the running bundler", :bundler => "2" do + it "prints deprecation when called with bundler" do bundle "show bundler" - expect(out).to eq( - "[DEPRECATED FOR 2.0] use `bundle info bundler` instead of `bundle show bundler`\n" + - root.to_s - ) + expect(err).to eq("[DEPRECATED] use `bundle info bundler` instead of `bundle show bundler`") end - it "complains if gem not in bundle" do bundle "show missing" - expect(out).to match(/could not find gem 'missing'/i) + expect(err).to match(/could not find gem 'missing'/i) end - it "prints path of all gems in bundle sorted by name", :bundler => "< 2" do + it "prints path of all gems in bundle sorted by name" do bundle "show --paths" - expect(out).to include(default_bundle_path("gems", "rake-10.0.2").to_s) + expect(out).to include(default_bundle_path("gems", "rake-12.3.2").to_s) expect(out).to include(default_bundle_path("gems", "rails-2.3.2").to_s) # Gem names are the last component of their path. @@ -89,18 +79,10 @@ RSpec.describe "bundle show" do expect(gem_list).to eq(gem_list.sort) end - it "prints path of all gems in bundle sorted by name", :bundler => "2" do + it "prints a deprecation when called with the --paths option" do bundle "show --paths" - expect(out).to include(default_bundle_path("gems", "rake-10.0.2").to_s) - expect(out).to include(default_bundle_path("gems", "rails-2.3.2").to_s) - - out_lines = out.split("\n") - expect(out_lines[0]).to eq("[DEPRECATED FOR 2.0] use `bundle list` instead of `bundle show --paths`") - - # Gem names are the last component of their path. - gem_list = out_lines[1..-1].map {|p| p.split("/").last } - expect(gem_list).to eq(gem_list.sort) + expect(err).to eq("[DEPRECATED] use `bundle list` instead of `bundle show --paths`") end it "prints summary of gems" do @@ -153,7 +135,7 @@ RSpec.describe "bundle show" do expect(out).to include("foo (1.0 #{sha[0..6]})") end - it "handles when a version is a '-' prerelease", :rubygems => "2.1" do + it "handles when a version is a '-' prerelease" do @git = build_git("foo", "1.0.0-beta.1", :path => lib_path("foo")) install_gemfile <<-G gem "foo", "1.0.0-beta.1", :git => "#{lib_path("foo")}" @@ -175,7 +157,7 @@ RSpec.describe "bundle show" do it "does not output git errors" do bundle :show - expect(err).to lack_errors + expect(err_without_deprecations).to be_empty end end @@ -185,11 +167,24 @@ RSpec.describe "bundle show" do gem "foo" G - bundle "config auto_install 1" + bundle "config set auto_install 1" bundle :show expect(out).to include("Installing foo 1.0") end + context "with a valid regexp for gem name" do + it "presents alternatives", :ruby_repo do + install_gemfile <<-G + source "file://#{gem_repo1}" + gem "rack" + gem "rack-obama" + G + + bundle "show rac" + expect(out).to eq "1 : rack\n2 : rack-obama\n0 : - exit -\n>" + end + end + context "with an invalid regexp for gem name" do it "does not find the gem" do install_gemfile <<-G @@ -200,7 +195,7 @@ RSpec.describe "bundle show" do invalid_regexp = "[]" bundle "show #{invalid_regexp}" - expect(out).to include("Could not find gem '#{invalid_regexp}'.") + expect(err).to include("Could not find gem '#{invalid_regexp}'.") end end @@ -231,3 +226,7 @@ RSpec.describe "bundle show" do end end end + +RSpec.describe "bundle show", :bundler => "3" do + pending "shows a friendly error about the command removal" +end diff --git a/spec/commands/update_spec.rb b/spec/commands/update_spec.rb index 6f29032dd2..735d8cd8de 100644 --- a/spec/commands/update_spec.rb +++ b/spec/commands/update_spec.rb @@ -12,7 +12,7 @@ RSpec.describe "bundle update" do G end - describe "with no arguments", :bundler => "< 2" do + describe "with no arguments", :bundler => "< 3" do it "updates the entire bundle" do update_repo2 do build_gem "activesupport", "3.0" @@ -35,7 +35,7 @@ RSpec.describe "bundle update" do end end - describe "with --all", :bundler => "2" do + describe "with --all", :bundler => "3" do it "updates the entire bundle" do update_repo2 do build_gem "activesupport", "3.0" @@ -65,25 +65,25 @@ RSpec.describe "bundle update" do gem "rack", "1.0" G - bundle! "update --gemfile OmgFile", :all => bundle_update_requires_all? + bundle! "update --gemfile OmgFile", :all => true expect(bundled_app("OmgFile.lock")).to exist end end context "when update_requires_all_flag is set" do - before { bundle! "config update_requires_all_flag true" } + before { bundle! "config set update_requires_all_flag true" } it "errors when passed nothing" do install_gemfile! "" bundle :update - expect(out).to eq("To update everything, pass the `--all` flag.") + expect(err).to eq("To update everything, pass the `--all` flag.") end it "errors when passed --all and another option" do install_gemfile! "" bundle "update --all foo" - expect(out).to eq("Cannot specify --all along with specific options.") + expect(err).to eq("Cannot specify --all along with specific options.") end it "updates everything when passed --all" do @@ -114,11 +114,11 @@ RSpec.describe "bundle update" do describe "with an unknown dependency" do it "should inform the user" do bundle "update halting-problem-solver" - expect(out).to include "Could not find gem 'halting-problem-solver'" + expect(err).to include "Could not find gem 'halting-problem-solver'" end it "should suggest alternatives" do bundle "update platformspecific" - expect(out).to include "Did you mean platform_specific?" + expect(err).to include "Did you mean platform_specific?" end end @@ -133,7 +133,7 @@ RSpec.describe "bundle update" do describe "when a possible resolve requires an older version of a locked gem" do context "and only_update_to_newer_versions is set" do before do - bundle! "config only_update_to_newer_versions true" + bundle! "config set only_update_to_newer_versions true" end it "does not go to an older version" do @@ -167,7 +167,7 @@ RSpec.describe "bundle update" do end end - bundle! "update", :all => bundle_update_requires_all? + bundle! "update", :all => true expect(the_bundle).to include_gems("slim 3.0.9", "slim-rails 3.1.3", "slim_lint 0.16.1") end @@ -280,32 +280,32 @@ RSpec.describe "bundle update" do end describe "in a frozen bundle" do - it "should fail loudly", :bundler => "< 2" do + it "should fail loudly", :bundler => "< 3" do bundle! "install --deployment" - bundle "update", :all => bundle_update_requires_all? + bundle "update", :all => true expect(last_command).to be_failure - expect(out).to match(/You are trying to install in deployment mode after changing.your Gemfile/m) - expect(out).to match(/freeze \nby running `bundle install --no-deployment`./m) + expect(err).to match(/You are trying to install in deployment mode after changing.your Gemfile/m) + expect(err).to match(/freeze \nby running `bundle install --no-deployment`./m) end - it "should suggest different command when frozen is set globally", :bundler => "< 2" do - bundle! "config --global frozen 1" - bundle "update", :all => bundle_update_requires_all? - expect(out).to match(/You are trying to install in deployment mode after changing.your Gemfile/m). - and match(/freeze \nby running `bundle config --delete frozen`./m) + it "should suggest different command when frozen is set globally", :bundler => "< 3" do + bundle! "config set --global frozen 1" + bundle "update", :all => true + expect(err).to match(/You are trying to install in deployment mode after changing.your Gemfile/m). + and match(/freeze \nby running `bundle config unset frozen`./m) end - it "should suggest different command when frozen is set globally", :bundler => "2" do - bundle! "config --global deployment true" - bundle "update", :all => bundle_update_requires_all? - expect(out).to match(/You are trying to install in deployment mode after changing.your Gemfile/m). - and match(/freeze \nby running `bundle config --delete deployment`./m) + it "should suggest different command when frozen is set globally", :bundler => "3" do + bundle! "config set --global deployment true" + bundle "update", :all => true + expect(err).to match(/You are trying to install in deployment mode after changing.your Gemfile/m). + and match(/freeze \nby running `bundle config unset deployment`./m) end end describe "with --source option" do - it "should not update gems not included in the source that happen to have the same name", :bundler => "< 2" do + it "should not update gems not included in the source that happen to have the same name", :bundler => "< 3" do install_gemfile! <<-G source "file://#{gem_repo2}" gem "activesupport" @@ -316,7 +316,7 @@ RSpec.describe "bundle update" do expect(the_bundle).to include_gem "activesupport 3.0" end - it "should not update gems not included in the source that happen to have the same name", :bundler => "2" do + it "should not update gems not included in the source that happen to have the same name", :bundler => "3" do install_gemfile! <<-G source "file://#{gem_repo2}" gem "activesupport" @@ -328,7 +328,7 @@ RSpec.describe "bundle update" do end context "with unlock_source_unlocks_spec set to false" do - before { bundle! "config unlock_source_unlocks_spec false" } + before { bundle! "config set unlock_source_unlocks_spec false" } it "should not update gems not included in the source that happen to have the same name" do install_gemfile <<-G @@ -359,7 +359,7 @@ RSpec.describe "bundle update" do G end - it "should not update the child dependencies of a gem that has the same name as the source", :bundler => "< 2" do + it "should not update the child dependencies of a gem that has the same name as the source", :bundler => "< 3" do update_repo2 do build_gem "fred", "2.0" build_gem "harry", "2.0" do |s| @@ -372,7 +372,7 @@ RSpec.describe "bundle update" do expect(the_bundle).to include_gems "fred 1.0" end - it "should not update the child dependencies of a gem that has the same name as the source", :bundler => "2" do + it "should not update the child dependencies of a gem that has the same name as the source", :bundler => "3" do update_repo2 do build_gem "fred", "2.0" build_gem "harry", "2.0" do |s| @@ -404,7 +404,7 @@ RSpec.describe "bundle update" do G end - it "should not update the child dependencies of a gem that has the same name as the source", :bundler => "< 2" do + it "should not update the child dependencies of a gem that has the same name as the source", :bundler => "< 3" do update_repo2 do build_gem "george", "2.0" build_gem "harry", "2.0" do |s| @@ -418,7 +418,7 @@ RSpec.describe "bundle update" do expect(the_bundle).to include_gems "george 1.0" end - it "should not update the child dependencies of a gem that has the same name as the source", :bundler => "2" do + it "should not update the child dependencies of a gem that has the same name as the source", :bundler => "3" do update_repo2 do build_gem "george", "2.0" build_gem "harry", "2.0" do |s| @@ -473,6 +473,39 @@ RSpec.describe "bundle update in more complicated situations" do expect(the_bundle).to include_gems "thin 2.0", "rack 10.0", "rack-obama 1.0" end + it "will not warn when an explicitly updated git gem changes sha but not version" do + build_git "foo" + + install_gemfile! <<-G + gem "foo", :git => '#{lib_path("foo-1.0")}' + G + + update_git "foo" do |s| + s.write "lib/foo2.rb", "puts :foo2" + end + + bundle! "update foo" + + expect(last_command.stdboth).not_to include "attempted to update" + end + + it "will not warn when changing gem sources but not versions" do + build_git "rack" + + install_gemfile! <<-G + gem "rack", :git => '#{lib_path("rack-1.0")}' + G + + gemfile <<-G + source "file://#{gem_repo1}" + gem "rack" + G + + bundle! "update rack" + + expect(last_command.stdboth).not_to include "attempted to update" + end + it "will update only from pinned source" do install_gemfile <<-G source "file://#{gem_repo2}" @@ -542,7 +575,7 @@ RSpec.describe "bundle update without a Gemfile.lock" do gem "rack", "1.0" G - bundle "update", :all => bundle_update_requires_all? + bundle "update", :all => true expect(the_bundle).to include_gems "rack 1.0.0" end @@ -562,23 +595,23 @@ RSpec.describe "bundle update when a gem depends on a newer version of bundler" G end - it "should explain that bundler conflicted", :bundler => "< 2" do - bundle "update", :all => bundle_update_requires_all? + it "should explain that bundler conflicted", :bundler => "< 3" do + bundle "update", :all => true expect(last_command.stdboth).not_to match(/in snapshot/i) - expect(last_command.bundler_err).to match(/current Bundler version/i). + expect(err).to match(/current Bundler version/i). and match(/perhaps you need to update bundler/i) end - it "should warn that the newer version of Bundler would conflict", :bundler => "2" do + it "should warn that the newer version of Bundler would conflict", :bundler => "3" do bundle! "update", :all => true - expect(last_command.bundler_err).to include("rails (3.0.1) has dependency bundler"). + expect(err).to include("rails (3.0.1) has dependency bundler"). and include("so the dependency is being ignored") expect(the_bundle).to include_gem "rails 3.0.1" end end RSpec.describe "bundle update" do - it "shows the previous version of the gem when updated from rubygems source", :bundler => "< 2" do + it "shows the previous version of the gem when updated from rubygems source", :bundler => "< 3" do build_repo2 install_gemfile <<-G @@ -586,19 +619,19 @@ RSpec.describe "bundle update" do gem "activesupport" G - bundle "update", :all => bundle_update_requires_all? + bundle "update", :all => true expect(out).to include("Using activesupport 2.3.5") update_repo2 do build_gem "activesupport", "3.0" end - bundle "update", :all => bundle_update_requires_all? + bundle "update", :all => true expect(out).to include("Installing activesupport 3.0 (was 2.3.5)") end context "with suppress_install_using_messages set" do - before { bundle! "config suppress_install_using_messages true" } + before { bundle! "config set suppress_install_using_messages true" } it "only prints `Using` for versions that have changed" do build_repo4 do @@ -612,7 +645,7 @@ RSpec.describe "bundle update" do gem "foo" G - bundle! "update", :all => bundle_update_requires_all? + bundle! "update", :all => true out.gsub!(/RubyGems [\d\.]+ is not threadsafe.*\n?/, "") expect(out).to include "Resolving dependencies...\nBundle updated!" @@ -620,7 +653,7 @@ RSpec.describe "bundle update" do build_gem "foo", "2.0" end - bundle! "update", :all => bundle_update_requires_all? + bundle! "update", :all => true out.sub!("Removing foo (1.0)\n", "") out.gsub!(/RubyGems [\d\.]+ is not threadsafe.*\n?/, "") expect(out).to include strip_whitespace(<<-EOS).strip @@ -639,7 +672,7 @@ RSpec.describe "bundle update" do G bundle "update nonexisting" - expect(out).to include("This Bundle hasn't been installed yet. Run `bundle install` to update and install the bundled gems.") + expect(err).to include("This Bundle hasn't been installed yet. Run `bundle install` to update and install the bundled gems.") expect(exitstatus).to eq(22) if exitstatus end end @@ -719,7 +752,7 @@ RSpec.describe "bundle update --ruby" do it "shows a helpful error message" do bundle "update --ruby" - expect(out).to include("Your Ruby version is 2.2.2, but your Gemfile specified ~> 2.1.0") + expect(err).to include("Your Ruby version is 2.2.2, but your Gemfile specified ~> 2.1.0") end end @@ -809,6 +842,15 @@ RSpec.describe "bundle update conservative" do G end + context "with patch set as default update level in config" do + it "should do a patch level update" do + bundle! "config set --local prefer_patch true" + bundle! "update foo" + + expect(the_bundle).to include_gems "foo 1.4.5", "bar 2.1.1", "qux 1.0.0" + end + end + context "patch preferred" do it "single gem updates dependent gem to minor" do bundle! "update --patch foo" @@ -817,7 +859,7 @@ RSpec.describe "bundle update conservative" do end it "update all" do - bundle! "update --patch", :all => bundle_update_requires_all? + bundle! "update --patch", :all => true expect(the_bundle).to include_gems "foo 1.4.5", "bar 2.1.1", "qux 1.0.1" end @@ -839,7 +881,7 @@ RSpec.describe "bundle update conservative" do end it "minor preferred" do - bundle! "update --minor --strict", :all => bundle_update_requires_all? + bundle! "update --minor --strict", :all => true expect(the_bundle).to include_gems "foo 1.5.0", "bar 2.1.1", "qux 1.1.0" end @@ -936,9 +978,9 @@ RSpec.describe "bundle update conservative" do end it "raises if too many flags are provided" do - bundle "update --patch --minor", :all => bundle_update_requires_all? + bundle "update --patch --minor", :all => true - expect(last_command.bundler_err).to eq "Provide only one of the following options: minor, patch" + expect(err).to eq "Provide only one of the following options: minor, patch" end end end diff --git a/spec/commands/version_spec.rb b/spec/commands/version_spec.rb index b919c25e0f..66c7930397 100644 --- a/spec/commands/version_spec.rb +++ b/spec/commands/version_spec.rb @@ -2,36 +2,36 @@ RSpec.describe "bundle version" do context "with -v" do - it "outputs the version", :bundler => "< 2" do + it "outputs the version", :bundler => "< 3" do bundle! "-v" expect(out).to eq("Bundler version #{Bundler::VERSION}") end - it "outputs the version", :bundler => "2" do + it "outputs the version", :bundler => "3" do bundle! "-v" expect(out).to eq(Bundler::VERSION) end end context "with --version" do - it "outputs the version", :bundler => "< 2" do + it "outputs the version", :bundler => "< 3" do bundle! "--version" expect(out).to eq("Bundler version #{Bundler::VERSION}") end - it "outputs the version", :bundler => "2" do + it "outputs the version", :bundler => "3" do bundle! "--version" expect(out).to eq(Bundler::VERSION) end end context "with version" do - it "outputs the version with build metadata", :bundler => "< 2" do + it "outputs the version with build metadata", :bundler => "< 3" do bundle! "version" expect(out).to match(/\ABundler version #{Regexp.escape(Bundler::VERSION)} \(\d{4}-\d{2}-\d{2} commit [a-fA-F0-9]{7,}\)\z/) end - it "outputs the version with build metadata", :bundler => "2" do + it "outputs the version with build metadata", :bundler => "3" do bundle! "version" expect(out).to match(/\A#{Regexp.escape(Bundler::VERSION)} \(\d{4}-\d{2}-\d{2} commit [a-fA-F0-9]{7,}\)\z/) end diff --git a/spec/commands/viz_spec.rb b/spec/commands/viz_spec.rb index 3804d3561c..96cc21b5f7 100644 --- a/spec/commands/viz_spec.rb +++ b/spec/commands/viz_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe "bundle viz", :ruby => "1.9.3", :bundler => "< 2", :if => Bundler.which("dot") do +RSpec.describe "bundle viz", :bundler => "< 3", :if => Bundler.which("dot") do let(:ruby_graphviz) do graphviz_glob = base_system_gems.join("cache/ruby-graphviz*") Pathname.glob(graphviz_glob).first diff --git a/spec/install/allow_offline_install_spec.rb b/spec/install/allow_offline_install_spec.rb index d4bb595771..8af88b7efe 100644 --- a/spec/install/allow_offline_install_spec.rb +++ b/spec/install/allow_offline_install_spec.rb @@ -2,7 +2,7 @@ RSpec.describe "bundle install with :allow_offline_install" do before do - bundle "config allow_offline_install true" + bundle "config set allow_offline_install true" end context "with no cached data locally" do @@ -19,7 +19,7 @@ RSpec.describe "bundle install with :allow_offline_install" do source "http://testgemserver.local" gem "rack-obama" G - expect(out).to include("Could not reach host testgemserver.local.") + expect(err).to include("Could not reach host testgemserver.local.") expect(the_bundle).to_not be_locked end end @@ -28,7 +28,7 @@ RSpec.describe "bundle install with :allow_offline_install" do it "will install from the compact index" do system_gems ["rack-1.0.0"], :path => :bundle_path - bundle! "config clean false" + bundle! "config set clean false" install_gemfile! <<-G, :artifice => "compact_index" source "http://testgemserver.local" gem "rack-obama" @@ -77,7 +77,7 @@ RSpec.describe "bundle install with :allow_offline_install" do G break_git_remote_ops! { bundle! :update, :all => true } - expect(out).to include("Using cached git data because of network errors") + expect(err).to include("Using cached git data because of network errors") expect(the_bundle).to be_locked break_git_remote_ops! do @@ -85,7 +85,7 @@ RSpec.describe "bundle install with :allow_offline_install" do gem "a", :git => #{git.path.to_s.dump}, :branch => "new_branch" G end - expect(out).to include("Using cached git data because of network errors") + expect(err).to include("Using cached git data because of network errors") expect(the_bundle).to be_locked end end diff --git a/spec/install/binstubs_spec.rb b/spec/install/binstubs_spec.rb index 23eb691ab8..daa20693c7 100644 --- a/spec/install/binstubs_spec.rb +++ b/spec/install/binstubs_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe "bundle install", :bundler => "< 2" do +RSpec.describe "bundle install" do describe "when system_bindir is set" do # On OS X, Gem.bindir defaults to /usr/bin, so system_bindir is useful if # you want to avoid sudo installs for system gems with OS X's default ruby @@ -20,7 +20,7 @@ RSpec.describe "bundle install", :bundler => "< 2" do end end - describe "when multiple gems contain the same exe", :bundler => "< 2" do + describe "when multiple gems contain the same exe" do before do build_repo2 do build_gem "fake", "14" do |s| @@ -28,16 +28,25 @@ RSpec.describe "bundle install", :bundler => "< 2" do end end - install_gemfile <<-G, :binstubs => true + install_gemfile <<-G source "file://#{gem_repo2}" gem "fake" gem "rack" G end - it "loads the correct spec's executable" do - gembin("rackup") - expect(out).to eq("1.2") + it "warns about the situation" do + bundle! "exec rackup" + + expect(last_command.stderr).to include( + "The `rackup` executable in the `fake` gem is being loaded, but it's also present in other gems (rack).\n" \ + "If you meant to run the executable for another gem, make sure you use a project specific binstub (`bundle binstub <gem_name>`).\n" \ + "If you plan to use multiple conflicting executables, generate binstubs for them and disambiguate their names." + ).or include( + "The `rackup` executable in the `rack` gem is being loaded, but it's also present in other gems (fake).\n" \ + "If you meant to run the executable for another gem, make sure you use a project specific binstub (`bundle binstub <gem_name>`).\n" \ + "If you plan to use multiple conflicting executables, generate binstubs for them and disambiguate their names." + ) end end end diff --git a/spec/install/bundler_spec.rb b/spec/install/bundler_spec.rb index 42863ed89b..90f7c63330 100644 --- a/spec/install/bundler_spec.rb +++ b/spec/install/bundler_spec.rb @@ -48,7 +48,7 @@ RSpec.describe "bundle install" do Could not find gem 'bundler (= 0.9.2)' in any E - expect(last_command.bundler_err).to include(nice_error) + expect(err).to include(nice_error) end it "works for gems with multiple versions in its dependencies" do @@ -104,7 +104,7 @@ RSpec.describe "bundle install" do rails_fail was resolved to 1.0, which depends on activesupport (= 1.2.3) E - expect(last_command.bundler_err).to include(nice_error) + expect(err).to include(nice_error) end it "causes a conflict if a child dependency conflicts with the Gemfile" do @@ -122,11 +122,11 @@ RSpec.describe "bundle install" do rails_fail was resolved to 1.0, which depends on activesupport (= 1.2.3) E - expect(last_command.bundler_err).to include(nice_error) + expect(err).to include(nice_error) end - it "can install dependencies with newer bundler version with system gems", :ruby => "> 2" do - bundle! "config path.system true" + it "can install dependencies with newer bundler version with system gems" do + bundle! "config set path.system true" install_gemfile! <<-G source "file://#{gem_repo2}" gem "rails", "3.0" @@ -138,9 +138,9 @@ RSpec.describe "bundle install" do expect(out).to include("The Gemfile's dependencies are satisfied") end - it "can install dependencies with newer bundler version with a local path", :ruby => "> 2" do - bundle! "config path .bundle" - bundle! "config global_path_appends_ruby_scope true" + it "can install dependencies with newer bundler version with a local path" do + bundle! "config set path .bundle" + bundle! "config set global_path_appends_ruby_scope true" install_gemfile! <<-G source "file://#{gem_repo2}" gem "rails", "3.0" @@ -153,7 +153,7 @@ RSpec.describe "bundle install" do end context "with allow_bundler_dependency_conflicts set" do - before { bundle! "config allow_bundler_dependency_conflicts true" } + before { bundle! "config set allow_bundler_dependency_conflicts true" } it "are forced to the current bundler version with warnings when no compatible version is found" do build_repo4 do @@ -167,7 +167,7 @@ RSpec.describe "bundle install" do gem "requires_nonexistant_bundler" G - expect(out).to include "requires_nonexistant_bundler (1.0) has dependency bundler (= 99.99.99.99), " \ + expect(err).to include "requires_nonexistant_bundler (1.0) has dependency bundler (= 99.99.99.99), " \ "which is unsatisfied by the current bundler version #{Bundler::VERSION}, so the dependency is being ignored" expect(the_bundle).to include_gems "bundler #{Bundler::VERSION}", "requires_nonexistant_bundler 1.0" diff --git a/spec/install/deploy_spec.rb b/spec/install/deploy_spec.rb index 3b9d68982a..9569b4d54c 100644 --- a/spec/install/deploy_spec.rb +++ b/spec/install/deploy_spec.rb @@ -8,29 +8,29 @@ RSpec.describe "install with --deployment or --frozen" do G end - context "with CLI flags", :bundler => "< 2" do + context "with CLI flags", :bundler => "< 3" do it "fails without a lockfile and says that --deployment requires a lock" do bundle "install --deployment" - expect(out).to include("The --deployment flag requires a Gemfile.lock") + expect(err).to include("The --deployment flag requires a Gemfile.lock") end it "fails without a lockfile and says that --frozen requires a lock" do bundle "install --frozen" - expect(out).to include("The --frozen flag requires a Gemfile.lock") + expect(err).to include("The --frozen flag requires a Gemfile.lock") end it "disallows --deployment --system" do bundle "install --deployment --system" - expect(out).to include("You have specified both --deployment") - expect(out).to include("Please choose only one option") + expect(err).to include("You have specified both --deployment") + expect(err).to include("Please choose only one option") expect(exitstatus).to eq(15) if exitstatus end it "disallows --deployment --path --system" do bundle "install --deployment --path . --system" - expect(out).to include("You have specified both --path") - expect(out).to include("as well as --system") - expect(out).to include("Please choose only one option") + expect(err).to include("You have specified both --path") + expect(err).to include("as well as --system") + expect(err).to include("Please choose only one option") expect(exitstatus).to eq(15) if exitstatus end @@ -64,7 +64,7 @@ RSpec.describe "install with --deployment or --frozen" do bundle! :install, forgotten_command_line_options(:deployment => true, :without => "test") end - it "works when you bundle exec bundle", :ruby_repo do + it "works when you bundle exec bundle" do bundle :install bundle "install --deployment" bundle! "exec bundle check" @@ -109,11 +109,11 @@ RSpec.describe "install with --deployment or --frozen" do bundle "install" end - it "works with the --deployment flag if you didn't change anything", :bundler => "< 2" do + it "works with the --deployment flag if you didn't change anything", :bundler => "< 3" do bundle! "install --deployment" end - it "works with the --frozen flag if you didn't change anything", :bundler => "< 2" do + it "works with the --frozen flag if you didn't change anything", :bundler => "< 3" do bundle! "install --frozen" end @@ -129,11 +129,11 @@ RSpec.describe "install with --deployment or --frozen" do G bundle :install, forgotten_command_line_options(:deployment => true) - expect(out).to include("deployment mode") - expect(out).to include("You have added to the Gemfile") - expect(out).to include("* rack-obama") - expect(out).not_to include("You have deleted from the Gemfile") - expect(out).not_to include("You have changed in the Gemfile") + expect(err).to include("deployment mode") + expect(err).to include("You have added to the Gemfile") + expect(err).to include("* rack-obama") + expect(err).not_to include("You have deleted from the Gemfile") + expect(err).not_to include("You have changed in the Gemfile") end it "works if a path gem is missing but is in a without group" do @@ -162,10 +162,10 @@ RSpec.describe "install with --deployment or --frozen" do FileUtils.rm_r lib_path("path_gem-1.0") bundle :install, forgotten_command_line_options(:path => ".bundle", :deployment => true) - expect(out).to include("The path `#{lib_path("path_gem-1.0")}` does not exist.") + expect(err).to include("The path `#{lib_path("path_gem-1.0")}` does not exist.") end - it "can have --frozen set via an environment variable", :bundler => "< 2" do + it "can have --frozen set via an environment variable", :bundler => "< 3" do gemfile <<-G source "file://#{gem_repo1}" gem "rack" @@ -174,11 +174,11 @@ RSpec.describe "install with --deployment or --frozen" do ENV["BUNDLE_FROZEN"] = "1" bundle "install" - expect(out).to include("deployment mode") - expect(out).to include("You have added to the Gemfile") - expect(out).to include("* rack-obama") - expect(out).not_to include("You have deleted from the Gemfile") - expect(out).not_to include("You have changed in the Gemfile") + expect(err).to include("deployment mode") + expect(err).to include("You have added to the Gemfile") + expect(err).to include("* rack-obama") + expect(err).not_to include("You have deleted from the Gemfile") + expect(err).not_to include("You have changed in the Gemfile") end it "can have --deployment set via an environment variable" do @@ -190,11 +190,11 @@ RSpec.describe "install with --deployment or --frozen" do ENV["BUNDLE_DEPLOYMENT"] = "true" bundle "install" - expect(out).to include("deployment mode") - expect(out).to include("You have added to the Gemfile") - expect(out).to include("* rack-obama") - expect(out).not_to include("You have deleted from the Gemfile") - expect(out).not_to include("You have changed in the Gemfile") + expect(err).to include("deployment mode") + expect(err).to include("You have added to the Gemfile") + expect(err).to include("* rack-obama") + expect(err).not_to include("You have deleted from the Gemfile") + expect(err).not_to include("You have changed in the Gemfile") end it "can have --frozen set to false via an environment variable" do @@ -212,21 +212,6 @@ RSpec.describe "install with --deployment or --frozen" do expect(out).not_to include("* rack-obama") end - it "explodes with the --frozen flag if you make a change and don't check in the lockfile", :bundler => "< 2" do - gemfile <<-G - source "file://#{gem_repo1}" - gem "rack" - gem "rack-obama", "1.1" - G - - bundle :install, forgotten_command_line_options(:frozen => true) - expect(out).to include("deployment mode") - expect(out).to include("You have added to the Gemfile") - expect(out).to include("* rack-obama (= 1.1)") - expect(out).not_to include("You have deleted from the Gemfile") - expect(out).not_to include("You have changed in the Gemfile") - end - it "explodes if you remove a gem and don't check in the lockfile" do gemfile <<-G source "file://#{gem_repo1}" @@ -234,10 +219,10 @@ RSpec.describe "install with --deployment or --frozen" do G bundle :install, forgotten_command_line_options(:deployment => true) - expect(out).to include("deployment mode") - expect(out).to include("You have added to the Gemfile:\n* activesupport\n\n") - expect(out).to include("You have deleted from the Gemfile:\n* rack") - expect(out).not_to include("You have changed in the Gemfile") + expect(err).to include("deployment mode") + expect(err).to include("You have added to the Gemfile:\n* activesupport\n\n") + expect(err).to include("You have deleted from the Gemfile:\n* rack") + expect(err).not_to include("You have changed in the Gemfile") end it "explodes if you add a source" do @@ -247,9 +232,9 @@ RSpec.describe "install with --deployment or --frozen" do G bundle :install, forgotten_command_line_options(:deployment => true) - expect(out).to include("deployment mode") - expect(out).to include("You have added to the Gemfile:\n* source: git://hubz.com (at master)") - expect(out).not_to include("You have changed in the Gemfile") + expect(err).to include("deployment mode") + expect(err).to include("You have added to the Gemfile:\n* source: git://hubz.com (at master)") + expect(err).not_to include("You have changed in the Gemfile") end it "explodes if you unpin a source" do @@ -266,10 +251,10 @@ RSpec.describe "install with --deployment or --frozen" do G bundle :install, forgotten_command_line_options(:deployment => true) - expect(out).to include("deployment mode") - expect(out).to include("You have deleted from the Gemfile:\n* source: #{lib_path("rack-1.0")} (at master@#{revision_for(lib_path("rack-1.0"))[0..6]}") - expect(out).not_to include("You have added to the Gemfile") - expect(out).not_to include("You have changed in the Gemfile") + expect(err).to include("deployment mode") + expect(err).to include("You have deleted from the Gemfile:\n* source: #{lib_path("rack-1.0")} (at master@#{revision_for(lib_path("rack-1.0"))[0..6]}") + expect(err).not_to include("You have added to the Gemfile") + expect(err).not_to include("You have changed in the Gemfile") end it "explodes if you unpin a source, leaving it pinned somewhere else" do @@ -289,19 +274,15 @@ RSpec.describe "install with --deployment or --frozen" do G bundle :install, forgotten_command_line_options(:deployment => true) - expect(out).to include("deployment mode") - expect(out).to include("You have changed in the Gemfile:\n* rack from `no specified source` to `#{lib_path("rack")} (at master@#{revision_for(lib_path("rack"))[0..6]})`") - expect(out).not_to include("You have added to the Gemfile") - expect(out).not_to include("You have deleted from the Gemfile") + expect(err).to include("deployment mode") + expect(err).to include("You have changed in the Gemfile:\n* rack from `no specified source` to `#{lib_path("rack")} (at master@#{revision_for(lib_path("rack"))[0..6]})`") + expect(err).not_to include("You have added to the Gemfile") + expect(err).not_to include("You have deleted from the Gemfile") end context "when replacing a host with the same host with credentials" do let(:success_message) do - if Bundler::VERSION.split(".", 2).first == "1" - "Could not reach host localgemserver.test" - else - "Bundle complete!" - end + "Bundle complete!" end before do @@ -322,31 +303,33 @@ RSpec.describe "install with --deployment or --frozen" do DEPENDENCIES rack G + + bundle! "config set --local deployment true" end it "prevents the replace by default" do - bundle :install, forgotten_command_line_options(:deployment => true) + bundle :install - expect(out).to match(/The list of sources changed/) + expect(err).to match(/The list of sources changed/) end context "when allow_deployment_source_credential_changes is true" do - before { bundle! "config allow_deployment_source_credential_changes true" } + before { bundle! "config set allow_deployment_source_credential_changes true" } it "allows the replace" do - bundle :install, forgotten_command_line_options(:deployment => true) + bundle :install expect(out).to match(/#{success_message}/) end end context "when allow_deployment_source_credential_changes is false" do - before { bundle! "config allow_deployment_source_credential_changes false" } + before { bundle! "config set allow_deployment_source_credential_changes false" } it "prevents the replace" do - bundle :install, forgotten_command_line_options(:deployment => true) + bundle :install - expect(out).to match(/The list of sources changed/) + expect(err).to match(/The list of sources changed/) end end @@ -354,7 +337,7 @@ RSpec.describe "install with --deployment or --frozen" do before { ENV["BUNDLE_ALLOW_DEPLOYMENT_SOURCE_CREDENTIAL_CHANGES"] = "true" } it "allows the replace" do - bundle :install, forgotten_command_line_options(:deployment => true) + bundle :install expect(out).to match(/#{success_message}/) end @@ -364,9 +347,9 @@ RSpec.describe "install with --deployment or --frozen" do before { ENV["BUNDLE_ALLOW_DEPLOYMENT_SOURCE_CREDENTIAL_CHANGES"] = "false" } it "prevents the replace" do - bundle :install, forgotten_command_line_options(:deployment => true) + bundle :install - expect(out).to match(/The list of sources changed/) + expect(err).to match(/The list of sources changed/) end end end @@ -374,7 +357,7 @@ RSpec.describe "install with --deployment or --frozen" do it "remembers that the bundle is frozen at runtime" do bundle! :lock - bundle! "config deployment true" + bundle! "config set --local deployment true" gemfile <<-G source "file://#{gem_repo1}" @@ -412,7 +395,8 @@ You have deleted from the Gemfile: expect(out).to include("Updating files in vendor/cache") simulate_new_machine - bundle! "install --verbose", forgotten_command_line_options(:deployment => true) + bundle! "config set --local deployment true" + bundle! "install --verbose" expect(out).not_to include("You are trying to install in deployment mode after changing your Gemfile") expect(out).not_to include("You have added to the Gemfile") expect(out).not_to include("You have deleted from the Gemfile") diff --git a/spec/install/failure_spec.rb b/spec/install/failure_spec.rb index 49e2771dca..ac3c707187 100644 --- a/spec/install/failure_spec.rb +++ b/spec/install/failure_spec.rb @@ -18,7 +18,7 @@ RSpec.describe "bundle install" do source "file:\/\/localhost#{gem_repo2}" gem "rails" G - expect(last_command.bundler_err).to end_with(normalize_uri_file(<<-M.strip)) + expect(err).to end_with(normalize_uri_file(<<-M.strip)) An error occurred while installing activesupport (2.3.2), and Bundler cannot continue. Make sure that `gem install activesupport -v '2.3.2' --source 'file://localhost#{gem_repo2}/'` succeeds before bundling. @@ -46,7 +46,7 @@ In Gemfile: gem "activesupport", :git => "#{lib_path("activesupport")}" G - expect(last_command.bundler_err).to end_with(<<-M.strip) + expect(err).to end_with(<<-M.strip) An error occurred while installing activesupport (2.3.2), and Bundler cannot continue. In Gemfile: @@ -77,7 +77,7 @@ In Gemfile: end G - expect(last_command.bundler_err).to end_with(<<-M.strip) + expect(err).to end_with(<<-M.strip) An error occurred while installing activesupport (2.3.2), and Bundler cannot continue. @@ -111,7 +111,7 @@ In Gemfile: gem "rails" end G - expect(last_command.bundler_err).to end_with(normalize_uri_file(<<-M.strip)) + expect(err).to end_with(normalize_uri_file(<<-M.strip)) An error occurred while installing activesupport (2.3.2), and Bundler cannot continue. Make sure that `gem install activesupport -v '2.3.2' --source 'file://localhost#{gem_repo2}/'` succeeds before bundling. diff --git a/spec/install/gemfile/gemspec_spec.rb b/spec/install/gemfile/gemspec_spec.rb index 833b409801..bf1f4d7b9a 100644 --- a/spec/install/gemfile/gemspec_spec.rb +++ b/spec/install/gemfile/gemspec_spec.rb @@ -65,7 +65,7 @@ RSpec.describe "bundle install from an existing gemspec" do source "file://#{gem_repo2}" gemspec :path => '#{tmp.join("foo")}' G - expect(last_command.bundler_err).to match(/There are no gemspecs at #{tmp.join('foo')}/) + expect(err).to match(/There are no gemspecs at #{tmp.join('foo')}/) end it "should raise if there are too many gemspecs available" do @@ -77,7 +77,7 @@ RSpec.describe "bundle install from an existing gemspec" do source "file://#{gem_repo2}" gemspec :path => '#{tmp.join("foo")}' G - expect(last_command.bundler_err).to match(/There are multiple gemspecs at #{tmp.join('foo')}/) + expect(err).to match(/There are multiple gemspecs at #{tmp.join('foo')}/) end it "should pick a specific gemspec" do @@ -117,7 +117,7 @@ RSpec.describe "bundle install from an existing gemspec" do build_lib("foo", :path => tmp.join("foo")) do |s| s.write("Gemfile", "source 'file://#{gem_repo1}'\ngemspec") s.add_dependency "actionpack", "=2.3.2" - s.add_development_dependency "rake", "=10.0.2" + s.add_development_dependency "rake", "=12.3.2" end Dir.chdir(tmp.join("foo")) do @@ -239,7 +239,7 @@ RSpec.describe "bundle install from an existing gemspec" do expect(the_bundle).to include_gems "foo 1.0.0" end - it "does not break Gem.finish_resolve with conflicts", :rubygems => ">= 2" do + it "does not break Gem.finish_resolve with conflicts" do build_lib("foo", :path => tmp.join("foo")) do |s| s.version = "1.0.0" s.add_dependency "bar", "= 1.0.0" @@ -297,7 +297,7 @@ RSpec.describe "bundle install from an existing gemspec" do bundle :install, forgotten_command_line_options(:deployment => true) - expect(out).to include("changed") + expect(err).to include("changed") end end end @@ -447,7 +447,7 @@ RSpec.describe "bundle install from an existing gemspec" do end end - context "on ruby", :bundler => "< 2" do + context "on ruby" do before do simulate_platform("ruby") bundle :install @@ -547,107 +547,6 @@ RSpec.describe "bundle install from an existing gemspec" do end end end - - context "on ruby", :bundler => "2" do - before do - simulate_platform("ruby") - bundle :install - end - - context "as a runtime dependency" do - it "keeps java dependencies in the lockfile" do - expect(the_bundle).to include_gems "foo 1.0", "platform_specific 1.0 RUBY" - expect(lockfile).to eq normalize_uri_file(strip_whitespace(<<-L)) - GEM - remote: file://localhost#{gem_repo2}/ - specs: - platform_specific (1.0) - platform_specific (1.0-java) - - PATH - remote: . - specs: - foo (1.0) - platform_specific - - PLATFORMS - java - ruby - - DEPENDENCIES - foo! - - BUNDLED WITH - #{Bundler::VERSION} - L - end - end - - context "as a development dependency" do - let(:platform_specific_type) { :development } - - it "keeps java dependencies in the lockfile" do - expect(the_bundle).to include_gems "foo 1.0", "platform_specific 1.0 RUBY" - expect(lockfile).to eq normalize_uri_file(strip_whitespace(<<-L)) - GEM - remote: file://localhost#{gem_repo2}/ - specs: - platform_specific (1.0) - platform_specific (1.0-java) - - PATH - remote: . - specs: - foo (1.0) - - PLATFORMS - java - ruby - - DEPENDENCIES - foo! - platform_specific - - BUNDLED WITH - #{Bundler::VERSION} - L - end - end - - context "with an indirect platform-specific development dependency" do - let(:platform_specific_type) { :development } - let(:dependency) { "indirect_platform_specific" } - - it "keeps java dependencies in the lockfile" do - expect(the_bundle).to include_gems "foo 1.0", "indirect_platform_specific 1.0", "platform_specific 1.0 RUBY" - expect(lockfile).to eq normalize_uri_file(strip_whitespace(<<-L)) - GEM - remote: file://localhost#{gem_repo2}/ - specs: - indirect_platform_specific (1.0) - platform_specific - platform_specific (1.0) - platform_specific (1.0-java) - - PATH - remote: . - specs: - foo (1.0) - - PLATFORMS - java - ruby - - DEPENDENCIES - foo! - indirect_platform_specific - - BUNDLED WITH - #{Bundler::VERSION} - L - end - end - end end end diff --git a/spec/install/gemfile/git_spec.rb b/spec/install/gemfile/git_spec.rb index 08fe21cacf..8ca22f1d87 100644 --- a/spec/install/gemfile/git_spec.rb +++ b/spec/install/gemfile/git_spec.rb @@ -26,13 +26,13 @@ RSpec.describe "bundle install with git sources" do expect(out).to eq("WIN") end - it "caches the git repo", :bundler => "< 2" do + it "caches the git repo", :bundler => "< 3" do expect(Dir["#{default_bundle_path}/cache/bundler/git/foo-1.0-*"]).to have_attributes :size => 1 end it "caches the git repo globally" do simulate_new_machine - bundle! "config global_gem_cache true" + bundle! "config set global_gem_cache true" bundle! :install expect(Dir["#{home}/.bundle/cache/git/foo-1.0-*"]).to have_attributes :size => 1 end @@ -87,7 +87,7 @@ RSpec.describe "bundle install with git sources" do gem "foo", "1.1", :git => "#{lib_path("foo-1.0")}" G - expect(out).to include("The source contains 'foo' at: 1.0") + expect(err).to include("The source contains 'foo' at: 1.0") end it "complains with version and platform if pinned specs don't exist in the git repo" do @@ -103,7 +103,7 @@ RSpec.describe "bundle install with git sources" do end G - expect(out).to include("The source contains 'only_java' at: 1.0 java") + expect(err).to include("The source contains 'only_java' at: 1.0 java") end it "complains with multiple versions and platforms if pinned specs don't exist in the git repo" do @@ -124,7 +124,7 @@ RSpec.describe "bundle install with git sources" do end G - expect(out).to include("The source contains 'only_java' at: 1.0 java, 1.1 java") + expect(err).to include("The source contains 'only_java' at: 1.0 java, 1.1 java") end it "still works after moving the application directory" do @@ -204,7 +204,7 @@ RSpec.describe "bundle install with git sources" do gem "foo" end G - expect(err).to lack_errors + expect(err).to be_empty run <<-RUBY require 'foo' @@ -221,7 +221,7 @@ RSpec.describe "bundle install with git sources" do end Dir.chdir(lib_path("foo-1.0")) do - `git update-ref -m 'Bundler Spec!' refs/bundler/1 master~1` + `git update-ref -m "Bundler Spec!" refs/bundler/1 master~1` end # want to ensure we don't fallback to HEAD @@ -234,7 +234,7 @@ RSpec.describe "bundle install with git sources" do gem "foo" end G - expect(err).to lack_errors + expect(err).to be_empty run! <<-RUBY require 'foo' @@ -257,7 +257,7 @@ RSpec.describe "bundle install with git sources" do end Dir.chdir(lib_path("foo-1.0")) do - `git update-ref -m 'Bundler Spec!' refs/bundler/1 master~1` + `git update-ref -m "Bundler Spec!" refs/bundler/1 master~1` end # want to ensure we don't fallback to HEAD @@ -270,7 +270,7 @@ RSpec.describe "bundle install with git sources" do gem "foo" end G - expect(err).to lack_errors + expect(err).to be_empty run! <<-RUBY require 'foo' @@ -282,10 +282,10 @@ RSpec.describe "bundle install with git sources" do it "does not download random non-head refs" do Dir.chdir(lib_path("foo-1.0")) do - sys_exec!("git update-ref -m 'Bundler Spec!' refs/bundler/1 master~1") + sys_exec!('git update-ref -m "Bundler Spec!" refs/bundler/1 master~1') end - bundle! "config global_gem_cache true" + bundle! "config set global_gem_cache true" install_gemfile! <<-G git "#{lib_path("foo-1.0")}" do @@ -294,7 +294,7 @@ RSpec.describe "bundle install with git sources" do G # ensure we also git fetch after cloning - bundle! :update, :all => bundle_update_requires_all? + bundle! :update, :all => true Dir.chdir(Dir[home(".bundle/cache/git/foo-*")].first) do sys_exec("git ls-remote .") @@ -406,7 +406,7 @@ RSpec.describe "bundle install with git sources" do gem "rack", :git => "#{lib_path("rack-0.8")}", :branch => "master" G - bundle! %(config local.rack #{lib_path("local-rack")}) + bundle! %(config set local.rack #{lib_path("local-rack")}) bundle! :install run "require 'rack'" @@ -427,7 +427,7 @@ RSpec.describe "bundle install with git sources" do gem "rack", :git => "#{lib_path("rack-0.8")}", :branch => "master" G - bundle %(config local.rack #{lib_path("local-rack")}) + bundle %(config set local.rack #{lib_path("local-rack")}) run "require 'rack'" expect(out).to eq("LOCAL") end @@ -447,7 +447,7 @@ RSpec.describe "bundle install with git sources" do gem "rack", :git => "#{lib_path("rack-0.8")}", :branch => "master" G - bundle! %(config local.rack #{lib_path("local-rack")}) + bundle! %(config set local.rack #{lib_path("local-rack")}) bundle! :install run! "require 'rack'" expect(out).to eq("LOCAL") @@ -470,7 +470,7 @@ RSpec.describe "bundle install with git sources" do s.add_dependency "nokogiri", "1.4.2" end - bundle %(config local.rack #{lib_path("local-rack")}) + bundle %(config set local.rack #{lib_path("local-rack")}) run "require 'rack'" lockfile1 = File.read(bundled_app("Gemfile.lock")) @@ -490,14 +490,14 @@ RSpec.describe "bundle install with git sources" do FileUtils.cp_r("#{lib_path("rack-0.8")}/.", lib_path("local-rack")) update_git "rack", "0.8", :path => lib_path("local-rack") - bundle %(config local.rack #{lib_path("local-rack")}) + bundle %(config set local.rack #{lib_path("local-rack")}) bundle :install lockfile1 = File.read(bundled_app("Gemfile.lock")) expect(lockfile1).not_to eq(lockfile0) end - it "explodes if given path does not exist on install" do + it "explodes and gives correct solution if given path does not exist on install" do build_git "rack", "0.8" install_gemfile <<-G @@ -505,12 +505,20 @@ RSpec.describe "bundle install with git sources" do gem "rack", :git => "#{lib_path("rack-0.8")}", :branch => "master" G - bundle %(config local.rack #{lib_path("local-rack")}) + bundle %(config set local.rack #{lib_path("local-rack")}) bundle :install - expect(out).to match(/Cannot use local override for rack-0.8 because #{Regexp.escape(lib_path('local-rack').to_s)} does not exist/) + expect(err).to match(/Cannot use local override for rack-0.8 because #{Regexp.escape(lib_path('local-rack').to_s)} does not exist/) + + solution = "config unset local.rack" + expect(err).to match(/Run `bundle #{solution}` to remove the local override/) + + bundle solution + bundle :install + + expect(err).to be_empty end - it "explodes if branch is not given on install" do + it "explodes and gives correct solution if branch is not given on install" do build_git "rack", "0.8" FileUtils.cp_r("#{lib_path("rack-0.8")}/.", lib_path("local-rack")) @@ -519,9 +527,17 @@ RSpec.describe "bundle install with git sources" do gem "rack", :git => "#{lib_path("rack-0.8")}" G - bundle %(config local.rack #{lib_path("local-rack")}) + bundle %(config set local.rack #{lib_path("local-rack")}) bundle :install - expect(out).to match(/cannot use local override/i) + expect(err).to match(/Cannot use local override for rack-0.8 at #{Regexp.escape(lib_path('local-rack').to_s)} because :branch is not specified in Gemfile/) + + solution = "config unset local.rack" + expect(err).to match(/Specify a branch or run `bundle #{solution}` to remove the local override/) + + bundle solution + bundle :install + + expect(err).to be_empty end it "does not explode if disable_local_branch_check is given" do @@ -533,8 +549,8 @@ RSpec.describe "bundle install with git sources" do gem "rack", :git => "#{lib_path("rack-0.8")}" G - bundle %(config local.rack #{lib_path("local-rack")}) - bundle %(config disable_local_branch_check true) + bundle %(config set local.rack #{lib_path("local-rack")}) + bundle %(config set disable_local_branch_check true) bundle :install expect(out).to match(/Bundle complete!/) end @@ -553,9 +569,9 @@ RSpec.describe "bundle install with git sources" do gem "rack", :git => "#{lib_path("rack-0.8")}", :branch => "master" G - bundle %(config local.rack #{lib_path("local-rack")}) + bundle %(config set local.rack #{lib_path("local-rack")}) bundle :install - expect(out).to match(/is using branch another but Gemfile specifies master/) + expect(err).to match(/is using branch another but Gemfile specifies master/) end it "explodes on invalid revision on install" do @@ -570,9 +586,9 @@ RSpec.describe "bundle install with git sources" do gem "rack", :git => "#{lib_path("rack-0.8")}", :branch => "master" G - bundle %(config local.rack #{lib_path("local-rack")}) + bundle %(config set local.rack #{lib_path("local-rack")}) bundle :install - expect(out).to match(/The Gemfile lock is pointing to revision \w+/) + expect(err).to match(/The Gemfile lock is pointing to revision \w+/) end end @@ -709,7 +725,7 @@ RSpec.describe "bundle install with git sources" do build_lib "bar", :path => lib_path("foo/bar"), :gemspec => false do |s| s.write lib_path("foo/bar/lib/version.rb"), %(BAR_VERSION = '1.0') s.write "bar.gemspec", <<-G - $:.unshift Dir.pwd # For 1.9 + $:.unshift Dir.pwd require 'lib/version' Gem::Specification.new do |s| s.name = 'bar' @@ -769,7 +785,7 @@ RSpec.describe "bundle install with git sources" do bundle :install - expect(out).to include("Git error:") + expect(err).to include("Git error:") expect(err).to include("fatal") expect(err).to include("omgomg") end @@ -798,14 +814,14 @@ RSpec.describe "bundle install with git sources" do s.write "lib/forced.rb", "FORCED = '1.1'" end - bundle "update", :all => bundle_update_requires_all? + bundle "update", :all => true expect(the_bundle).to include_gems "forced 1.1" Dir.chdir(lib_path("forced-1.0")) do `git reset --hard HEAD^` end - bundle "update", :all => bundle_update_requires_all? + bundle "update", :all => true expect(the_bundle).to include_gems "forced 1.0" end @@ -824,7 +840,7 @@ RSpec.describe "bundle install with git sources" do gem "has_submodule" end G - expect(out).to match(/could not find gem 'submodule/i) + expect(err).to match(/could not find gem 'submodule/i) expect(the_bundle).not_to include_gems "has_submodule 1.0" end @@ -910,7 +926,7 @@ RSpec.describe "bundle install with git sources" do G expect(exitstatus).to_not eq(0) if exitstatus - expect(out).to include("Bundler could not install a gem because it " \ + expect(err).to include("Bundler could not install a gem because it " \ "needs to create a directory, but a file exists " \ "- #{default_bundle_path("bundler")}") end @@ -1014,7 +1030,7 @@ RSpec.describe "bundle install with git sources" do install_gemfile <<-G gem "foo", :git => "file://#{lib_path("foo-1.0")}", :ref => "deadbeef" G - expect(out).to include("Revision deadbeef does not exist in the repository") + expect(err).to include("Revision deadbeef does not exist in the repository") end end @@ -1051,7 +1067,7 @@ RSpec.describe "bundle install with git sources" do bundle :install, :requires => [lib_path("install_hooks.rb")] - expect(err).to eq_err("Ran pre-install hook: foo-1.0") + expect(err_without_deprecations).to eq("Ran pre-install hook: foo-1.0") end it "runs post-install hooks" do @@ -1071,7 +1087,7 @@ RSpec.describe "bundle install with git sources" do bundle :install, :requires => [lib_path("install_hooks.rb")] - expect(err).to eq_err("Ran post-install hook: foo-1.0") + expect(err_without_deprecations).to eq("Ran post-install hook: foo-1.0") end it "complains if the install hook fails" do @@ -1091,7 +1107,7 @@ RSpec.describe "bundle install with git sources" do bundle :install, :requires => [lib_path("install_hooks.rb")] - expect(out).to include("failed for foo-1.0") + expect(err).to include("failed for foo-1.0") end end @@ -1147,7 +1163,7 @@ RSpec.describe "bundle install with git sources" do void Init_foo() { rb_define_global_function("foo", &foo, 0); } C end - `git commit -m 'commit for iteration #{i}' ext/foo.c` + `git commit -m "commit for iteration #{i}" ext/foo.c` end git_commit_sha = git_reader.ref_for("HEAD") @@ -1181,7 +1197,7 @@ RSpec.describe "bundle install with git sources" do gem "foo", :git => "#{lib_path("foo-1.0")}" G - expect(last_command.bundler_err).to end_with(<<-M.strip) + expect(err).to end_with(<<-M.strip) An error occurred while installing foo (1.0), and Bundler cannot continue. In Gemfile: @@ -1190,7 +1206,7 @@ In Gemfile: expect(out).not_to include("gem install foo") end - it "does not reinstall the extension", :ruby_repo, :rubygems => ">= 2.3.0" do + it "does not reinstall the extension", :ruby_repo do build_git "foo" do |s| s.add_dependency "rake" s.extensions << "Rakefile" @@ -1231,7 +1247,7 @@ In Gemfile: expect(out).to eq(installed_time) end - it "does not reinstall the extension when changing another gem", :rubygems => ">= 2.3.0" do + it "does not reinstall the extension when changing another gem", :ruby_repo do build_git "foo" do |s| s.add_dependency "rake" s.extensions << "Rakefile" @@ -1274,7 +1290,7 @@ In Gemfile: expect(out).to eq(installed_time) end - it "does reinstall the extension when changing refs", :rubygems => ">= 2.3.0" do + it "does reinstall the extension when changing refs", :ruby_repo do build_git "foo" do |s| s.add_dependency "rake" s.extensions << "Rakefile" @@ -1362,9 +1378,9 @@ In Gemfile: G with_path_as("") do - bundle "update", :all => bundle_update_requires_all? + bundle "update", :all => true end - expect(last_command.bundler_err). + expect(err). to include("You need to install git to be able to use gems from git repositories. For help installing git, please refer to GitHub's tutorial at https://help.github.com/articles/set-up-git") end @@ -1386,7 +1402,7 @@ In Gemfile: describe "when the git source is overridden with a local git repo" do before do - bundle! "config --global local.foo #{lib_path("foo")}" + bundle! "config set --global local.foo #{lib_path("foo")}" end describe "and git output is colorized" do @@ -1421,7 +1437,7 @@ In Gemfile: G expect(last_command.stdboth).to_not include("password1") - expect(last_command.stdout).to include("Fetching https://user1@github.com/company/private-repo") + expect(out).to include("Fetching https://user1@github.com/company/private-repo") end end @@ -1436,7 +1452,7 @@ In Gemfile: G expect(last_command.stdboth).to_not include("oauth_token") - expect(last_command.stdout).to include("Fetching https://x-oauth-basic@github.com/company/private-repo") + expect(out).to include("Fetching https://x-oauth-basic@github.com/company/private-repo") end end end diff --git a/spec/install/gemfile/groups_spec.rb b/spec/install/gemfile/groups_spec.rb index 19c379e188..f836499148 100644 --- a/spec/install/gemfile/groups_spec.rb +++ b/spec/install/gemfile/groups_spec.rb @@ -25,7 +25,7 @@ RSpec.describe "bundle install with groups" do puts ACTIVESUPPORT R - expect(err).to eq_err("ZOMG LOAD ERROR") + expect(err_without_deprecations).to eq("ZOMG LOAD ERROR") end it "installs gems with inline :groups into those groups" do @@ -36,7 +36,7 @@ RSpec.describe "bundle install with groups" do puts THIN R - expect(err).to eq_err("ZOMG LOAD ERROR") + expect(err_without_deprecations).to eq("ZOMG LOAD ERROR") end it "sets up everything if Bundler.setup is used with no groups" do @@ -57,7 +57,7 @@ RSpec.describe "bundle install with groups" do puts THIN RUBY - expect(err).to eq_err("ZOMG LOAD ERROR") + expect(err_without_deprecations).to eq("ZOMG LOAD ERROR") end it "sets up old groups when they have previously been removed" do @@ -192,22 +192,22 @@ RSpec.describe "bundle install with groups" do expect(the_bundle).not_to include_gems "thin 1.0" end - it "does remove groups from without when passed at --with", :bundler => "< 2" do + it "does remove groups from without when passed at --with", :bundler => "< 3" do bundle :install, forgotten_command_line_options(:without => "emo") bundle :install, forgotten_command_line_options(:with => "emo") expect(the_bundle).to include_gems "activesupport 2.3.5" end - it "does remove groups from with when passed at --without", :bundler => "< 2" do + it "does remove groups from with when passed at --without", :bundler => "< 3" do bundle :install, forgotten_command_line_options(:with => "debugging") bundle :install, forgotten_command_line_options(:without => "debugging") expect(the_bundle).not_to include_gem "thin 1.0" end - it "errors out when passing a group to with and without via CLI flags", :bundler => "< 2" do + it "errors out when passing a group to with and without via CLI flags", :bundler => "< 3" do bundle :install, forgotten_command_line_options(:with => "emo debugging", :without => "emo") expect(last_command).to be_failure - expect(out).to include("The offending groups are: emo") + expect(err).to include("The offending groups are: emo") end it "allows the BUNDLE_WITH setting to override BUNDLE_WITHOUT" do diff --git a/spec/install/gemfile/lockfile_spec.rb b/spec/install/gemfile/lockfile_spec.rb index dc1baca6ea..96cd5067be 100644 --- a/spec/install/gemfile/lockfile_spec.rb +++ b/spec/install/gemfile/lockfile_spec.rb @@ -16,7 +16,7 @@ RSpec.describe "bundle install with a lockfile present" do context "with plugins disabled" do before do - bundle! "config plugins false" + bundle! "config set plugins false" subject end diff --git a/spec/install/gemfile/path_spec.rb b/spec/install/gemfile/path_spec.rb index 44d1e67106..c6856ac974 100644 --- a/spec/install/gemfile/path_spec.rb +++ b/spec/install/gemfile/path_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true RSpec.describe "bundle install with explicit source paths" do - it "fetches gems with a global path source", :bundler => "< 2" do + it "fetches gems with a global path source", :bundler => "< 3" do build_lib "foo" install_gemfile <<-G @@ -66,8 +66,8 @@ RSpec.describe "bundle install with explicit source paths" do install_gemfile <<-G gem 'foo', :path => "~#{username}/#{relative_path}" G - expect(out).to match("There was an error while trying to use the path `~#{username}/#{relative_path}`.") - expect(out).to match("user #{username} doesn't exist") + expect(err).to match("There was an error while trying to use the path `~#{username}/#{relative_path}`.") + expect(err).to match("user #{username} doesn't exist") end it "expands paths relative to Bundler.root" do @@ -167,7 +167,7 @@ RSpec.describe "bundle install with explicit source paths" do expect(the_bundle).to include_gems "premailer 1.0.0" end - it "warns on invalid specs", :rubygems => "1.7" do + it "warns on invalid specs" do build_lib "foo" gemspec = lib_path("foo-1.0").join("foo.gemspec").to_s @@ -183,11 +183,11 @@ RSpec.describe "bundle install with explicit source paths" do gem "foo", :path => "#{lib_path("foo-1.0")}" G - expect(out).to_not include("ERROR REPORT") - expect(out).to_not include("Your Gemfile has no gem server sources.") - expect(out).to match(/is not valid. Please fix this gemspec./) - expect(out).to match(/The validation error was 'missing value for attribute version'/) - expect(out).to match(/You have one or more invalid gemspecs that need to be fixed/) + expect(err).to_not include("ERROR REPORT") + expect(err).to_not include("Your Gemfile has no gem server sources.") + expect(err).to match(/is not valid. Please fix this gemspec./) + expect(err).to match(/The validation error was 'missing value for attribute version'/) + expect(err).to match(/You have one or more invalid gemspecs that need to be fixed/) end it "supports gemspec syntax" do @@ -274,7 +274,7 @@ RSpec.describe "bundle install with explicit source paths" do G expect(exitstatus).to eq(15) if exitstatus - expect(out).to match(/There are multiple gemspecs/) + expect(err).to match(/There are multiple gemspecs/) end it "allows :name to be specified to resolve ambiguity" do @@ -313,7 +313,7 @@ RSpec.describe "bundle install with explicit source paths" do install_gemfile <<-G gem 'foo', '1.0', :path => "#{lib_path("foo-1.0")}" G - expect(err).to lack_errors + expect(err).to be_empty end it "removes the .gem file after installing" do @@ -575,7 +575,7 @@ RSpec.describe "bundle install with explicit source paths" do bundle :install, :requires => [lib_path("install_hooks.rb")] - expect(err).to eq_err("Ran pre-install hook: foo-1.0") + expect(err_without_deprecations).to eq("Ran pre-install hook: foo-1.0") end it "runs post-install hooks" do @@ -595,7 +595,7 @@ RSpec.describe "bundle install with explicit source paths" do bundle :install, :requires => [lib_path("install_hooks.rb")] - expect(err).to eq_err("Ran post-install hook: foo-1.0") + expect(err_without_deprecations).to eq("Ran post-install hook: foo-1.0") end it "complains if the install hook fails" do @@ -615,7 +615,7 @@ RSpec.describe "bundle install with explicit source paths" do bundle :install, :requires => [lib_path("install_hooks.rb")] - expect(out).to include("failed for foo-1.0") + expect(err).to include("failed for foo-1.0") end it "loads plugins from the path gem" do diff --git a/spec/install/gemfile/platform_spec.rb b/spec/install/gemfile/platform_spec.rb index bfdf9b68c8..891f766cc0 100644 --- a/spec/install/gemfile/platform_spec.rb +++ b/spec/install/gemfile/platform_spec.rb @@ -230,7 +230,7 @@ RSpec.describe "bundle install across platforms" do expect(the_bundle).to include_gems "nokogiri 1.4.2 JAVA", "weakling 0.0.3" end - it "works with gems that have extra platform-specific runtime dependencies", :bundler => "< 2" do + it "works with gems that have extra platform-specific runtime dependencies", :bundler => "< 3" do simulate_platform x64_mac update_repo2 do @@ -248,9 +248,9 @@ RSpec.describe "bundle install across platforms" do gem "facter" G - expect(out).to include "Unable to use the platform-specific (universal-darwin) version of facter (2.4.6) " \ + expect(err).to include "Unable to use the platform-specific (universal-darwin) version of facter (2.4.6) " \ "because it has different dependencies from the ruby version. " \ - "To use the platform-specific version of the gem, run `bundle config specific_platform true` and install again." + "To use the platform-specific version of the gem, run `bundle config set specific_platform true` and install again." expect(the_bundle).to include_gem "facter 2.4.6" expect(the_bundle).not_to include_gem "CFPropertyList" @@ -265,8 +265,7 @@ RSpec.describe "bundle install across platforms" do bundle! :install, forgotten_command_line_options(:path => "vendor/bundle") - new_version = Gem::ConfigMap[:ruby_version] == "1.8" ? "1.9.1" : "1.8" - FileUtils.mv(vendored_gems, bundled_app("vendor/bundle", Gem.ruby_engine, new_version)) + FileUtils.mv(vendored_gems, bundled_app("vendor/bundle", Gem.ruby_engine, "1.8")) bundle! :install expect(vendored_gems("gems/rack-1.0.0")).to exist @@ -385,13 +384,13 @@ RSpec.describe "bundle install with platform conditionals" do bundle! "install" - expect(out).to include <<-O.strip + expect(err).to include <<-O.strip The dependency #{Gem::Dependency.new("rack", ">= 0")} will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java`. O end context "when disable_platform_warnings is true" do - before { bundle! "config disable_platform_warnings true" } + before { bundle! "config set disable_platform_warnings true" } it "does not print the warning when a dependency is unused on any platform" do simulate_platform "ruby" diff --git a/spec/install/gemfile/ruby_spec.rb b/spec/install/gemfile/ruby_spec.rb index 24fe021fa3..3373c9bd3e 100644 --- a/spec/install/gemfile/ruby_spec.rb +++ b/spec/install/gemfile/ruby_spec.rb @@ -103,6 +103,6 @@ RSpec.describe "ruby requirement" do gem "rack" G - expect(out).to include("There was an error parsing") # i.e. DSL error, not error template + expect(err).to include("There was an error parsing") # i.e. DSL error, not error template end end diff --git a/spec/install/gemfile/sources_spec.rb b/spec/install/gemfile/sources_spec.rb index 384deca7c2..8e1205dfa3 100644 --- a/spec/install/gemfile/sources_spec.rb +++ b/spec/install/gemfile/sources_spec.rb @@ -15,7 +15,7 @@ RSpec.describe "bundle install with gems on multiple sources" do end end - context "with multiple toplevel sources" do + context "with multiple toplevel sources", :bundler => "< 3" do let(:repo3_rack_version) { "1.0.0" } before do @@ -25,27 +25,24 @@ RSpec.describe "bundle install with gems on multiple sources" do gem "rack-obama" gem "rack" G - bundle "config major_deprecations true" end - it "warns about ambiguous gems, but installs anyway, prioritizing sources last to first", :bundler => "< 2" do + it "warns about ambiguous gems, but installs anyway, prioritizing sources last to first", :bundler => "2" do bundle :install - expect(out).to have_major_deprecation a_string_including("Your Gemfile contains multiple primary sources.") - expect(out).to include("Warning: the gem 'rack' was found in multiple sources.") - expect(out).to include(normalize_uri_file("Installed from: file://localhost#{gem_repo1}")) + expect(err).to include("Warning: the gem 'rack' was found in multiple sources.") + expect(err).to include(normalize_uri_file("Installed from: file://localhost#{gem_repo1}")) expect(the_bundle).to include_gems("rack-obama 1.0.0", "rack 1.0.0", :source => "remote1") end - it "errors when disable_multisource is set" do - bundle "config disable_multisource true" + it "fails", :bundler => "3" do bundle :install - expect(out).to include("Each source after the first must include a block") + expect(err).to include("Each source after the first must include a block") expect(exitstatus).to eq(4) if exitstatus end end - context "when different versions of the same gem are in multiple sources" do + context "when different versions of the same gem are in multiple sources", :bundler => "< 3" do let(:repo3_rack_version) { "1.2" } before do @@ -55,17 +52,20 @@ RSpec.describe "bundle install with gems on multiple sources" do gem "rack-obama" gem "rack", "1.0.0" # force it to install the working version in repo1 G - bundle "config major_deprecations true" - end - it "warns about ambiguous gems, but installs anyway", :bundler => "< 2" do bundle :install + end - expect(out).to have_major_deprecation a_string_including("Your Gemfile contains multiple primary sources.") - expect(out).to include("Warning: the gem 'rack' was found in multiple sources.") - expect(out).to include(normalize_uri_file("Installed from: file://localhost#{gem_repo1}")) + it "warns about ambiguous gems, but installs anyway", :bundler => "2" do + expect(err).to include("Warning: the gem 'rack' was found in multiple sources.") + expect(err).to include(normalize_uri_file("Installed from: file://localhost#{gem_repo1}")) expect(the_bundle).to include_gems("rack-obama 1.0.0", "rack 1.0.0", :source => "remote1") end + + it "fails", :bundler => "3" do + expect(err).to include("Each source after the first must include a block") + expect(exitstatus).to eq(4) if exitstatus + end end end @@ -187,10 +187,9 @@ RSpec.describe "bundle install with gems on multiple sources" do end end - context "when lockfile_uses_separate_rubygems_sources is set" do + context "when disable_multisource is set" do before do - bundle! "config lockfile_uses_separate_rubygems_sources true" - bundle! "config disable_multisource true" + bundle! "config set disable_multisource true" end it "installs from the same source without any warning" do @@ -237,7 +236,7 @@ RSpec.describe "bundle install with gems on multiple sources" do end end - context "and in yet another source" do + context "and in yet another source", :bundler => "< 3" do before do gemfile <<-G source "file://localhost#{gem_repo1}" @@ -246,19 +245,23 @@ RSpec.describe "bundle install with gems on multiple sources" do gem "depends_on_rack" end G - end - it "installs from the other source and warns about ambiguous gems", :bundler => "< 2" do - bundle "config major_deprecations true" bundle :install - expect(out).to have_major_deprecation a_string_including("Your Gemfile contains multiple primary sources.") - expect(out).to include("Warning: the gem 'rack' was found in multiple sources.") - expect(out).to include(normalize_uri_file("Installed from: file://localhost#{gem_repo2}")) + end + + it "installs from the other source and warns about ambiguous gems", :bundler => "2" do + expect(err).to include("Warning: the gem 'rack' was found in multiple sources.") + expect(err).to include(normalize_uri_file("Installed from: file://localhost#{gem_repo2}")) expect(the_bundle).to include_gems("depends_on_rack 1.0.1", "rack 1.0.0") end + + it "fails", :bundler => "3" do + expect(err).to include("Each source after the first must include a block") + expect(exitstatus).to eq(4) if exitstatus + end end - context "and only the dependency is pinned" do + context "and only the dependency is pinned", :bundler => "< 3" do before do # need this to be broken to check for correct source ordering build_repo gem_repo2 do @@ -276,10 +279,10 @@ RSpec.describe "bundle install with gems on multiple sources" do G end - it "installs the dependency from the pinned source without warning", :bundler => "< 2" do + it "installs the dependency from the pinned source without warning", :bundler => "2" do bundle :install - expect(out).not_to include("Warning: the gem 'rack' was found in multiple sources.") + expect(err).not_to include("Warning: the gem 'rack' was found in multiple sources.") expect(the_bundle).to include_gems("depends_on_rack 1.0.1", "rack 1.0.0") # In https://github.com/bundler/bundler/issues/3585 this failed @@ -287,18 +290,23 @@ RSpec.describe "bundle install with gems on multiple sources" do system_gems [] bundle :install - expect(out).not_to include("Warning: the gem 'rack' was found in multiple sources.") + expect(err).not_to include("Warning: the gem 'rack' was found in multiple sources.") expect(the_bundle).to include_gems("depends_on_rack 1.0.1", "rack 1.0.0") end + + it "fails", :bundler => "3" do + bundle :install + expect(err).to include("Each source after the first must include a block") + expect(exitstatus).to eq(4) if exitstatus + end end end end context "when a top-level gem has an indirect dependency" do - context "when lockfile_uses_separate_rubygems_sources is set" do + context "when disable_multisource is set" do before do - bundle! "config lockfile_uses_separate_rubygems_sources true" - bundle! "config disable_multisource true" + bundle! "config set disable_multisource true" end before do @@ -332,7 +340,7 @@ RSpec.describe "bundle install with gems on multiple sources" do it "installs all gems without warning" do bundle :install - expect(out).not_to include("Warning") + expect(err).not_to include("Warning") expect(the_bundle).to include_gems("depends_on_rack 1.0.1", "rack 1.0.0", "unrelated_gem 1.0.0") end end @@ -348,7 +356,7 @@ RSpec.describe "bundle install with gems on multiple sources" do it "does not find the dependency" do bundle :install - expect(out).to include("Could not find gem 'rack', which is required by gem 'depends_on_rack', in any of the relevant sources") + expect(err).to include("Could not find gem 'rack', which is required by gem 'depends_on_rack', in any of the relevant sources") end end @@ -367,7 +375,7 @@ RSpec.describe "bundle install with gems on multiple sources" do it "installs the dependency from the top-level source without warning" do bundle :install - expect(out).not_to include("Warning") + expect(err).not_to include("Warning") expect(the_bundle).to include_gems("depends_on_rack 1.0.1", "rack 1.0.0", "unrelated_gem 1.0.0") end end @@ -388,7 +396,7 @@ RSpec.describe "bundle install with gems on multiple sources" do it "does not install the gem" do bundle :install - expect(out).to include("Could not find gem 'not_in_repo1'") + expect(err).to include("Could not find gem 'not_in_repo1'") end end @@ -437,7 +445,7 @@ RSpec.describe "bundle install with gems on multiple sources" do it "does not unlock the non-path gem after install" do bundle! :install - bundle! %(exec ruby -e 'puts "OK"'), :env => { :RUBYOPT => "-r#{spec_dir.join("support/hax")}" } + bundle! %(exec ruby -e 'puts "OK"') expect(out).to include("OK") end @@ -456,7 +464,7 @@ RSpec.describe "bundle install with gems on multiple sources" do it "installs the gems without any warning" do bundle :install - expect(out).not_to include("Warning") + expect(err).not_to include("Warning") expect(the_bundle).to include_gems("rack 1.0.0") end end @@ -617,7 +625,39 @@ RSpec.describe "bundle install with gems on multiple sources" do end end - context "when a gem is available from multiple ambiguous sources", :bundler => "2" do + describe "source changed to one containing a higher version of a dependency" do + before do + install_gemfile! <<-G + source "file://#{gem_repo1}" + + gem "rack" + G + + build_repo2 do + build_gem "bar" + end + + build_lib("gemspec_test", :path => tmp.join("gemspec_test")) do |s| + s.add_dependency "bar", "=1.0.0" + end + + install_gemfile <<-G + source "file://#{gem_repo2}" + gem "rack" + gemspec :path => "#{tmp.join("gemspec_test")}" + G + end + + it "keeps the old version", :bundler => "2" do + expect(the_bundle).to include_gems("rack 1.0.0") + end + + it "installs the higher version in the new repo", :bundler => "3" do + expect(the_bundle).to include_gems("rack 1.2") + end + end + + context "when a gem is available from multiple ambiguous sources", :bundler => "3" do it "raises, suggesting a source block" do build_repo4 do build_gem "depends_on_rack" do |s| @@ -634,7 +674,7 @@ RSpec.describe "bundle install with gems on multiple sources" do gem "depends_on_rack" G expect(last_command).to be_failure - expect(last_command.stderr).to eq normalize_uri_file(strip_whitespace(<<-EOS).strip) + expect(err).to eq normalize_uri_file(strip_whitespace(<<-EOS).strip) The gem 'rack' was found in multiple relevant sources. * rubygems repository file://localhost#{gem_repo1}/ or installed locally * rubygems repository file://localhost#{gem_repo4}/ or installed locally diff --git a/spec/install/gemfile/specific_platform_spec.rb b/spec/install/gemfile/specific_platform_spec.rb index 9c725416d5..2c482b7ad4 100644 --- a/spec/install/gemfile/specific_platform_spec.rb +++ b/spec/install/gemfile/specific_platform_spec.rb @@ -2,7 +2,7 @@ RSpec.describe "bundle install with specific_platform enabled" do before do - bundle "config specific_platform true" + bundle "config set specific_platform true" build_repo2 do build_gem("google-protobuf", "3.0.0.alpha.5.0.5.1") diff --git a/spec/install/gemfile_spec.rb b/spec/install/gemfile_spec.rb index e74c5ffe59..c26fbd74e7 100644 --- a/spec/install/gemfile_spec.rb +++ b/spec/install/gemfile_spec.rb @@ -1,4 +1,3 @@ -# encoding: utf-8 # frozen_string_literal: true RSpec.describe "bundle install" do @@ -8,7 +7,7 @@ RSpec.describe "bundle install" do gem 'rails', '~> 4.0.0' gem 'rails', '~> 4.0.0' G - expect(out).to include("more than once") + expect(err).to include("more than once") end end @@ -35,7 +34,7 @@ RSpec.describe "bundle install" do gem 'rack' G - bundle "config --local gemfile #{bundled_app("NotGemfile")}" + bundle "config set --local gemfile #{bundled_app("NotGemfile")}" end it "uses the gemfile to install" do bundle "install" @@ -65,23 +64,7 @@ RSpec.describe "bundle install" do G bundle :install - expect(out).to match(/You passed :lib as an option for gem 'rack', but it is invalid/) - end - end - - context "with prefer_gems_rb set" do - before { bundle! "config prefer_gems_rb true" } - - it "prefers gems.rb to Gemfile" do - create_file("gems.rb", "gem 'bundler'") - create_file("Gemfile", "raise 'wrong Gemfile!'") - - bundle! :install - - expect(bundled_app("gems.rb")).to be_file - expect(bundled_app("Gemfile.lock")).not_to be_file - - expect(the_bundle).to include_gem "bundler #{Bundler::VERSION}" + expect(err).to match(/You passed :lib as an option for gem 'rack', but it is invalid/) end end @@ -116,8 +99,6 @@ RSpec.describe "bundle install" do context "with a Gemfile containing non-US-ASCII characters" do it "reads the Gemfile with the UTF-8 encoding by default" do - skip "Ruby 1.8 has no encodings" if RUBY_VERSION < "1.9" - install_gemfile <<-G str = "Il était une fois ..." puts "The source encoding is: " + str.encoding.name @@ -129,8 +110,6 @@ RSpec.describe "bundle install" do end it "respects the magic encoding comment" do - skip "Ruby 1.8 has no encodings" if RUBY_VERSION < "1.9" - # NOTE: This works thanks to #eval interpreting the magic encoding comment install_gemfile <<-G # encoding: iso-8859-1 diff --git a/spec/install/gems/compact_index_spec.rb b/spec/install/gems/compact_index_spec.rb index 02a37a77d5..e35b630306 100644 --- a/spec/install/gems/compact_index_spec.rb +++ b/spec/install/gems/compact_index_spec.rb @@ -22,7 +22,7 @@ RSpec.describe "compact index api" do G bundle :install, :artifice => "compact_index" - expect(out).to include("' sinatra' is not a valid gem name because it contains whitespace.") + expect(err).to include("' sinatra' is not a valid gem name because it contains whitespace.") end it "should handle nested dependencies" do @@ -60,7 +60,7 @@ RSpec.describe "compact index api" do # can't use `include_gems` here since the `require` will conflict on a # case-insensitive FS run! "Bundler.require; puts Gem.loaded_specs.values_at('rack', 'Rack').map(&:full_name)" - expect(last_command.stdout).to eq("rack-1.0\nRack-0.1") + expect(out).to eq("rack-1.0\nRack-0.1") end it "should handle multiple gem dependencies on the same gem" do @@ -226,7 +226,7 @@ The checksum of /versions does not match the checksum provided by the server! So G bundle :install, :artifice => "compact_index_redirects" - expect(out).to match(/Too many redirects/) + expect(err).to match(/Too many redirects/) end context "when --full-index is specified" do @@ -247,7 +247,7 @@ The checksum of /versions does not match the checksum provided by the server! So gem "rack" G - bundle! "update --full-index", :artifice => "compact_index", :all => bundle_update_requires_all? + bundle! "update --full-index", :artifice => "compact_index", :all => true expect(out).to include("Fetching source index from #{source_uri}") expect(the_bundle).to include_gems "rack 1.0.0" end @@ -255,7 +255,7 @@ The checksum of /versions does not match the checksum provided by the server! So it "does not double check for gems that are only installed locally" do system_gems %w[rack-1.0.0 thin-1.0 net_a-1.0] - bundle! "config --local path.system true" + bundle! "config set --local path.system true" ENV["BUNDLER_SPEC_ALL_REQUESTS"] = strip_whitespace(<<-EOS).strip #{source_uri}/versions #{source_uri}/info/rack @@ -269,7 +269,7 @@ The checksum of /versions does not match the checksum provided by the server! So expect(last_command.stdboth).not_to include "Double checking" end - it "fetches again when more dependencies are found in subsequent sources", :bundler => "< 2" do + it "fetches again when more dependencies are found in subsequent sources", :bundler => "< 3" do build_repo2 do build_gem "back_deps" do |s| s.add_dependency "foo" @@ -328,7 +328,7 @@ The checksum of /versions does not match the checksum provided by the server! So expect(the_bundle).to include_gems "rack 1.2" end - it "considers all possible versions of dependencies from all api gem sources", :bundler => "< 2" do + it "considers all possible versions of dependencies from all api gem sources", :bundler => "< 3" do # In this scenario, the gem "somegem" only exists in repo4. It depends on specific version of activesupport that # exists only in repo1. There happens also be a version of activesupport in repo4, but not the one that version 1.0.0 # of somegem wants. This test makes sure that bundler actually finds version 1.2.3 of active support in the other @@ -352,7 +352,7 @@ The checksum of /versions does not match the checksum provided by the server! So expect(the_bundle).to include_gems "activesupport 1.2.3" end - it "considers all possible versions of dependencies from all api gem sources when using blocks", :bundler => "< 2" do + it "considers all possible versions of dependencies from all api gem sources when using blocks", :bundler => "< 3" do # In this scenario, the gem "somegem" only exists in repo4. It depends on specific version of activesupport that # exists only in repo1. There happens also be a version of activesupport in repo4, but not the one that version 1.0.0 # of somegem wants. This test makes sure that bundler actually finds version 1.2.3 of active support in the other @@ -458,7 +458,7 @@ The checksum of /versions does not match the checksum provided by the server! So expect(the_bundle).to include_gems "foo 1.0" end - it "fetches again when more dependencies are found in subsequent sources using --deployment", :bundler => "< 2" do + it "fetches again when more dependencies are found in subsequent sources using --deployment", :bundler => "< 3" do build_repo2 do build_gem "back_deps" do |s| s.add_dependency "foo" @@ -522,7 +522,7 @@ The checksum of /versions does not match the checksum provided by the server! So expect(the_bundle).to include_gems "rails 2.3.2" end - it "installs the binstubs", :bundler => "< 2" do + it "installs the binstubs", :bundler => "< 3" do gemfile <<-G source "#{source_uri}" gem "rack" @@ -534,7 +534,7 @@ The checksum of /versions does not match the checksum provided by the server! So expect(out).to eq("1.0.0") end - it "installs the bins when using --path and uses autoclean", :bundler => "< 2" do + it "installs the bins when using --path and uses autoclean", :bundler => "< 3" do gemfile <<-G source "#{source_uri}" gem "rack" @@ -545,7 +545,7 @@ The checksum of /versions does not match the checksum provided by the server! So expect(vendored_gems("bin/rackup")).to exist end - it "installs the bins when using --path and uses bundle clean", :bundler => "< 2" do + it "installs the bins when using --path and uses bundle clean", :bundler => "< 3" do gemfile <<-G source "#{source_uri}" gem "rack" @@ -620,7 +620,7 @@ The checksum of /versions does not match the checksum provided by the server! So expect(out).not_to include("#{user}:#{password}") end - it "strips http basic auth creds when warning about ambiguous sources", :bundler => "< 2" do + it "strips http basic auth creds when warning about ambiguous sources", :bundler => "< 3" do gemfile <<-G source "#{basic_auth_source_uri}" source "file://#{gem_repo1}" @@ -628,8 +628,8 @@ The checksum of /versions does not match the checksum provided by the server! So G bundle! :install, :artifice => "compact_index_basic_authentication" - expect(out).to include("Warning: the gem 'rack' was found in multiple sources.") - expect(out).not_to include("#{user}:#{password}") + expect(err).to include("Warning: the gem 'rack' was found in multiple sources.") + expect(err).not_to include("#{user}:#{password}") expect(the_bundle).to include_gems "rack 1.0.0" end @@ -652,7 +652,7 @@ The checksum of /versions does not match the checksum provided by the server! So end it "reads authentication details by host name from bundle config" do - bundle "config #{source_hostname} #{user}:#{password}" + bundle "config set #{source_hostname} #{user}:#{password}" bundle! :install, :artifice => "compact_index_strict_basic_authentication" @@ -662,7 +662,7 @@ The checksum of /versions does not match the checksum provided by the server! So it "reads authentication details by full url from bundle config" do # The trailing slash is necessary here; Fetcher canonicalizes the URI. - bundle "config #{source_uri}/ #{user}:#{password}" + bundle "config set #{source_uri}/ #{user}:#{password}" bundle! :install, :artifice => "compact_index_strict_basic_authentication" @@ -671,7 +671,7 @@ The checksum of /versions does not match the checksum provided by the server! So end it "should use the API" do - bundle "config #{source_hostname} #{user}:#{password}" + bundle "config set #{source_hostname} #{user}:#{password}" bundle! :install, :artifice => "compact_index_strict_basic_authentication" expect(out).to include("Fetching gem metadata from #{source_uri}") expect(the_bundle).to include_gems "rack 1.0.0" @@ -683,7 +683,7 @@ The checksum of /versions does not match the checksum provided by the server! So gem "rack" G - bundle "config #{source_hostname} otheruser:wrong" + bundle "config set #{source_hostname} otheruser:wrong" bundle! :install, :artifice => "compact_index_strict_basic_authentication" expect(the_bundle).to include_gems "rack 1.0.0" @@ -691,14 +691,14 @@ The checksum of /versions does not match the checksum provided by the server! So it "shows instructions if auth is not provided for the source" do bundle :install, :artifice => "compact_index_strict_basic_authentication" - expect(out).to include("bundle config #{source_hostname} username:password") + expect(err).to include("bundle config set #{source_hostname} username:password") end it "fails if authentication has already been provided, but failed" do - bundle "config #{source_hostname} #{user}:wrong" + bundle "config set #{source_hostname} #{user}:wrong" bundle :install, :artifice => "compact_index_strict_basic_authentication" - expect(out).to include("Bad username or password") + expect(err).to include("Bad username or password") end end @@ -737,7 +737,7 @@ The checksum of /versions does not match the checksum provided by the server! So G bundle :install, :env => { "RUBYOPT" => "-I#{bundled_app("broken_ssl")}" } - expect(out).to include("OpenSSL") + expect(err).to include("OpenSSL") end end @@ -757,7 +757,7 @@ The checksum of /versions does not match the checksum provided by the server! So G bundle :install - expect(out).to match(/could not verify the SSL certificate/i) + expect(err).to match(/could not verify the SSL certificate/i) end end @@ -858,12 +858,12 @@ The checksum of /versions does not match the checksum provided by the server! So gem "rack" G expect(exitstatus).to eq(15) if exitstatus - expect(out).to end_with(<<-E.strip) + expect(err).to end_with(<<-E.strip) The request uri `htps://index.rubygems.org/versions` has an invalid scheme (`htps`). Did you mean `http` or `https`? E end - describe "checksum validation", :rubygems => ">= 2.3.0" do + describe "checksum validation" do it "raises when the checksum does not match" do install_gemfile <<-G, :artifice => "compact_index_wrong_gem_checksum" source "#{source_uri}" @@ -871,7 +871,7 @@ The checksum of /versions does not match the checksum provided by the server! So G expect(exitstatus).to eq(19) if exitstatus - expect(out). + expect(err). to include("Bundler cannot continue installing rack (1.0.0)."). and include("The checksum for the downloaded `rack-1.0.0.gem` does not match the checksum given by the server."). and include("This means the contents of the downloaded gem is different from what was uploaded to the server, and could be a potential security issue."). @@ -879,7 +879,7 @@ The checksum of /versions does not match the checksum provided by the server! So and include("1. delete the downloaded gem located at: `#{default_bundle_path}/gems/rack-1.0.0/rack-1.0.0.gem`"). and include("2. run `bundle install`"). and include("If you wish to continue installing the downloaded gem, and are certain it does not pose a security issue despite the mismatching checksum, do the following:"). - and include("1. run `bundle config disable_checksum_validation true` to turn off checksum verification"). + and include("1. run `bundle config set disable_checksum_validation true` to turn off checksum verification"). and include("2. run `bundle install`"). and match(/\(More info: The expected SHA256 checksum was "#{"ab" * 22}", but the checksum for the downloaded gem was ".+?"\.\)/) end @@ -890,11 +890,11 @@ The checksum of /versions does not match the checksum provided by the server! So gem "rack" G expect(exitstatus).to eq(5) if exitstatus - expect(out).to include("The given checksum for rack-1.0.0 (\"checksum!\") is not a valid SHA256 hexdigest nor base64digest") + expect(err).to include("The given checksum for rack-1.0.0 (\"checksum!\") is not a valid SHA256 hexdigest nor base64digest") end it "does not raise when disable_checksum_validation is set" do - bundle! "config disable_checksum_validation true" + bundle! "config set disable_checksum_validation true" install_gemfile! <<-G, :artifice => "compact_index_wrong_gem_checksum" source "#{source_uri}" gem "rack" @@ -915,7 +915,7 @@ The checksum of /versions does not match the checksum provided by the server! So source "#{source_uri}" gem "rails" G - deps = [Gem::Dependency.new("rake", "= 10.0.2"), + deps = [Gem::Dependency.new("rake", "= 12.3.2"), Gem::Dependency.new("actionpack", "= 2.3.2"), Gem::Dependency.new("activerecord", "= 2.3.2"), Gem::Dependency.new("actionmailer", "= 2.3.2"), diff --git a/spec/install/gems/dependency_api_spec.rb b/spec/install/gems/dependency_api_spec.rb index 2ffe4b62d7..0dc1ee87f2 100644 --- a/spec/install/gems/dependency_api_spec.rb +++ b/spec/install/gems/dependency_api_spec.rb @@ -22,7 +22,7 @@ RSpec.describe "gemcutter's dependency API" do G bundle :install, :artifice => "endpoint" - expect(out).to include("' sinatra' is not a valid gem name because it contains whitespace.") + expect(err).to include("' sinatra' is not a valid gem name because it contains whitespace.") end it "should handle nested dependencies" do @@ -216,7 +216,7 @@ RSpec.describe "gemcutter's dependency API" do G bundle :install, :artifice => "endpoint_redirect" - expect(out).to match(/Too many redirects/) + expect(err).to match(/Too many redirects/) end context "when --full-index is specified" do @@ -237,13 +237,13 @@ RSpec.describe "gemcutter's dependency API" do gem "rack" G - bundle! "update --full-index", :artifice => "endpoint", :all => bundle_update_requires_all? + bundle! "update --full-index", :artifice => "endpoint", :all => true expect(out).to include("Fetching source index from #{source_uri}") expect(the_bundle).to include_gems "rack 1.0.0" end end - it "fetches again when more dependencies are found in subsequent sources", :bundler => "< 2" do + it "fetches again when more dependencies are found in subsequent sources", :bundler => "< 3" do build_repo2 do build_gem "back_deps" do |s| s.add_dependency "foo" @@ -302,7 +302,7 @@ RSpec.describe "gemcutter's dependency API" do expect(the_bundle).to include_gems "rack 1.2" end - it "considers all possible versions of dependencies from all api gem sources", :bundler => "< 2" do + it "considers all possible versions of dependencies from all api gem sources", :bundler => "< 3" do # In this scenario, the gem "somegem" only exists in repo4. It depends on specific version of activesupport that # exists only in repo1. There happens also be a version of activesupport in repo4, but not the one that version 1.0.0 # of somegem wants. This test makes sure that bundler actually finds version 1.2.3 of active support in the other @@ -372,7 +372,7 @@ RSpec.describe "gemcutter's dependency API" do expect(out).to include("Fetching source index from http://localgemserver.test/extra") end - it "does not fetch every spec if the index of gems is large when doing back deps", :bundler => "< 2" do + it "does not fetch every spec if the index of gems is large when doing back deps", :bundler => "< 3" do build_repo2 do build_gem "back_deps" do |s| s.add_dependency "foo" @@ -432,7 +432,7 @@ RSpec.describe "gemcutter's dependency API" do expect(the_bundle).to include_gems "foo 1.0" end - it "fetches again when more dependencies are found in subsequent sources using --deployment", :bundler => "< 2" do + it "fetches again when more dependencies are found in subsequent sources using --deployment", :bundler => "< 3" do build_repo2 do build_gem "back_deps" do |s| s.add_dependency "foo" @@ -496,7 +496,7 @@ RSpec.describe "gemcutter's dependency API" do expect(the_bundle).to include_gems "rails 2.3.2" end - it "installs the binstubs", :bundler => "< 2" do + it "installs the binstubs", :bundler => "< 3" do gemfile <<-G source "#{source_uri}" gem "rack" @@ -508,7 +508,7 @@ RSpec.describe "gemcutter's dependency API" do expect(out).to eq("1.0.0") end - it "installs the bins when using --path and uses autoclean", :bundler => "< 2" do + it "installs the bins when using --path and uses autoclean", :bundler => "< 3" do gemfile <<-G source "#{source_uri}" gem "rack" @@ -519,7 +519,7 @@ RSpec.describe "gemcutter's dependency API" do expect(vendored_gems("bin/rackup")).to exist end - it "installs the bins when using --path and uses bundle clean", :bundler => "< 2" do + it "installs the bins when using --path and uses bundle clean", :bundler => "< 3" do gemfile <<-G source "#{source_uri}" gem "rack" @@ -594,7 +594,7 @@ RSpec.describe "gemcutter's dependency API" do expect(out).not_to include("#{user}:#{password}") end - it "strips http basic auth creds when warning about ambiguous sources", :bundler => "< 2" do + it "strips http basic auth creds when warning about ambiguous sources", :bundler => "< 3" do gemfile <<-G source "#{basic_auth_source_uri}" source "file://#{gem_repo1}" @@ -602,8 +602,8 @@ RSpec.describe "gemcutter's dependency API" do G bundle :install, :artifice => "endpoint_basic_authentication" - expect(out).to include("Warning: the gem 'rack' was found in multiple sources.") - expect(out).not_to include("#{user}:#{password}") + expect(err).to include("Warning: the gem 'rack' was found in multiple sources.") + expect(err).not_to include("#{user}:#{password}") expect(the_bundle).to include_gems "rack 1.0.0" end @@ -626,7 +626,7 @@ RSpec.describe "gemcutter's dependency API" do end it "reads authentication details by host name from bundle config" do - bundle "config #{source_hostname} #{user}:#{password}" + bundle "config set #{source_hostname} #{user}:#{password}" bundle :install, :artifice => "endpoint_strict_basic_authentication" @@ -636,7 +636,7 @@ RSpec.describe "gemcutter's dependency API" do it "reads authentication details by full url from bundle config" do # The trailing slash is necessary here; Fetcher canonicalizes the URI. - bundle "config #{source_uri}/ #{user}:#{password}" + bundle "config set #{source_uri}/ #{user}:#{password}" bundle :install, :artifice => "endpoint_strict_basic_authentication" @@ -645,7 +645,7 @@ RSpec.describe "gemcutter's dependency API" do end it "should use the API" do - bundle "config #{source_hostname} #{user}:#{password}" + bundle "config set #{source_hostname} #{user}:#{password}" bundle :install, :artifice => "endpoint_strict_basic_authentication" expect(out).to include("Fetching gem metadata from #{source_uri}") expect(the_bundle).to include_gems "rack 1.0.0" @@ -657,7 +657,7 @@ RSpec.describe "gemcutter's dependency API" do gem "rack" G - bundle "config #{source_hostname} otheruser:wrong" + bundle "config set #{source_hostname} otheruser:wrong" bundle :install, :artifice => "endpoint_strict_basic_authentication" expect(the_bundle).to include_gems "rack 1.0.0" @@ -665,14 +665,14 @@ RSpec.describe "gemcutter's dependency API" do it "shows instructions if auth is not provided for the source" do bundle :install, :artifice => "endpoint_strict_basic_authentication" - expect(out).to include("bundle config #{source_hostname} username:password") + expect(err).to include("bundle config set #{source_hostname} username:password") end it "fails if authentication has already been provided, but failed" do - bundle "config #{source_hostname} #{user}:wrong" + bundle "config set #{source_hostname} #{user}:wrong" bundle :install, :artifice => "endpoint_strict_basic_authentication" - expect(out).to include("Bad username or password") + expect(err).to include("Bad username or password") end end @@ -711,7 +711,7 @@ RSpec.describe "gemcutter's dependency API" do G bundle :install, :env => { "RUBYOPT" => "-I#{bundled_app("broken_ssl")}" } - expect(out).to include("OpenSSL") + expect(err).to include("OpenSSL") end end @@ -731,7 +731,7 @@ RSpec.describe "gemcutter's dependency API" do G bundle :install - expect(out).to match(/could not verify the SSL certificate/i) + expect(err).to match(/could not verify the SSL certificate/i) end end diff --git a/spec/install/gems/flex_spec.rb b/spec/install/gems/flex_spec.rb index 37d2e4958a..d15841124a 100644 --- a/spec/install/gems/flex_spec.rb +++ b/spec/install/gems/flex_spec.rb @@ -209,7 +209,7 @@ RSpec.describe "bundle flex_install" do E bundle :install, :retry => 0 - expect(last_command.bundler_err).to end_with(nice_error) + expect(err).to end_with(nice_error) end end @@ -233,9 +233,9 @@ RSpec.describe "bundle flex_install" do bundle "install" end.not_to change { File.read(bundled_app("Gemfile.lock")) } - expect(out).to include("rack = 0.9.1") - expect(out).to include("locked at 1.0.0") - expect(out).to include("bundle update rack") + expect(err).to include("rack = 0.9.1") + expect(err).to include("locked at 1.0.0") + expect(err).to include("bundle update rack") end it "should work when you update" do @@ -244,7 +244,7 @@ RSpec.describe "bundle flex_install" do end describe "when adding a new source" do - it "updates the lockfile", :bundler => "< 2" do + it "updates the lockfile", :bundler => "< 3" do build_repo2 install_gemfile! <<-G source "file://localhost#{gem_repo1}" @@ -264,7 +264,7 @@ RSpec.describe "bundle flex_install" do rack (1.0.0) PLATFORMS - ruby + #{lockfile_platforms} DEPENDENCIES rack @@ -274,7 +274,7 @@ RSpec.describe "bundle flex_install" do L end - it "updates the lockfile", :bundler => "2" do + it "updates the lockfile", :bundler => "3" do build_repo2 install_gemfile! <<-G source "file://localhost#{gem_repo1}" @@ -345,7 +345,7 @@ RSpec.describe "bundle flex_install" do gem "capybara", "0.3.9" G - expect(out).to include("Gemfile.lock") + expect(err).to include("Gemfile.lock") end end end diff --git a/spec/install/gems/mirror_spec.rb b/spec/install/gems/mirror_spec.rb index 4c35b8f206..ffa6116127 100644 --- a/spec/install/gems/mirror_spec.rb +++ b/spec/install/gems/mirror_spec.rb @@ -8,7 +8,7 @@ RSpec.describe "bundle install with a mirror configured" do gem "rack" G - bundle "config --local mirror.http://gems.example.org http://gem-mirror.example.org" + bundle "config set --local mirror.http://gems.example.org http://gem-mirror.example.org" end it "installs from the normal location" do @@ -26,7 +26,7 @@ RSpec.describe "bundle install with a mirror configured" do gem "rack" G - bundle "config --local mirror.file://localhost#{gem_repo2} file://localhost#{gem_repo1}" + bundle "config set --local mirror.file://localhost#{gem_repo2} file://localhost#{gem_repo1}" end it "installs the gem from the mirror" do diff --git a/spec/install/gems/native_extensions_spec.rb b/spec/install/gems/native_extensions_spec.rb index ea616f60d3..9176a07084 100644 --- a/spec/install/gems/native_extensions_spec.rb +++ b/spec/install/gems/native_extensions_spec.rb @@ -37,7 +37,7 @@ RSpec.describe "installing a gem with native extensions", :ruby_repo do gem "c_extension" G - bundle "config build.c_extension --with-c_extension=hello" + bundle "config set build.c_extension --with-c_extension=hello" bundle "install" expect(out).not_to include("extconf.rb failed") @@ -76,7 +76,48 @@ RSpec.describe "installing a gem with native extensions", :ruby_repo do C end - bundle! "config build.c_extension --with-c_extension=hello" + bundle! "config set build.c_extension --with-c_extension=hello" + + install_gemfile! <<-G + gem "c_extension", :git => #{lib_path("c_extension-1.0").to_s.dump} + G + + expect(out).not_to include("extconf.rb failed") + + run! "Bundler.require; puts CExtension.new.its_true" + expect(out).to eq("true") + end + + it "install with multiple build flags" do + build_git "c_extension" do |s| + s.extensions = ["ext/extconf.rb"] + s.write "ext/extconf.rb", <<-E + require "mkmf" + name = "c_extension_bundle" + dir_config(name) + raise "OMG" unless with_config("c_extension") == "hello" && with_config("c_extension_bundle-dir") == "hola" + create_makefile(name) + E + + s.write "ext/c_extension.c", <<-C + #include "ruby.h" + + VALUE c_extension_true(VALUE self) { + return Qtrue; + } + + void Init_c_extension_bundle() { + VALUE c_Extension = rb_define_class("CExtension", rb_cObject); + rb_define_method(c_Extension, "its_true", c_extension_true, 0); + } + C + + s.write "lib/c_extension.rb", <<-C + require "c_extension_bundle" + C + end + + bundle! "config set build.c_extension --with-c_extension=hello --with-c_extension_bundle-dir=hola" install_gemfile! <<-G gem "c_extension", :git => #{lib_path("c_extension-1.0").to_s.dump} diff --git a/spec/install/gems/post_install_spec.rb b/spec/install/gems/post_install_spec.rb index c6e348fb65..a6894fbc14 100644 --- a/spec/install/gems/post_install_spec.rb +++ b/spec/install/gems/post_install_spec.rb @@ -127,7 +127,7 @@ RSpec.describe "bundle install" do gem "rack" G - bundle "config ignore_messages.rack true" + bundle "config set ignore_messages.rack true" bundle :install expect(out).not_to include("Post-install message") @@ -141,7 +141,7 @@ RSpec.describe "bundle install" do gem "rack" G - bundle "config ignore_messages true" + bundle "config set ignore_messages true" bundle :install expect(out).not_to include("Post-install message") diff --git a/spec/install/gems/resolving_spec.rb b/spec/install/gems/resolving_spec.rb index ddf803ed7d..7bab676cea 100644 --- a/spec/install/gems/resolving_spec.rb +++ b/spec/install/gems/resolving_spec.rb @@ -117,6 +117,26 @@ RSpec.describe "bundle install with install-time dependencies" do expect(out).to_not include("rack-9001.0.0 requires ruby version > 9000") expect(the_bundle).to include_gems("rack 1.2") end + + it "installs the older version under rate limiting conditions" do + build_repo4 do + build_gem "rack", "9001.0.0" do |s| + s.required_ruby_version = "> 9000" + end + build_gem "rack", "1.2" + build_gem "foo1", "1.0" + end + + install_gemfile <<-G, :artifice => "compact_index_rate_limited", :env => { "BUNDLER_SPEC_GEM_REPO" => gem_repo4 } + ruby "#{RUBY_VERSION}" + source "http://localgemserver.test/" + gem 'rack' + gem 'foo1' + G + + expect(out).to_not include("rack-9001.0.0 requires ruby version > 9000") + expect(the_bundle).to include_gems("rack 1.2") + end end context "allows no gems" do @@ -151,7 +171,7 @@ RSpec.describe "bundle install with install-time dependencies" do Ruby\0 (> 9000), which is required by gem 'require_ruby', is not available in the local ruby installation E - expect(last_command.bundler_err).to end_with(nice_error) + expect(err).to end_with(nice_error) end end @@ -187,8 +207,8 @@ RSpec.describe "bundle install with install-time dependencies" do gem 'require_rubygems' G - expect(out).to_not include("Gem::InstallError: require_rubygems requires RubyGems version > 9000") - expect(out).to include("require_rubygems-1.0 requires rubygems version > 9000, which is incompatible with the current version, #{Gem::VERSION}") + expect(err).to_not include("Gem::InstallError: require_rubygems requires RubyGems version > 9000") + expect(err).to include("require_rubygems-1.0 requires rubygems version > 9000, which is incompatible with the current version, #{Gem::VERSION}") end end end diff --git a/spec/install/gems/standalone_spec.rb b/spec/install/gems/standalone_spec.rb index 10ce589eef..68796977a4 100644 --- a/spec/install/gems/standalone_spec.rb +++ b/spec/install/gems/standalone_spec.rb @@ -75,7 +75,7 @@ RSpec.shared_examples "bundle install --standalone" do G end - it "generates a bundle/bundler/setup.rb with the proper paths", :rubygems => "2.4" do + it "generates a bundle/bundler/setup.rb with the proper paths" do expected_path = bundled_app("bundle/bundler/setup.rb") extension_line = File.read(expected_path).each_line.find {|line| line.include? "/extensions/" }.strip expect(extension_line).to start_with '$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/extensions/' @@ -108,8 +108,8 @@ RSpec.shared_examples "bundle install --standalone" do end it "outputs a helpful error message" do - expect(out).to include("You have one or more invalid gemspecs that need to be fixed.") - expect(out).to include("bar 1.0 has an invalid gemspec") + expect(err).to include("You have one or more invalid gemspecs that need to be fixed.") + expect(err).to include("bar 1.0 has an invalid gemspec") end end @@ -175,8 +175,8 @@ RSpec.shared_examples "bundle install --standalone" do RUBY end - expect(last_command.stdout).to eq("2.3.2") - expect(last_command.stderr).to eq("ZOMG LOAD ERROR") + expect(out).to eq("2.3.2") + expect(err).to eq("ZOMG LOAD ERROR") end it "allows --without to limit the groups used in a standalone" do @@ -193,11 +193,11 @@ RSpec.shared_examples "bundle install --standalone" do RUBY end - expect(last_command.stdout).to eq("2.3.2") - expect(last_command.stderr).to eq("ZOMG LOAD ERROR") + expect(out).to eq("2.3.2") + expect(err).to eq("ZOMG LOAD ERROR") end - it "allows --path to change the location of the standalone bundle", :bundler => "< 2" do + it "allows --path to change the location of the standalone bundle", :bundler => "< 3" do bundle! "install", forgotten_command_line_options(:path => "path/to/bundle").merge(:standalone => true) Dir.chdir(bundled_app) do @@ -210,10 +210,10 @@ RSpec.shared_examples "bundle install --standalone" do RUBY end - expect(last_command.stdout).to eq("2.3.2") + expect(out).to eq("2.3.2") end - it "allows --path to change the location of the standalone bundle", :bundler => "2" do + it "allows --path to change the location of the standalone bundle", :bundler => "3" do bundle! "install", forgotten_command_line_options(:path => "path/to/bundle").merge(:standalone => true) path = File.expand_path("path/to/bundle") @@ -227,7 +227,7 @@ RSpec.shared_examples "bundle install --standalone" do RUBY end - expect(last_command.stdout).to eq("2.3.2") + expect(out).to eq("2.3.2") end it "allows remembered --without to limit the groups used in a standalone" do @@ -245,8 +245,8 @@ RSpec.shared_examples "bundle install --standalone" do RUBY end - expect(last_command.stdout).to eq("2.3.2") - expect(last_command.stderr).to eq("ZOMG LOAD ERROR") + expect(out).to eq("2.3.2") + expect(err).to eq("ZOMG LOAD ERROR") end end @@ -273,7 +273,7 @@ RSpec.shared_examples "bundle install --standalone" do end end - describe "with --binstubs", :bundler => "< 2" do + describe "with --binstubs", :bundler => "< 3" do before do gemfile <<-G source "file://#{gem_repo1}" diff --git a/spec/install/gems/sudo_spec.rb b/spec/install/gems/sudo_spec.rb index 1781451c98..fb41f63a07 100644 --- a/spec/install/gems/sudo_spec.rb +++ b/spec/install/gems/sudo_spec.rb @@ -4,7 +4,7 @@ RSpec.describe "when using sudo", :sudo => true do describe "and BUNDLE_PATH is writable" do context "but BUNDLE_PATH/build_info is not writable" do before do - bundle! "config path.system true" + bundle! "config set path.system true" subdir = system_gem_path("cache") subdir.mkpath sudo "chmod u-w #{subdir}" @@ -25,7 +25,7 @@ RSpec.describe "when using sudo", :sudo => true do describe "and GEM_HOME is owned by root" do before :each do - bundle! "config path.system true" + bundle! "config set path.system true" chown_system_gems_to_root end @@ -52,7 +52,7 @@ RSpec.describe "when using sudo", :sudo => true do end it "installs when BUNDLE_PATH is owned by root" do - bundle! "config global_path_appends_ruby_scope false" # consistency in tests between 1.x and 2.x modes + bundle! "config set global_path_appends_ruby_scope false" # consistency in tests between 1.x and 2.x modes bundle_path = tmp("owned_by_root") FileUtils.mkdir_p bundle_path @@ -70,7 +70,7 @@ RSpec.describe "when using sudo", :sudo => true do end it "installs when BUNDLE_PATH does not exist" do - bundle! "config global_path_appends_ruby_scope false" # consistency in tests between 1.x and 2.x modes + bundle! "config set global_path_appends_ruby_scope false" # consistency in tests between 1.x and 2.x modes root_path = tmp("owned_by_root") FileUtils.mkdir_p root_path @@ -88,7 +88,7 @@ RSpec.describe "when using sudo", :sudo => true do expect(the_bundle).to include_gems "rack 1.0" end - it "installs extensions/ compiled by RubyGems 2.2", :rubygems => "2.2" do + it "installs extensions/" do install_gemfile <<-G source "file://#{gem_repo1}" gem "very_simple_binary" @@ -133,7 +133,7 @@ RSpec.describe "when using sudo", :sudo => true do describe "and GEM_HOME is not writable" do it "installs" do - bundle! "config path.system true" + bundle! "config set path.system true" gem_home = tmp("sudo_gem_home") sudo "mkdir -p #{gem_home}" sudo "chmod ugo-w #{gem_home}" @@ -158,20 +158,20 @@ RSpec.describe "when using sudo", :sudo => true do it "warns against that" do bundle :install, :sudo => true - expect(out).to include(warning) + expect(err).to include(warning) end context "when ENV['BUNDLE_SILENCE_ROOT_WARNING'] is set" do it "skips the warning" do bundle :install, :sudo => :preserve_env, :env => { "BUNDLE_SILENCE_ROOT_WARNING" => true } - expect(out).to_not include(warning) + expect(err).to_not include(warning) end end context "when silence_root_warning = false" do it "warns against that" do bundle :install, :sudo => true, :env => { "BUNDLE_SILENCE_ROOT_WARNING" => "false" } - expect(out).to include(warning) + expect(err).to include(warning) end end end diff --git a/spec/install/gemspecs_spec.rb b/spec/install/gemspecs_spec.rb index 35f96367f7..55c7a67b4b 100644 --- a/spec/install/gemspecs_spec.rb +++ b/spec/install/gemspecs_spec.rb @@ -1,4 +1,3 @@ -# encoding: utf-8 # frozen_string_literal: true RSpec.describe "bundle install" do @@ -15,7 +14,7 @@ RSpec.describe "bundle install" do gem "yaml_spec" G bundle :install - expect(err).to lack_errors + expect(err).to be_empty end it "still installs correctly when using path" do @@ -24,7 +23,7 @@ RSpec.describe "bundle install" do install_gemfile <<-G gem 'yaml_spec', :path => "#{lib_path("yaml_spec-1.0")}" G - expect(err).to lack_errors + expect(err).to be_empty end end @@ -65,8 +64,6 @@ RSpec.describe "bundle install" do end it "reads gemspecs respecting their encoding" do - skip "Unicode is not supported on Ruby 1.x without extra work" if RUBY_VERSION < "2.0" - create_file "version.rb", <<-RUBY module Persistent💎 VERSION = "0.0.1" @@ -129,8 +126,8 @@ RSpec.describe "bundle install" do gemspec G - expect(out).to include("Ruby patchlevel") - expect(out).to include("but your Gemfile specified") + expect(err).to include("Ruby patchlevel") + expect(err).to include("but your Gemfile specified") expect(exitstatus).to eq(18) if exitstatus end @@ -146,8 +143,8 @@ RSpec.describe "bundle install" do gemspec G - expect(out).to include("Ruby version") - expect(out).to include("but your Gemfile specified") + expect(err).to include("Ruby version") + expect(err).to include("but your Gemfile specified") expect(exitstatus).to eq(18) if exitstatus end end diff --git a/spec/install/git_spec.rb b/spec/install/git_spec.rb index 6ae718c2a4..68b2f47c10 100644 --- a/spec/install/git_spec.rb +++ b/spec/install/git_spec.rb @@ -2,7 +2,7 @@ RSpec.describe "bundle install" do context "git sources" do - it "displays the revision hash of the gem repository", :bundler => "< 2" do + it "displays the revision hash of the gem repository", :bundler => "< 3" do build_git "foo", "1.0", :path => lib_path("foo") install_gemfile <<-G @@ -14,7 +14,7 @@ RSpec.describe "bundle install" do expect(the_bundle).to include_gems "foo 1.0", :source => "git@#{lib_path("foo")}" end - it "displays the ref of the gem repository when using branch~num as a ref", :bundler => "< 2" do + it "displays the ref of the gem repository when using branch~num as a ref", :bundler => "< 3" do build_git "foo", "1.0", :path => lib_path("foo") rev = revision_for(lib_path("foo"))[0..6] update_git "foo", "2.0", :path => lib_path("foo"), :gemspec => true @@ -31,7 +31,7 @@ RSpec.describe "bundle install" do update_git "foo", "4.0", :path => lib_path("foo"), :gemspec => true - bundle! :update, :all => bundle_update_requires_all? + bundle! :update, :all => true expect(out).to include("Using foo 2.0 (was 1.0) from #{lib_path("foo")} (at master~2@#{rev2})") expect(the_bundle).to include_gems "foo 2.0", :source => "git@#{lib_path("foo")}" end diff --git a/spec/install/global_cache_spec.rb b/spec/install/global_cache_spec.rb index e41e7e0157..345ad86db8 100644 --- a/spec/install/global_cache_spec.rb +++ b/spec/install/global_cache_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true RSpec.describe "global gem caching" do - before { bundle! "config global_gem_cache true" } + before { bundle! "config set global_gem_cache true" } describe "using the cross-application user cache" do let(:source) { "http://localgemserver.test" } @@ -112,7 +112,7 @@ RSpec.describe "global gem caching" do expect(source_global_cache("rack-1.0.0.gem")).to exist expect(source2_global_cache("rack-0.9.1.gem")).to exist bundle :install, :artifice => "compact_index_no_gem" - expect(out).to include("Internal Server Error 500") + expect(err).to include("Internal Server Error 500") # rack 1.0.0 is not installed and rack 0.9.1 is not expect(the_bundle).not_to include_gems "rack 1.0.0" expect(the_bundle).not_to include_gems "rack 0.9.1" @@ -125,7 +125,7 @@ RSpec.describe "global gem caching" do expect(source_global_cache("rack-1.0.0.gem")).to exist expect(source2_global_cache("rack-0.9.1.gem")).to exist bundle :install, :artifice => "compact_index_no_gem" - expect(out).to include("Internal Server Error 500") + expect(err).to include("Internal Server Error 500") # rack 0.9.1 is not installed and rack 1.0.0 is not expect(the_bundle).not_to include_gems "rack 0.9.1" expect(the_bundle).not_to include_gems "rack 1.0.0" @@ -187,7 +187,7 @@ RSpec.describe "global gem caching" do end end - describe "extension caching", :ruby_repo, :rubygems => "2.2" do + describe "extension caching", :ruby_repo do it "works" do build_git "very_simple_git_binary", &:add_c_extension build_lib "very_simple_path_binary", &:add_c_extension @@ -220,7 +220,7 @@ RSpec.describe "global gem caching" do gem_binary_cache.join("very_simple_binary_c.rb").open("w") {|f| f << "puts File.basename(__FILE__)" } git_binary_cache.join("very_simple_git_binary_c.rb").open("w") {|f| f << "puts File.basename(__FILE__)" } - bundle! "config --local path different_path" + bundle! "config set --local path different_path" bundle! :install expect(Dir[home(".bundle", "cache", "extensions", "**", "*binary_c*")]).to all(end_with(".rb")) diff --git a/spec/install/path_spec.rb b/spec/install/path_spec.rb index 44439c275e..aac697fb23 100644 --- a/spec/install/path_spec.rb +++ b/spec/install/path_spec.rb @@ -13,7 +13,7 @@ RSpec.describe "bundle install" do G end - it "does not use available system gems with bundle --path vendor/bundle", :bundler => "< 2" do + it "does not use available system gems with bundle --path vendor/bundle", :bundler => "< 3" do bundle! :install, forgotten_command_line_options(:path => "vendor/bundle") expect(the_bundle).to include_gems "rack 1.0.0" end @@ -35,13 +35,13 @@ RSpec.describe "bundle install" do expect(out).to include("gems are installed into `./vendor/bundle`") end - it "disallows --path vendor/bundle --system", :bundler => "< 2" do + it "disallows --path vendor/bundle --system", :bundler => "< 3" do bundle "install --path vendor/bundle --system" - expect(out).to include("Please choose only one option.") + expect(err).to include("Please choose only one option.") expect(exitstatus).to eq(15) if exitstatus end - it "remembers to disable system gems after the first time with bundle --path vendor/bundle", :bundler => "< 2" do + it "remembers to disable system gems after the first time with bundle --path vendor/bundle", :bundler => "< 3" do bundle "install --path vendor/bundle" FileUtils.rm_rf bundled_app("vendor") bundle "install" @@ -51,9 +51,9 @@ RSpec.describe "bundle install" do end context "with path_relative_to_cwd set to true" do - before { bundle! "config path_relative_to_cwd true" } + before { bundle! "config set path_relative_to_cwd true" } - it "installs the bundle relatively to current working directory", :bundler => "< 2" do + it "installs the bundle relatively to current working directory", :bundler => "< 3" do Dir.chdir(bundled_app.parent) do bundle! "install --gemfile='#{bundled_app}/Gemfile' --path vendor/bundle" expect(out).to include("installed into `./vendor/bundle`") @@ -98,7 +98,7 @@ RSpec.describe "bundle install" do if type == :env ENV["BUNDLE_PATH"] = location elsif type == :global - bundle! "config path #{location}", "no-color" => nil + bundle! "config set path #{location}", "no-color" => nil end end @@ -113,10 +113,10 @@ RSpec.describe "bundle install" do expect(the_bundle).to include_gems "rack 1.0.0" end - context "with global_path_appends_ruby_scope set", :bundler => "2" do + context "with global_path_appends_ruby_scope set", :bundler => "3" do it "installs gems to ." do set_bundle_path(type, ".") - bundle! "config --global disable_shared_gems true" + bundle! "config set --global disable_shared_gems true" bundle! :install @@ -147,10 +147,10 @@ RSpec.describe "bundle install" do end end - context "with global_path_appends_ruby_scope unset", :bundler => "< 2" do + context "with global_path_appends_ruby_scope unset", :bundler => "< 3" do it "installs gems to ." do set_bundle_path(type, ".") - bundle! "config --global disable_shared_gems true" + bundle! "config set --global disable_shared_gems true" bundle! :install @@ -207,7 +207,7 @@ RSpec.describe "bundle install" do expect(the_bundle).to include_gems "rack 1.0.0" end - it "re-installs gems whose extensions have been deleted", :ruby_repo, :rubygems => ">= 2.3" do + it "re-installs gems whose extensions have been deleted", :ruby_repo do build_lib "very_simple_binary", "1.0.0", :to_system => true do |s| s.write "lib/very_simple_binary.rb", "raise 'FAIL'" end @@ -250,7 +250,7 @@ RSpec.describe "bundle install" do G bundle :install, forgotten_command_line_options(:path => "bundle") - expect(out).to include("file already exists") + expect(err).to include("file already exists") end end end diff --git a/spec/install/post_bundle_message_spec.rb b/spec/install/post_bundle_message_spec.rb index eadc8a4d85..1efd0b8146 100644 --- a/spec/install/post_bundle_message_spec.rb +++ b/spec/install/post_bundle_message_spec.rb @@ -19,7 +19,7 @@ RSpec.describe "post bundle message" do let(:bundle_complete_message) { "Bundle complete!" } let(:bundle_updated_message) { "Bundle updated!" } let(:installed_gems_stats) { "4 Gemfile dependencies, 5 gems now installed." } - let(:bundle_show_message) { Bundler::VERSION.split(".").first.to_i < 2 ? bundle_show_system_message : bundle_show_path_message } + let(:bundle_show_message) { Bundler::VERSION.split(".").first.to_i < 3 ? bundle_show_system_message : bundle_show_path_message } describe "for fresh bundle install" do it "without any options" do @@ -101,22 +101,22 @@ RSpec.describe "post bundle message" do end describe "with misspelled or non-existent gem name" do - it "should report a helpful error message", :bundler => "< 2" do + it "should report a helpful error message", :bundler => "< 3" do install_gemfile <<-G source "file://localhost#{gem_repo1}" gem "rack" gem "not-a-gem", :group => :development G - expect(out).to include("Could not find gem 'not-a-gem' in any of the gem sources listed in your Gemfile.") + expect(err).to include("Could not find gem 'not-a-gem' in any of the gem sources listed in your Gemfile.") end - it "should report a helpful error message", :bundler => "2" do + it "should report a helpful error message", :bundler => "3" do install_gemfile <<-G source "file://localhost#{gem_repo1}" gem "rack" gem "not-a-gem", :group => :development G - expect(out).to include normalize_uri_file(<<-EOS.strip) + expect(err).to include normalize_uri_file(<<-EOS.strip) Could not find gem 'not-a-gem' in rubygems repository file://localhost#{gem_repo1}/ or installed locally. The source does not contain any versions of 'not-a-gem' EOS @@ -134,7 +134,7 @@ The source does not contain any versions of 'not-a-gem' gem "rack" gem "not-a-gem", :group => :development G - expect(out).to include("Could not find gem 'not-a-gem' in"). + expect(err).to include("Could not find gem 'not-a-gem' in"). and include("or in gems cached in vendor/cache.") end end @@ -177,28 +177,28 @@ The source does not contain any versions of 'not-a-gem' describe "for bundle update" do it "without any options" do - bundle! :update, :all => bundle_update_requires_all? + bundle! :update, :all => true expect(out).not_to include("Gems in the groups") expect(out).to include(bundle_updated_message) end it "with --without one group" do bundle! :install, forgotten_command_line_options(:without => "emo") - bundle! :update, :all => bundle_update_requires_all? + bundle! :update, :all => true expect(out).to include("Gems in the group emo were not installed") expect(out).to include(bundle_updated_message) end it "with --without two groups" do bundle! :install, forgotten_command_line_options(:without => "emo test") - bundle! :update, :all => bundle_update_requires_all? + bundle! :update, :all => true expect(out).to include("Gems in the groups emo and test were not installed") expect(out).to include(bundle_updated_message) end it "with --without more groups" do bundle! :install, forgotten_command_line_options(:without => "emo obama test") - bundle! :update, :all => bundle_update_requires_all? + bundle! :update, :all => true expect(out).to include("Gems in the groups emo, obama and test were not installed") expect(out).to include(bundle_updated_message) end diff --git a/spec/install/process_lock_spec.rb b/spec/install/process_lock_spec.rb index be8fd04fdd..df1e9c6350 100644 --- a/spec/install/process_lock_spec.rb +++ b/spec/install/process_lock_spec.rb @@ -21,7 +21,7 @@ RSpec.describe "process lock spec" do expect(the_bundle).to include_gems "rack 1.0" end - context "when creating a lock raises Errno::ENOTSUP", :ruby => ">= 1.9" do + context "when creating a lock raises Errno::ENOTSUP" do before { allow(File).to receive(:open).and_raise(Errno::ENOTSUP) } it "skips creating the lock file and yields" do diff --git a/spec/install/redownload_spec.rb b/spec/install/redownload_spec.rb index 232c0f9e2c..2a0cdc9473 100644 --- a/spec/install/redownload_spec.rb +++ b/spec/install/redownload_spec.rb @@ -56,29 +56,19 @@ RSpec.describe "bundle install" do end end - describe "with --force" do + describe "with --force", :bundler => 2 do it_behaves_like "an option to force redownloading gems" do let(:flag) { "force" } end - it "shows a deprecation when single flag passed", :bundler => 2 do + it "shows a deprecation when single flag passed" do bundle! "install --force" - expect(out).to include "[DEPRECATED FOR 2.0] The `--force` option has been renamed to `--redownload`" + expect(err).to include "[DEPRECATED] The `--force` option has been renamed to `--redownload`" end - it "shows a deprecation when multiple flags passed", :bundler => 2 do + it "shows a deprecation when multiple flags passed" do bundle! "install --no-color --force" - expect(out).to include "[DEPRECATED FOR 2.0] The `--force` option has been renamed to `--redownload`" - end - - it "does not show a deprecation when single flag passed", :bundler => "< 2" do - bundle! "install --force" - expect(out).not_to include "[DEPRECATED FOR 2.0] The `--force` option has been renamed to `--redownload`" - end - - it "does not show a deprecation when multiple flags passed", :bundler => "< 2" do - bundle! "install --no-color --force" - expect(out).not_to include "[DEPRECATED FOR 2.0] The `--force` option has been renamed to `--redownload`" + expect(err).to include "[DEPRECATED] The `--force` option has been renamed to `--redownload`" end end @@ -89,12 +79,12 @@ RSpec.describe "bundle install" do it "does not show a deprecation when single flag passed" do bundle! "install --redownload" - expect(out).not_to include "[DEPRECATED FOR 2.0] The `--force` option has been renamed to `--redownload`" + expect(err).not_to include "[DEPRECATED] The `--force` option has been renamed to `--redownload`" end it "does not show a deprecation when single multiple flags passed" do bundle! "install --no-color --redownload" - expect(out).not_to include "[DEPRECATED FOR 2.0] The `--force` option has been renamed to `--redownload`" + expect(err).not_to include "[DEPRECATED] The `--force` option has been renamed to `--redownload`" end end end diff --git a/spec/install/security_policy_spec.rb b/spec/install/security_policy_spec.rb index 7be09d6bd4..ad76162aac 100644 --- a/spec/install/security_policy_spec.rb +++ b/spec/install/security_policy_spec.rb @@ -24,18 +24,17 @@ RSpec.describe "policies with unsigned gems" do it "will fail when given invalid security policy" do bundle "install --trust-policy=InvalidPolicyName" - expect(out).to include("RubyGems doesn't know about trust policy") + expect(err).to include("RubyGems doesn't know about trust policy") end it "will fail with High Security setting due to presence of unsigned gem" do bundle "install --trust-policy=HighSecurity" - expect(out).to include("security policy didn't allow") + expect(err).to include("security policy didn't allow") end - # This spec will fail on RubyGems 2 rc1 due to a bug in policy.rb. the bug is fixed in rc3. - it "will fail with Medium Security setting due to presence of unsigned gem", :unless => ENV["RGV"] == "v2.0.0.rc.1" do + it "will fail with Medium Security setting due to presence of unsigned gem" do bundle "install --trust-policy=MediumSecurity" - expect(out).to include("security policy didn't allow") + expect(err).to include("security policy didn't allow") end it "will succeed with no policy" do @@ -55,12 +54,12 @@ RSpec.describe "policies with signed gems and no CA" do it "will fail with High Security setting, gem is self-signed" do bundle "install --trust-policy=HighSecurity" - expect(out).to include("security policy didn't allow") + expect(err).to include("security policy didn't allow") end it "will fail with Medium Security setting, gem is self-signed" do bundle "install --trust-policy=MediumSecurity" - expect(out).to include("security policy didn't allow") + expect(err).to include("security policy didn't allow") end it "will succeed with Low Security setting, low security accepts self signed gem" do diff --git a/spec/install/yanked_spec.rb b/spec/install/yanked_spec.rb index 7c4b98bfdf..3e6f6a3bcd 100644 --- a/spec/install/yanked_spec.rb +++ b/spec/install/yanked_spec.rb @@ -27,7 +27,7 @@ RSpec.context "when installing a bundle that includes yanked gems" do gem "foo", "10.0.0" G - expect(out).to include("Your bundle is locked to foo (10.0.0)") + expect(err).to include("Your bundle is locked to foo (10.0.0)") end it "throws the original error when only the Gemfile specifies a gem version that doesn't exist" do @@ -36,8 +36,8 @@ RSpec.context "when installing a bundle that includes yanked gems" do gem "foo", "10.0.0" G - expect(out).not_to include("Your bundle is locked to foo (10.0.0)") - expect(out).to include("Could not find gem 'foo (= 10.0.0)' in") + expect(err).not_to include("Your bundle is locked to foo (10.0.0)") + expect(err).to include("Could not find gem 'foo (= 10.0.0)' in") end end @@ -63,9 +63,9 @@ RSpec.context "when using gem before installing" do bundle :list - expect(out).to include("Could not find rack-0.9.1 in any of the sources") - expect(out).to_not include("Your bundle is locked to rack (0.9.1), but that version could not be found in any of the sources listed in your Gemfile.") - expect(out).to_not include("If you haven't changed sources, that means the author of rack (0.9.1) has removed it.") - expect(out).to_not include("You'll need to update your bundle to a different version of rack (0.9.1) that hasn't been removed in order to install.") + expect(err).to include("Could not find rack-0.9.1 in any of the sources") + expect(err).to_not include("Your bundle is locked to rack (0.9.1), but that version could not be found in any of the sources listed in your Gemfile.") + expect(err).to_not include("If you haven't changed sources, that means the author of rack (0.9.1) has removed it.") + expect(err).to_not include("You'll need to update your bundle to a different version of rack (0.9.1) that hasn't been removed in order to install.") end end diff --git a/spec/lock/lockfile_bundler_1_spec.rb b/spec/lock/lockfile_bundler_1_spec.rb deleted file mode 100644 index 638b40f5f4..0000000000 --- a/spec/lock/lockfile_bundler_1_spec.rb +++ /dev/null @@ -1,1386 +0,0 @@ -# frozen_string_literal: true - -RSpec.describe "the lockfile format", :bundler => "< 2" do - include Bundler::GemHelpers - - before { ENV["BUNDLER_SPEC_IGNORE_COMPATIBILITY_GUARD"] = "TRUE" } - - it "generates a simple lockfile for a single source, gem" do - install_gemfile <<-G - source "file://localhost#{gem_repo1}" - - gem "rack" - G - - lockfile_should_be <<-G - GEM - remote: file://localhost#{gem_repo1}/ - specs: - rack (1.0.0) - - PLATFORMS - #{generic_local_platform} - - DEPENDENCIES - rack - - BUNDLED WITH - #{Bundler::VERSION} - G - end - - it "updates the lockfile's bundler version if current ver. is newer" do - lockfile <<-L - GIT - remote: git://github.com/nex3/haml.git - revision: 8a2271f - specs: - - GEM - remote: file://localhost#{gem_repo1}/ - specs: - rack (1.0.0) - - PLATFORMS - #{generic_local_platform} - - DEPENDENCIES - omg! - rack - - BUNDLED WITH - 1.8.2 - L - - install_gemfile <<-G - source "file://localhost#{gem_repo1}" - - gem "rack" - G - - lockfile_should_be <<-G - GEM - remote: file://localhost#{gem_repo1}/ - specs: - rack (1.0.0) - - PLATFORMS - #{generic_local_platform} - - DEPENDENCIES - rack - - BUNDLED WITH - #{Bundler::VERSION} - G - end - - it "does not update the lockfile's bundler version if nothing changed during bundle install", :ruby_repo do - version = "#{Bundler::VERSION.split(".").first}.0.0.0.a" - - lockfile normalize_uri_file(<<-L) - GEM - remote: file://localhost#{gem_repo1}/ - specs: - rack (1.0.0) - - PLATFORMS - #{generic_local_platform} - - DEPENDENCIES - rack - - BUNDLED WITH - #{version} - L - - install_gemfile normalize_uri_file(<<-G) - source "file://localhost#{gem_repo1}" - - gem "rack" - G - - lockfile_should_be normalize_uri_file(<<-G) - GEM - remote: file://localhost#{gem_repo1}/ - specs: - rack (1.0.0) - - PLATFORMS - #{generic_local_platform} - - DEPENDENCIES - rack - - BUNDLED WITH - #{version} - G - end - - it "updates the lockfile's bundler version if not present" do - lockfile <<-L - GEM - remote: file://localhost#{gem_repo1}/ - specs: - rack (1.0.0) - - PLATFORMS - #{generic_local_platform} - - DEPENDENCIES - rack - L - - install_gemfile <<-G - source "file://localhost#{gem_repo1}" - - gem "rack", "> 0" - G - - lockfile_should_be <<-G - GEM - remote: file://localhost#{gem_repo1}/ - specs: - rack (1.0.0) - - PLATFORMS - #{generic_local_platform} - - DEPENDENCIES - rack (> 0) - - BUNDLED WITH - #{Bundler::VERSION} - G - end - - it "outputs a warning if the current is older than lockfile's bundler version" do - lockfile <<-L - GEM - remote: file://localhost#{gem_repo1}/ - specs: - rack (1.0.0) - - PLATFORMS - #{generic_local_platform} - - DEPENDENCIES - rack - - BUNDLED WITH - 9999999.1.0 - L - - simulate_bundler_version "9999999.0.0" do - install_gemfile <<-G - source "file://localhost#{gem_repo1}" - - gem "rack" - G - end - - warning_message = "the running version of Bundler (9999999.0.0) is older " \ - "than the version that created the lockfile (9999999.1.0)" - expect(out.scan(warning_message).size).to eq(1) - - lockfile_should_be <<-G - GEM - remote: file://localhost#{gem_repo1}/ - specs: - rack (1.0.0) - - PLATFORMS - #{generic_local_platform} - #{specific_local_platform} - - DEPENDENCIES - rack - - BUNDLED WITH - 9999999.1.0 - G - end - - it "errors if the current is a major version older than lockfile's bundler version" do - lockfile <<-L - GEM - remote: file://localhost#{gem_repo1}/ - specs: - rack (1.0.0) - - PLATFORMS - #{generic_local_platform} - - DEPENDENCIES - rack - - BUNDLED WITH - 9999999.0.0 - L - - install_gemfile <<-G - source "file://localhost#{gem_repo1}" - - gem "rack" - G - - expect(exitstatus > 0) if exitstatus - expect(out).to include("You must use Bundler 9999999 or greater with this lockfile.") - end - - it "shows a friendly error when running with a new bundler 2 lockfile" do - lockfile <<-L - GEM - remote: https://rails-assets.org/ - specs: - rails-assets-bootstrap (3.3.4) - rails-assets-jquery (>= 1.9.1) - rails-assets-jquery (2.1.4) - - GEM - remote: https://rubygems.org/ - specs: - rake (10.4.2) - - PLATFORMS - ruby - - DEPENDENCIES - rails-assets-bootstrap! - rake - - BUNDLED WITH - 9999999.0.0 - L - - install_gemfile <<-G - source 'https://rubygems.org' - gem 'rake' - - source 'https://rails-assets.org' do - gem 'rails-assets-bootstrap' - end - G - - expect(exitstatus > 0) if exitstatus - expect(out).to include("You must use Bundler 9999999 or greater with this lockfile.") - end - - it "warns when updating bundler major version" do - lockfile <<-L - GEM - remote: file://localhost#{gem_repo1}/ - specs: - rack (1.0.0) - - PLATFORMS - #{generic_local_platform} - - DEPENDENCIES - rack - - BUNDLED WITH - 1.10.0 - L - - simulate_bundler_version "9999999.0.0" do - install_gemfile <<-G - source "file://localhost#{gem_repo1}" - - gem "rack" - G - end - - expect(out).to include("Warning: the lockfile is being updated to Bundler " \ - "9999999, after which you will be unable to return to Bundler 1.") - - lockfile_should_be <<-G - GEM - remote: file://localhost#{gem_repo1}/ - specs: - rack (1.0.0) - - PLATFORMS - #{generic_local_platform} - #{specific_local_platform} - - DEPENDENCIES - rack - - BUNDLED WITH - 9999999.0.0 - G - end - - it "generates a simple lockfile for a single source, gem with dependencies" do - install_gemfile <<-G - source "file://localhost#{gem_repo1}" - - gem "rack-obama" - G - - lockfile_should_be <<-G - GEM - remote: file://localhost#{gem_repo1}/ - specs: - rack (1.0.0) - rack-obama (1.0) - rack - - PLATFORMS - #{generic_local_platform} - - DEPENDENCIES - rack-obama - - BUNDLED WITH - #{Bundler::VERSION} - G - end - - it "generates a simple lockfile for a single source, gem with a version requirement" do - install_gemfile <<-G - source "file://localhost#{gem_repo1}" - - gem "rack-obama", ">= 1.0" - G - - lockfile_should_be <<-G - GEM - remote: file://localhost#{gem_repo1}/ - specs: - rack (1.0.0) - rack-obama (1.0) - rack - - PLATFORMS - #{generic_local_platform} - - DEPENDENCIES - rack-obama (>= 1.0) - - BUNDLED WITH - #{Bundler::VERSION} - G - end - - it "generates a lockfile wihout credentials for a configured source" do - bundle "config http://localgemserver.test/ user:pass" - - install_gemfile(<<-G, :artifice => "endpoint_strict_basic_authentication", :quiet => true) - source "http://localgemserver.test/" - source "http://user:pass@othergemserver.test/" - - gem "rack-obama", ">= 1.0" - G - - lockfile_should_be <<-G - GEM - remote: http://localgemserver.test/ - remote: http://user:pass@othergemserver.test/ - specs: - rack (1.0.0) - rack-obama (1.0) - rack - - PLATFORMS - #{generic_local_platform} - - DEPENDENCIES - rack-obama (>= 1.0) - - BUNDLED WITH - #{Bundler::VERSION} - G - end - - it "generates lockfiles with multiple requirements" do - install_gemfile <<-G - source "file://localhost#{gem_repo1}" - gem "net-sftp" - G - - lockfile_should_be <<-G - GEM - remote: file://localhost#{gem_repo1}/ - specs: - net-sftp (1.1.1) - net-ssh (>= 1.0.0, < 1.99.0) - net-ssh (1.0) - - PLATFORMS - ruby - - DEPENDENCIES - net-sftp - - BUNDLED WITH - #{Bundler::VERSION} - G - - expect(the_bundle).to include_gems "net-sftp 1.1.1", "net-ssh 1.0.0" - end - - it "generates a simple lockfile for a single pinned source, gem with a version requirement" do - git = build_git "foo" - - install_gemfile <<-G - gem "foo", :git => "#{lib_path("foo-1.0")}" - G - - lockfile_should_be <<-G - GIT - remote: #{lib_path("foo-1.0")} - revision: #{git.ref_for("master")} - specs: - foo (1.0) - - GEM - specs: - - PLATFORMS - #{generic_local_platform} - - DEPENDENCIES - foo! - - BUNDLED WITH - #{Bundler::VERSION} - G - end - - it "does not asplode when a platform specific dependency is present and the Gemfile has not been resolved on that platform" do - build_lib "omg", :path => lib_path("omg") - - gemfile <<-G - source "file://localhost#{gem_repo1}" - - platforms :#{not_local_tag} do - gem "omg", :path => "#{lib_path("omg")}" - end - - gem "rack" - G - - lockfile <<-L - GIT - remote: git://github.com/nex3/haml.git - revision: 8a2271f - specs: - - GEM - remote: file://localhost#{gem_repo1}/ - specs: - rack (1.0.0) - - PLATFORMS - #{not_local} - - DEPENDENCIES - omg! - rack - - BUNDLED WITH - #{Bundler::VERSION} - L - - bundle "install" - expect(the_bundle).to include_gems "rack 1.0.0" - end - - it "serializes global git sources" do - git = build_git "foo" - - install_gemfile <<-G - git "#{lib_path("foo-1.0")}" do - gem "foo" - end - G - - lockfile_should_be <<-G - GIT - remote: #{lib_path("foo-1.0")} - revision: #{git.ref_for("master")} - specs: - foo (1.0) - - GEM - specs: - - PLATFORMS - #{generic_local_platform} - - DEPENDENCIES - foo! - - BUNDLED WITH - #{Bundler::VERSION} - G - end - - it "generates a lockfile with a ref for a single pinned source, git gem with a branch requirement" do - git = build_git "foo" - update_git "foo", :branch => "omg" - - install_gemfile <<-G - gem "foo", :git => "#{lib_path("foo-1.0")}", :branch => "omg" - G - - lockfile_should_be <<-G - GIT - remote: #{lib_path("foo-1.0")} - revision: #{git.ref_for("omg")} - branch: omg - specs: - foo (1.0) - - GEM - specs: - - PLATFORMS - #{generic_local_platform} - - DEPENDENCIES - foo! - - BUNDLED WITH - #{Bundler::VERSION} - G - end - - it "generates a lockfile with a ref for a single pinned source, git gem with a tag requirement" do - git = build_git "foo" - update_git "foo", :tag => "omg" - - install_gemfile <<-G - gem "foo", :git => "#{lib_path("foo-1.0")}", :tag => "omg" - G - - lockfile_should_be <<-G - GIT - remote: #{lib_path("foo-1.0")} - revision: #{git.ref_for("omg")} - tag: omg - specs: - foo (1.0) - - GEM - specs: - - PLATFORMS - #{generic_local_platform} - - DEPENDENCIES - foo! - - BUNDLED WITH - #{Bundler::VERSION} - G - end - - it "serializes pinned path sources to the lockfile" do - build_lib "foo" - - install_gemfile <<-G - gem "foo", :path => "#{lib_path("foo-1.0")}" - G - - lockfile_should_be <<-G - PATH - remote: #{lib_path("foo-1.0")} - specs: - foo (1.0) - - GEM - specs: - - PLATFORMS - #{generic_local_platform} - - DEPENDENCIES - foo! - - BUNDLED WITH - #{Bundler::VERSION} - G - end - - it "serializes pinned path sources to the lockfile even when packaging" do - build_lib "foo" - - install_gemfile! <<-G - gem "foo", :path => "#{lib_path("foo-1.0")}" - G - - bundle! :package, forgotten_command_line_options([:all, :cache_all] => true) - bundle! :install, :local => true - - lockfile_should_be <<-G - PATH - remote: #{lib_path("foo-1.0")} - specs: - foo (1.0) - - GEM - specs: - - PLATFORMS - #{generic_local_platform} - - DEPENDENCIES - foo! - - BUNDLED WITH - #{Bundler::VERSION} - G - end - - it "sorts serialized sources by type" do - build_lib "foo" - bar = build_git "bar" - - install_gemfile <<-G - source "file://localhost#{gem_repo1}" - - gem "rack" - gem "foo", :path => "#{lib_path("foo-1.0")}" - gem "bar", :git => "#{lib_path("bar-1.0")}" - G - - lockfile_should_be <<-G - GIT - remote: #{lib_path("bar-1.0")} - revision: #{bar.ref_for("master")} - specs: - bar (1.0) - - PATH - remote: #{lib_path("foo-1.0")} - specs: - foo (1.0) - - GEM - remote: file://localhost#{gem_repo1}/ - specs: - rack (1.0.0) - - PLATFORMS - #{generic_local_platform} - - DEPENDENCIES - bar! - foo! - rack - - BUNDLED WITH - #{Bundler::VERSION} - G - end - - it "lists gems alphabetically" do - install_gemfile <<-G - source "file://localhost#{gem_repo1}" - - gem "thin" - gem "actionpack" - gem "rack-obama" - G - - lockfile_should_be <<-G - GEM - remote: file://localhost#{gem_repo1}/ - specs: - actionpack (2.3.2) - activesupport (= 2.3.2) - activesupport (2.3.2) - rack (1.0.0) - rack-obama (1.0) - rack - thin (1.0) - rack - - PLATFORMS - #{generic_local_platform} - - DEPENDENCIES - actionpack - rack-obama - thin - - BUNDLED WITH - #{Bundler::VERSION} - G - end - - it "orders dependencies' dependencies in alphabetical order" do - install_gemfile <<-G - source "file://localhost#{gem_repo1}" - - gem "rails" - G - - lockfile_should_be <<-G - GEM - remote: file://localhost#{gem_repo1}/ - specs: - actionmailer (2.3.2) - activesupport (= 2.3.2) - actionpack (2.3.2) - activesupport (= 2.3.2) - activerecord (2.3.2) - activesupport (= 2.3.2) - activeresource (2.3.2) - activesupport (= 2.3.2) - activesupport (2.3.2) - rails (2.3.2) - actionmailer (= 2.3.2) - actionpack (= 2.3.2) - activerecord (= 2.3.2) - activeresource (= 2.3.2) - rake (= 10.0.2) - rake (10.0.2) - - PLATFORMS - #{generic_local_platform} - - DEPENDENCIES - rails - - BUNDLED WITH - #{Bundler::VERSION} - G - end - - it "orders dependencies by version" do - install_gemfile <<-G - source "file://localhost#{gem_repo1}" - gem 'double_deps' - G - - lockfile_should_be <<-G - GEM - remote: file://localhost#{gem_repo1}/ - specs: - double_deps (1.0) - net-ssh - net-ssh (>= 1.0.0) - net-ssh (1.0) - - PLATFORMS - #{generic_local_platform} - - DEPENDENCIES - double_deps - - BUNDLED WITH - #{Bundler::VERSION} - G - end - - it "does not add the :require option to the lockfile" do - install_gemfile <<-G - source "file://localhost#{gem_repo1}" - - gem "rack-obama", ">= 1.0", :require => "rack/obama" - G - - lockfile_should_be <<-G - GEM - remote: file://localhost#{gem_repo1}/ - specs: - rack (1.0.0) - rack-obama (1.0) - rack - - PLATFORMS - #{generic_local_platform} - - DEPENDENCIES - rack-obama (>= 1.0) - - BUNDLED WITH - #{Bundler::VERSION} - G - end - - it "does not add the :group option to the lockfile" do - install_gemfile <<-G - source "file://localhost#{gem_repo1}" - - gem "rack-obama", ">= 1.0", :group => :test - G - - lockfile_should_be <<-G - GEM - remote: file://localhost#{gem_repo1}/ - specs: - rack (1.0.0) - rack-obama (1.0) - rack - - PLATFORMS - #{generic_local_platform} - - DEPENDENCIES - rack-obama (>= 1.0) - - BUNDLED WITH - #{Bundler::VERSION} - G - end - - it "stores relative paths when the path is provided in a relative fashion and in Gemfile dir" do - build_lib "foo", :path => bundled_app("foo") - - install_gemfile <<-G - path "foo" - gem "foo" - G - - lockfile_should_be <<-G - PATH - remote: foo - specs: - foo (1.0) - - GEM - specs: - - PLATFORMS - #{generic_local_platform} - - DEPENDENCIES - foo - - BUNDLED WITH - #{Bundler::VERSION} - G - end - - it "stores relative paths when the path is provided in a relative fashion and is above Gemfile dir" do - build_lib "foo", :path => bundled_app(File.join("..", "foo")) - - install_gemfile <<-G - path "../foo" - gem "foo" - G - - lockfile_should_be <<-G - PATH - remote: ../foo - specs: - foo (1.0) - - GEM - specs: - - PLATFORMS - #{generic_local_platform} - - DEPENDENCIES - foo - - BUNDLED WITH - #{Bundler::VERSION} - G - end - - it "stores relative paths when the path is provided in an absolute fashion but is relative" do - build_lib "foo", :path => bundled_app("foo") - - install_gemfile <<-G - path File.expand_path("../foo", __FILE__) - gem "foo" - G - - lockfile_should_be <<-G - PATH - remote: foo - specs: - foo (1.0) - - GEM - specs: - - PLATFORMS - #{generic_local_platform} - - DEPENDENCIES - foo - - BUNDLED WITH - #{Bundler::VERSION} - G - end - - it "stores relative paths when the path is provided for gemspec" do - build_lib("foo", :path => tmp.join("foo")) - - install_gemfile <<-G - gemspec :path => "../foo" - G - - lockfile_should_be <<-G - PATH - remote: ../foo - specs: - foo (1.0) - - GEM - specs: - - PLATFORMS - #{generic_local_platform} - - DEPENDENCIES - foo! - - BUNDLED WITH - #{Bundler::VERSION} - G - end - - it "keeps existing platforms in the lockfile" do - lockfile <<-G - GEM - remote: file://localhost#{gem_repo1}/ - specs: - rack (1.0.0) - - PLATFORMS - java - - DEPENDENCIES - rack - - BUNDLED WITH - #{Bundler::VERSION} - G - - install_gemfile <<-G - source "file://localhost#{gem_repo1}" - - gem "rack" - G - - platforms = ["java", generic_local_platform.to_s].sort - - lockfile_should_be <<-G - GEM - remote: file://localhost#{gem_repo1}/ - specs: - rack (1.0.0) - - PLATFORMS - #{platforms[0]} - #{platforms[1]} - - DEPENDENCIES - rack - - BUNDLED WITH - #{Bundler::VERSION} - G - end - - it "persists the spec's platform to the lockfile" do - build_gem "platform_specific", "1.0.0", :to_system => true do |s| - s.platform = Gem::Platform.new("universal-java-16") - end - - simulate_platform "universal-java-16" - - install_gemfile <<-G - source "file://localhost#{gem_repo1}" - gem "platform_specific" - G - - lockfile_should_be <<-G - GEM - remote: file://localhost#{gem_repo1}/ - specs: - platform_specific (1.0-java) - - PLATFORMS - java - - DEPENDENCIES - platform_specific - - BUNDLED WITH - #{Bundler::VERSION} - G - end - - it "does not add duplicate gems" do - install_gemfile <<-G - source "file://localhost#{gem_repo1}" - gem "rack" - G - - install_gemfile <<-G - source "file://localhost#{gem_repo1}" - gem "rack" - gem "activesupport" - G - - lockfile_should_be <<-G - GEM - remote: file://localhost#{gem_repo1}/ - specs: - activesupport (2.3.5) - rack (1.0.0) - - PLATFORMS - ruby - - DEPENDENCIES - activesupport - rack - - BUNDLED WITH - #{Bundler::VERSION} - G - end - - it "does not add duplicate dependencies" do - install_gemfile <<-G - source "file://localhost#{gem_repo1}" - gem "rack" - gem "rack" - G - - lockfile_should_be <<-G - GEM - remote: file://localhost#{gem_repo1}/ - specs: - rack (1.0.0) - - PLATFORMS - ruby - - DEPENDENCIES - rack - - BUNDLED WITH - #{Bundler::VERSION} - G - end - - it "does not add duplicate dependencies with versions" do - install_gemfile <<-G - source "file://localhost#{gem_repo1}" - gem "rack", "1.0" - gem "rack", "1.0" - G - - lockfile_should_be <<-G - GEM - remote: file://localhost#{gem_repo1}/ - specs: - rack (1.0.0) - - PLATFORMS - ruby - - DEPENDENCIES - rack (= 1.0) - - BUNDLED WITH - #{Bundler::VERSION} - G - end - - it "does not add duplicate dependencies in different groups" do - install_gemfile <<-G - source "file://localhost#{gem_repo1}" - gem "rack", "1.0", :group => :one - gem "rack", "1.0", :group => :two - G - - lockfile_should_be <<-G - GEM - remote: file://localhost#{gem_repo1}/ - specs: - rack (1.0.0) - - PLATFORMS - ruby - - DEPENDENCIES - rack (= 1.0) - - BUNDLED WITH - #{Bundler::VERSION} - G - end - - it "raises if two different versions are used" do - install_gemfile <<-G - source "file://localhost#{gem_repo1}" - gem "rack", "1.0" - gem "rack", "1.1" - G - - expect(bundled_app("Gemfile.lock")).not_to exist - expect(out).to include "rack (= 1.0) and rack (= 1.1)" - end - - it "raises if two different sources are used" do - install_gemfile <<-G - source "file://localhost#{gem_repo1}" - gem "rack" - gem "rack", :git => "git://hubz.com" - G - - expect(bundled_app("Gemfile.lock")).not_to exist - expect(out).to include "rack (>= 0) should come from an unspecified source and git://hubz.com (at master)" - end - - it "works correctly with multiple version dependencies" do - install_gemfile <<-G - source "file://localhost#{gem_repo1}" - gem "rack", "> 0.9", "< 1.0" - G - - lockfile_should_be <<-G - GEM - remote: file://localhost#{gem_repo1}/ - specs: - rack (0.9.1) - - PLATFORMS - ruby - - DEPENDENCIES - rack (> 0.9, < 1.0) - - BUNDLED WITH - #{Bundler::VERSION} - G - end - - it "captures the Ruby version in the lockfile" do - install_gemfile <<-G - source "file://localhost#{gem_repo1}" - ruby '#{RUBY_VERSION}' - gem "rack", "> 0.9", "< 1.0" - G - - lockfile_should_be <<-G - GEM - remote: file://localhost#{gem_repo1}/ - specs: - rack (0.9.1) - - PLATFORMS - ruby - - DEPENDENCIES - rack (> 0.9, < 1.0) - - RUBY VERSION - ruby #{RUBY_VERSION}p#{RUBY_PATCHLEVEL} - - BUNDLED WITH - #{Bundler::VERSION} - G - end - - # Some versions of the Bundler 1.1 RC series introduced corrupted - # lockfiles. There were two major problems: - # - # * multiple copies of the same GIT section appeared in the lockfile - # * when this happened, those sections got multiple copies of gems - # in those sections. - it "fixes corrupted lockfiles" do - build_git "omg", :path => lib_path("omg") - revision = revision_for(lib_path("omg")) - - gemfile <<-G - source "file://localhost#{gem_repo1}" - gem "omg", :git => "#{lib_path("omg")}", :branch => 'master' - G - - bundle "install --path vendor" - expect(the_bundle).to include_gems "omg 1.0" - - # Create a Gemfile.lock that has duplicate GIT sections - lockfile <<-L - GIT - remote: #{lib_path("omg")} - revision: #{revision} - branch: master - specs: - omg (1.0) - - GIT - remote: #{lib_path("omg")} - revision: #{revision} - branch: master - specs: - omg (1.0) - - GEM - remote: file://localhost#{gem_repo1}/ - specs: - - PLATFORMS - #{local} - - DEPENDENCIES - omg! - - BUNDLED WITH - #{Bundler::VERSION} - L - - FileUtils.rm_rf(bundled_app("vendor")) - bundle "install" - expect(the_bundle).to include_gems "omg 1.0" - - # Confirm that duplicate specs do not appear - lockfile_should_be(<<-L) - GIT - remote: #{lib_path("omg")} - revision: #{revision} - branch: master - specs: - omg (1.0) - - GEM - remote: file://localhost#{gem_repo1}/ - specs: - - PLATFORMS - #{local} - - DEPENDENCIES - omg! - - BUNDLED WITH - #{Bundler::VERSION} - L - end - - it "raises a helpful error message when the lockfile is missing deps" do - lockfile <<-L - GEM - remote: file://localhost#{gem_repo1}/ - specs: - rack_middleware (1.0) - - PLATFORMS - #{local} - - DEPENDENCIES - rack_middleware - L - - install_gemfile <<-G - source "file:#{gem_repo1}" - gem "rack_middleware" - G - - expect(out).to include("Downloading rack_middleware-1.0 revealed dependencies not in the API or the lockfile (#{Gem::Dependency.new("rack", "= 0.9.1")})."). - and include("Either installing with `--full-index` or running `bundle update rack_middleware` should fix the problem.") - end - - describe "a line ending" do - def set_lockfile_mtime_to_known_value - time = Time.local(2000, 1, 1, 0, 0, 0) - File.utime(time, time, bundled_app("Gemfile.lock")) - end - before(:each) do - build_repo2 - - install_gemfile <<-G - source "file://localhost#{gem_repo2}" - gem "rack" - G - set_lockfile_mtime_to_known_value - end - - it "generates Gemfile.lock with \\n line endings" do - expect(File.read(bundled_app("Gemfile.lock"))).not_to match("\r\n") - expect(the_bundle).to include_gems "rack 1.0" - end - - context "during updates" do - it "preserves Gemfile.lock \\n line endings" do - update_repo2 - - expect { bundle "update", :all => true }.to change { File.mtime(bundled_app("Gemfile.lock")) } - expect(File.read(bundled_app("Gemfile.lock"))).not_to match("\r\n") - expect(the_bundle).to include_gems "rack 1.2" - end - - it "preserves Gemfile.lock \\n\\r line endings" do - update_repo2 - win_lock = File.read(bundled_app("Gemfile.lock")).gsub(/\n/, "\r\n") - File.open(bundled_app("Gemfile.lock"), "wb") {|f| f.puts(win_lock) } - set_lockfile_mtime_to_known_value - - expect { bundle "update", :all => true }.to change { File.mtime(bundled_app("Gemfile.lock")) } - expect(File.read(bundled_app("Gemfile.lock"))).to match("\r\n") - expect(the_bundle).to include_gems "rack 1.2" - end - end - - context "when nothing changes" do - it "preserves Gemfile.lock \\n line endings" do - expect do - ruby <<-RUBY - require 'rubygems' - require 'bundler' - Bundler.setup - RUBY - end.not_to change { File.mtime(bundled_app("Gemfile.lock")) } - end - - it "preserves Gemfile.lock \\n\\r line endings" do - win_lock = File.read(bundled_app("Gemfile.lock")).gsub(/\n/, "\r\n") - File.open(bundled_app("Gemfile.lock"), "wb") {|f| f.puts(win_lock) } - set_lockfile_mtime_to_known_value - - expect do - ruby <<-RUBY - require 'rubygems' - require 'bundler' - Bundler.setup - RUBY - end.not_to change { File.mtime(bundled_app("Gemfile.lock")) } - end - end - end - - it "refuses to install if Gemfile.lock contains conflict markers" do - lockfile <<-L - GEM - remote: file://localhost#{gem_repo1}/ - specs: - <<<<<<< - rack (1.0.0) - ======= - rack (1.0.1) - >>>>>>> - - PLATFORMS - ruby - - DEPENDENCIES - rack - - BUNDLED WITH - #{Bundler::VERSION} - L - - install_gemfile(<<-G) - source "file://localhost#{gem_repo1}" - gem "rack" - G - - expect(last_command.bundler_err).to match(/your Gemfile.lock contains merge conflicts/i) - expect(last_command.bundler_err).to match(/git checkout HEAD -- Gemfile.lock/i) - end -end diff --git a/spec/lock/lockfile_spec.rb b/spec/lock/lockfile_spec.rb index 53c832445f..c2d44e5cf1 100644 --- a/spec/lock/lockfile_spec.rb +++ b/spec/lock/lockfile_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe "the lockfile format", :bundler => "2" do +RSpec.describe "the lockfile format" do include Bundler::GemHelpers before { ENV["BUNDLER_SPEC_IGNORE_COMPATIBILITY_GUARD"] = "TRUE" } @@ -76,7 +76,7 @@ RSpec.describe "the lockfile format", :bundler => "2" do end it "does not update the lockfile's bundler version if nothing changed during bundle install" do - version = "#{Bundler::VERSION.split(".").first}.0.0.0.a" + version = "#{Bundler::VERSION.split(".").first}.0.0.a" lockfile <<-L GEM @@ -154,7 +154,10 @@ RSpec.describe "the lockfile format", :bundler => "2" do G end - it "outputs a warning if the current is older than lockfile's bundler version" do + it "warns if the current is older than lockfile's bundler version" do + current_version = Bundler::VERSION + newer_minor = bump_minor(current_version) + lockfile <<-L GEM remote: file://localhost#{gem_repo1}/ @@ -162,26 +165,27 @@ RSpec.describe "the lockfile format", :bundler => "2" do rack (1.0.0) PLATFORMS - #{generic_local_platform} + #{lockfile_platforms} DEPENDENCIES rack BUNDLED WITH - 9999999.1.0 + #{newer_minor} L - simulate_bundler_version "9999999.0.0" do - install_gemfile <<-G - source "file://localhost#{gem_repo1}" + install_gemfile <<-G + source "file://localhost#{gem_repo1}" - gem "rack" - G - end + gem "rack" + G - warning_message = "the running version of Bundler (9999999.0.0) is older " \ - "than the version that created the lockfile (9999999.1.0)" - expect(last_command.bundler_err).to include warning_message + pre_flag = prerelease?(newer_minor) ? " --pre" : "" + warning_message = "the running version of Bundler (#{current_version}) is older " \ + "than the version that created the lockfile (#{newer_minor}). " \ + "We suggest you to upgrade to the version that created the " \ + "lockfile by running `gem install bundler:#{newer_minor}#{pre_flag}`." + expect(err).to include warning_message lockfile_should_be <<-G GEM @@ -196,11 +200,14 @@ RSpec.describe "the lockfile format", :bundler => "2" do rack BUNDLED WITH - 9999999.1.0 + #{newer_minor} G end - it "errors if the current is a major version older than lockfile's bundler version" do + it "warns when updating bundler major version" do + current_version = Bundler::VERSION + older_major = previous_major(current_version) + lockfile <<-L GEM remote: file://localhost#{gem_repo1}/ @@ -214,7 +221,7 @@ RSpec.describe "the lockfile format", :bundler => "2" do rack BUNDLED WITH - 9999999.0.0 + #{older_major} L install_gemfile <<-G @@ -223,98 +230,59 @@ RSpec.describe "the lockfile format", :bundler => "2" do gem "rack" G - expect(last_command).to be_failure - expect(last_command.bundler_err).to include("You must use Bundler 9999999 or greater with this lockfile.") - end - - it "shows a friendly error when running with a new bundler 2 lockfile" do - lockfile <<-L - GEM - remote: https://rails-assets.org/ - specs: - rails-assets-bootstrap (3.3.4) - rails-assets-jquery (>= 1.9.1) - rails-assets-jquery (2.1.4) - - GEM - remote: https://rubygems.org/ - specs: - rake (10.4.2) - - PLATFORMS - ruby - - DEPENDENCIES - rails-assets-bootstrap! - rake - - BUNDLED WITH - 9999999.0.0 - L - - install_gemfile <<-G - source 'https://rubygems.org' - gem 'rake' - - source 'https://rails-assets.org' do - gem 'rails-assets-bootstrap' - end - G - - expect(last_command).to be_failure - expect(out).to include("You must use Bundler 9999999 or greater with this lockfile.") - end + expect(err).to include( + "Warning: the lockfile is being updated to Bundler " \ + "#{current_version.split(".").first}, after which you will be unable to return to Bundler #{older_major.split(".").first}." + ) - it "warns when updating bundler major version" do - lockfile <<-L + lockfile_should_be <<-G GEM remote: file://localhost#{gem_repo1}/ specs: rack (1.0.0) PLATFORMS - #{generic_local_platform} + #{lockfile_platforms} DEPENDENCIES rack BUNDLED WITH - 1.10.0 - L - - simulate_bundler_version "9999999.0.0" do - install_gemfile <<-G - source "file://localhost#{gem_repo1}/" + #{current_version} + G + end - gem "rack" - G - end + it "generates a simple lockfile for a single source, gem with dependencies" do + install_gemfile <<-G + source "file://localhost#{gem_repo1}/" - expect(out).to include("Warning: the lockfile is being updated to Bundler " \ - "9999999, after which you will be unable to return to Bundler 1.") + gem "rack-obama" + G lockfile_should_be <<-G GEM remote: file://localhost#{gem_repo1}/ specs: rack (1.0.0) + rack-obama (1.0) + rack PLATFORMS #{lockfile_platforms} DEPENDENCIES - rack + rack-obama BUNDLED WITH - 9999999.0.0 + #{Bundler::VERSION} G end - it "generates a simple lockfile for a single source, gem with dependencies" do + it "generates a simple lockfile for a single source, gem with a version requirement" do install_gemfile <<-G source "file://localhost#{gem_repo1}/" - gem "rack-obama" + gem "rack-obama", ">= 1.0" G lockfile_should_be <<-G @@ -329,23 +297,30 @@ RSpec.describe "the lockfile format", :bundler => "2" do #{lockfile_platforms} DEPENDENCIES - rack-obama + rack-obama (>= 1.0) BUNDLED WITH #{Bundler::VERSION} G end - it "generates a simple lockfile for a single source, gem with a version requirement" do - install_gemfile <<-G - source "file://localhost#{gem_repo1}/" + it "generates a lockfile without credentials for a configured source", :bundler => "< 3" do + bundle "config set http://localgemserver.test/ user:pass" - gem "rack-obama", ">= 1.0" + install_gemfile(<<-G, :artifice => "endpoint_strict_basic_authentication", :quiet => true) + source "http://localgemserver.test/" do + + end + + source "http://user:pass@othergemserver.test/" do + gem "rack-obama", ">= 1.0" + end G lockfile_should_be <<-G GEM - remote: file://localhost#{gem_repo1}/ + remote: http://localgemserver.test/ + remote: http://user:pass@othergemserver.test/ specs: rack (1.0.0) rack-obama (1.0) @@ -355,15 +330,15 @@ RSpec.describe "the lockfile format", :bundler => "2" do #{lockfile_platforms} DEPENDENCIES - rack-obama (>= 1.0) + rack-obama (>= 1.0)! BUNDLED WITH #{Bundler::VERSION} G end - it "generates a lockfile without credentials for a configured source" do - bundle "config http://localgemserver.test/ user:pass" + it "generates a lockfile without credentials for a configured source", :bundler => "3" do + bundle "config set http://localgemserver.test/ user:pass" install_gemfile(<<-G, :artifice => "endpoint_strict_basic_authentication", :quiet => true) source "http://localgemserver.test/" do @@ -428,7 +403,7 @@ RSpec.describe "the lockfile format", :bundler => "2" do expect(the_bundle).to include_gems "net-sftp 1.1.1", "net-ssh 1.0.0" end - it "generates a simple lockfile for a single pinned source, gem with a version requirement", :bundler => "< 2" do + it "generates a simple lockfile for a single pinned source, gem with a version requirement", :bundler => "< 3" do git = build_git "foo" install_gemfile <<-G @@ -464,15 +439,15 @@ RSpec.describe "the lockfile format", :bundler => "2" do G lockfile_should_be <<-G - GEM - specs: - GIT remote: #{lib_path("foo-1.0")} revision: #{git.ref_for("master")} specs: foo (1.0) + GEM + specs: + PLATFORMS #{lockfile_platforms} @@ -533,15 +508,15 @@ RSpec.describe "the lockfile format", :bundler => "2" do G lockfile_should_be <<-G - GEM - specs: - GIT remote: #{lib_path("foo-1.0")} revision: #{git.ref_for("master")} specs: foo (1.0) + GEM + specs: + PLATFORMS #{lockfile_platforms} @@ -562,9 +537,6 @@ RSpec.describe "the lockfile format", :bundler => "2" do G lockfile_should_be <<-G - GEM - specs: - GIT remote: #{lib_path("foo-1.0")} revision: #{git.ref_for("omg")} @@ -572,6 +544,9 @@ RSpec.describe "the lockfile format", :bundler => "2" do specs: foo (1.0) + GEM + specs: + PLATFORMS #{lockfile_platforms} @@ -592,9 +567,6 @@ RSpec.describe "the lockfile format", :bundler => "2" do G lockfile_should_be <<-G - GEM - specs: - GIT remote: #{lib_path("foo-1.0")} revision: #{git.ref_for("omg")} @@ -602,6 +574,9 @@ RSpec.describe "the lockfile format", :bundler => "2" do specs: foo (1.0) + GEM + specs: + PLATFORMS #{lockfile_platforms} @@ -621,14 +596,14 @@ RSpec.describe "the lockfile format", :bundler => "2" do G lockfile_should_be <<-G - GEM - specs: - PATH remote: #{lib_path("foo-1.0")} specs: foo (1.0) + GEM + specs: + PLATFORMS #{lockfile_platforms} @@ -651,14 +626,14 @@ RSpec.describe "the lockfile format", :bundler => "2" do bundle! :install, :local => true lockfile_should_be <<-G - GEM - specs: - PATH remote: #{lib_path("foo-1.0")} specs: foo (1.0) + GEM + specs: + PLATFORMS #{lockfile_platforms} @@ -683,11 +658,6 @@ RSpec.describe "the lockfile format", :bundler => "2" do G lockfile_should_be <<-G - GEM - remote: file://localhost#{gem_repo1}/ - specs: - rack (1.0.0) - GIT remote: #{lib_path("bar-1.0")} revision: #{bar.ref_for("master")} @@ -699,6 +669,11 @@ RSpec.describe "the lockfile format", :bundler => "2" do specs: foo (1.0) + GEM + remote: file://localhost#{gem_repo1}/ + specs: + rack (1.0.0) + PLATFORMS #{lockfile_platforms} @@ -772,8 +747,8 @@ RSpec.describe "the lockfile format", :bundler => "2" do actionpack (= 2.3.2) activerecord (= 2.3.2) activeresource (= 2.3.2) - rake (= 10.0.2) - rake (10.0.2) + rake (= 12.3.2) + rake (12.3.2) PLATFORMS #{lockfile_platforms} @@ -874,14 +849,14 @@ RSpec.describe "the lockfile format", :bundler => "2" do G lockfile_should_be <<-G - GEM - specs: - PATH remote: foo specs: foo (1.0) + GEM + specs: + PLATFORMS #{lockfile_platforms} @@ -903,14 +878,14 @@ RSpec.describe "the lockfile format", :bundler => "2" do G lockfile_should_be <<-G - GEM - specs: - PATH remote: ../foo specs: foo (1.0) + GEM + specs: + PLATFORMS #{lockfile_platforms} @@ -932,14 +907,14 @@ RSpec.describe "the lockfile format", :bundler => "2" do G lockfile_should_be <<-G - GEM - specs: - PATH remote: foo specs: foo (1.0) + GEM + specs: + PLATFORMS #{lockfile_platforms} @@ -959,14 +934,14 @@ RSpec.describe "the lockfile format", :bundler => "2" do G lockfile_should_be <<-G - GEM - specs: - PATH remote: ../foo specs: foo (1.0) + GEM + specs: + PLATFORMS #{lockfile_platforms} @@ -978,7 +953,48 @@ RSpec.describe "the lockfile format", :bundler => "2" do G end - it "keeps existing platforms in the lockfile" do + it "keeps existing platforms in the lockfile", :bundler => "< 3" do + lockfile <<-G + GEM + remote: file://localhost#{gem_repo1}/ + specs: + rack (1.0.0) + + PLATFORMS + java + + DEPENDENCIES + rack + + BUNDLED WITH + #{Bundler::VERSION} + G + + install_gemfile <<-G + source "file://localhost#{gem_repo1}/" + + gem "rack" + G + + lockfile_should_be <<-G + GEM + remote: file://localhost#{gem_repo1}/ + specs: + rack (1.0.0) + + PLATFORMS + java + #{generic_local_platform} + + DEPENDENCIES + rack + + BUNDLED WITH + #{Bundler::VERSION} + G + end + + it "keeps existing platforms in the lockfile", :bundler => "3" do lockfile <<-G GEM remote: file://localhost#{gem_repo1}/ @@ -1008,7 +1024,9 @@ RSpec.describe "the lockfile format", :bundler => "2" do rack (1.0.0) PLATFORMS - #{lockfile_platforms "java", generic_local_platform, specific_local_platform} + java + #{generic_local_platform} + #{specific_local_platform} DEPENDENCIES rack @@ -1018,7 +1036,38 @@ RSpec.describe "the lockfile format", :bundler => "2" do G end - it "persists the spec's platform to the lockfile" do + it "persists the spec's platform to the lockfile", :bundler => "< 3" do + build_repo2 do + build_gem "platform_specific", "1.0" do |s| + s.platform = Gem::Platform.new("universal-java-16") + end + end + + simulate_platform "universal-java-16" + + install_gemfile! <<-G + source "file://localhost#{gem_repo2}" + gem "platform_specific" + G + + lockfile_should_be <<-G + GEM + remote: file://localhost#{gem_repo2}/ + specs: + platform_specific (1.0-java) + + PLATFORMS + java + + DEPENDENCIES + platform_specific + + BUNDLED WITH + #{Bundler::VERSION} + G + end + + it "persists the spec's platform and specific platform to the lockfile", :bundler => "3" do build_repo2 do build_gem "platform_specific", "1.0" do |s| s.platform = Gem::Platform.new("universal-java-16") @@ -1162,7 +1211,7 @@ RSpec.describe "the lockfile format", :bundler => "2" do G expect(bundled_app("Gemfile.lock")).not_to exist - expect(out).to include "rack (= 1.0) and rack (= 1.1)" + expect(err).to include "rack (= 1.0) and rack (= 1.1)" end it "raises if two different sources are used" do @@ -1173,7 +1222,7 @@ RSpec.describe "the lockfile format", :bundler => "2" do G expect(bundled_app("Gemfile.lock")).not_to exist - expect(out).to include "rack (>= 0) should come from an unspecified source and git://hubz.com (at master)" + expect(err).to include "rack (>= 0) should come from an unspecified source and git://hubz.com (at master)" end it "works correctly with multiple version dependencies" do @@ -1246,10 +1295,6 @@ RSpec.describe "the lockfile format", :bundler => "2" do # Create a Gemfile.lock that has duplicate GIT sections lockfile <<-L - GEM - remote: file://localhost#{gem_repo1}/ - specs: - GIT remote: #{lib_path("omg")} revision: #{revision} @@ -1264,6 +1309,10 @@ RSpec.describe "the lockfile format", :bundler => "2" do specs: omg (1.0) + GEM + remote: file://localhost#{gem_repo1}/ + specs: + PLATFORMS #{lockfile_platforms} @@ -1280,10 +1329,6 @@ RSpec.describe "the lockfile format", :bundler => "2" do # Confirm that duplicate specs do not appear lockfile_should_be(<<-L) - GEM - remote: file://localhost#{gem_repo1}/ - specs: - GIT remote: #{lib_path("omg")} revision: #{revision} @@ -1291,6 +1336,10 @@ RSpec.describe "the lockfile format", :bundler => "2" do specs: omg (1.0) + GEM + remote: file://localhost#{gem_repo1}/ + specs: + PLATFORMS #{lockfile_platforms} @@ -1321,7 +1370,7 @@ RSpec.describe "the lockfile format", :bundler => "2" do gem "rack_middleware" G - expect(out).to include("Downloading rack_middleware-1.0 revealed dependencies not in the API or the lockfile (#{Gem::Dependency.new("rack", "= 0.9.1")})."). + expect(err).to include("Downloading rack_middleware-1.0 revealed dependencies not in the API or the lockfile (#{Gem::Dependency.new("rack", "= 0.9.1")})."). and include("Either installing with `--full-index` or running `bundle update rack_middleware` should fix the problem.") end @@ -1419,7 +1468,25 @@ RSpec.describe "the lockfile format", :bundler => "2" do gem "rack" G - expect(last_command.bundler_err).to match(/your Gemfile.lock contains merge conflicts/i) - expect(last_command.bundler_err).to match(/git checkout HEAD -- Gemfile.lock/i) + expect(err).to match(/your Gemfile.lock contains merge conflicts/i) + expect(err).to match(/git checkout HEAD -- Gemfile.lock/i) + end + +private + + def prerelease?(version) + Gem::Version.new(version).prerelease? + end + + def previous_major(version) + version.split(".").map.with_index {|v, i| i == 0 ? v.to_i - 1 : v }.join(".") + end + + def bump_minor(version) + bump(version, 1) + end + + def bump(version, segment) + version.split(".").map.with_index {|v, i| i == segment ? v.to_i + 1 : v }.join(".") end end diff --git a/spec/other/cli_dispatch_spec.rb b/spec/other/cli_dispatch_spec.rb index d17819b394..548539ac89 100644 --- a/spec/other/cli_dispatch_spec.rb +++ b/spec/other/cli_dispatch_spec.rb @@ -3,27 +3,27 @@ RSpec.describe "bundle command names" do it "work when given fully" do bundle "install" - expect(last_command.bundler_err).to eq("Could not locate Gemfile") + expect(err).to eq("Could not locate Gemfile") expect(last_command.stdboth).not_to include("Ambiguous command") end it "work when not ambiguous" do bundle "ins" - expect(last_command.bundler_err).to eq("Could not locate Gemfile") + expect(err).to eq("Could not locate Gemfile") expect(last_command.stdboth).not_to include("Ambiguous command") end it "print a friendly error when ambiguous" do bundle "in" - expect(last_command.bundler_err).to eq("Ambiguous command in matches [info, init, inject, install]") + expect(err).to eq("Ambiguous command in matches [info, init, inject, install]") end context "when cache_command_is_package is set" do - before { bundle! "config cache_command_is_package true" } + before { bundle! "config set cache_command_is_package true" } it "dispatches `bundle cache` to the package command" do bundle "cache --verbose" - expect(last_command.stdout).to start_with "Running `bundle package --verbose`" + expect(out).to start_with "Running `bundle package --verbose`" end end end diff --git a/spec/other/compatibility_guard_spec.rb b/spec/other/compatibility_guard_spec.rb index ac05ebd918..c72842eab5 100644 --- a/spec/other/compatibility_guard_spec.rb +++ b/spec/other/compatibility_guard_spec.rb @@ -12,14 +12,5 @@ RSpec.describe "bundler compatibility guard" do expect(err).to eq("Bundler 2 requires Ruby 2.3 or later. Either install bundler 1 or update to a supported Ruby version.") end end - - context "when running on RubyGems < 2.5", :ruby => ">= 2.5" do - before { simulate_rubygems_version "1.3.6" } - - it "raises a friendly error" do - bundle :version - expect(err).to eq("Bundler 2 requires RubyGems 2.5 or later. Either install bundler 1 or update to a supported RubyGems version.") - end - end end end diff --git a/spec/other/ext_spec.rb b/spec/other/ext_spec.rb index 3f6f8b4928..bc8c781c5d 100644 --- a/spec/other/ext_spec.rb +++ b/spec/other/ext_spec.rb @@ -54,13 +54,8 @@ RSpec.describe "Gem::SourceIndex#refresh!" do G end - it "does not explode when called", :rubygems => "1.7" do + it "does not explode when called" do run "Gem.source_index.refresh!" run "Gem::SourceIndex.new([]).refresh!" end - - it "does not explode when called", :rubygems => "< 1.7" do - run "Gem.source_index.refresh!" - run "Gem::SourceIndex.from_gems_in([]).refresh!" - end end diff --git a/spec/other/major_deprecation_spec.rb b/spec/other/major_deprecation_spec.rb index e8de574c79..83944e4075 100644 --- a/spec/other/major_deprecation_spec.rb +++ b/spec/other/major_deprecation_spec.rb @@ -1,120 +1,235 @@ # frozen_string_literal: true -RSpec.describe "major deprecations", :bundler => "< 2" do - let(:warnings) { last_command.bundler_err } # change to err in 2.0 - let(:warnings_without_version_messages) { warnings.gsub(/#{Spec::Matchers::MAJOR_DEPRECATION}Bundler will only support ruby(gems)? >= .*/, "") } +RSpec.describe "major deprecations" do + let(:warnings) { err } - context "in a .99 version" do + describe "Bundler" do before do - simulate_bundler_version "1.99.1" - bundle "config --delete major_deprecations" + install_gemfile! <<-G + source "file:#{gem_repo1}" + gem "rack" + G end - it "prints major deprecations without being configured" do - ruby <<-R - require "bundler" - Bundler::SharedHelpers.major_deprecation(Bundler::VERSION) - R + describe ".clean_env" do + before do + source = "Bundler.clean_env" + bundle "exec ruby -e #{source.dump}" + end + + it "is deprecated in favor of .unbundled_env", :bundler => "2" do + expect(deprecations).to include \ + "`Bundler.clean_env` has been deprecated in favor of `Bundler.unbundled_env`. " \ + "If you instead want the environment before bundler was originally loaded, use `Bundler.original_env`" + end - expect(warnings).to have_major_deprecation("1.99.1") + pending "is removed and shows a helpful error message about it", :bundler => "3" end - end - before do - bundle "config major_deprecations true" + describe ".with_clean_env" do + before do + source = "Bundler.with_clean_env {}" + bundle "exec ruby -e #{source.dump}" + end - create_file "gems.rb", <<-G - source "file:#{gem_repo1}" - ruby #{RUBY_VERSION.dump} - gem "rack" - G - bundle! "install" - end + it "is deprecated in favor of .unbundled_env", :bundler => "2" do + expect(deprecations).to include( + "`Bundler.with_clean_env` has been deprecated in favor of `Bundler.with_unbundled_env`. " \ + "If you instead want the environment before bundler was originally loaded, use `Bundler.with_original_env`" + ) + end - describe "Bundler" do - describe ".clean_env" do - it "is deprecated in favor of .unbundled_env" do - source = "Bundler.clean_env" + pending "is removed and shows a helpful error message about it", :bundler => "3" + end + + describe ".clean_system" do + before do + source = "Bundler.clean_system('ls')" bundle "exec ruby -e #{source.dump}" - expect(warnings).to have_major_deprecation \ - "`Bundler.clean_env` has been deprecated in favor of `Bundler.unbundled_env`. " \ - "If you instead want the environment before bundler was originally loaded, use `Bundler.original_env`" end + + it "is deprecated in favor of .unbundled_system", :bundler => "2" do + expect(deprecations).to include( + "`Bundler.clean_system` has been deprecated in favor of `Bundler.unbundled_system`. " \ + "If you instead want to run the command in the environment before bundler was originally loaded, use `Bundler.original_system`" + ) + end + + pending "is removed and shows a helpful error message about it", :bundler => "3" + end + + describe ".clean_exec" do + before do + source = "Bundler.clean_exec('ls')" + bundle "exec ruby -e #{source.dump}" + end + + it "is deprecated in favor of .unbundled_exec", :bundler => "2" do + expect(deprecations).to include( + "`Bundler.clean_exec` has been deprecated in favor of `Bundler.unbundled_exec`. " \ + "If you instead want to exec to a command in the environment before bundler was originally loaded, use `Bundler.original_exec`" + ) + end + + pending "is removed and shows a helpful error message about it", :bundler => "3" end describe ".environment" do - it "is deprecated in favor of .load" do + before do source = "Bundler.environment" bundle "exec ruby -e #{source.dump}" - expect(warnings).to have_major_deprecation "Bundler.environment has been removed in favor of Bundler.load" end + + it "is deprecated in favor of .load", :bundler => "2" do + expect(deprecations).to include "Bundler.environment has been removed in favor of Bundler.load" + end + + pending "is removed and shows a helpful error message about it", :bundler => "3" end + end - shared_examples_for "environmental deprecations" do |trigger| - describe "ruby version", :ruby => "< 2.0" do - it "requires a newer ruby version" do - instance_eval(&trigger) - expect(warnings).to have_major_deprecation "Bundler will only support ruby >= 2.0, you are running #{RUBY_VERSION}" - end + describe "bundle update --quiet" do + it "does not print any deprecations" do + bundle :update, :quiet => true + expect(deprecations).to be_empty + end + end + + describe "bundle config" do + describe "old list interface" do + before do + bundle! "config" end - describe "rubygems version", :rubygems => "< 2.0" do - it "requires a newer rubygems version" do - instance_eval(&trigger) - expect(warnings).to have_major_deprecation "Bundler will only support rubygems >= 2.0, you are running #{Gem::VERSION}" - end + it "warns", :bundler => "2" do + expect(deprecations).to include("Using the `config` command without a subcommand [list, get, set, unset] is deprecated and will be removed in the future. Use `bundle config list` instead.") end + + pending "fails with a helpful error", :bundler => "3" end - describe "-rbundler/setup" do - it_behaves_like "environmental deprecations", proc { ruby "require 'bundler/setup'" } + describe "old get interface" do + before do + bundle! "config waka" + end + + it "warns", :bundler => "2" do + expect(deprecations).to include("Using the `config` command without a subcommand [list, get, set, unset] is deprecated and will be removed in the future. Use `bundle config get waka` instead.") + end + + pending "fails with a helpful error", :bundler => "3" end - describe "Bundler.setup" do - it_behaves_like "environmental deprecations", proc { ruby "require 'bundler'; Bundler.setup" } + describe "old set interface" do + before do + bundle! "config waka wakapun" + end + + it "warns", :bundler => "2" do + expect(deprecations).to include("Using the `config` command without a subcommand [list, get, set, unset] is deprecated and will be removed in the future. Use `bundle config set waka wakapun` instead.") + end + + pending "fails with a helpful error", :bundler => "3" end - describe "bundle check" do - it_behaves_like "environmental deprecations", proc { bundle :check } + describe "old set interface with --local" do + before do + bundle! "config --local waka wakapun" + end + + it "warns", :bundler => "2" do + expect(deprecations).to include("Using the `config` command without a subcommand [list, get, set, unset] is deprecated and will be removed in the future. Use `bundle config set --local waka wakapun` instead.") + end + + pending "fails with a helpful error", :bundler => "3" end - describe "bundle update --quiet" do - it "does not print any deprecations" do - bundle :update, :quiet => true - expect(warnings_without_version_messages).not_to have_major_deprecation + describe "old set interface with --global" do + before do + bundle! "config --global waka wakapun" + end + + it "warns", :bundler => "2" do + expect(deprecations).to include("Using the `config` command without a subcommand [list, get, set, unset] is deprecated and will be removed in the future. Use `bundle config set --global waka wakapun` instead.") end + + pending "fails with a helpful error", :bundler => "3" end - describe "bundle update" do + describe "old unset interface" do before do - create_file("gems.rb", "") - bundle! "install" + bundle! "config --delete waka" + end + + it "warns", :bundler => "2" do + expect(deprecations).to include("Using the `config` command without a subcommand [list, get, set, unset] is deprecated and will be removed in the future. Use `bundle config unset waka` instead.") end - it "warns when no options are given" do - bundle! "update" - expect(warnings).to have_major_deprecation a_string_including("Pass --all to `bundle update` to update everything") + pending "fails with a helpful error", :bundler => "3" + end + + describe "old unset interface with --local" do + before do + bundle! "config --delete --local waka" end - it "does not warn when --all is passed" do - bundle! "update --all" - expect(warnings_without_version_messages).not_to have_major_deprecation + it "warns", :bundler => "2" do + expect(deprecations).to include("Using the `config` command without a subcommand [list, get, set, unset] is deprecated and will be removed in the future. Use `bundle config unset --local waka` instead.") end + + pending "fails with a helpful error", :bundler => "3" end - describe "bundle install --binstubs" do - it "should output a deprecation warning" do - gemfile <<-G - gem 'rack' - G + describe "old unset interface with --global" do + before do + bundle! "config --delete --global waka" + end - bundle :install, :binstubs => true - expect(warnings).to have_major_deprecation a_string_including("The --binstubs option will be removed") + it "warns", :bundler => "2" do + expect(deprecations).to include("Using the `config` command without a subcommand [list, get, set, unset] is deprecated and will be removed in the future. Use `bundle config unset --global waka` instead.") end + + pending "fails with a helpful error", :bundler => "3" end end - context "when bundle is run" do + describe "bundle update" do + before do + install_gemfile <<-G + source "file:#{gem_repo1}" + gem "rack" + G + end + + it "warns when no options are given", :bundler => "2" do + bundle! "update" + expect(deprecations).to include("Pass --all to `bundle update` to update everything") + end + + pending "fails with a helpful error when no options are given", :bundler => "3" + + it "does not warn when --all is passed" do + bundle! "update --all" + expect(deprecations).to be_empty + end + end + + describe "bundle install --binstubs" do + before do + install_gemfile <<-G, :binstubs => true + source "file:#{gem_repo1}" + gem "rack" + G + end + + it "should output a deprecation warning", :bundler => "2" do + expect(deprecations).to include("The --binstubs option will be removed in favor of `bundle binstubs`") + end + + pending "fails with a helpful error", :bundler => "3" + end + + context "bundle install with both gems.rb and Gemfile present" do it "should not warn about gems.rb" do create_file "gems.rb", <<-G source "file://#{gem_repo1}" @@ -122,36 +237,92 @@ RSpec.describe "major deprecations", :bundler => "< 2" do G bundle :install - expect(warnings_without_version_messages).not_to have_major_deprecation + expect(deprecations).to be_empty end - it "should print a Gemfile deprecation warning" do + it "should print a proper warning, and use gems.rb" do create_file "gems.rb" install_gemfile! <<-G source "file://#{gem_repo1}" gem "rack" G - expect(the_bundle).to include_gem "rack 1.0" - expect(warnings).to have_major_deprecation a_string_including("gems.rb and gems.locked will be preferred to Gemfile and Gemfile.lock.") + expect(warnings).to include( + "Multiple gemfiles (gems.rb and Gemfile) detected. Make sure you remove Gemfile and Gemfile.lock since bundler is ignoring them in favor of gems.rb and gems.rb.locked." + ) + + expect(the_bundle).not_to include_gem "rack 1.0" end + end - context "with flags" do - it "should print a deprecation warning about autoremembering flags" do - install_gemfile <<-G, :path => "vendor/bundle" - source "file://#{gem_repo1}" - gem "rack" - G + context "bundle install with flags" do + before do + bundle "config set --local path vendor/bundle" - expect(warnings).to have_major_deprecation a_string_including( - "flags passed to commands will no longer be automatically remembered." - ) + install_gemfile <<-G + source "file://#{gem_repo1}" + gem "rack" + G + end + + { + :clean => true, + :deployment => true, + :frozen => true, + :"no-cache" => true, + :"no-prune" => true, + :path => "vendor/bundle", + :shebang => "ruby27", + :system => true, + :without => "development", + :with => "development", + }.each do |name, value| + flag_name = "--#{name}" + + context "with the #{flag_name} flag" do + before do + bundle "install" # to create a lockfile, which deployment or frozen need + bundle "install #{flag_name} #{value}" + end + + it "should print a deprecation warning", :bundler => "2" do + expect(deprecations).to include( + "The `#{flag_name}` flag is deprecated because it relies on " \ + "being remembered accross bundler invokations, which bundler " \ + "will no longer do in future versions. Instead please use " \ + "`bundle config #{name} '#{value}'`, and stop using this flag" + ) + end + + pending "should fail with a helpful error", :bundler => "3" end end end + context "bundle install with multiple sources" do + before do + install_gemfile <<-G + source "file://localhost#{gem_repo3}" + source "file://localhost#{gem_repo1}" + G + end + + it "shows a deprecation", :bundler => "2" do + expect(deprecations).to include( + "Your Gemfile contains multiple primary sources. " \ + "Using `source` more than once without a block is a security risk, and " \ + "may result in installing unexpected gems. To resolve this warning, use " \ + "a block to indicate which gems should come from the secondary source. " \ + "To upgrade this warning to an error, run `bundle config set " \ + "disable_multisource true`." + ) + end + + pending "should fail with a helpful error", :bundler => "3" + end + context "when Bundler.setup is run in a ruby script" do - it "should print a single deprecation warning" do + before do create_file "gems.rb" install_gemfile! <<-G source "file://#{gem_repo1}" @@ -167,52 +338,57 @@ RSpec.describe "major deprecations", :bundler => "< 2" do Bundler.setup Bundler.setup RUBY + end - expect(warnings_without_version_messages).to have_major_deprecation("gems.rb and gems.locked will be preferred to Gemfile and Gemfile.lock.") + it "should print a single deprecation warning" do + expect(warnings).to include( + "Multiple gemfiles (gems.rb and Gemfile) detected. Make sure you remove Gemfile and Gemfile.lock since bundler is ignoring them in favor of gems.rb and gems.rb.locked." + ) end end context "when `bundler/deployment` is required in a ruby script" do - it "should print a capistrano deprecation warning" do + before do ruby(<<-RUBY) require 'bundler/deployment' RUBY + end - expect(warnings).to have_major_deprecation("Bundler no longer integrates " \ + it "should print a capistrano deprecation warning", :bundler => "2" do + expect(deprecations).to include("Bundler no longer integrates " \ "with Capistrano, but Capistrano provides " \ "its own integration with Bundler via the " \ "capistrano-bundler gem. Use it instead.") end + + pending "should fail with a helpful error", :bundler => "3" end describe Bundler::Dsl do + let(:msg) do + <<-EOS +The :github git source is deprecated, and will be removed in the future. Change any "reponame" :github sources to "username/reponame". Add this code to the top of your Gemfile to ensure it continues to work: + + git_source(:github) {|repo_name| "https://github.com/\#{repo_name}.git" } + + EOS + end + before do @rubygems = double("rubygems") allow(Bundler::Source::Rubygems).to receive(:new) { @rubygems } end context "with github gems" do - it "warns about the https change" do - msg = <<-EOS -The :github git source is deprecated, and will be removed in Bundler 2.0. Change any "reponame" :github sources to "username/reponame". Add this code to the top of your Gemfile to ensure it continues to work: - - git_source(:github) {|repo_name| "https://github.com/\#{repo_name}.git" } - - EOS - expect(Bundler::SharedHelpers).to receive(:major_deprecation).with(2, msg) + it "warns about the https change if people are opting out" do + Bundler.settings.temporary "github.https" => false + expect(Bundler::SharedHelpers).to receive(:major_deprecation).with(3, msg) + expect(Bundler::SharedHelpers).to receive(:major_deprecation).with(2, "Setting `github.https` to false is deprecated and won't be supported in the future.") subject.gem("sparks", :github => "indirect/sparks") end - it "upgrades to https on request" do - Bundler.settings.temporary "github.https" => true - msg = <<-EOS -The :github git source is deprecated, and will be removed in Bundler 2.0. Change any "reponame" :github sources to "username/reponame". Add this code to the top of your Gemfile to ensure it continues to work: - - git_source(:github) {|repo_name| "https://github.com/\#{repo_name}.git" } - - EOS - expect(Bundler::SharedHelpers).to receive(:major_deprecation).with(2, msg) - expect(Bundler::SharedHelpers).to receive(:major_deprecation).with(2, "The `github.https` setting will be removed") + it "upgrades to https by default", :bundler => "2" do + expect(Bundler::SharedHelpers).to receive(:major_deprecation).with(3, msg) subject.gem("sparks", :github => "indirect/sparks") github_uri = "https://github.com/indirect/sparks.git" expect(subject.dependencies.first.source.uri).to eq(github_uri) @@ -223,7 +399,7 @@ The :github git source is deprecated, and will be removed in Bundler 2.0. Change it "warns about removal" do allow(Bundler.ui).to receive(:deprecate) msg = <<-EOS -The :bitbucket git source is deprecated, and will be removed in Bundler 2.0. Add this code to the top of your Gemfile to ensure it continues to work: +The :bitbucket git source is deprecated, and will be removed in the future. Add this code to the top of your Gemfile to ensure it continues to work: git_source(:bitbucket) do |repo_name| user_name, repo_name = repo_name.split("/") @@ -232,7 +408,7 @@ The :bitbucket git source is deprecated, and will be removed in Bundler 2.0. Add end EOS - expect(Bundler::SharedHelpers).to receive(:major_deprecation).with(2, msg) + expect(Bundler::SharedHelpers).to receive(:major_deprecation).with(3, msg) subject.gem("not-really-a-gem", :bitbucket => "mcorp/flatlab-rails") end end @@ -240,37 +416,104 @@ The :bitbucket git source is deprecated, and will be removed in Bundler 2.0. Add context "with gist gems" do it "warns about removal" do allow(Bundler.ui).to receive(:deprecate) - msg = "The :gist git source is deprecated, and will be removed " \ - "in Bundler 2.0. Add this code to the top of your Gemfile to ensure it " \ - "continues to work:\n\n git_source(:gist) {|repo_name| " \ - "\"https://gist.github.com/\#{repo_name}.git\" }\n\n" - expect(Bundler::SharedHelpers).to receive(:major_deprecation).with(2, msg) + msg = <<-EOS +The :gist git source is deprecated, and will be removed in the future. Add this code to the top of your Gemfile to ensure it continues to work: + + git_source(:gist) {|repo_name| "https://gist.github.com/\#{repo_name}.git" } + + EOS + expect(Bundler::SharedHelpers).to receive(:major_deprecation).with(3, msg) subject.gem("not-really-a-gem", :gist => "1234") end end end context "bundle show" do - it "prints a deprecation warning" do + before do install_gemfile! <<-G source "file://#{gem_repo1}" gem "rack" G + end + + context "without flags" do + before do + bundle! :show + end + + it "prints a deprecation warning recommending `bundle list`", :bundler => "2" do + expect(deprecations).to include("use `bundle list` instead of `bundle show`") + end + + pending "fails with a helpful message", :bundler => "3" + end + + context "with --outdated flag" do + before do + bundle! "show --outdated" + end + + it "prints a deprecation warning informing about its removal", :bundler => "2" do + expect(deprecations).to include("the `--outdated` flag to `bundle show` was undocumented and will be removed without replacement") + end + + pending "fails with a helpful message", :bundler => "3" + end - bundle! :show + context "with --verbose flag" do + before do + bundle! "show --verbose" + end + + it "prints a deprecation warning informing about its removal", :bundler => "2" do + expect(deprecations).to include("the `--verbose` flag to `bundle show` was undocumented and will be removed without replacement") + end + + pending "fails with a helpful message", :bundler => "3" + end - warnings.gsub!(/gems included.*?\[DEPRECATED/im, "[DEPRECATED") + context "with a gem argument" do + before do + bundle! "show rack" + end - expect(warnings).to have_major_deprecation a_string_including("use `bundle list` instead of `bundle show`") + it "prints a deprecation warning recommending `bundle info`", :bundler => "2" do + expect(deprecations).to include("use `bundle info rack` instead of `bundle show rack`") + end end + + pending "fails with a helpful message", :bundler => "3" end context "bundle console" do - it "prints a deprecation warning" do + before do bundle "console" + end - expect(warnings).to have_major_deprecation \ - a_string_including("bundle console will be replaced by `bin/console` generated by `bundle gem <name>`") + it "prints a deprecation warning", :bundler => "2" do + expect(deprecations).to include \ + "bundle console will be replaced by `bin/console` generated by `bundle gem <name>`" end + + pending "fails with a helpful message", :bundler => "3" + end + + context "bundle viz" do + let(:ruby_graphviz) do + graphviz_glob = base_system_gems.join("cache/ruby-graphviz*") + Pathname.glob(graphviz_glob).first + end + + before do + system_gems ruby_graphviz + create_file "gems.rb" + bundle "viz" + end + + it "prints a deprecation warning", :bundler => "2" do + expect(deprecations).to include "The `viz` command has been moved to the `bundle-viz` gem, see https://github.com/bundler/bundler-viz" + end + + pending "fails with a helpful message", :bundler => "3" end end diff --git a/spec/other/platform_spec.rb b/spec/other/platform_spec.rb index ca74945563..9c62904286 100644 --- a/spec/other/platform_spec.rb +++ b/spec/other/platform_spec.rb @@ -4,7 +4,7 @@ RSpec.describe "bundle platform" do context "without flags" do let(:bundle_platform_platforms_string) do platforms = [rb] - platforms.unshift(specific_local_platform) if Bundler.feature_flag.bundler_2_mode? + platforms.unshift(specific_local_platform) if Bundler.feature_flag.bundler_3_mode? platforms.map {|pl| "* #{pl}" }.join("\n") end @@ -149,7 +149,7 @@ G expect(out).to eq("ruby 1.8.7 (rbx 1.2.4)") end - it "handles truffleruby", :rubygems => ">= 2.1.0" do + it "handles truffleruby" do gemfile <<-G source "file://#{gem_repo1}" ruby "2.5.1", :engine => 'truffleruby', :engine_version => '1.0.0-rc6' @@ -268,27 +268,27 @@ G def should_be_ruby_version_incorrect expect(exitstatus).to eq(18) if exitstatus - expect(out).to be_include("Your Ruby version is #{RUBY_VERSION}, but your Gemfile specified #{not_local_ruby_version}") + expect(err).to be_include("Your Ruby version is #{RUBY_VERSION}, but your Gemfile specified #{not_local_ruby_version}") end def should_be_engine_incorrect expect(exitstatus).to eq(18) if exitstatus - expect(out).to be_include("Your Ruby engine is #{local_ruby_engine}, but your Gemfile specified #{not_local_tag}") + expect(err).to be_include("Your Ruby engine is #{local_ruby_engine}, but your Gemfile specified #{not_local_tag}") end def should_be_engine_version_incorrect expect(exitstatus).to eq(18) if exitstatus - expect(out).to be_include("Your #{local_ruby_engine} version is #{local_engine_version}, but your Gemfile specified #{local_ruby_engine} #{not_local_engine_version}") + expect(err).to be_include("Your #{local_ruby_engine} version is #{local_engine_version}, but your Gemfile specified #{local_ruby_engine} #{not_local_engine_version}") end def should_be_patchlevel_incorrect expect(exitstatus).to eq(18) if exitstatus - expect(out).to be_include("Your Ruby patchlevel is #{RUBY_PATCHLEVEL}, but your Gemfile specified #{not_local_patchlevel}") + expect(err).to be_include("Your Ruby patchlevel is #{RUBY_PATCHLEVEL}, but your Gemfile specified #{not_local_patchlevel}") end def should_be_patchlevel_fixnum expect(exitstatus).to eq(18) if exitstatus - expect(out).to be_include("The Ruby patchlevel in your Gemfile must be a string") + expect(err).to be_include("The Ruby patchlevel in your Gemfile must be a string") end context "bundle install" do @@ -511,7 +511,7 @@ G build_gem "activesupport", "3.0" end - bundle "update", :all => bundle_update_requires_all? + bundle "update", :all => true expect(the_bundle).to include_gems "rack 1.2", "rack-obama 1.0", "activesupport 3.0" end @@ -528,7 +528,7 @@ G build_gem "activesupport", "3.0" end - bundle "update", :all => bundle_update_requires_all? + bundle "update", :all => true expect(the_bundle).to include_gems "rack 1.2", "rack-obama 1.0", "activesupport 3.0" end end @@ -545,7 +545,7 @@ G build_gem "activesupport", "3.0" end - bundle :update, :all => bundle_update_requires_all? + bundle :update, :all => true should_be_ruby_version_incorrect end @@ -561,7 +561,7 @@ G build_gem "activesupport", "3.0" end - bundle :update, :all => bundle_update_requires_all? + bundle :update, :all => true should_be_engine_incorrect end @@ -578,7 +578,7 @@ G build_gem "activesupport", "3.0" end - bundle :update, :all => bundle_update_requires_all? + bundle :update, :all => true should_be_engine_version_incorrect end end @@ -594,7 +594,7 @@ G build_gem "activesupport", "3.0" end - bundle :update, :all => bundle_update_requires_all? + bundle :update, :all => true should_be_patchlevel_incorrect end end @@ -633,7 +633,7 @@ G end end - it "fails if ruby version doesn't match", :bundler => "< 2" do + it "fails if ruby version doesn't match", :bundler => "< 3" do gemfile <<-G source "file://#{gem_repo1}" gem "rails" @@ -645,7 +645,7 @@ G should_be_ruby_version_incorrect end - it "fails if engine doesn't match", :bundler => "< 2" do + it "fails if engine doesn't match", :bundler => "< 3" do gemfile <<-G source "file://#{gem_repo1}" gem "rails" @@ -657,7 +657,7 @@ G should_be_engine_incorrect end - it "fails if engine version doesn't match", :bundler => "< 2" do + it "fails if engine version doesn't match", :bundler => "< 3" do simulate_ruby_engine "jruby" do gemfile <<-G source "file://#{gem_repo1}" @@ -671,7 +671,7 @@ G end end - it "fails when patchlevel doesn't match", :bundler => "< 2" do + it "fails when patchlevel doesn't match", :bundler => "< 3" do gemfile <<-G source "file://#{gem_repo1}" gem "rack" @@ -863,7 +863,7 @@ G G bundle "exec rackup" - expect(out).to eq("0.9.1") + expect(out).to include("0.9.1") end it "activates the correct gem when ruby version matches any engine" do @@ -876,7 +876,7 @@ G G bundle "exec rackup" - expect(out).to eq("0.9.1") + expect(out).to include("0.9.1") end end @@ -928,7 +928,7 @@ G end end - context "bundle console", :bundler => "< 2" do + context "bundle console", :bundler => "< 3" do before do install_gemfile <<-G source "file://#{gem_repo1}" diff --git a/spec/other/ssl_cert_spec.rb b/spec/other/ssl_cert_spec.rb deleted file mode 100644 index 6d957276fc..0000000000 --- a/spec/other/ssl_cert_spec.rb +++ /dev/null @@ -1,18 +0,0 @@ -# frozen_string_literal: true - -require "bundler/ssl_certs/certificate_manager" - -RSpec.describe "SSL Certificates", :rubygems_master do - hosts = %w[ - rubygems.org - index.rubygems.org - rubygems.global.ssl.fastly.net - staging.rubygems.org - ] - - hosts.each do |host| - it "can securely connect to #{host}", :realworld do - Bundler::SSLCerts::CertificateManager.new.connect_to(host) - end - end -end diff --git a/spec/plugins/command_spec.rb b/spec/plugins/command_spec.rb index 999d8b722b..53d34f7acc 100644 --- a/spec/plugins/command_spec.rb +++ b/spec/plugins/command_spec.rb @@ -73,8 +73,8 @@ RSpec.describe "command plugins" do expect(out).not_to include("Installed plugin copycat") - expect(out).to include("Failed to install plugin") + expect(err).to include("Failed to install plugin") - expect(out).to include("Command(s) `mahcommand` declared by copycat are already registered.") + expect(err).to include("Command(s) `mahcommand` declared by copycat are already registered.") end end diff --git a/spec/plugins/install_spec.rb b/spec/plugins/install_spec.rb index 29017c2afa..afc6087c1b 100644 --- a/spec/plugins/install_spec.rb +++ b/spec/plugins/install_spec.rb @@ -11,7 +11,7 @@ RSpec.describe "bundler plugin install" do it "shows proper message when gem in not found in the source" do bundle "plugin install no-foo --source file://#{gem_repo1}" - expect(out).to include("Could not find") + expect(err).to include("Could not find") plugin_should_not_be_installed("no-foo") end @@ -22,6 +22,18 @@ RSpec.describe "bundler plugin install" do plugin_should_be_installed("foo") end + context "plugin is already installed" do + before do + bundle "plugin install foo --source file://#{gem_repo2}" + end + + it "doesn't install plugin again" do + bundle "plugin install foo --source file://#{gem_repo2}" + expect(out).not_to include("Installing plugin foo") + expect(out).not_to include("Installed plugin foo") + end + end + it "installs multiple plugins" do bundle "plugin install foo kung-foo --source file://#{gem_repo2}" @@ -86,7 +98,7 @@ RSpec.describe "bundler plugin install" do bundle "plugin install charlie --source file://#{gem_repo2}" - expect(out).to include("plugins.rb was not found") + expect(err).to include("plugins.rb was not found") expect(global_plugin_gem("charlie-1.0")).not_to be_directory @@ -138,7 +150,7 @@ RSpec.describe "bundler plugin install" do bundle "plugin install foo --local_git /phony/path/project --git git@gitphony.com:/repo/project" expect(exitstatus).not_to eq(0) if exitstatus - expect(out).to eq("Remote and local plugin git sources can't be both specified") + expect(err).to eq("Remote and local plugin git sources can't be both specified") end end @@ -165,7 +177,7 @@ RSpec.describe "bundler plugin install" do build_plugin "foo", "1.1.0" end - install_gemfile <<-G + gemfile <<-G source 'file://#{gem_repo2}' plugin 'foo', "1.0" G diff --git a/spec/plugins/list_spec.rb b/spec/plugins/list_spec.rb index 9b09f74498..7dc9d10c4b 100644 --- a/spec/plugins/list_spec.rb +++ b/spec/plugins/list_spec.rb @@ -53,18 +53,8 @@ RSpec.describe "bundler plugin list" do plugin_should_be_installed("foo", "bar") bundle "plugin list" - if RUBY_VERSION < "1.9" - # Bundler::Plugin::Index#installed_plugins is keys of Hash, - # and Hash is not ordered in prior to Ruby 1.9. - # So, foo and bar plugins are not always listed in that order. - expected_output1 = "foo\n-----\n shout" - expect(out).to include(expected_output1) - expected_output2 = "bar\n-----\n scream" - expect(out).to include(expected_output2) - else - expected_output = "foo\n-----\n shout\n\nbar\n-----\n scream" - expect(out).to include(expected_output) - end + expected_output = "foo\n-----\n shout\n\nbar\n-----\n scream" + expect(out).to include(expected_output) end end end diff --git a/spec/plugins/source/example_spec.rb b/spec/plugins/source/example_spec.rb index fd30892f63..bc076c06bf 100644 --- a/spec/plugins/source/example_spec.rb +++ b/spec/plugins/source/example_spec.rb @@ -67,7 +67,7 @@ RSpec.describe "real source plugins" do expect(the_bundle).to include_gems("a-path-gem 1.0") end - it "writes to lock file", :bundler => "< 2" do + it "writes to lock file", :bundler => "< 3" do bundle "install" lockfile_should_be <<-G @@ -92,20 +92,20 @@ RSpec.describe "real source plugins" do G end - it "writes to lock file", :bundler => "2" do + it "writes to lock file", :bundler => "3" do bundle "install" lockfile_should_be <<-G - GEM - remote: file://localhost#{gem_repo2}/ - specs: - PLUGIN SOURCE remote: #{lib_path("a-path-gem-1.0")} type: mpath specs: a-path-gem (1.0) + GEM + remote: file://localhost#{gem_repo2}/ + specs: + PLATFORMS #{lockfile_platforms} @@ -359,7 +359,7 @@ RSpec.describe "real source plugins" do expect(the_bundle).to include_gems("ma-gitp-gem 1.0") end - it "writes to lock file", :bundler => "< 2" do + it "writes to lock file", :bundler => "< 3" do revision = revision_for(lib_path("ma-gitp-gem-1.0")) bundle "install" @@ -386,15 +386,11 @@ RSpec.describe "real source plugins" do G end - it "writes to lock file", :bundler => "2" do + it "writes to lock file", :bundler => "3" do revision = revision_for(lib_path("ma-gitp-gem-1.0")) bundle "install" lockfile_should_be <<-G - GEM - remote: file://localhost#{gem_repo2}/ - specs: - PLUGIN SOURCE remote: file://#{lib_path("ma-gitp-gem-1.0")} type: gitp @@ -402,6 +398,10 @@ RSpec.describe "real source plugins" do specs: ma-gitp-gem (1.0) + GEM + remote: file://localhost#{gem_repo2}/ + specs: + PLATFORMS #{lockfile_platforms} diff --git a/spec/quality_es_spec.rb b/spec/quality_es_spec.rb index 20df9912a3..46eed8f18a 100644 --- a/spec/quality_es_spec.rb +++ b/spec/quality_es_spec.rb @@ -1,4 +1,3 @@ -# encoding: utf-8 # frozen_string_literal: true if defined?(Encoding) && Encoding.default_external.name != "UTF-8" @@ -43,14 +42,6 @@ RSpec.describe "La biblioteca si misma" do failing_line_message unless failing_line_message.empty? end - RSpec::Matchers.define :be_well_formed do - match(&:empty?) - - failure_message do |actual| - actual.join("\n") - end - end - it "mantiene la calidad de lenguaje de la documentación" do included = /ronn/ error_messages = [] @@ -64,7 +55,7 @@ RSpec.describe "La biblioteca si misma" do expect(error_messages.compact).to be_well_formed end - it "mantiene la calidad de lenguaje de oraciones usadas en el código fuente" do + it "mantiene la calidad de lenguaje de oraciones usadas en el código fuente", :ruby_repo do error_messages = [] exempt = /vendor/ Dir.chdir(root) do diff --git a/spec/quality_spec.rb b/spec/quality_spec.rb index 64590befdf..87279ebb74 100644 --- a/spec/quality_spec.rb +++ b/spec/quality_spec.rb @@ -1,5 +1,7 @@ # frozen_string_literal: true +require "set" + if defined?(Encoding) && Encoding.default_external.name != "UTF-8" # An approximation of ruby -E UTF-8, since it works on 1.8.7 Encoding.default_external = Encoding.find("UTF-8") @@ -96,16 +98,8 @@ RSpec.describe "The library itself" do failing_line_message unless failing_line_message.empty? end - RSpec::Matchers.define :be_well_formed do - match(&:empty?) - - failure_message do |actual| - actual.join("\n") - end - end - it "has no malformed whitespace" do - exempt = /\.gitmodules|\.marshal|fixtures|vendor|ssl_certs|LICENSE|vcr_cassettes/ + exempt = /\.gitmodules|\.marshal|fixtures|vendor|LICENSE|vcr_cassettes/ error_messages = [] Dir.chdir(root) do lib_files = ruby_core? ? `git ls-files -z -- lib/bundler lib/bundler.rb spec/bundler` : `git ls-files -z -- lib` @@ -175,15 +169,13 @@ RSpec.describe "The library itself" do exemptions = %w[ auto_config_jobs cache_command_is_package - console_command deployment_means_frozen forget_cli_options gem.coc gem.mit + github.https inline - lockfile_uses_separate_rubygems_sources use_gem_version_promoter_for_major_updates - viz_command ] all_settings = Hash.new {|h, k| h[k] = [] } @@ -224,23 +216,39 @@ RSpec.describe "The library itself" do it "can still be built" do Dir.chdir(root) do begin - gem_command! :build, gemspec - if Bundler.rubygems.provides?(">= 2.4") - # there's no way around this warning - last_command.stderr.sub!(/^YAML safe loading.*/, "") - - # older rubygems have weird warnings, and we won't actually be using them - # to build the gem for releases anyways - expect(last_command.stderr).to be_empty, "bundler should build as a gem without warnings, but\n#{err}" + if ruby_core? + spec = Gem::Specification.load(gemspec.to_s) + spec.bindir = "libexec" + File.open(root.join("bundler.gemspec").to_s, "w") {|f| f.write spec.to_ruby } + gem_command! :build, root.join("bundler.gemspec").to_s + FileUtils.rm(root.join("bundler.gemspec").to_s) + else + gem_command! :build, gemspec end + + # there's no way around this warning + err.sub!(/^YAML safe loading.*/, "") + + expect(err).to be_empty, "bundler should build as a gem without warnings, but\n#{err}" ensure # clean up the .gem generated - path_prefix = ruby_core? ? "lib/" : "./" - FileUtils.rm("#{path_prefix}bundler-#{Bundler::VERSION}.gem") + FileUtils.rm("bundler-#{Bundler::VERSION}.gem") end end end + it "ships the correct set of files", :ruby_repo do + Dir.chdir(root) do + git_list = IO.popen("git ls-files -z", &:read).split("\x0").select {|f| f.match(%r{^(lib|exe)/}) } + git_list += %w[CHANGELOG.md LICENSE.md README.md bundler.gemspec] + git_list += Dir.glob("man/**/*") + + gem_list = Gem::Specification.load(gemspec.to_s).files + + expect(git_list.to_set).to eq(gem_list.to_set) + end + end + it "does not contain any warnings" do Dir.chdir(root) do exclusions = %w[ @@ -267,4 +275,20 @@ RSpec.describe "The library itself" do expect(warnings).to be_well_formed end end + + it "does not use require internally, but require_relative" do + Dir.chdir(root) do + exempt = %r{templates/|vendor/} + all_bad_requires = [] + lib_files = ruby_core? ? `git ls-files -z -- lib/bundler lib/bundler.rb` : `git ls-files -z -- lib` + lib_files.split("\x0").each do |filename| + next if filename =~ exempt + File.readlines(filename).each_with_index do |line, number| + line.scan(/^ *require "bundler/).each { all_bad_requires << "#{filename}:#{number.succ}" } + end + end + + expect(all_bad_requires).to be_empty, "#{all_bad_requires.size} internal requires that should use `require_relative`: #{all_bad_requires}" + end + end end diff --git a/spec/realworld/dependency_api_spec.rb b/spec/realworld/dependency_api_spec.rb index 13527ce5d1..e7d11419cd 100644 --- a/spec/realworld/dependency_api_spec.rb +++ b/spec/realworld/dependency_api_spec.rb @@ -9,7 +9,7 @@ RSpec.describe "gemcutter's dependency API", :realworld => true do @server_uri = "http://127.0.0.1:#{port}" require File.expand_path("../../support/artifice/endpoint_timeout", __FILE__) - require "thread" + @t = Thread.new do server = Rack::Server.start(:app => EndpointTimeout, :Host => "0.0.0.0", @@ -22,7 +22,7 @@ RSpec.describe "gemcutter's dependency API", :realworld => true do @t.run wait_for_server("127.0.0.1", port) - bundle! "config timeout 1" + bundle! "config set timeout 1" end after do diff --git a/spec/realworld/double_check_spec.rb b/spec/realworld/double_check_spec.rb index 94ab49ba2a..6fee578a71 100644 --- a/spec/realworld/double_check_spec.rb +++ b/spec/realworld/double_check_spec.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true RSpec.describe "double checking sources", :realworld => true do - it "finds already-installed gems", :ruby => ">= 2.2" do + it "finds already-installed gems" do create_file("rails.gemspec", <<-RUBY) Gem::Specification.new do |s| s.name = "rails" diff --git a/spec/realworld/edgecases_spec.rb b/spec/realworld/edgecases_spec.rb index aa60e20b8a..6468ee7f1e 100644 --- a/spec/realworld/edgecases_spec.rb +++ b/spec/realworld/edgecases_spec.rb @@ -19,63 +19,25 @@ RSpec.describe "real world edgecases", :realworld => true, :sometimes => true do RUBY end - # there is no rbx-relative-require gem that will install on 1.9 - it "ignores extra gems with bad platforms", :ruby => "~> 1.8.7" do - gemfile <<-G - source "https://rubygems.org" - gem "linecache", "0.46" - G - bundle :lock - expect(err).to lack_errors - expect(exitstatus).to eq(0) if exitstatus - end - - # https://github.com/bundler/bundler/issues/1202 - it "bundle cache works with rubygems 1.3.7 and pre gems", - :ruby => "~> 1.8.7", :rubygems => "~> 1.3.7" do - install_gemfile <<-G - source "https://rubygems.org" - gem "rack", "1.3.0.beta2" - gem "will_paginate", "3.0.pre2" - G - bundle :cache - expect(out).not_to include("Removing outdated .gem files from vendor/cache") - end - - # https://github.com/bundler/bundler/issues/1486 - # this is a hash collision that only manifests on 1.8.7 - it "finds the correct child versions", :ruby => "~> 1.8.7" do - gemfile <<-G - source "https://rubygems.org" - - gem 'i18n', '~> 0.6.0' - gem 'activesupport', '~> 3.0.5' - gem 'activerecord', '~> 3.0.5' - gem 'builder', '~> 2.1.2' - G - bundle :lock - expect(lockfile).to include("activemodel (3.0.5)") - end - - it "resolves dependencies correctly", :ruby => "1.9.3" do + it "resolves dependencies correctly" do gemfile <<-G source "https://rubygems.org" - gem 'rails', '~> 3.0' + gem 'rails', '~> 5.0' gem 'capybara', '~> 2.2.0' gem 'rack-cache', '1.2.0' # last version that works on Ruby 1.9 G bundle! :lock - expect(lockfile).to include(rubygems_version("rails", "~> 3.0")) + expect(lockfile).to include(rubygems_version("rails", "~> 5.0")) expect(lockfile).to include("capybara (2.2.1)") end - it "installs the latest version of gxapi_rails", :ruby => "1.9.3" do + it "installs the latest version of gxapi_rails" do gemfile <<-G source "https://rubygems.org" gem "sass-rails" - gem "rails", "~> 3" + gem "rails", "~> 5" gem "gxapi_rails", "< 0.1.0" # 0.1.0 was released way after the test was written gem 'rack-cache', '1.2.0' # last version that works on Ruby 1.9 G @@ -97,7 +59,7 @@ RSpec.describe "real world edgecases", :realworld => true, :sometimes => true do expect(lockfile).to include(rubygems_version("activesupport", "~> 3.0")) end - it "is able to update a top-level dependency when there is a conflict on a shared transitive child", :ruby => "2.1" do + it "is able to update a top-level dependency when there is a conflict on a shared transitive child" do # from https://github.com/bundler/bundler/issues/5031 gemfile <<-G @@ -188,7 +150,7 @@ RSpec.describe "real world edgecases", :realworld => true, :sometimes => true do activemodel (= 4.2.7.1) activerecord (= 4.2.7.1) activesupport (= 4.2.7.1) - bundler (>= 1.3.0, < 2.0) + bundler (>= 1.3.0, < 3.0) railties (= 4.2.7.1) sprockets-rails rails-deprecated_sanitizer (1.0.3) @@ -239,9 +201,10 @@ RSpec.describe "real world edgecases", :realworld => true, :sometimes => true do gem 'rack', '1.0.1' G - bundle! :install, forgotten_command_line_options(:path => "vendor/bundle") + bundle "config set --local path vendor/bundle" + bundle! :install expect(err).not_to include("Could not find rake") - expect(err).to lack_errors + expect(err).to be_empty end it "checks out git repos when the lockfile is corrupted" do @@ -368,7 +331,7 @@ RSpec.describe "real world edgecases", :realworld => true, :sometimes => true do L bundle! :lock - expect(last_command.stderr).to lack_errors + expect(err).to be_empty end it "outputs a helpful error message when gems have invalid gemspecs" do @@ -376,7 +339,7 @@ RSpec.describe "real world edgecases", :realworld => true, :sometimes => true do source 'https://rubygems.org' gem "resque-scheduler", "2.2.0" G - expect(out).to include("You have one or more invalid gemspecs that need to be fixed.") - expect(out).to include("resque-scheduler 2.2.0 has an invalid gemspec") + expect(err).to include("You have one or more invalid gemspecs that need to be fixed.") + expect(err).to include("resque-scheduler 2.2.0 has an invalid gemspec") end end diff --git a/spec/realworld/gemfile_source_header_spec.rb b/spec/realworld/gemfile_source_header_spec.rb index 59c1916874..eaefd0f03e 100644 --- a/spec/realworld/gemfile_source_header_spec.rb +++ b/spec/realworld/gemfile_source_header_spec.rb @@ -1,14 +1,12 @@ # frozen_string_literal: true -require "thread" - -RSpec.describe "fetching dependencies with a mirrored source", :realworld => true, :rubygems => ">= 2.0" do +RSpec.describe "fetching dependencies with a mirrored source", :realworld => true do let(:mirror) { "https://server.example.org" } let(:original) { "http://127.0.0.1:#{@port}" } before do setup_server - bundle "config --local mirror.#{mirror} #{original}" + bundle "config set --local mirror.#{mirror} #{original}" end after do diff --git a/spec/realworld/mirror_probe_spec.rb b/spec/realworld/mirror_probe_spec.rb index ab74886329..13d1afe124 100644 --- a/spec/realworld/mirror_probe_spec.rb +++ b/spec/realworld/mirror_probe_spec.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require "thread" - RSpec.describe "fetching dependencies with a not available mirror", :realworld => true do let(:mirror) { @mirror_uri } let(:original) { @server_uri } @@ -74,10 +72,10 @@ RSpec.describe "fetching dependencies with a not available mirror", :realworld = bundle :install, :artifice => nil expect(out).to include("Fetching source index from #{mirror}") - expect(out).to include("Retrying fetcher due to error (2/4): Bundler::HTTPError Could not fetch specs from #{mirror}") - expect(out).to include("Retrying fetcher due to error (3/4): Bundler::HTTPError Could not fetch specs from #{mirror}") - expect(out).to include("Retrying fetcher due to error (4/4): Bundler::HTTPError Could not fetch specs from #{mirror}") - expect(out).to include("Could not fetch specs from #{mirror}") + expect(err).to include("Retrying fetcher due to error (2/4): Bundler::HTTPError Could not fetch specs from #{mirror}") + expect(err).to include("Retrying fetcher due to error (3/4): Bundler::HTTPError Could not fetch specs from #{mirror}") + expect(err).to include("Retrying fetcher due to error (4/4): Bundler::HTTPError Could not fetch specs from #{mirror}") + expect(err).to include("Could not fetch specs from #{mirror}") end it "prints each error and warning on a new line" do @@ -88,8 +86,8 @@ RSpec.describe "fetching dependencies with a not available mirror", :realworld = bundle :install, :artifice => nil - expect(last_command.stdout).to include "Fetching source index from #{mirror}/" - expect(last_command.bundler_err).to include <<-EOS.strip + expect(out).to include "Fetching source index from #{mirror}/" + expect(err).to include <<-EOS.strip Retrying fetcher due to error (2/4): Bundler::HTTPError Could not fetch specs from #{mirror}/ Retrying fetcher due to error (3/4): Bundler::HTTPError Could not fetch specs from #{mirror}/ Retrying fetcher due to error (4/4): Bundler::HTTPError Could not fetch specs from #{mirror}/ @@ -112,10 +110,10 @@ Could not fetch specs from #{mirror}/ bundle :install, :artifice => nil expect(out).to include("Fetching source index from #{mirror}") - expect(out).to include("Retrying fetcher due to error (2/4): Bundler::HTTPError Could not fetch specs from #{mirror}") - expect(out).to include("Retrying fetcher due to error (3/4): Bundler::HTTPError Could not fetch specs from #{mirror}") - expect(out).to include("Retrying fetcher due to error (4/4): Bundler::HTTPError Could not fetch specs from #{mirror}") - expect(out).to include("Could not fetch specs from #{mirror}") + expect(err).to include("Retrying fetcher due to error (2/4): Bundler::HTTPError Could not fetch specs from #{mirror}") + expect(err).to include("Retrying fetcher due to error (3/4): Bundler::HTTPError Could not fetch specs from #{mirror}") + expect(err).to include("Retrying fetcher due to error (4/4): Bundler::HTTPError Could not fetch specs from #{mirror}") + expect(err).to include("Could not fetch specs from #{mirror}") end end diff --git a/spec/realworld/parallel_spec.rb b/spec/realworld/parallel_spec.rb index ed4430c68b..7738b46aac 100644 --- a/spec/realworld/parallel_spec.rb +++ b/spec/realworld/parallel_spec.rb @@ -11,11 +11,7 @@ RSpec.describe "parallel", :realworld => true, :sometimes => true do bundle :install, :jobs => 4, :env => { "DEBUG" => "1" } - if Bundler.rubygems.provides?(">= 2.1.0") - expect(out).to match(/[1-3]: /) - else - expect(out).to include("is not threadsafe") - end + expect(out).to match(/[1-3]: /) bundle "info activesupport --path" expect(out).to match(/activesupport/) @@ -38,13 +34,9 @@ RSpec.describe "parallel", :realworld => true, :sometimes => true do gem 'i18n', '~> 0.6.0' # Because 0.7+ requires Ruby 1.9.3+ G - bundle :update, :jobs => 4, :env => { "DEBUG" => "1" }, :all => bundle_update_requires_all? + bundle :update, :jobs => 4, :env => { "DEBUG" => "1" }, :all => true - if Bundler.rubygems.provides?(">= 2.1.0") - expect(out).to match(/[1-3]: /) - else - expect(out).to include("is not threadsafe") - end + expect(out).to match(/[1-3]: /) bundle "info activesupport --path" expect(out).to match(/activesupport-3\.2\.\d+/) diff --git a/spec/resolver/basic_spec.rb b/spec/resolver/basic_spec.rb index 9f92303447..57897f89b4 100644 --- a/spec/resolver/basic_spec.rb +++ b/spec/resolver/basic_spec.rb @@ -226,7 +226,7 @@ Bundler could not find compatible versions for gem "a": # dependencies and since the dependency of the selected foo gem changes, the latest matching # dependency of "bar", "~> 2.1" -- bar-2.1.1 -- is selected. This is not a bug and follows # the long-standing documented Conservative Updating behavior of bundle install. - # http://bundler.io/v1.12/man/bundle-install.1.html#CONSERVATIVE-UPDATING + # https://bundler.io/v1.12/man/bundle-install.1.html#CONSERVATIVE-UPDATING should_conservative_resolve_and_include :patch, ["foo"], %w[foo-1.4.5 bar-2.1.1] end diff --git a/spec/runtime/executable_spec.rb b/spec/runtime/executable_spec.rb index dcee234e15..b2d5b6c03f 100644 --- a/spec/runtime/executable_spec.rb +++ b/spec/runtime/executable_spec.rb @@ -99,7 +99,7 @@ RSpec.describe "Running bin/* commands" do expect(bundled_app("bin/rackup")).not_to exist end - it "allows you to stop installing binstubs", :bundler => "< 2" do + it "allows you to stop installing binstubs", :bundler => "< 3" do bundle! "install --binstubs bin/" bundled_app("bin/rackup").rmtree bundle! "install --binstubs \"\"" @@ -110,7 +110,7 @@ RSpec.describe "Running bin/* commands" do expect(out).to include("You have not configured a value for `bin`") end - it "remembers that the option was specified", :bundler => "< 2" do + it "remembers that the option was specified", :bundler => "< 3" do gemfile <<-G source "file://#{gem_repo1}" gem "activesupport" @@ -129,23 +129,6 @@ RSpec.describe "Running bin/* commands" do expect(bundled_app("bin/rackup")).to exist end - it "rewrites bins on --binstubs (to maintain backwards compatibility)", :bundler => "< 2" do - gemfile <<-G - source "file://#{gem_repo1}" - gem "rack" - G - - bundle! :install, forgotten_command_line_options([:binstubs, :bin] => "bin") - - File.open(bundled_app("bin/rackup"), "wb") do |file| - file.print "OMG" - end - - bundle "install" - - expect(bundled_app("bin/rackup").read).to_not eq("OMG") - end - it "rewrites bins on binstubs (to maintain backwards compatibility)" do install_gemfile! <<-G source "file://#{gem_repo1}" diff --git a/spec/runtime/gem_tasks_spec.rb b/spec/runtime/gem_tasks_spec.rb index de72869dc3..f0f48a01ac 100644 --- a/spec/runtime/gem_tasks_spec.rb +++ b/spec/runtime/gem_tasks_spec.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -RSpec.describe "require 'bundler/gem_tasks'", :ruby_repo do +RSpec.describe "require 'bundler/gem_tasks'" do before :each do bundled_app("foo.gemspec").open("w") do |f| f.write <<-GEMSPEC @@ -39,6 +39,6 @@ RSpec.describe "require 'bundler/gem_tasks'", :ruby_repo do with_gem_path_as(Spec::Path.base_system_gems.to_s) do sys_exec! %(#{rake} -e 'load "Rakefile"; puts CLOBBER.inspect') end - expect(last_command.stdout).to eq '["pkg"]' + expect(out).to eq '["pkg"]' end end diff --git a/spec/runtime/inline_spec.rb b/spec/runtime/inline_spec.rb index 09493e0cbf..d53c3d1c15 100644 --- a/spec/runtime/inline_spec.rb +++ b/spec/runtime/inline_spec.rb @@ -90,7 +90,7 @@ RSpec.describe "bundler/inline#gemfile" do expect(out).to include("Installing activesupport") err.gsub! %r{.*lib/sinatra/base\.rb:\d+: warning: constant ::Fixnum is deprecated$}, "" err.strip! - expect(err).to lack_errors + expect(err).to be_empty expect(exitstatus).to be_zero if exitstatus end @@ -244,6 +244,20 @@ RSpec.describe "bundler/inline#gemfile" do expect(exitstatus).to be_zero if exitstatus end + it "installs inline gems when frozen is set" do + script <<-RUBY, :env => { "BUNDLE_FROZEN" => "true" } + gemfile do + source "file://#{gem_repo1}" + gem "rack" + end + + puts RACK + RUBY + + expect(last_command.stderr).to be_empty + expect(exitstatus).to be_zero if exitstatus + end + it "installs inline gems when BUNDLE_GEMFILE is set to an empty string" do ENV["BUNDLE_GEMFILE"] = "" @@ -274,6 +288,19 @@ RSpec.describe "bundler/inline#gemfile" do puts RACK RUBY expect(last_command).to be_success - expect(last_command.stdout).to eq "1.0.0" + expect(out).to eq "1.0.0" + end + + it "skips platform warnings" do + simulate_platform "ruby" + + script <<-RUBY + gemfile(true) do + source "file://#{gem_repo1}" + gem "rack", platform: :jruby + end + RUBY + + expect(err).to be_empty end end diff --git a/spec/runtime/platform_spec.rb b/spec/runtime/platform_spec.rb index eecf162427..11fe16f499 100644 --- a/spec/runtime/platform_spec.rb +++ b/spec/runtime/platform_spec.rb @@ -93,7 +93,7 @@ RSpec.describe "Bundler.setup with multi platform stuff" do gem "platform_specific" G - bundle! "config force_ruby_platform true" + bundle! "config set force_ruby_platform true" bundle! "install" @@ -108,7 +108,7 @@ RSpec.describe "Bundler.setup with multi platform stuff" do gem "platform_specific" G - bundle! "config force_ruby_platform true" + bundle! "config set force_ruby_platform true" bundle! "install" diff --git a/spec/runtime/require_spec.rb b/spec/runtime/require_spec.rb index 0484e38845..f149c9d489 100644 --- a/spec/runtime/require_spec.rb +++ b/spec/runtime/require_spec.rb @@ -121,7 +121,7 @@ RSpec.describe "Bundler.require" do Bundler.require R - expect(err).to eq_err("ZOMG LOAD ERROR") + expect(err_without_deprecations).to eq("ZOMG LOAD ERROR") end it "displays a helpful message if the required gem throws an error" do @@ -160,7 +160,7 @@ RSpec.describe "Bundler.require" do RUBY run(cmd) - expect(err).to eq_err("ZOMG LOAD ERROR: cannot load such file -- load-bar") + expect(err_without_deprecations).to eq("ZOMG LOAD ERROR: cannot load such file -- load-bar") end describe "with namespaced gems" do @@ -198,7 +198,7 @@ RSpec.describe "Bundler.require" do RUBY ruby(cmd) - expect(err).to lack_errors + expect(err).to be_empty end it "does not mangle explicitly given requires" do @@ -211,7 +211,7 @@ RSpec.describe "Bundler.require" do load_error_run <<-R, "jquery-rails" Bundler.require R - expect(err).to eq_err("ZOMG LOAD ERROR") + expect(err_without_deprecations).to eq("ZOMG LOAD ERROR") end it "handles the case where regex fails" do @@ -234,7 +234,7 @@ RSpec.describe "Bundler.require" do RUBY run(cmd) - expect(err).to eq_err("ZOMG LOAD ERROR") + expect(err_without_deprecations).to eq("ZOMG LOAD ERROR") end it "doesn't swallow the error when the library has an unrelated error" do @@ -258,19 +258,19 @@ RSpec.describe "Bundler.require" do RUBY run(cmd) - expect(err).to eq_err("ZOMG LOAD ERROR: cannot load such file -- load-bar") + expect(err_without_deprecations).to eq("ZOMG LOAD ERROR: cannot load such file -- load-bar") end end describe "using bundle exec" do it "requires the locked gems" do - bundle "exec ruby -e 'Bundler.require'", :env => { :RUBYOPT => "-r#{spec_dir.join("support/hax")}" } + bundle "exec ruby -e 'Bundler.require'" expect(out).to eq("two") - bundle "exec ruby -e 'Bundler.require(:bar)'", :env => { :RUBYOPT => "-r#{spec_dir.join("support/hax")}" } + bundle "exec ruby -e 'Bundler.require(:bar)'" expect(out).to eq("baz\nqux") - bundle "exec ruby -e 'Bundler.require(:default, :bar)'", :env => { :RUBYOPT => "-r#{spec_dir.join("support/hax")}" } + bundle "exec ruby -e 'Bundler.require(:default, :bar)'" expect(out).to eq("baz\nqux\ntwo") end end @@ -366,12 +366,12 @@ RSpec.describe "Bundler.require" do load_error_run <<-R, "no_such_file_omg" Bundler.require R - expect(err).to eq_err("ZOMG LOAD ERROR") + expect(err_without_deprecations).to eq("ZOMG LOAD ERROR") end end end - it "does not load rubygems gemspecs that are used", :rubygems => ">= 2.5.2" do + it "does not load rubygems gemspecs that are used" do install_gemfile! <<-G source "file://#{gem_repo1}" gem "rack" @@ -394,7 +394,7 @@ RSpec.describe "Bundler.require" do expect(out).to eq("WIN") end - it "does not load git gemspecs that are used", :rubygems => ">= 2.5.2" do + it "does not load git gemspecs that are used" do build_git "foo" install_gemfile! <<-G @@ -432,7 +432,7 @@ RSpec.describe "Bundler.require with platform specific dependencies" do G run "Bundler.require" - expect(err).to lack_errors + expect(err).to be_empty end it "requires gems pinned to multiple platforms, including the current one" do @@ -447,6 +447,6 @@ RSpec.describe "Bundler.require with platform specific dependencies" do run "Bundler.require; puts RACK" expect(out).to eq("1.0.0") - expect(err).to lack_errors + expect(err).to be_empty end end diff --git a/spec/runtime/setup_spec.rb b/spec/runtime/setup_spec.rb index 941c3d34e7..90c3df8661 100644 --- a/spec/runtime/setup_spec.rb +++ b/spec/runtime/setup_spec.rb @@ -1,5 +1,8 @@ # frozen_string_literal: true +require "tmpdir" +require "tempfile" + RSpec.describe "Bundler.setup" do describe "with no arguments" do it "makes all groups available" do @@ -16,7 +19,7 @@ RSpec.describe "Bundler.setup" do require 'rack' puts RACK RUBY - expect(err).to lack_errors + expect(err).to be_empty expect(out).to eq("1.0.0") end end @@ -42,7 +45,7 @@ RSpec.describe "Bundler.setup" do puts "WIN" end RUBY - expect(err).to lack_errors + expect(err).to be_empty expect(out).to eq("WIN") end @@ -55,7 +58,7 @@ RSpec.describe "Bundler.setup" do require 'rack' puts RACK RUBY - expect(err).to lack_errors + expect(err).to be_empty expect(out).to eq("1.0.0") end @@ -69,7 +72,7 @@ RSpec.describe "Bundler.setup" do require 'rack' puts RACK RUBY - expect(err).to lack_errors + expect(err).to be_empty expect(out).to eq("1.0.0") end @@ -87,7 +90,7 @@ RSpec.describe "Bundler.setup" do puts "FAIL" end RUBY - expect(err).to lack_errors + expect(err).to be_empty expect(out).to match("WIN") end @@ -125,7 +128,7 @@ RSpec.describe "Bundler.setup" do gem "rack" G - ENV["RUBYOPT"] = "-Idash_i_dir" + ENV["RUBYOPT"] = "#{ENV["RUBYOPT"]} -Idash_i_dir" ENV["RUBYLIB"] = "rubylib_dir" ruby <<-RUBY @@ -139,8 +142,7 @@ RSpec.describe "Bundler.setup" do rack_load_order = load_path.index {|path| path.include?("rack") } expect(err).to eq("") - expect(load_path[1]).to include "dash_i_dir" - expect(load_path[2]).to include "rubylib_dir" + expect(load_path).to include(a_string_ending_with("dash_i_dir"), "rubylib_dir") expect(rack_load_order).to be > 0 end @@ -166,7 +168,7 @@ RSpec.describe "Bundler.setup" do "/gems/actionpack-2.3.2/lib", "/gems/actionmailer-2.3.2/lib", "/gems/activesupport-2.3.2/lib", - "/gems/rake-10.0.2/lib" + "/gems/rake-12.3.2/lib" ) end @@ -362,7 +364,7 @@ RSpec.describe "Bundler.setup" do end R - expect(err).to lack_errors + expect(err).to be_empty end it "replaces #gem but raises when the version is wrong" do @@ -388,7 +390,7 @@ RSpec.describe "Bundler.setup" do end R - expect(err).to lack_errors + expect(err).to be_empty end end @@ -528,7 +530,7 @@ RSpec.describe "Bundler.setup" do gem "rack", :git => "#{lib_path("rack-0.8")}", :branch => "master" G - bundle %(config local.rack #{lib_path("local-rack")}) + bundle %(config set local.rack #{lib_path("local-rack")}) bundle! :install FileUtils.rm_rf(lib_path("local-rack")) @@ -546,7 +548,7 @@ RSpec.describe "Bundler.setup" do gem "rack", :git => "#{lib_path("rack-0.8")}", :branch => "master" G - bundle %(config local.rack #{lib_path("local-rack")}) + bundle %(config set local.rack #{lib_path("local-rack")}) bundle! :install gemfile <<-G @@ -568,7 +570,7 @@ RSpec.describe "Bundler.setup" do gem "rack", :git => "#{lib_path("rack-0.8")}", :branch => "master" G - bundle %(config local.rack #{lib_path("local-rack")}) + bundle %(config set local.rack #{lib_path("local-rack")}) bundle! :install gemfile <<-G @@ -595,7 +597,7 @@ RSpec.describe "Bundler.setup" do gem "rack", :git => "#{lib_path("rack-0.8")}", :ref => "master", :branch => "nonexistant" G - bundle %(config local.rack #{lib_path("local-rack")}) + bundle %(config set local.rack #{lib_path("local-rack")}) run "require 'rack'" expect(err).to match(/is using branch master but Gemfile specifies nonexistant/) end @@ -651,62 +653,6 @@ RSpec.describe "Bundler.setup" do end end - # Unfortunately, gem_prelude does not record the information about - # activated gems, so this test cannot work on 1.9 :( - if RUBY_VERSION < "1.9" - describe "preactivated gems" do - it "raises an exception if a pre activated gem conflicts with the bundle" do - system_gems "thin-1.0", "rack-1.0.0" - build_gem "thin", "1.1", :to_system => true do |s| - s.add_dependency "rack" - end - - gemfile <<-G - gem "thin", "1.0" - G - - ruby <<-R - require 'rubygems' - gem "thin" - require 'bundler' - begin - Bundler.setup - puts "FAIL" - rescue Gem::LoadError => e - puts e.message - end - R - - expect(out).to eq("You have already activated thin 1.1, but your Gemfile requires thin 1.0. Prepending `bundle exec` to your command may solve this.") - end - - it "version_requirement is now deprecated in rubygems 1.4.0+" do - system_gems "thin-1.0", "rack-1.0.0" - build_gem "thin", "1.1", :to_system => true do |s| - s.add_dependency "rack" - end - - gemfile <<-G - gem "thin", "1.0" - G - - ruby <<-R - require 'rubygems' - gem "thin" - require 'bundler' - begin - Bundler.setup - puts "FAIL" - rescue Gem::LoadError => e - puts e.message - end - R - - expect(err).to lack_errors - end - end - end - # RubyGems returns loaded_from as a string it "has loaded_from as a string on all specs" do build_git "foo" @@ -728,7 +674,7 @@ RSpec.describe "Bundler.setup" do expect(out).to be_empty end - it "does not load all gemspecs", :rubygems => ">= 2.3" do + it "does not load all gemspecs" do install_gemfile! <<-G source "file://#{gem_repo1}" gem "rack" @@ -763,9 +709,9 @@ end G ENV["GEM_HOME"] = "" - bundle %(exec ruby -e "require 'set'"), :env => { :RUBYOPT => "-r#{spec_dir.join("support/hax")}" } + bundle %(exec ruby -e "require 'set'") - expect(err).to lack_errors + expect(err).to be_empty end describe "$MANPATH" do @@ -861,7 +807,7 @@ end let(:gem_home) { Dir.mktmpdir } let(:symlinked_gem_home) { Tempfile.new("gem_home").path } let(:bundler_dir) { ruby_core? ? File.expand_path("../../../..", __FILE__) : File.expand_path("../../..", __FILE__) } - let(:bundler_lib) { File.join(bundler_dir, "lib") } + let(:full_name) { "bundler-#{Bundler::VERSION}" } before do FileUtils.ln_sf(gem_home, symlinked_gem_home) @@ -870,32 +816,30 @@ end Dir.mkdir(gems_dir) Dir.mkdir(specifications_dir) - FileUtils.ln_s(bundler_dir, File.join(gems_dir, "bundler-#{Bundler::VERSION}")) + FileUtils.ln_s(bundler_dir, File.join(gems_dir, full_name)) - gemspec_file = ruby_core? ? "#{bundler_dir}/lib/bundler.gemspec" : "#{bundler_dir}/bundler.gemspec" - gemspec = File.read(gemspec_file). + gemspec_file = ruby_core? ? "#{bundler_dir}/lib/bundler/bundler.gemspec" : "#{bundler_dir}/bundler.gemspec" + gemspec = File.binread(gemspec_file). sub("Bundler::VERSION", %("#{Bundler::VERSION}")) gemspec = gemspec.lines.reject {|line| line =~ %r{lib/bundler/version} }.join - File.open(File.join(specifications_dir, "bundler.gemspec"), "wb") do |f| + File.open(File.join(specifications_dir, "#{full_name}.gemspec"), "wb") do |f| f.write(gemspec) end end - # Can't make this pass on 2.6 since the ruby standard library has the same $LOAD_PATH - # entry as bundler (since it's a default gem) - it "should successfully require 'bundler/setup'", :ruby_repo, :ruby => "< 2.6" do + it "should not remove itself from the LOAD_PATH and require a different copy of 'bundler/setup'", :ruby_repo do install_gemfile "" - ruby <<-'R', :env => { "GEM_PATH" => symlinked_gem_home }, :no_lib => true - # Remove any bundler that's not the current bundler from $LOAD_PATH - $LOAD_PATH.each do |path| - $LOAD_PATH.delete(path) if File.exist?("#{path}/bundler.rb") + ruby <<-R, :env => { "GEM_PATH" => symlinked_gem_home }, :no_lib => true + TracePoint.trace(:class) do |tp| + puts "OMG" if tp.path.include?("bundler") && !tp.path.start_with?("#{File.expand_path("../..", __dir__)}") end - puts (require 'bundler/setup') + gem 'bundler', '#{Bundler::VERSION}' + require 'bundler/setup' R - expect(out).to eql("true") + expect(out).to be_empty end end @@ -934,7 +878,7 @@ end require 'foo' R end - expect(err).to lack_errors + expect(err).to be_empty end it "should make sure the Bundler.root is really included in the path relative to the Gemfile" do @@ -959,7 +903,7 @@ end R end - expect(err).to lack_errors + expect(err).to be_empty end end @@ -1037,7 +981,7 @@ end describe "with system gems in the bundle" do before :each do - bundle! "config path.system true" + bundle! "config set path.system true" system_gems "rack-1.0.0" install_gemfile <<-G @@ -1090,9 +1034,9 @@ end end.ref_for("HEAD") bundle :install - expect(out.lines.map(&:chomp)).to include( + expect(err.lines.map(&:chomp)).to include( a_string_starting_with("[!] There was an error while loading `bar.gemspec`:"), - RUBY_VERSION >= "1.9" ? a_string_starting_with("Does it try to require a relative path? That's been removed in Ruby 1.9.") : "", + a_string_starting_with("Does it try to require a relative path? That's been removed in Ruby 1.9."), " # from #{default_bundle_path "bundler", "gems", "bar-1.0-#{ref[0, 12]}", "bar.gemspec"}:1", " > require 'foobarbaz'" ) @@ -1109,7 +1053,7 @@ end Bundler.load RUBY - expect(err).to lack_errors + expect(err).to be_empty expect(out).to eq("") end end @@ -1120,8 +1064,8 @@ end gem "bundler", :path => "#{File.expand_path("..", lib)}" G - bundle %(exec ruby -e "require 'bundler'; Bundler.setup"), :env => { :RUBYOPT => "-r#{spec_dir.join("support/hax")}" } - expect(err).to lack_errors + bundle %(exec ruby -e "require 'bundler'; Bundler.setup") + expect(err).to be_empty end end @@ -1244,7 +1188,7 @@ end end describe "with gemified standard libraries" do - it "does not load Psych", :ruby => "~> 2.2" do + it "does not load Psych" do gemfile "" ruby <<-RUBY require 'bundler/setup' @@ -1270,7 +1214,7 @@ end describe "default gem activation" do let(:exemptions) do - if Gem::Version.new(Gem::VERSION) >= Gem::Version.new("2.7") || ENV["RGV"] == "master" + if Gem::Version.new(Gem::VERSION) >= Gem::Version.new("2.7") [] else %w[io-console openssl] @@ -1316,14 +1260,14 @@ end it "activates no gems with -rbundler/setup" do install_gemfile! "" ruby! code, :env => { :RUBYOPT => activation_warning_hack_rubyopt + " -rbundler/setup" } - expect(last_command.stdout).to eq("{}") + expect(out).to eq("{}") end it "activates no gems with bundle exec" do install_gemfile! "" create_file("script.rb", code) bundle! "exec ruby ./script.rb", :env => { :RUBYOPT => activation_warning_hack_rubyopt } - expect(last_command.stdout).to eq("{}") + expect(out).to eq("{}") end it "activates no gems with bundle exec that is loaded" do @@ -1331,7 +1275,7 @@ end create_file("script.rb", "#!/usr/bin/env ruby\n\n#{code}") FileUtils.chmod(0o777, bundled_app("script.rb")) bundle! "exec ./script.rb", :artifice => nil, :env => { :RUBYOPT => activation_warning_hack_rubyopt } - expect(last_command.stdout).to eq("{}") + expect(out).to eq("{}") end let(:default_gems) do @@ -1383,7 +1327,7 @@ end end describe "after setup" do - it "allows calling #gem on random objects", :bundler => "< 2" do + it "allows calling #gem on random objects", :bundler => "< 3" do install_gemfile <<-G source "file:#{gem_repo1}" gem "rack" @@ -1398,7 +1342,7 @@ end expect(out).to eq("rack-1.0.0") end - it "keeps Kernel#gem private", :bundler => "2" do + it "keeps Kernel#gem private", :bundler => "3" do install_gemfile! <<-G source "file:#{gem_repo1}" gem "rack" @@ -1411,7 +1355,7 @@ end RUBY expect(last_command.stdboth).not_to include "FAIL" - expect(last_command.stderr).to include "private method `gem'" + expect(err).to include "private method `gem'" end it "keeps Kernel#require private" do @@ -1427,7 +1371,7 @@ end RUBY expect(last_command.stdboth).not_to include "FAIL" - expect(last_command.stderr).to include "private method `require'" + expect(err).to include "private method `require'" end end end diff --git a/spec/runtime/with_unbundled_env_spec.rb b/spec/runtime/with_unbundled_env_spec.rb index 83eb1eac13..b901f28c8b 100644 --- a/spec/runtime/with_unbundled_env_spec.rb +++ b/spec/runtime/with_unbundled_env_spec.rb @@ -1,17 +1,13 @@ # frozen_string_literal: true RSpec.describe "Bundler.with_env helpers" do - def bundle_exec_ruby!(code, *args) + def bundle_exec_ruby!(code) build_bundler_context - opts = args.last.is_a?(Hash) ? args.pop : {} - env = opts[:env] ||= {} - env[:RUBYOPT] ||= "-r#{spec_dir.join("support/hax")}" - args.push opts - bundle! "exec '#{Gem.ruby}' -e #{code}", *args + bundle! "exec '#{Gem.ruby}' -e #{code}" end def build_bundler_context - bundle "config path vendor/bundle" + bundle "config set path vendor/bundle" gemfile "" bundle "install" end @@ -48,7 +44,7 @@ RSpec.describe "Bundler.with_env helpers" do path = `getconf PATH`.strip + File::PATH_SEPARATOR + File.dirname(Gem.ruby) with_path_as(path) do build_bundler_context - bundle! "exec '#{Gem.ruby}' #{bundled_app("exe.rb")} 2", :env => { :RUBYOPT => "-r#{spec_dir.join("support/hax")}" } + bundle! "exec '#{Gem.ruby}' #{bundled_app("exe.rb")} 2" end expect(err).to eq <<-EOS.strip 2 false @@ -58,7 +54,7 @@ RSpec.describe "Bundler.with_env helpers" do end it "removes variables that bundler added", :ruby_repo do - original = ruby!('puts ENV.to_a.map {|e| e.join("=") }.sort.join("\n")', :env => { :RUBYOPT => "-r#{spec_dir.join("support/hax")}" }) + original = ruby!('puts ENV.to_a.map {|e| e.join("=") }.sort.join("\n")') code = 'puts Bundler.original_env.to_a.map {|e| e.join("=") }.sort.join("\n")' bundle_exec_ruby! code.dump expect(out).to eq original @@ -75,7 +71,7 @@ RSpec.describe "Bundler.with_env helpers" do it "should remove '-rbundler/setup' from RUBYOPT" do code = "print #{modified_env}['RUBYOPT']" - ENV["RUBYOPT"] = "-W2 -rbundler/setup" + ENV["RUBYOPT"] = "-W2 -rbundler/setup #{ENV["RUBYOPT"]}" bundle_exec_ruby! code.dump expect(last_command.stdboth).not_to include("-rbundler/setup") end @@ -102,28 +98,10 @@ RSpec.describe "Bundler.with_env helpers" do it_behaves_like "an unbundling helper" end - describe "Bundler.clean_env" do + describe "Bundler.clean_env", :bundler => 2 do let(:modified_env) { "Bundler.clean_env" } it_behaves_like "an unbundling helper" - - it "prints a deprecation", :bundler => 2 do - code = "Bundler.clean_env" - bundle_exec_ruby! code.dump - expect(last_command.stdboth).to include( - "[DEPRECATED FOR 2.0] `Bundler.clean_env` has been deprecated in favor of `Bundler.unbundled_env`. " \ - "If you instead want the environment before bundler was originally loaded, use `Bundler.original_env`" - ) - end - - it "does not print a deprecation", :bundler => "< 2" do - code = "Bundler.clean_env" - bundle_exec_ruby! code.dump - expect(last_command.stdboth).not_to include( - "[DEPRECATED FOR 2.0] `Bundler.clean_env` has been deprecated in favor of `Bundler.unbundled_env`. " \ - "If you instead want the environment before bundler was originally loaded, use `Bundler.original_env`" - ) - end end describe "Bundler.with_original_env" do @@ -142,7 +120,7 @@ RSpec.describe "Bundler.with_env helpers" do end end - describe "Bundler.with_clean_env" do + describe "Bundler.with_clean_env", :bundler => 2 do it "should set ENV to unbundled_env in the block" do expected = Bundler.unbundled_env actual = Bundler.with_clean_env { ENV.to_hash } @@ -156,24 +134,6 @@ RSpec.describe "Bundler.with_env helpers" do expect(ENV).not_to have_key("FOO") end - - it "prints a deprecation", :bundler => 2 do - code = "Bundler.with_clean_env {}" - bundle_exec_ruby! code.dump - expect(last_command.stdboth).to include( - "[DEPRECATED FOR 2.0] `Bundler.with_clean_env` has been deprecated in favor of `Bundler.with_unbundled_env`. " \ - "If you instead want the environment before bundler was originally loaded, use `Bundler.with_original_env`" - ) - end - - it "does not print a deprecation", :bundler => "< 2" do - code = "Bundler.with_clean_env {}" - bundle_exec_ruby! code.dump - expect(last_command.stdboth).not_to include( - "[DEPRECATED FOR 2.0] `Bundler.with_clean_env` has been deprecated in favor of `Bundler.with_unbundled_env`. " \ - "If you instead want the environment before bundler was originally loaded, use `Bundler.with_original_env`" - ) - end end describe "Bundler.with_unbundled_env" do @@ -192,20 +152,111 @@ RSpec.describe "Bundler.with_env helpers" do end end - describe "Bundler.clean_system", :ruby => ">= 1.9", :bundler => "< 2" do + describe "Bundler.original_system" do + let(:code) do + <<~RUBY + Bundler.original_system(%([ "\$BUNDLE_FOO" = "bar" ] && exit 42)) + + exit $?.exitstatus + RUBY + end + + it "runs system inside with_original_env" do + lib = File.expand_path("../../lib", __dir__) + system({ "BUNDLE_FOO" => "bar" }, "ruby -I#{lib} -rbundler -e '#{code}'") + expect($?.exitstatus).to eq(42) + end + end + + describe "Bundler.clean_system", :bundler => 2 do + let(:code) do + <<~RUBY + Bundler.clean_system(%([ "\$BUNDLE_FOO" = "bar" ] || exit 42)) + + exit $?.exitstatus + RUBY + end + it "runs system inside with_clean_env" do - Bundler.clean_system(%(echo 'if [ "$BUNDLE_PATH" = "" ]; then exit 42; else exit 1; fi' | /bin/sh)) + lib = File.expand_path("../../lib", __dir__) + system({ "BUNDLE_FOO" => "bar" }, "ruby -I#{lib} -rbundler -e '#{code}'") expect($?.exitstatus).to eq(42) end end - describe "Bundler.clean_exec", :ruby => ">= 1.9", :bundler => "< 2" do - it "runs exec inside with_clean_env" do - pid = Kernel.fork do - Bundler.clean_exec(%(echo 'if [ "$BUNDLE_PATH" = "" ]; then exit 42; else exit 1; fi' | /bin/sh)) - end - Process.wait(pid) + describe "Bundler.unbundled_system" do + let(:code) do + <<~RUBY + Bundler.unbundled_system(%([ "\$BUNDLE_FOO" = "bar" ] || exit 42)) + + exit $?.exitstatus + RUBY + end + + it "runs system inside with_unbundled_env" do + lib = File.expand_path("../../lib", __dir__) + system({ "BUNDLE_FOO" => "bar" }, "ruby -I#{lib} -rbundler -e '#{code}'") expect($?.exitstatus).to eq(42) end end + + describe "Bundler.original_exec" do + let(:code) do + <<~RUBY + Process.fork do + exit Bundler.original_exec(%(test "\$BUNDLE_FOO" = "bar")) + end + + _, status = Process.wait2 + + exit(status.exitstatus) + RUBY + end + + it "runs exec inside with_original_env" do + lib = File.expand_path("../../lib", __dir__) + system({ "BUNDLE_FOO" => "bar" }, "ruby -I#{lib} -rbundler -e '#{code}'") + expect($?.exitstatus).to eq(0) + end + end + + describe "Bundler.clean_exec", :bundler => 2 do + let(:code) do + <<~RUBY + Process.fork do + exit Bundler.clean_exec(%(test "\$BUNDLE_FOO" = "bar")) + end + + _, status = Process.wait2 + + exit(status.exitstatus) + RUBY + end + + it "runs exec inside with_clean_env" do + lib = File.expand_path("../../lib", __dir__) + system({ "BUNDLE_FOO" => "bar" }, "ruby -I#{lib} -rbundler -e '#{code}'") + expect($?.exitstatus).to eq(1) + end + end + + describe "Bundler.unbundled_exec" do + let(:code) do + <<~RUBY + Process.fork do + exit Bundler.unbundled_exec(%(test "\$BUNDLE_FOO" = "bar")) + end + + _, status = Process.wait2 + + exit(status.exitstatus) + RUBY + end + + it "runs exec inside with_clean_env" do + lib = File.expand_path("../../lib", __dir__) + system({ "BUNDLE_FOO" => "bar" }, "ruby -I#{lib} -rbundler -e '#{code}'") + expect($?.exitstatus).to eq(1) + end + end end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 9355bfb33f..35cf8bfefb 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -3,26 +3,6 @@ $:.unshift File.expand_path("..", __FILE__) $:.unshift File.expand_path("../../lib", __FILE__) -require "rubygems" -module Gem - if defined?(@path_to_default_spec_map) - @path_to_default_spec_map.delete_if do |_path, spec| - spec.name == "bundler" - end - end -end - -begin - require File.expand_path("../support/path.rb", __FILE__) - spec = Gem::Specification.load(Spec::Path.gemspec.to_s) - rspec = spec.dependencies.find {|d| d.name == "rspec" } - gem "rspec", rspec.requirement.to_s - require "rspec" - require "diff/lcs" -rescue LoadError - abort "Run rake spec:deps to install development dependencies" -end - require "bundler/psyched_yaml" require "bundler/vendored_fileutils" require "uri" @@ -33,6 +13,7 @@ if File.expand_path(__FILE__) =~ %r{([^\w/\.:\-])} end require "bundler" +require "rspec" Dir["#{File.expand_path("../support", __FILE__)}/*.rb"].each do |file| file = file.gsub(%r{\A#{Regexp.escape File.expand_path("..", __FILE__)}/}, "") @@ -41,17 +22,14 @@ end $debug = false -Spec::Manpages.setup +Spec::Manpages.setup unless Gem.win_platform? Spec::Rubygems.setup -FileUtils.rm_rf(Spec::Path.gem_repo1) ENV["RUBYOPT"] = "#{ENV["RUBYOPT"]} -r#{Spec::Path.spec_dir}/support/hax.rb" ENV["BUNDLE_SPEC_RUN"] = "true" # Don't wrap output in tests ENV["THOR_COLUMNS"] = "10000" -Spec::CodeClimate.setup - module Gem def self.ruby=(ruby) @ruby = ruby @@ -92,13 +70,10 @@ RSpec.configure do |config| config.filter_run_excluding :realworld => true end - git_version = Bundler::Source::Git::GitProxy.new(nil, nil, nil).version - - config.filter_run_excluding :ruby => LessThanProc.with(RUBY_VERSION) - config.filter_run_excluding :rubygems => LessThanProc.with(Gem::VERSION) - config.filter_run_excluding :git => LessThanProc.with(git_version) + config.filter_run_excluding :ruby => RequirementChecker.against(RUBY_VERSION) + config.filter_run_excluding :rubygems => RequirementChecker.against(Gem::VERSION) config.filter_run_excluding :rubygems_master => (ENV["RGV"] != "master") - config.filter_run_excluding :bundler => LessThanProc.with(Bundler::VERSION.split(".")[0, 2].join(".")) + config.filter_run_excluding :bundler => RequirementChecker.against(Bundler::VERSION.split(".")[0]) config.filter_run_excluding :ruby_repo => !(ENV["BUNDLE_RUBY"] && ENV["BUNDLE_GEM"]).nil? config.filter_run_when_matching :focus unless ENV["CI"] diff --git a/spec/support/artifice/compact_index.rb b/spec/support/artifice/compact_index.rb index 38559e2e23..4f01690ae4 100644 --- a/spec/support/artifice/compact_index.rb +++ b/spec/support/artifice/compact_index.rb @@ -21,7 +21,7 @@ class CompactIndexAPI < Endpoint headers "Surrogate-Control" => "max-age=2592000, stale-while-revalidate=60" content_type "text/plain" requested_range_for(response_body) - rescue => e + rescue StandardError => e puts e puts e.backtrace raise @@ -57,11 +57,7 @@ class CompactIndexAPI < Endpoint end def slice_body(body, range) - if body.respond_to?(:byteslice) - body.byteslice(range) - else # pre-1.9.3 - body.unpack("@#{range.first}a#{range.end + 1}").first - end + body.byteslice(range) end def gems(gem_repo = GEM_REPO) @@ -83,7 +79,7 @@ class CompactIndexAPI < Endpoint end checksum = begin Digest(:SHA256).file("#{GEM_REPO}/gems/#{spec.original_name}.gem").base64digest - rescue + rescue StandardError nil end CompactIndex::GemVersion.new(spec.version.version, spec.platform.to_s, checksum, nil, diff --git a/spec/support/artifice/compact_index_api_missing.rb b/spec/support/artifice/compact_index_api_missing.rb index d4e68c38e8..94e6b73000 100644 --- a/spec/support/artifice/compact_index_api_missing.rb +++ b/spec/support/artifice/compact_index_api_missing.rb @@ -6,7 +6,7 @@ Artifice.deactivate class CompactIndexApiMissing < CompactIndexAPI get "/fetch/actual/gem/:id" do - $stderr.puts params[:id] + warn params[:id] if params[:id] == "rack-1.0.gemspec.rz" halt 404 else diff --git a/spec/support/artifice/compact_index_rate_limited.rb b/spec/support/artifice/compact_index_rate_limited.rb new file mode 100644 index 0000000000..d8f4fc941c --- /dev/null +++ b/spec/support/artifice/compact_index_rate_limited.rb @@ -0,0 +1,48 @@ +# frozen_string_literal: true + +require File.expand_path("../compact_index", __FILE__) + +Artifice.deactivate + +class CompactIndexRateLimited < CompactIndexAPI + class RequestCounter + def self.queue + @queue ||= Queue.new + end + + def self.size + @queue.size + end + + def self.enq(name) + @queue.enq(name) + end + + def self.deq + @queue.deq + end + end + + configure do + RequestCounter.queue + end + + get "/info/:name" do + RequestCounter.enq(params[:name]) + + begin + if RequestCounter.size == 1 + etag_response do + gem = gems.find {|g| g.name == params[:name] } + CompactIndex.info(gem ? gem.versions : []) + end + else + status 429 + end + ensure + RequestCounter.deq + end + end +end + +Artifice.activate_with(CompactIndexRateLimited) diff --git a/spec/support/artifice/endpoint.rb b/spec/support/artifice/endpoint.rb index 9a0cfae8a2..fcced6ea35 100644 --- a/spec/support/artifice/endpoint.rb +++ b/spec/support/artifice/endpoint.rb @@ -59,7 +59,7 @@ class Endpoint < Sinatra::Base :platform => spec.platform.to_s, :dependencies => spec.dependencies.select {|dep| dep.type == :runtime }.map do |dep| [dep.name, dep.requirement.requirements.map {|a| a.join(" ") }.join(", ")] - end + end, } end.compact end diff --git a/spec/support/artifice/endpoint_api_missing.rb b/spec/support/artifice/endpoint_api_missing.rb index 95db8e2a7e..2ada0dc553 100644 --- a/spec/support/artifice/endpoint_api_missing.rb +++ b/spec/support/artifice/endpoint_api_missing.rb @@ -6,7 +6,7 @@ Artifice.deactivate class EndpointApiMissing < Endpoint get "/fetch/actual/gem/:id" do - $stderr.puts params[:id] + warn params[:id] if params[:id] == "rack-1.0.gemspec.rz" halt 404 else diff --git a/spec/support/artifice/vcr.rb b/spec/support/artifice/vcr.rb index edd2f49a91..1e3809ff62 100644 --- a/spec/support/artifice/vcr.rb +++ b/spec/support/artifice/vcr.rb @@ -1,13 +1,6 @@ # frozen_string_literal: true require "net/http" -if RUBY_VERSION < "1.9" - begin - require "net/https" - rescue LoadError - nil # net/https or openssl - end -end # but only for 1.8 CASSETTE_PATH = File.expand_path("../vcr_cassettes", __FILE__) CASSETTE_NAME = ENV.fetch("BUNDLER_SPEC_VCR_CASSETTE_NAME") { "realworld" } diff --git a/spec/support/artifice/vcr_cassettes/realworld/api.rubygems.org/api/v1/dependencies-gems=bundler/GET/request b/spec/support/artifice/vcr_cassettes/realworld/api.rubygems.org/api/v1/dependencies-gems=bundler/GET/request deleted file mode 100644 index 00dcd51750..0000000000 --- a/spec/support/artifice/vcr_cassettes/realworld/api.rubygems.org/api/v1/dependencies-gems=bundler/GET/request +++ /dev/null @@ -1,7 +0,0 @@ -> GET /api/v1/dependencies?gems=bundler -> accept-encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3 -> accept: */* -> user-agent: Ruby -> connection: keep-alive -> keep-alive: 30 -> host: api.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/api.rubygems.org/api/v1/dependencies-gems=bundler/GET/response b/spec/support/artifice/vcr_cassettes/realworld/api.rubygems.org/api/v1/dependencies-gems=bundler/GET/response Binary files differdeleted file mode 100644 index 2dd5aa76f8..0000000000 --- a/spec/support/artifice/vcr_cassettes/realworld/api.rubygems.org/api/v1/dependencies-gems=bundler/GET/response +++ /dev/null diff --git a/spec/support/artifice/vcr_cassettes/realworld/api.rubygems.org/api/v1/dependencies/HEAD/request b/spec/support/artifice/vcr_cassettes/realworld/api.rubygems.org/api/v1/dependencies/HEAD/request deleted file mode 100644 index 13b3c98dd2..0000000000 --- a/spec/support/artifice/vcr_cassettes/realworld/api.rubygems.org/api/v1/dependencies/HEAD/request +++ /dev/null @@ -1,6 +0,0 @@ -> HEAD /api/v1/dependencies -> accept: */* -> user-agent: Ruby -> connection: keep-alive -> keep-alive: 30 -> host: api.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/api.rubygems.org/api/v1/dependencies/HEAD/response b/spec/support/artifice/vcr_cassettes/realworld/api.rubygems.org/api/v1/dependencies/HEAD/response deleted file mode 100644 index fa6cc543da..0000000000 --- a/spec/support/artifice/vcr_cassettes/realworld/api.rubygems.org/api/v1/dependencies/HEAD/response +++ /dev/null @@ -1,24 +0,0 @@ -HTTP/1.1 200 OK -content-type: text/plain; charset=utf-8 -x-frame-options: SAMEORIGIN -x-xss-protection: 1; mode=block -x-content-type-options: nosniff -content-security-policy: default-src 'self'; script-src 'self' https://secure.gaug.es; style-src 'self' https://fonts.googleapis.com; img-src 'self' https://secure.gaug.es https://gravatar.com https://secure.gravatar.com; font-src 'self' https://fonts.gstatic.com; connect-src https://s3-us-west-2.amazonaws.com/rubygems-dumps/; frame-src https://ghbtns.com -cache-control: no-cache -x-request-id: a7d87e66-6bb3-4b7a-9d3a-89ee68784d0e -x-runtime: 0.003648 -x-ua-compatible: IE=Edge,chrome=1 -x-backend: F_Rails 54.186.104.15:443 -content-length: 0 -accept-ranges: bytes -date: Fri, 28 Apr 2017 09:22:23 GMT -via: 1.1 varnish -age: 3103 -connection: keep-alive -x-served-by: cache-fra1243-FRA -x-cache: HIT -x-cache-hits: 107 -x-timer: S1493371344.878545,VS0,VE0 -vary: Accept-Encoding,Fastly-SSL -server: RubyGems.org - diff --git a/spec/support/artifice/vcr_cassettes/realworld/api.rubygems.org/gems/bundler-1.12.3.gem/GET/response b/spec/support/artifice/vcr_cassettes/realworld/api.rubygems.org/gems/bundler-1.12.3.gem/GET/response Binary files differdeleted file mode 100644 index 8f5d12c8eb..0000000000 --- a/spec/support/artifice/vcr_cassettes/realworld/api.rubygems.org/gems/bundler-1.12.3.gem/GET/response +++ /dev/null diff --git a/spec/support/artifice/vcr_cassettes/realworld/api.rubygems.org/quick/Marshal.4.8/bundler-1.12.3.gemspec.rz/GET/request b/spec/support/artifice/vcr_cassettes/realworld/api.rubygems.org/quick/Marshal.4.8/bundler-1.12.3.gemspec.rz/GET/request deleted file mode 100644 index c9337e9a6b..0000000000 --- a/spec/support/artifice/vcr_cassettes/realworld/api.rubygems.org/quick/Marshal.4.8/bundler-1.12.3.gemspec.rz/GET/request +++ /dev/null @@ -1,7 +0,0 @@ -> GET /quick/Marshal.4.8/bundler-1.12.3.gemspec.rz -> accept-encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3 -> accept: */* -> user-agent: Ruby -> connection: keep-alive -> keep-alive: 30 -> host: api.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/api.rubygems.org/quick/Marshal.4.8/bundler-1.12.3.gemspec.rz/GET/response b/spec/support/artifice/vcr_cassettes/realworld/api.rubygems.org/quick/Marshal.4.8/bundler-1.12.3.gemspec.rz/GET/response Binary files differdeleted file mode 100644 index d6b53b54a0..0000000000 --- a/spec/support/artifice/vcr_cassettes/realworld/api.rubygems.org/quick/Marshal.4.8/bundler-1.12.3.gemspec.rz/GET/response +++ /dev/null diff --git a/spec/support/artifice/vcr_cassettes/realworld/api.rubygems.org/specs.4.8.gz/GET/response b/spec/support/artifice/vcr_cassettes/realworld/api.rubygems.org/specs.4.8.gz/GET/response Binary files differdeleted file mode 100644 index bd54f4d8cd..0000000000 --- a/spec/support/artifice/vcr_cassettes/realworld/api.rubygems.org/specs.4.8.gz/GET/response +++ /dev/null diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/CFPropertyList/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/CFPropertyList/GET/request index a92b8bb55f..53b922240b 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/CFPropertyList/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/CFPropertyList/GET/request @@ -1,7 +1,7 @@ > GET /info/CFPropertyList > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/CFPropertyList/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/CFPropertyList/GET/response Binary files differindex 3e4ec8fdfb..156c87b8fb 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/CFPropertyList/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/CFPropertyList/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ParseTree/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ParseTree/GET/request index 278c2103b3..5a0391fa48 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ParseTree/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ParseTree/GET/request @@ -1,7 +1,7 @@ > GET /info/ParseTree > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ParseTree/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ParseTree/GET/response Binary files differindex 10fc08ccb2..28f46d9d6a 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ParseTree/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ParseTree/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/RedCloth/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/RedCloth/GET/request index 895b7dfd54..0949be4138 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/RedCloth/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/RedCloth/GET/request @@ -1,7 +1,7 @@ > GET /info/RedCloth > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/install options/retry,path,disable_shared_gems,spec_run,plugins,trampoline_disable d59b382d069fc94f +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/install options/retry,no_install,path,spec_run 4001db3dbc9e7104 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/RedCloth/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/RedCloth/GET/response Binary files differindex dac79849bf..098ce178c9 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/RedCloth/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/RedCloth/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/RubyInline/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/RubyInline/GET/request index 6bf0e6d3af..49ff40d096 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/RubyInline/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/RubyInline/GET/request @@ -1,7 +1,7 @@ > GET /info/RubyInline > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/RubyInline/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/RubyInline/GET/response Binary files differindex 03a6377fc5..466ca15ae3 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/RubyInline/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/RubyInline/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/SexpProcessor/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/SexpProcessor/GET/request index 30a9943801..1ae4415008 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/SexpProcessor/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/SexpProcessor/GET/request @@ -1,7 +1,7 @@ > GET /info/SexpProcessor > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/SexpProcessor/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/SexpProcessor/GET/response Binary files differindex 47e0c3e7e4..81c19a2a60 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/SexpProcessor/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/SexpProcessor/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ZenTest/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ZenTest/GET/request index 927fce847b..0596ea4e17 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ZenTest/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ZenTest/GET/request @@ -1,7 +1,7 @@ > GET /info/ZenTest > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ZenTest/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ZenTest/GET/response Binary files differindex 669b149feb..b6d22eccce 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ZenTest/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ZenTest/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/abstract/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/abstract/GET/request index 33ba985fc9..f8242f6d6e 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/abstract/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/abstract/GET/request @@ -1,7 +1,7 @@ > GET /info/abstract > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/abstract/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/abstract/GET/response Binary files differindex 1edf821062..ca9b9c9c46 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/abstract/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/abstract/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actioncable/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actioncable/GET/request index 67f6acff19..bf93cf94d8 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actioncable/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actioncable/GET/request @@ -1,7 +1,7 @@ > GET /info/actioncable > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actioncable/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actioncable/GET/response Binary files differindex ea6d8e5c4d..60bdad1591 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actioncable/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actioncable/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actionmailbox/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actionmailbox/GET/request new file mode 100644 index 0000000000..6314d275b0 --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actionmailbox/GET/request @@ -0,0 +1,7 @@ +> GET /info/actionmailbox +> accept-encoding: gzip +> accept: */* +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 +> connection: keep-alive +> keep-alive: 30 +> host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actionmailbox/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actionmailbox/GET/response Binary files differnew file mode 100644 index 0000000000..96a97ec687 --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actionmailbox/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actionmailer/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actionmailer/GET/request index ff277f113a..b3678517f5 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actionmailer/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actionmailer/GET/request @@ -1,7 +1,7 @@ > GET /info/actionmailer > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actionmailer/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actionmailer/GET/response Binary files differindex 0cdee06fda..60f11ca489 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actionmailer/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actionmailer/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actionpack/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actionpack/GET/request index 85c039b7eb..9e06a4f905 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actionpack/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actionpack/GET/request @@ -1,7 +1,7 @@ > GET /info/actionpack > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actionpack/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actionpack/GET/response Binary files differindex d95b8da544..600c9a0941 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actionpack/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actionpack/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actiontext/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actiontext/GET/request new file mode 100644 index 0000000000..0efa97fdea --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actiontext/GET/request @@ -0,0 +1,7 @@ +> GET /info/actiontext +> accept-encoding: gzip +> accept: */* +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 +> connection: keep-alive +> keep-alive: 30 +> host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actiontext/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actiontext/GET/response Binary files differnew file mode 100644 index 0000000000..29cc3925d2 --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actiontext/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actionview/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actionview/GET/request index 8b11f69250..27843d96cc 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actionview/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actionview/GET/request @@ -1,7 +1,7 @@ > GET /info/actionview > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actionview/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actionview/GET/response Binary files differindex 7edc784c99..2b5b0ac8b2 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actionview/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actionview/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actionwebservice/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actionwebservice/GET/request index 2ec89cf1b2..cb2cbe94a3 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actionwebservice/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actionwebservice/GET/request @@ -1,7 +1,7 @@ > GET /info/actionwebservice > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actionwebservice/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actionwebservice/GET/response Binary files differindex 817028d7c4..c06023f220 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actionwebservice/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/actionwebservice/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activejob/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activejob/GET/request index a215f0abf9..5a4830c1e3 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activejob/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activejob/GET/request @@ -1,7 +1,7 @@ > GET /info/activejob > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activejob/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activejob/GET/response Binary files differindex 0aa7649bd3..ac5a566be9 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activejob/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activejob/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activemodel-globalid/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activemodel-globalid/GET/request index ceae0f0950..146171180e 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activemodel-globalid/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activemodel-globalid/GET/request @@ -1,7 +1,7 @@ > GET /info/activemodel-globalid > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activemodel-globalid/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activemodel-globalid/GET/response Binary files differindex e21616fdef..9b4f1d70dd 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activemodel-globalid/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activemodel-globalid/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activemodel-serializers-xml/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activemodel-serializers-xml/GET/request new file mode 100644 index 0000000000..f14423dcf0 --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activemodel-serializers-xml/GET/request @@ -0,0 +1,7 @@ +> GET /info/activemodel-serializers-xml +> accept-encoding: gzip +> accept: */* +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 +> connection: keep-alive +> keep-alive: 30 +> host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activemodel-serializers-xml/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activemodel-serializers-xml/GET/response Binary files differnew file mode 100644 index 0000000000..7026506ee7 --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activemodel-serializers-xml/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activemodel/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activemodel/GET/request index e4b113569e..c1b5f7b27c 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activemodel/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activemodel/GET/request @@ -1,7 +1,7 @@ > GET /info/activemodel > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activemodel/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activemodel/GET/response Binary files differindex 6600b05e58..af1ff83c53 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activemodel/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activemodel/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activerecord-deprecated_finders/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activerecord-deprecated_finders/GET/request index 095307216d..fbbdae59f8 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activerecord-deprecated_finders/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activerecord-deprecated_finders/GET/request @@ -1,7 +1,7 @@ > GET /info/activerecord-deprecated_finders > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activerecord-deprecated_finders/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activerecord-deprecated_finders/GET/response Binary files differindex fa5752cd5a..20e8121eaa 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activerecord-deprecated_finders/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activerecord-deprecated_finders/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activerecord/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activerecord/GET/request index 72983afdb3..11eabc07dd 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activerecord/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activerecord/GET/request @@ -1,7 +1,7 @@ > GET /info/activerecord > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activerecord/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activerecord/GET/response Binary files differindex bff1e60a3d..cd44b94204 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activerecord/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activerecord/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activeresource/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activeresource/GET/request index 6da07e07c1..73be627ae5 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activeresource/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activeresource/GET/request @@ -1,7 +1,7 @@ > GET /info/activeresource > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activeresource/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activeresource/GET/response Binary files differindex eb2d07c38e..adaba3ef44 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activeresource/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activeresource/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activestorage/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activestorage/GET/request new file mode 100644 index 0000000000..f94cd35e0d --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activestorage/GET/request @@ -0,0 +1,7 @@ +> GET /info/activestorage +> accept-encoding: gzip +> accept: */* +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 +> connection: keep-alive +> keep-alive: 30 +> host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activestorage/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activestorage/GET/response Binary files differnew file mode 100644 index 0000000000..cac7079a94 --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activestorage/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activesupport/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activesupport/GET/request index e850b19891..e81feece82 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activesupport/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activesupport/GET/request @@ -1,7 +1,7 @@ > GET /info/activesupport > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activesupport/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activesupport/GET/response Binary files differindex 0830e66af9..4723f7ad84 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activesupport/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/activesupport/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/adamantium/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/adamantium/GET/request index b85f0d4abc..55e14e4d6d 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/adamantium/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/adamantium/GET/request @@ -1,7 +1,7 @@ > GET /info/adamantium > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/adamantium/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/adamantium/GET/response Binary files differindex 6a48c16d28..0ce423be41 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/adamantium/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/adamantium/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/addressable/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/addressable/GET/request index 332d846d65..433ae7f3eb 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/addressable/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/addressable/GET/request @@ -1,7 +1,7 @@ > GET /info/addressable > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/addressable/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/addressable/GET/response Binary files differindex 19a91431c8..8d0a543b0d 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/addressable/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/addressable/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/allison/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/allison/GET/request index 8b0e9de941..9d25ed14ee 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/allison/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/allison/GET/request @@ -1,7 +1,7 @@ > GET /info/allison > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/allison/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/allison/GET/response Binary files differindex d3ba22327f..fedece5efb 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/allison/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/allison/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ansi/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ansi/GET/request index 35a798ad01..4826bcaa66 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ansi/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ansi/GET/request @@ -1,7 +1,7 @@ > GET /info/ansi > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ansi/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ansi/GET/response Binary files differindex d0d16ff6dd..38ceb1835d 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ansi/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ansi/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/archive-tar-minitar/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/archive-tar-minitar/GET/request index 15113c6b35..3003be005d 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/archive-tar-minitar/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/archive-tar-minitar/GET/request @@ -1,7 +1,7 @@ > GET /info/archive-tar-minitar > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/archive-tar-minitar/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/archive-tar-minitar/GET/response Binary files differindex 66ba424eb4..97a818172f 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/archive-tar-minitar/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/archive-tar-minitar/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/arel/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/arel/GET/request index c8e60e5198..7e8270c1c7 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/arel/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/arel/GET/request @@ -1,7 +1,7 @@ > GET /info/arel > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/arel/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/arel/GET/response Binary files differindex 71d017141e..4e45b82730 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/arel/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/arel/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ast/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ast/GET/request index 83c157b83d..02aa87fdf0 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ast/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ast/GET/request @@ -1,7 +1,7 @@ > GET /info/ast > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ast/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ast/GET/response Binary files differindex 34e8984f9c..e4fd506460 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ast/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ast/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/astrolabe/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/astrolabe/GET/request index eb816b9425..df24c557b9 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/astrolabe/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/astrolabe/GET/request @@ -1,7 +1,7 @@ > GET /info/astrolabe > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/astrolabe/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/astrolabe/GET/response Binary files differindex c608b4fcb7..ef8fefe9a3 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/astrolabe/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/astrolabe/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/atomic/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/atomic/GET/request index 95416a8856..2f6ec95cfb 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/atomic/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/atomic/GET/request @@ -1,7 +1,7 @@ > GET /info/atomic > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/atomic/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/atomic/GET/response Binary files differindex 5d99e7e614..3e9cafef35 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/atomic/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/atomic/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/autoparse/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/autoparse/GET/request index 9a7e6768c9..6eefe2c756 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/autoparse/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/autoparse/GET/request @@ -1,7 +1,7 @@ > GET /info/autoparse > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9138760e40ab97c9 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/autoparse/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/autoparse/GET/response Binary files differindex 04b544fda2..1906139001 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/autoparse/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/autoparse/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/axiom-types/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/axiom-types/GET/request index 56d2f3f4be..64117f471d 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/axiom-types/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/axiom-types/GET/request @@ -1,7 +1,7 @@ > GET /info/axiom-types > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/axiom-types/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/axiom-types/GET/response Binary files differindex 096e712deb..ca4081b561 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/axiom-types/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/axiom-types/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/backports/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/backports/GET/request index d39a8eefed..6a08b05e24 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/backports/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/backports/GET/request @@ -1,7 +1,7 @@ > GET /info/backports > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/backports/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/backports/GET/response Binary files differindex b964586e01..061d703c1f 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/backports/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/backports/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bacon/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bacon/GET/request index 99b3624b68..7e0c12a20d 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bacon/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bacon/GET/request @@ -1,7 +1,7 @@ > GET /info/bacon > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/install options/retry,path,disable_shared_gems,spec_run,plugins,trampoline_disable d59b382d069fc94f +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/install options/retry,no_install,path,spec_run 4001db3dbc9e7104 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bacon/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bacon/GET/response Binary files differindex 4e072946c4..42be547868 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bacon/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bacon/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bcrypt-ruby/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bcrypt-ruby/GET/request index da2d06bb39..cc8b8882c4 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bcrypt-ruby/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bcrypt-ruby/GET/request @@ -1,7 +1,7 @@ > GET /info/bcrypt-ruby > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bcrypt-ruby/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bcrypt-ruby/GET/response Binary files differindex 9fd73895da..5c5800232a 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bcrypt-ruby/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bcrypt-ruby/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bcrypt/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bcrypt/GET/request index 6516d4f90d..d226c44fc6 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bcrypt/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bcrypt/GET/request @@ -1,7 +1,7 @@ > GET /info/bcrypt > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bcrypt/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bcrypt/GET/response Binary files differindex 22f10c15a9..b3b58c36e4 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bcrypt/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bcrypt/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bcrypt_pbkdf/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bcrypt_pbkdf/GET/request index cba3167ca3..6e58421179 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bcrypt_pbkdf/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bcrypt_pbkdf/GET/request @@ -1,7 +1,7 @@ > GET /info/bcrypt_pbkdf > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bcrypt_pbkdf/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bcrypt_pbkdf/GET/response Binary files differindex 52e3f662f6..8c195d867e 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bcrypt_pbkdf/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bcrypt_pbkdf/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-extras/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-extras/GET/request index a42bb5fc39..278df8dd31 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-extras/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-extras/GET/request @@ -1,7 +1,7 @@ > GET /info/bones-extras > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-extras/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-extras/GET/response Binary files differindex 17c018a8ac..f069f9f1fe 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-extras/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-extras/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-git/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-git/GET/request index f887a9d8b9..a364ed3ec8 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-git/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-git/GET/request @@ -1,7 +1,7 @@ > GET /info/bones-git > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-git/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-git/GET/response Binary files differindex 08fe306b65..890b08de40 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-git/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-git/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-rcov/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-rcov/GET/request index 123d71230b..92679330a9 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-rcov/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-rcov/GET/request @@ -1,7 +1,7 @@ > GET /info/bones-rcov > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-rcov/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-rcov/GET/response Binary files differindex 76b01488ea..409c8c9106 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-rcov/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-rcov/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-rspec/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-rspec/GET/request index 11d8de5fd1..c83001bbf6 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-rspec/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-rspec/GET/request @@ -1,7 +1,7 @@ > GET /info/bones-rspec > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-rspec/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-rspec/GET/response Binary files differindex a82c0fc9ee..71bce1cdc7 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-rspec/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-rspec/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-rubyforge/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-rubyforge/GET/request index 759c5dc5a7..d353f4bfce 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-rubyforge/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-rubyforge/GET/request @@ -1,7 +1,7 @@ > GET /info/bones-rubyforge > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-rubyforge/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-rubyforge/GET/response Binary files differindex 685f899378..cdef042268 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-rubyforge/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-rubyforge/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-zentest/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-zentest/GET/request index ae5a9b068f..540dd0bd53 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-zentest/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-zentest/GET/request @@ -1,7 +1,7 @@ > GET /info/bones-zentest > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-zentest/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-zentest/GET/response Binary files differindex 2b69b3ed62..bd8395b2dd 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-zentest/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones-zentest/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones/GET/request index 3e6d44e52f..f8f41490dd 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones/GET/request @@ -1,7 +1,7 @@ > GET /info/bones > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones/GET/response Binary files differindex 6dc4b11a25..1b9cb502fc 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bones/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/builder/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/builder/GET/request index 5fe5431bfa..5da9f39657 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/builder/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/builder/GET/request @@ -1,7 +1,7 @@ > GET /info/builder > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/builder/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/builder/GET/response Binary files differindex bd2e97ab92..f2e47bbc72 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/builder/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/builder/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bundler/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bundler/GET/request index d0af347d8a..b52c2590aa 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bundler/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bundler/GET/request @@ -1,7 +1,7 @@ > GET /info/bundler > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bundler/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bundler/GET/response Binary files differindex 41da082444..393bbb5aea 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bundler/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/bundler/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/c21e/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/c21e/GET/request new file mode 100644 index 0000000000..cee28add8b --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/c21e/GET/request @@ -0,0 +1,7 @@ +> GET /info/c21e +> accept-encoding: gzip +> accept: */* +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f +> connection: keep-alive +> keep-alive: 30 +> host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/c21e/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/c21e/GET/response Binary files differnew file mode 100644 index 0000000000..0387b14eb7 --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/c21e/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/camping/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/camping/GET/request index d40975748c..41825fbe94 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/camping/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/camping/GET/request @@ -1,7 +1,7 @@ > GET /info/camping > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/camping/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/camping/GET/response Binary files differindex c9a4dbcbc1..82bbd3fa9c 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/camping/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/camping/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/capybara/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/capybara/GET/request index 4e852e84e4..0adb317d97 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/capybara/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/capybara/GET/request @@ -1,7 +1,7 @@ > GET /info/capybara > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/capybara/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/capybara/GET/response Binary files differindex 9afec9a3a6..bde57552a6 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/capybara/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/capybara/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celerity/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celerity/GET/request index 8ae268566f..40f26b15a4 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celerity/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celerity/GET/request @@ -1,7 +1,7 @@ > GET /info/celerity > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celerity/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celerity/GET/response Binary files differindex 585c893662..cce06fe731 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celerity/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celerity/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-essentials/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-essentials/GET/request index caa2b64772..331b44986e 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-essentials/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-essentials/GET/request @@ -1,7 +1,7 @@ > GET /info/celluloid-essentials > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-essentials/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-essentials/GET/response Binary files differindex 33973fc9d1..f44cac209f 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-essentials/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-essentials/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-extras/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-extras/GET/request index 3680210c06..90f394b784 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-extras/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-extras/GET/request @@ -1,7 +1,7 @@ > GET /info/celluloid-extras > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-extras/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-extras/GET/response Binary files differindex f01977e2ea..97fd276a5b 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-extras/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-extras/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-fsm/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-fsm/GET/request index 9ab4a9f9a5..4ce23762a3 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-fsm/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-fsm/GET/request @@ -1,7 +1,7 @@ > GET /info/celluloid-fsm > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-fsm/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-fsm/GET/response Binary files differindex 806ba68900..ad7bb7ffcb 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-fsm/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-fsm/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-io/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-io/GET/request index 48deb49201..66fc542321 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-io/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-io/GET/request @@ -1,7 +1,7 @@ > GET /info/celluloid-io > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9138760e40ab97c9 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-io/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-io/GET/response Binary files differindex d56b30c56c..83886469a5 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-io/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-io/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-pool/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-pool/GET/request index 375710b600..6e921a7f25 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-pool/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-pool/GET/request @@ -1,7 +1,7 @@ > GET /info/celluloid-pool > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-pool/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-pool/GET/response Binary files differindex 9668a5eb7f..bbba301a02 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-pool/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-pool/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-supervision/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-supervision/GET/request index 62acec8401..97936f34e2 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-supervision/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-supervision/GET/request @@ -1,7 +1,7 @@ > GET /info/celluloid-supervision > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-supervision/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-supervision/GET/response Binary files differindex 90faa1a6b9..8e500db3cf 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-supervision/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid-supervision/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid/GET/request index ea4c6081c6..19e9136b84 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid/GET/request @@ -1,7 +1,7 @@ > GET /info/celluloid > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid/GET/response Binary files differindex d77594e62d..97170f222f 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/celluloid/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cgi_multipart_eof_fix/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cgi_multipart_eof_fix/GET/request index 2087abff17..f9fe783598 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cgi_multipart_eof_fix/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cgi_multipart_eof_fix/GET/request @@ -1,7 +1,7 @@ > GET /info/cgi_multipart_eof_fix > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cgi_multipart_eof_fix/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cgi_multipart_eof_fix/GET/response Binary files differindex a66ec83d22..ca597d44bc 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cgi_multipart_eof_fix/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cgi_multipart_eof_fix/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/childprocess/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/childprocess/GET/request index c9c4c8e1c3..fb2fb7ab24 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/childprocess/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/childprocess/GET/request @@ -1,7 +1,7 @@ > GET /info/childprocess > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/childprocess/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/childprocess/GET/response Binary files differindex e92674716c..1560b30ffa 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/childprocess/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/childprocess/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/climate_control/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/climate_control/GET/request index 627dfc2236..79ec1d9c6d 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/climate_control/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/climate_control/GET/request @@ -1,7 +1,7 @@ > GET /info/climate_control > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 6d5397ce7f8b26e0 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 7053ae03c762ac3b > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/climate_control/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/climate_control/GET/response Binary files differindex 2d5960987c..6407b190fe 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/climate_control/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/climate_control/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cocaine/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cocaine/GET/request index 0b58b496a2..fa6f9d9997 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cocaine/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cocaine/GET/request @@ -1,7 +1,7 @@ > GET /info/cocaine > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 6d5397ce7f8b26e0 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 7053ae03c762ac3b > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cocaine/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cocaine/GET/response Binary files differindex bfd985f32e..73cacd0fe1 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cocaine/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cocaine/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/coercible/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/coercible/GET/request index 26fb80abd9..74d049c73a 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/coercible/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/coercible/GET/request @@ -1,7 +1,7 @@ > GET /info/coercible > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/coercible/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/coercible/GET/response Binary files differindex 54e169a319..91c85da0a5 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/coercible/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/coercible/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/coffee-rails/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/coffee-rails/GET/request index 35f65b1c96..c5e4f39608 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/coffee-rails/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/coffee-rails/GET/request @@ -1,7 +1,7 @@ > GET /info/coffee-rails > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/coffee-rails/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/coffee-rails/GET/response Binary files differindex d5e17e5ce9..5bb8231ce8 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/coffee-rails/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/coffee-rails/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/coffee-script-source/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/coffee-script-source/GET/request index c1e276d2f2..0e1f7979f8 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/coffee-script-source/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/coffee-script-source/GET/request @@ -1,7 +1,7 @@ > GET /info/coffee-script-source > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/coffee-script-source/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/coffee-script-source/GET/response Binary files differindex 95f31d23d8..2bb499d0f2 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/coffee-script-source/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/coffee-script-source/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/coffee-script/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/coffee-script/GET/request index 6fb40106a3..dc5440b6ef 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/coffee-script/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/coffee-script/GET/request @@ -1,7 +1,7 @@ > GET /info/coffee-script > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/coffee-script/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/coffee-script/GET/response Binary files differindex f513d56091..351350ed61 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/coffee-script/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/coffee-script/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/colorize/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/colorize/GET/request index 86a09b2b35..af45310d3a 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/colorize/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/colorize/GET/request @@ -1,7 +1,7 @@ > GET /info/colorize > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/colorize/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/colorize/GET/response Binary files differindex 25dd358184..e3cd38ed11 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/colorize/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/colorize/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/concurrent-ruby/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/concurrent-ruby/GET/request index 0069d6d724..76fd5d3b91 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/concurrent-ruby/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/concurrent-ruby/GET/request @@ -1,7 +1,7 @@ > GET /info/concurrent-ruby > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/concurrent-ruby/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/concurrent-ruby/GET/response Binary files differindex 186892a49c..f1d4e2efcb 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/concurrent-ruby/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/concurrent-ruby/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/configuration/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/configuration/GET/request index 70e600db3d..7e14f2268d 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/configuration/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/configuration/GET/request @@ -1,7 +1,7 @@ > GET /info/configuration > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/configuration/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/configuration/GET/response Binary files differindex 1e1fb6fa74..1f3289ddc1 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/configuration/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/configuration/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/coveralls/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/coveralls/GET/request index 5692539d94..61912ad096 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/coveralls/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/coveralls/GET/request @@ -1,7 +1,7 @@ > GET /info/coveralls > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/coveralls/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/coveralls/GET/response Binary files differindex 314e64865c..cef3cfc3cc 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/coveralls/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/coveralls/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/crass/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/crass/GET/request index 8b9407ffc0..b66e745523 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/crass/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/crass/GET/request @@ -1,7 +1,7 @@ > GET /info/crass > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/crass/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/crass/GET/response Binary files differindex d73b4d2f17..8efc66c77c 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/crass/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/crass/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber-core/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber-core/GET/request index 2675af7847..0850b08c84 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber-core/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber-core/GET/request @@ -1,7 +1,7 @@ > GET /info/cucumber-core > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber-core/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber-core/GET/response Binary files differindex defc43e284..3dd709b702 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber-core/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber-core/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber-expressions/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber-expressions/GET/request new file mode 100644 index 0000000000..af97930d61 --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber-expressions/GET/request @@ -0,0 +1,7 @@ +> GET /info/cucumber-expressions +> accept-encoding: gzip +> accept: */* +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f +> connection: keep-alive +> keep-alive: 30 +> host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber-expressions/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber-expressions/GET/response Binary files differnew file mode 100644 index 0000000000..d9fd614926 --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber-expressions/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber-formatter-dots/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber-formatter-dots/GET/request new file mode 100644 index 0000000000..6adffff6fa --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber-formatter-dots/GET/request @@ -0,0 +1,7 @@ +> GET /info/cucumber-formatter-dots +> accept-encoding: gzip +> accept: */* +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f +> connection: keep-alive +> keep-alive: 30 +> host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber-formatter-dots/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber-formatter-dots/GET/response Binary files differnew file mode 100644 index 0000000000..c04a2189c1 --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber-formatter-dots/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber-messages/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber-messages/GET/request new file mode 100644 index 0000000000..99be659e98 --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber-messages/GET/request @@ -0,0 +1,7 @@ +> GET /info/cucumber-messages +> accept-encoding: gzip +> accept: */* +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f +> connection: keep-alive +> keep-alive: 30 +> host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber-messages/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber-messages/GET/response Binary files differnew file mode 100644 index 0000000000..77c2fda21d --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber-messages/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber-tag_expressions/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber-tag_expressions/GET/request new file mode 100644 index 0000000000..33b3553ed8 --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber-tag_expressions/GET/request @@ -0,0 +1,7 @@ +> GET /info/cucumber-tag_expressions +> accept-encoding: gzip +> accept: */* +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f +> connection: keep-alive +> keep-alive: 30 +> host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber-tag_expressions/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber-tag_expressions/GET/response Binary files differnew file mode 100644 index 0000000000..b47c1ee28a --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber-tag_expressions/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber-wire/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber-wire/GET/request index f37e871807..77be072f8d 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber-wire/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber-wire/GET/request @@ -1,7 +1,7 @@ > GET /info/cucumber-wire > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber-wire/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber-wire/GET/response Binary files differindex dd6a2d7a1f..bced1b2dc2 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber-wire/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber-wire/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber/GET/request index db80e44ac1..c5018ab462 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber/GET/request @@ -1,7 +1,7 @@ > GET /info/cucumber > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber/GET/response Binary files differindex 8ec223a388..0e32fc5cde 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/cucumber/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/culerity/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/culerity/GET/request index f92a2f7bc9..7b5c12e4ca 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/culerity/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/culerity/GET/request @@ -1,7 +1,7 @@ > GET /info/culerity > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/culerity/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/culerity/GET/response Binary files differindex a26aae4ac6..c86ea617f2 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/culerity/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/culerity/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/curses/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/curses/GET/request index 1119c8e4fa..d66a62048b 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/curses/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/curses/GET/request @@ -1,7 +1,7 @@ > GET /info/curses > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/curses/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/curses/GET/response Binary files differindex 1450b0afdd..6c27dee424 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/curses/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/curses/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/daemons/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/daemons/GET/request index 5080c98e6d..afb21a078f 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/daemons/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/daemons/GET/request @@ -1,7 +1,7 @@ > GET /info/daemons > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/daemons/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/daemons/GET/response Binary files differindex f96024298f..aab43bdb4a 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/daemons/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/daemons/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/database_cleaner/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/database_cleaner/GET/request index d80f93551a..204e17db86 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/database_cleaner/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/database_cleaner/GET/request @@ -1,7 +1,7 @@ > GET /info/database_cleaner > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/database_cleaner/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/database_cleaner/GET/response Binary files differindex 362be4a4da..2a2b6d136a 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/database_cleaner/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/database_cleaner/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/declarative-option/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/declarative-option/GET/request index f2463924fc..69996d4cd3 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/declarative-option/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/declarative-option/GET/request @@ -1,7 +1,7 @@ > GET /info/declarative-option > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9138760e40ab97c9 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/declarative-option/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/declarative-option/GET/response Binary files differindex 02d0a6c4d8..159ac6ce2a 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/declarative-option/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/declarative-option/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/declarative/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/declarative/GET/request index de13d40070..7e889cadf4 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/declarative/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/declarative/GET/request @@ -1,7 +1,7 @@ > GET /info/declarative > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9138760e40ab97c9 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/declarative/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/declarative/GET/response Binary files differindex 0ac050c7dd..921d7af002 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/declarative/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/declarative/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/descendants_tracker/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/descendants_tracker/GET/request index 563a4f60c2..d52d9ab095 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/descendants_tracker/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/descendants_tracker/GET/request @@ -1,7 +1,7 @@ > GET /info/descendants_tracker > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/descendants_tracker/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/descendants_tracker/GET/response Binary files differindex 23fc0f5703..34672fd379 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/descendants_tracker/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/descendants_tracker/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/diff-lcs/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/diff-lcs/GET/request index 3c60080b38..edb2131298 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/diff-lcs/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/diff-lcs/GET/request @@ -1,7 +1,7 @@ > GET /info/diff-lcs > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/diff-lcs/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/diff-lcs/GET/response Binary files differindex a715afbadf..abf53e469b 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/diff-lcs/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/diff-lcs/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/docile/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/docile/GET/request index de1e687189..28b6f62f0f 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/docile/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/docile/GET/request @@ -1,7 +1,7 @@ > GET /info/docile > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/docile/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/docile/GET/response Binary files differindex 56252f4598..0eef601200 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/docile/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/docile/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/domain_name/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/domain_name/GET/request index 6157da6082..61e2dbc625 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/domain_name/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/domain_name/GET/request @@ -1,7 +1,7 @@ > GET /info/domain_name > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/domain_name/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/domain_name/GET/response Binary files differindex 69e0e69025..ecc4e6980b 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/domain_name/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/domain_name/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/dotenv-deployment/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/dotenv-deployment/GET/request index fe63740e5b..5bee687555 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/dotenv-deployment/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/dotenv-deployment/GET/request @@ -1,7 +1,7 @@ > GET /info/dotenv-deployment > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/dotenv-deployment/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/dotenv-deployment/GET/response Binary files differindex a640a58ddc..a6e6b9e703 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/dotenv-deployment/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/dotenv-deployment/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/dotenv/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/dotenv/GET/request index 234c682a25..0a6f024d88 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/dotenv/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/dotenv/GET/request @@ -1,7 +1,7 @@ > GET /info/dotenv > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/dotenv/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/dotenv/GET/response Binary files differindex 7207be4b53..72863d2d02 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/dotenv/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/dotenv/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/echoe/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/echoe/GET/request index 98ea72af26..333ea17eb1 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/echoe/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/echoe/GET/request @@ -1,7 +1,7 @@ > GET /info/echoe > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/echoe/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/echoe/GET/response Binary files differindex 8c48623d2c..3e42d29bf7 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/echoe/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/echoe/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/em-hiredis/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/em-hiredis/GET/request index 12962c23bb..7024082760 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/em-hiredis/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/em-hiredis/GET/request @@ -1,7 +1,7 @@ > GET /info/em-hiredis > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/em-hiredis/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/em-hiredis/GET/response Binary files differindex 36c32f4dc2..428d0d3162 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/em-hiredis/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/em-hiredis/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/english/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/english/GET/request index e558748718..ce67214047 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/english/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/english/GET/request @@ -1,7 +1,7 @@ > GET /info/english > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9138760e40ab97c9 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/english/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/english/GET/response Binary files differindex ff4ad5bfae..9ddc7ae1ae 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/english/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/english/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/equalizer/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/equalizer/GET/request index 830c2ba57f..3abcefd039 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/equalizer/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/equalizer/GET/request @@ -1,7 +1,7 @@ > GET /info/equalizer > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/equalizer/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/equalizer/GET/response Binary files differindex 7947e79a87..101b037c69 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/equalizer/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/equalizer/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/erubi/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/erubi/GET/request index 60045f3490..fcb06c2cb6 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/erubi/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/erubi/GET/request @@ -1,7 +1,7 @@ > GET /info/erubi > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/erubi/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/erubi/GET/response Binary files differindex c9cf020d3c..071dcb3f74 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/erubi/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/erubi/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/erubis/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/erubis/GET/request index 1f4a5d9599..a50280ddf8 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/erubis/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/erubis/GET/request @@ -1,7 +1,7 @@ > GET /info/erubis > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/erubis/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/erubis/GET/response Binary files differindex d8db903ef5..b2397f646f 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/erubis/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/erubis/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/escape_utils/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/escape_utils/GET/request index 27c56dc41b..8a99cd919e 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/escape_utils/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/escape_utils/GET/request @@ -1,7 +1,7 @@ > GET /info/escape_utils > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9138760e40ab97c9 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/escape_utils/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/escape_utils/GET/response Binary files differindex fba2eb7d3f..aba56fb2b0 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/escape_utils/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/escape_utils/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/et-orbi/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/et-orbi/GET/request index 83753cb9de..c32d4faa2e 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/et-orbi/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/et-orbi/GET/request @@ -1,7 +1,7 @@ > GET /info/et-orbi > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/install options/retry,path,disable_shared_gems,spec_run,plugins,trampoline_disable d59b382d069fc94f +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/install options/retry,no_install,path,spec_run 4001db3dbc9e7104 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/et-orbi/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/et-orbi/GET/response Binary files differindex 7ff97e23f3..6474565d85 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/et-orbi/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/et-orbi/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/event-bus/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/event-bus/GET/request index aad129c8f2..4f051f0f1c 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/event-bus/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/event-bus/GET/request @@ -1,7 +1,7 @@ > GET /info/event-bus > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/event-bus/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/event-bus/GET/response Binary files differindex ae88842c6c..d75448d4d4 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/event-bus/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/event-bus/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/eventmachine-le/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/eventmachine-le/GET/request index 1d83bd53b7..a93223027f 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/eventmachine-le/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/eventmachine-le/GET/request @@ -1,7 +1,7 @@ > GET /info/eventmachine-le > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/eventmachine-le/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/eventmachine-le/GET/response Binary files differindex fe84542b87..de112735cd 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/eventmachine-le/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/eventmachine-le/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/eventmachine/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/eventmachine/GET/request index 614a5bf2a8..0251a1ac34 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/eventmachine/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/eventmachine/GET/request @@ -1,7 +1,7 @@ > GET /info/eventmachine > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/eventmachine/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/eventmachine/GET/response Binary files differindex 4f01cf2733..c8a6186615 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/eventmachine/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/eventmachine/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/execjs/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/execjs/GET/request index 531f5c9b31..ae069c8287 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/execjs/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/execjs/GET/request @@ -1,7 +1,7 @@ > GET /info/execjs > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/execjs/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/execjs/GET/response Binary files differindex 2349c04641..ef63aba6b9 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/execjs/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/execjs/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/extlib/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/extlib/GET/request index 3fa0dea3a5..6a2031fba2 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/extlib/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/extlib/GET/request @@ -1,7 +1,7 @@ > GET /info/extlib > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9138760e40ab97c9 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/extlib/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/extlib/GET/response Binary files differindex 6c6c2ba613..886ce0bc29 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/extlib/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/extlib/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/facets/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/facets/GET/request index 6aae67744b..7b97499c61 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/facets/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/facets/GET/request @@ -1,7 +1,7 @@ > GET /info/facets > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/facets/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/facets/GET/response Binary files differindex aa2db990de..7fa5dd44ba 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/facets/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/facets/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/facter/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/facter/GET/request index 18bdd6e328..fdc3bde13f 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/facter/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/facter/GET/request @@ -1,7 +1,7 @@ > GET /info/facter > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/facter/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/facter/GET/response Binary files differindex ec8e0dea90..fe92b13041 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/facter/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/facter/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/faker/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/faker/GET/request index 7bf2fb9f5d..399efcf186 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/faker/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/faker/GET/request @@ -1,7 +1,7 @@ > GET /info/faker > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/install options/jobs,spec_run,trampoline_disable,plugins ab677b2f2db78951 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/install options/no_install,jobs,spec_run a258cf11dfed5fa6 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/faker/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/faker/GET/response Binary files differindex 0e92a79ec6..58310dbb32 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/faker/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/faker/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/faraday/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/faraday/GET/request index b7ee2f317a..9edac4d63e 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/faraday/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/faraday/GET/request @@ -1,7 +1,7 @@ > GET /info/faraday > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9138760e40ab97c9 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/faraday/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/faraday/GET/response Binary files differindex ff1f6f9285..38c7ae3225 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/faraday/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/faraday/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/fastthread/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/fastthread/GET/request index 7ea5079231..25497e98f8 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/fastthread/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/fastthread/GET/request @@ -1,7 +1,7 @@ > GET /info/fastthread > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/fastthread/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/fastthread/GET/response Binary files differindex a8f2fe281c..dec51affb6 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/fastthread/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/fastthread/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/faye-websocket/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/faye-websocket/GET/request index e865b6d68f..515234cf4e 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/faye-websocket/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/faye-websocket/GET/request @@ -1,7 +1,7 @@ > GET /info/faye-websocket > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/faye-websocket/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/faye-websocket/GET/response Binary files differindex 9556c3541a..0a2ddc29b1 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/faye-websocket/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/faye-websocket/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/fcgi/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/fcgi/GET/request index 4389c71b0c..8405da1230 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/fcgi/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/fcgi/GET/request @@ -1,7 +1,7 @@ > GET /info/fcgi > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/fcgi/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/fcgi/GET/response Binary files differindex daf43cba8f..11a5d0bef1 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/fcgi/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/fcgi/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ffi-win32-extensions/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ffi-win32-extensions/GET/request index c2ea7ed71b..7e60f955d1 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ffi-win32-extensions/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ffi-win32-extensions/GET/request @@ -1,7 +1,7 @@ > GET /info/ffi-win32-extensions > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ffi-win32-extensions/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ffi-win32-extensions/GET/response Binary files differindex b9a3383c07..787bddaf54 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ffi-win32-extensions/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ffi-win32-extensions/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ffi/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ffi/GET/request index 337ccf260d..87d2d6c211 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ffi/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ffi/GET/request @@ -1,7 +1,7 @@ > GET /info/ffi > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ffi/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ffi/GET/response Binary files differindex d000af0070..97a1466e1b 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ffi/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ffi/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/flexmock/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/flexmock/GET/request index 85e3d59016..e5edd9c0f9 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/flexmock/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/flexmock/GET/request @@ -1,7 +1,7 @@ > GET /info/flexmock > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/flexmock/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/flexmock/GET/response Binary files differindex fb369fd425..d4284e20b2 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/flexmock/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/flexmock/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/fugit/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/fugit/GET/request new file mode 100644 index 0000000000..b3399f003c --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/fugit/GET/request @@ -0,0 +1,7 @@ +> GET /info/fugit +> accept-encoding: gzip +> accept: */* +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/install options/retry,no_install,path,spec_run 4001db3dbc9e7104 +> connection: keep-alive +> keep-alive: 30 +> host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/fugit/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/fugit/GET/response Binary files differnew file mode 100644 index 0000000000..1373f107e2 --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/fugit/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/functional-ruby/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/functional-ruby/GET/request index 2946076a0c..8245df3652 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/functional-ruby/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/functional-ruby/GET/request @@ -1,7 +1,7 @@ > GET /info/functional-ruby > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/functional-ruby/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/functional-ruby/GET/response Binary files differindex 20c2d272bb..dccd606d33 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/functional-ruby/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/functional-ruby/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/gem_plugin/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/gem_plugin/GET/request index 037082143d..25a6c173e0 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/gem_plugin/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/gem_plugin/GET/request @@ -1,7 +1,7 @@ > GET /info/gem_plugin > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/gem_plugin/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/gem_plugin/GET/response Binary files differindex 7fae98bbb3..5cac5bbc68 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/gem_plugin/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/gem_plugin/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/gemcutter/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/gemcutter/GET/request index 48a190b596..f04482cdee 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/gemcutter/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/gemcutter/GET/request @@ -1,7 +1,7 @@ > GET /info/gemcutter > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/gemcutter/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/gemcutter/GET/response Binary files differindex a0dbe8851d..b73c60cd11 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/gemcutter/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/gemcutter/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/gherkin/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/gherkin/GET/request index e16c323f9f..ba8a6674e1 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/gherkin/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/gherkin/GET/request @@ -1,7 +1,7 @@ > GET /info/gherkin > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/gherkin/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/gherkin/GET/response Binary files differindex 829f722690..84c12fc64c 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/gherkin/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/gherkin/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/gherkin3/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/gherkin3/GET/request index 51c1b8dbd1..7e9d307ba7 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/gherkin3/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/gherkin3/GET/request @@ -1,7 +1,7 @@ > GET /info/gherkin3 > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/gherkin3/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/gherkin3/GET/response Binary files differindex a84fde4ecc..beb25e9605 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/gherkin3/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/gherkin3/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/git/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/git/GET/request index a17b1c9fd9..bae4ddadcf 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/git/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/git/GET/request @@ -1,7 +1,7 @@ > GET /info/git > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/git/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/git/GET/response Binary files differindex 48b2f3e525..7228fcf3ee 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/git/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/git/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/globalid/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/globalid/GET/request index 0b5cc95383..6d2a7aa90d 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/globalid/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/globalid/GET/request @@ -1,7 +1,7 @@ > GET /info/globalid > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/globalid/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/globalid/GET/response Binary files differindex 3682bcef6e..99b523aabb 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/globalid/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/globalid/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/google-api-client/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/google-api-client/GET/request index 6997e2f1b1..9782deb1ce 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/google-api-client/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/google-api-client/GET/request @@ -1,7 +1,7 @@ > GET /info/google-api-client > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9138760e40ab97c9 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/google-api-client/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/google-api-client/GET/response Binary files differindex c976f20fe6..e82fac42e5 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/google-api-client/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/google-api-client/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/google-protobuf/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/google-protobuf/GET/request new file mode 100644 index 0000000000..862aecb264 --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/google-protobuf/GET/request @@ -0,0 +1,7 @@ +> GET /info/google-protobuf +> accept-encoding: gzip +> accept: */* +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f +> connection: keep-alive +> keep-alive: 30 +> host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/google-protobuf/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/google-protobuf/GET/response Binary files differnew file mode 100644 index 0000000000..446395ac75 --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/google-protobuf/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/googleauth/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/googleauth/GET/request index a5af0919c9..7a5fc2ed99 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/googleauth/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/googleauth/GET/request @@ -1,7 +1,7 @@ > GET /info/googleauth > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9138760e40ab97c9 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/googleauth/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/googleauth/GET/response Binary files differindex a8feae6890..7f66219a73 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/googleauth/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/googleauth/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/gxapi_rails/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/gxapi_rails/GET/request index 35f5608ebe..b1ab2b22ec 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/gxapi_rails/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/gxapi_rails/GET/request @@ -1,7 +1,7 @@ > GET /info/gxapi_rails > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9138760e40ab97c9 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/gxapi_rails/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/gxapi_rails/GET/response Binary files differindex fbdf6f55bf..b4997c76bb 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/gxapi_rails/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/gxapi_rails/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hashie/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hashie/GET/request index 385ec2b595..26226162a0 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hashie/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hashie/GET/request @@ -1,7 +1,7 @@ > GET /info/hashie > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hashie/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hashie/GET/response Binary files differindex 3d47fc2375..e5e4699ae1 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hashie/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hashie/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/highline/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/highline/GET/request index 4b571d66c1..bbe19f0a6c 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/highline/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/highline/GET/request @@ -1,7 +1,7 @@ > GET /info/highline > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/highline/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/highline/GET/response Binary files differindex 338daddcc1..6fff4f705d 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/highline/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/highline/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hike/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hike/GET/request index f6c38deaaa..16a72a29b8 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hike/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hike/GET/request @@ -1,7 +1,7 @@ > GET /info/hike > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hike/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hike/GET/response Binary files differindex 2b957a4ff6..11df3d317e 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hike/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hike/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hiredis/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hiredis/GET/request index 6113e85b8d..5d2dd02bb4 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hiredis/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hiredis/GET/request @@ -1,7 +1,7 @@ > GET /info/hiredis > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hiredis/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hiredis/GET/response Binary files differindex d173e1925a..9edc86a4dd 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hiredis/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hiredis/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hitimes/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hitimes/GET/request index 4a3c1bbdab..df570cc1e4 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hitimes/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hitimes/GET/request @@ -1,7 +1,7 @@ > GET /info/hitimes > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hitimes/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hitimes/GET/response Binary files differindex 24355f1810..4f6cd1d663 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hitimes/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hitimes/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hoe/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hoe/GET/request index e86bcea319..d45183c338 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hoe/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hoe/GET/request @@ -1,7 +1,7 @@ > GET /info/hoe > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hoe/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hoe/GET/response Binary files differindex 82c2887f97..4aa4c1f87b 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hoe/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hoe/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hooks/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hooks/GET/request index 40972439c4..4203f4f853 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hooks/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hooks/GET/request @@ -1,7 +1,7 @@ > GET /info/hooks > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9138760e40ab97c9 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hooks/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hooks/GET/response Binary files differindex b74b3e7313..e91eeff7f9 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hooks/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hooks/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/http-accept/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/http-accept/GET/request new file mode 100644 index 0000000000..60047f88f6 --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/http-accept/GET/request @@ -0,0 +1,7 @@ +> GET /info/http-accept +> accept-encoding: gzip +> accept: */* +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 +> connection: keep-alive +> keep-alive: 30 +> host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/http-accept/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/http-accept/GET/response Binary files differnew file mode 100644 index 0000000000..073b589134 --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/http-accept/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/http-cookie/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/http-cookie/GET/request index dc272ed3b8..ca44efd68a 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/http-cookie/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/http-cookie/GET/request @@ -1,7 +1,7 @@ > GET /info/http-cookie > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/http-cookie/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/http-cookie/GET/response Binary files differindex d8db0ab577..548b9c2234 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/http-cookie/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/http-cookie/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/http_parser.rb/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/http_parser.rb/GET/request index e67979aa78..bdddf8ffff 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/http_parser.rb/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/http_parser.rb/GET/request @@ -1,7 +1,7 @@ > GET /info/http_parser.rb > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/http_parser.rb/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/http_parser.rb/GET/response Binary files differindex ed892d2641..cb4615f9a5 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/http_parser.rb/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/http_parser.rb/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/httpadapter/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/httpadapter/GET/request index c9d3ce3546..58000e2079 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/httpadapter/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/httpadapter/GET/request @@ -1,7 +1,7 @@ > GET /info/httpadapter > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9138760e40ab97c9 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/httpadapter/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/httpadapter/GET/response Binary files differindex 2085d78734..9d795a6619 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/httpadapter/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/httpadapter/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/httpclient/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/httpclient/GET/request index 499c716b32..32cb1aaee8 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/httpclient/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/httpclient/GET/request @@ -1,7 +1,7 @@ > GET /info/httpclient > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9138760e40ab97c9 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/httpclient/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/httpclient/GET/response Binary files differindex 2085e02351..6ecfffb7a7 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/httpclient/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/httpclient/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hurley/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hurley/GET/request index 218736d428..f1aeab8605 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hurley/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hurley/GET/request @@ -1,7 +1,7 @@ > GET /info/hurley > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9138760e40ab97c9 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hurley/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hurley/GET/response Binary files differindex 5268938361..1454389d6e 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hurley/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/hurley/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/i18n/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/i18n/GET/request index ad35d73f0b..fb3fa8753a 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/i18n/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/i18n/GET/request @@ -1,7 +1,7 @@ > GET /info/i18n > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/i18n/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/i18n/GET/response Binary files differindex a5d8e4a8d8..fcb9e3ecf6 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/i18n/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/i18n/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ice_nine/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ice_nine/GET/request index 0c7e990bf7..8ae735ddb5 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ice_nine/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ice_nine/GET/request @@ -1,7 +1,7 @@ > GET /info/ice_nine > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ice_nine/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ice_nine/GET/response Binary files differindex 9640b04f66..1fc0ecccf3 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ice_nine/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ice_nine/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/jar-dependencies/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/jar-dependencies/GET/request new file mode 100644 index 0000000000..ded530aa3c --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/jar-dependencies/GET/request @@ -0,0 +1,7 @@ +> GET /info/jar-dependencies +> accept-encoding: gzip +> accept: */* +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 +> connection: keep-alive +> keep-alive: 30 +> host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/jar-dependencies/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/jar-dependencies/GET/response Binary files differnew file mode 100644 index 0000000000..e97dda90c5 --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/jar-dependencies/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/jaro_winkler/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/jaro_winkler/GET/request new file mode 100644 index 0000000000..1780b36076 --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/jaro_winkler/GET/request @@ -0,0 +1,7 @@ +> GET /info/jaro_winkler +> accept-encoding: gzip +> accept: */* +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 +> connection: keep-alive +> keep-alive: 30 +> host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/jaro_winkler/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/jaro_winkler/GET/response Binary files differnew file mode 100644 index 0000000000..e1bbb96cf1 --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/jaro_winkler/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/journey/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/journey/GET/request index 8f9b0132c2..c91f5e0bec 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/journey/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/journey/GET/request @@ -1,7 +1,7 @@ > GET /info/journey > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/journey/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/journey/GET/response Binary files differindex 18f04980b2..9192a20307 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/journey/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/journey/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/jruby-pageant/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/jruby-pageant/GET/request index 6dd6f3f43b..21b0f5b7eb 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/jruby-pageant/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/jruby-pageant/GET/request @@ -1,7 +1,7 @@ > GET /info/jruby-pageant > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/jruby-pageant/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/jruby-pageant/GET/response Binary files differindex c1d4f95e29..8a0c77e06c 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/jruby-pageant/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/jruby-pageant/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/json/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/json/GET/request index 7ca746d23e..f1ac940684 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/json/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/json/GET/request @@ -1,7 +1,7 @@ > GET /info/json > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/json/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/json/GET/response Binary files differindex dbaffc17f1..e340e1055e 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/json/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/json/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/json_pure/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/json_pure/GET/request index aa2b18bd1d..685b84f51d 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/json_pure/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/json_pure/GET/request @@ -1,7 +1,7 @@ > GET /info/json_pure > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/json_pure/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/json_pure/GET/response Binary files differindex 66abe94a62..67c30a7e79 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/json_pure/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/json_pure/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/jwt/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/jwt/GET/request index c8669eac08..b712a2dfee 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/jwt/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/jwt/GET/request @@ -1,7 +1,7 @@ > GET /info/jwt > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9138760e40ab97c9 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/jwt/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/jwt/GET/response Binary files differindex e262e41c07..b34fbb4be4 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/jwt/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/jwt/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/language/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/language/GET/request index 4aeefbc7aa..93c58de1a2 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/language/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/language/GET/request @@ -1,7 +1,7 @@ > GET /info/language > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9138760e40ab97c9 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/language/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/language/GET/response Binary files differindex 6b63972d50..b02672f6b6 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/language/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/language/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/launchy/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/launchy/GET/request index 60da8f9a26..f1338b3ba9 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/launchy/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/launchy/GET/request @@ -1,7 +1,7 @@ > GET /info/launchy > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/launchy/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/launchy/GET/response Binary files differindex db76626340..8f10f2bcaf 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/launchy/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/launchy/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/libwebsocket/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/libwebsocket/GET/request index 3764e1e3b1..183d8a3a40 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/libwebsocket/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/libwebsocket/GET/request @@ -1,7 +1,7 @@ > GET /info/libwebsocket > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/libwebsocket/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/libwebsocket/GET/response Binary files differindex 244ba5277a..9a20924258 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/libwebsocket/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/libwebsocket/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/libxml-ruby/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/libxml-ruby/GET/request index fad58483fe..d9fc0498c1 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/libxml-ruby/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/libxml-ruby/GET/request @@ -1,7 +1,7 @@ > GET /info/libxml-ruby > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/libxml-ruby/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/libxml-ruby/GET/response Binary files differindex 2742abd449..b5526da28c 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/libxml-ruby/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/libxml-ruby/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/liquid/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/liquid/GET/request index 9ac0105694..4805bc60a3 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/liquid/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/liquid/GET/request @@ -1,7 +1,7 @@ > GET /info/liquid > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9138760e40ab97c9 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/liquid/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/liquid/GET/response Binary files differindex fa37cb788f..84c3156cca 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/liquid/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/liquid/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/listen/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/listen/GET/request index d8ac06f4ea..1a57b05c2e 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/listen/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/listen/GET/request @@ -1,7 +1,7 @@ > GET /info/listen > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9138760e40ab97c9 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/listen/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/listen/GET/response Binary files differindex 74dd5df6ce..1f87134b12 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/listen/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/listen/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/little-plugger/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/little-plugger/GET/request index 34f643d772..6558ba05e2 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/little-plugger/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/little-plugger/GET/request @@ -1,7 +1,7 @@ > GET /info/little-plugger > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/little-plugger/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/little-plugger/GET/response Binary files differindex 2b8b21982f..d6f4327e1e 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/little-plugger/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/little-plugger/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/lockfile/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/lockfile/GET/request index 21ccaf6be5..2132a5f562 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/lockfile/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/lockfile/GET/request @@ -1,7 +1,7 @@ > GET /info/lockfile > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/lockfile/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/lockfile/GET/response Binary files differindex fde932b183..05635fe2bf 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/lockfile/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/lockfile/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/logging/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/logging/GET/request index 8a7bd45f35..946206de24 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/logging/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/logging/GET/request @@ -1,7 +1,7 @@ > GET /info/logging > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9138760e40ab97c9 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/logging/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/logging/GET/response Binary files differindex cbe9bfdebf..cad5697259 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/logging/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/logging/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/loofah/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/loofah/GET/request index 2cb6d57679..8cc27c55bd 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/loofah/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/loofah/GET/request @@ -1,7 +1,7 @@ > GET /info/loofah > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/loofah/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/loofah/GET/response Binary files differindex 848cc7b05b..6842ddb32c 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/loofah/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/loofah/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/loquacious/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/loquacious/GET/request index bda60b4dc3..978053d6a1 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/loquacious/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/loquacious/GET/request @@ -1,7 +1,7 @@ > GET /info/loquacious > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/loquacious/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/loquacious/GET/response Binary files differindex bbda4bc450..2c2fa117b7 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/loquacious/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/loquacious/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mab/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mab/GET/request index 115c6e6448..23b183bad5 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mab/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mab/GET/request @@ -1,7 +1,7 @@ > GET /info/mab > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mab/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mab/GET/response Binary files differindex 067827ad9c..efc6e766dd 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mab/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mab/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mail/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mail/GET/request index ea11e0bd0c..af8ae45eca 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mail/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mail/GET/request @@ -1,7 +1,7 @@ > GET /info/mail > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mail/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mail/GET/response Binary files differindex 5dd7ab169c..4d3fec50a2 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mail/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mail/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/marcel/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/marcel/GET/request new file mode 100644 index 0000000000..48f1db1cc5 --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/marcel/GET/request @@ -0,0 +1,7 @@ +> GET /info/marcel +> accept-encoding: gzip +> accept: */* +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 +> connection: keep-alive +> keep-alive: 30 +> host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/marcel/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/marcel/GET/response Binary files differnew file mode 100644 index 0000000000..11295065f5 --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/marcel/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/markaby/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/markaby/GET/request index 27db5d09cf..d22301559a 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/markaby/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/markaby/GET/request @@ -1,7 +1,7 @@ > GET /info/markaby > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/markaby/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/markaby/GET/response Binary files differindex 917d9f7777..81be02d900 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/markaby/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/markaby/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/maven-tools/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/maven-tools/GET/request new file mode 100644 index 0000000000..51009e91be --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/maven-tools/GET/request @@ -0,0 +1,7 @@ +> GET /info/maven-tools +> accept-encoding: gzip +> accept: */* +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 +> connection: keep-alive +> keep-alive: 30 +> host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/maven-tools/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/maven-tools/GET/response Binary files differnew file mode 100644 index 0000000000..56f126ce0f --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/maven-tools/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/memcache-client/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/memcache-client/GET/request index 4b0c275c6e..aa093dd07a 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/memcache-client/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/memcache-client/GET/request @@ -1,7 +1,7 @@ > GET /info/memcache-client > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/memcache-client/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/memcache-client/GET/response Binary files differindex a1fb37c9f7..da14152af8 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/memcache-client/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/memcache-client/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/memoist/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/memoist/GET/request index fcda1676de..48fa5d5ad8 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/memoist/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/memoist/GET/request @@ -1,7 +1,7 @@ > GET /info/memoist > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9138760e40ab97c9 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/memoist/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/memoist/GET/response Binary files differindex b3b4112024..f14181c807 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/memoist/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/memoist/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/memoizable/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/memoizable/GET/request index ae7e5e0371..980b71c224 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/memoizable/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/memoizable/GET/request @@ -1,7 +1,7 @@ > GET /info/memoizable > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/memoizable/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/memoizable/GET/response Binary files differindex 730066f3b8..465d690045 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/memoizable/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/memoizable/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/metaclass/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/metaclass/GET/request index 9f502c21cc..e38cf09c00 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/metaclass/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/metaclass/GET/request @@ -1,7 +1,7 @@ > GET /info/metaclass > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/metaclass/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/metaclass/GET/response Binary files differindex 838e17e78b..bd9b97047e 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/metaclass/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/metaclass/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/metaid/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/metaid/GET/request index 872aea81e0..c0836e3324 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/metaid/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/metaid/GET/request @@ -1,7 +1,7 @@ > GET /info/metaid > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/metaid/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/metaid/GET/response Binary files differindex 3b745e234b..6529870e23 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/metaid/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/metaid/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/method_source/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/method_source/GET/request index 4d02bc1e42..625f034a3b 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/method_source/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/method_source/GET/request @@ -1,7 +1,7 @@ > GET /info/method_source > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/method_source/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/method_source/GET/response Binary files differindex 18c79330c5..428274b0ee 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/method_source/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/method_source/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mime-types-data/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mime-types-data/GET/request index 8081aaa002..13f2460111 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mime-types-data/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mime-types-data/GET/request @@ -1,7 +1,7 @@ > GET /info/mime-types-data > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mime-types-data/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mime-types-data/GET/response Binary files differindex c428319a48..b61dd22994 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mime-types-data/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mime-types-data/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mime-types/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mime-types/GET/request index eb07326eda..55103e35e5 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mime-types/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mime-types/GET/request @@ -1,7 +1,7 @@ > GET /info/mime-types > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mime-types/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mime-types/GET/response Binary files differindex c811fa5136..9e924778cf 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mime-types/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mime-types/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mimemagic/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mimemagic/GET/request index cbb2e4f493..9fc777d048 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mimemagic/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mimemagic/GET/request @@ -1,7 +1,7 @@ > GET /info/mimemagic > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 6d5397ce7f8b26e0 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mimemagic/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mimemagic/GET/response Binary files differindex bf480bbe5f..57677dc0f6 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mimemagic/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mimemagic/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mini_mime/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mini_mime/GET/request new file mode 100644 index 0000000000..1fdb815d7e --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mini_mime/GET/request @@ -0,0 +1,7 @@ +> GET /info/mini_mime +> accept-encoding: gzip +> accept: */* +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 +> connection: keep-alive +> keep-alive: 30 +> host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mini_mime/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mini_mime/GET/response Binary files differnew file mode 100644 index 0000000000..34463e2827 --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mini_mime/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mini_portile/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mini_portile/GET/request index f536dc4d3e..d4232c6f94 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mini_portile/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mini_portile/GET/request @@ -1,7 +1,7 @@ > GET /info/mini_portile > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mini_portile/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mini_portile/GET/response Binary files differindex 0e53b5b3d0..16c1b49fec 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mini_portile/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mini_portile/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mini_portile2/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mini_portile2/GET/request index ab28a8089a..09cf668af6 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mini_portile2/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mini_portile2/GET/request @@ -1,7 +1,7 @@ > GET /info/mini_portile2 > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mini_portile2/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mini_portile2/GET/response Binary files differindex e664192bbe..86a057e1db 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mini_portile2/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mini_portile2/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/minitar-cli/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/minitar-cli/GET/request index d9d5968a5b..501b833f31 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/minitar-cli/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/minitar-cli/GET/request @@ -1,7 +1,7 @@ > GET /info/minitar-cli > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/minitar-cli/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/minitar-cli/GET/response Binary files differindex fb853dc6c2..993b6e388d 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/minitar-cli/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/minitar-cli/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/minitar/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/minitar/GET/request index c8b5697b43..04ab7d0dae 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/minitar/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/minitar/GET/request @@ -1,7 +1,7 @@ > GET /info/minitar > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/minitar/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/minitar/GET/response Binary files differindex 17342c80e5..8370ab1e12 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/minitar/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/minitar/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/minitest/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/minitest/GET/request index 4d88e89a59..12c3568323 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/minitest/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/minitest/GET/request @@ -1,7 +1,7 @@ > GET /info/minitest > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/minitest/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/minitest/GET/response Binary files differindex 514aae033a..6eacfa8e25 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/minitest/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/minitest/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mkrf/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mkrf/GET/request index 3333257711..3f9668c3fe 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mkrf/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mkrf/GET/request @@ -1,7 +1,7 @@ > GET /info/mkrf > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mkrf/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mkrf/GET/response Binary files differindex 5e0d4ee277..a29f59355b 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mkrf/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mkrf/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mocha/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mocha/GET/request index f215f1f8d6..2275c61ad0 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mocha/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mocha/GET/request @@ -1,7 +1,7 @@ > GET /info/mocha > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mocha/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mocha/GET/response Binary files differindex da32ecfb8d..a893324be5 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mocha/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mocha/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mongrel/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mongrel/GET/request index 0181a370bc..d99929e065 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mongrel/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mongrel/GET/request @@ -1,7 +1,7 @@ > GET /info/mongrel > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mongrel/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mongrel/GET/response Binary files differindex 0184bd09dc..954cd8e980 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mongrel/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mongrel/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mono_logger/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mono_logger/GET/request index 088d7a648d..4ead7396de 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mono_logger/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mono_logger/GET/request @@ -1,7 +1,7 @@ > GET /info/mono_logger > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/install options/retry,path,disable_shared_gems,spec_run,plugins,trampoline_disable d59b382d069fc94f +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/install options/retry,no_install,path,spec_run 4001db3dbc9e7104 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mono_logger/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mono_logger/GET/response Binary files differindex 5163ec92af..0293e0a422 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mono_logger/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mono_logger/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/multi_json/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/multi_json/GET/request index 56942172dc..183558805d 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/multi_json/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/multi_json/GET/request @@ -1,7 +1,7 @@ > GET /info/multi_json > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/multi_json/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/multi_json/GET/response Binary files differindex 001f44bb08..7c535498e1 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/multi_json/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/multi_json/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/multi_test/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/multi_test/GET/request index 8f4d50696c..f47b4d3539 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/multi_test/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/multi_test/GET/request @@ -1,7 +1,7 @@ > GET /info/multi_test > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/multi_test/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/multi_test/GET/response Binary files differindex 955de5d64d..273ccebde2 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/multi_test/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/multi_test/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/multimap/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/multimap/GET/request index 1a64e6f47e..49774c92af 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/multimap/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/multimap/GET/request @@ -1,7 +1,7 @@ > GET /info/multimap > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/multimap/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/multimap/GET/response Binary files differindex da10914932..e0ca21b532 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/multimap/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/multimap/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/multipart-post/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/multipart-post/GET/request index 63eec25ffd..ff4cec7e4b 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/multipart-post/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/multipart-post/GET/request @@ -1,7 +1,7 @@ > GET /info/multipart-post > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9138760e40ab97c9 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/multipart-post/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/multipart-post/GET/response Binary files differindex ec7b13cfc5..43aea2968b 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/multipart-post/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/multipart-post/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mustermann/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mustermann/GET/request index 710afe0829..1c41bea99f 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mustermann/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mustermann/GET/request @@ -1,7 +1,7 @@ > GET /info/mustermann > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9138760e40ab97c9 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mustermann/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mustermann/GET/response Binary files differindex 21ba1104a6..7b8862e9eb 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mustermann/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/mustermann/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/needle/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/needle/GET/request index 45d8ea2c39..1f4919b4c3 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/needle/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/needle/GET/request @@ -1,7 +1,7 @@ > GET /info/needle > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/needle/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/needle/GET/response Binary files differindex 600fcfb700..5c88954fd0 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/needle/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/needle/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/nenv/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/nenv/GET/request index 4ab184fc81..775aa750ba 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/nenv/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/nenv/GET/request @@ -1,7 +1,7 @@ > GET /info/nenv > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/nenv/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/nenv/GET/response Binary files differindex 8bb1ae92e6..34335e1720 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/nenv/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/nenv/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/net-scp/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/net-scp/GET/request index 8910edf8e6..87cb1e2ec6 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/net-scp/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/net-scp/GET/request @@ -1,7 +1,7 @@ > GET /info/net-scp > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/net-scp/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/net-scp/GET/response Binary files differindex 1041db3aa7..b53787e062 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/net-scp/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/net-scp/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/net-ssh/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/net-ssh/GET/request index 043751da3b..61c032894e 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/net-ssh/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/net-ssh/GET/request @@ -1,7 +1,7 @@ > GET /info/net-ssh > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/net-ssh/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/net-ssh/GET/response Binary files differindex 33632b22b5..d1c910fc7c 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/net-ssh/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/net-ssh/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/netrc/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/netrc/GET/request index 912c799120..fda229566a 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/netrc/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/netrc/GET/request @@ -1,7 +1,7 @@ > GET /info/netrc > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/netrc/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/netrc/GET/response Binary files differindex 53a65c4824..91be972d34 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/netrc/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/netrc/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/newgem/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/newgem/GET/request index ef62899a0c..46491a3a05 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/newgem/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/newgem/GET/request @@ -1,7 +1,7 @@ > GET /info/newgem > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/install options/retry,path,disable_shared_gems,spec_run,plugins,trampoline_disable d59b382d069fc94f +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/install options/retry,no_install,path,spec_run 4001db3dbc9e7104 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/newgem/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/newgem/GET/response Binary files differindex 9a5e53ac8c..c768f823b7 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/newgem/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/newgem/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/nio4r/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/nio4r/GET/request index 44337df0b7..96f90e8f5f 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/nio4r/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/nio4r/GET/request @@ -1,7 +1,7 @@ > GET /info/nio4r > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/nio4r/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/nio4r/GET/response Binary files differindex 56e0f5a7e1..b055a37efb 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/nio4r/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/nio4r/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/nokogiri/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/nokogiri/GET/request index 09c5dd725f..e4e962f352 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/nokogiri/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/nokogiri/GET/request @@ -1,7 +1,7 @@ > GET /info/nokogiri > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/nokogiri/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/nokogiri/GET/response Binary files differindex 369a205b2e..6e6dc44caa 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/nokogiri/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/nokogiri/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/os/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/os/GET/request index 1d82322d8b..cd253c0d79 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/os/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/os/GET/request @@ -1,7 +1,7 @@ > GET /info/os > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/os/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/os/GET/response Binary files differindex cd38a4e1ef..9f3cc62744 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/os/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/os/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/paperclip/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/paperclip/GET/request index c977514627..c21a410dc4 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/paperclip/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/paperclip/GET/request @@ -1,7 +1,7 @@ > GET /info/paperclip > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 6d5397ce7f8b26e0 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 7053ae03c762ac3b > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/paperclip/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/paperclip/GET/response Binary files differindex 31b3fdd4d7..d89114d9cd 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/paperclip/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/paperclip/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/parallel/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/parallel/GET/request new file mode 100644 index 0000000000..bd7881c703 --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/parallel/GET/request @@ -0,0 +1,7 @@ +> GET /info/parallel +> accept-encoding: gzip +> accept: */* +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 +> connection: keep-alive +> keep-alive: 30 +> host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/parallel/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/parallel/GET/response Binary files differnew file mode 100644 index 0000000000..32f123c11a --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/parallel/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/parser/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/parser/GET/request index 5fc1b9ff8b..b55b27ea40 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/parser/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/parser/GET/request @@ -1,7 +1,7 @@ > GET /info/parser > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/parser/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/parser/GET/response Binary files differindex 8de3ebdeeb..3b841268ca 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/parser/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/parser/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/pattern-match/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/pattern-match/GET/request index 1636fe07b4..37f5fd99be 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/pattern-match/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/pattern-match/GET/request @@ -1,7 +1,7 @@ > GET /info/pattern-match > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/pattern-match/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/pattern-match/GET/response Binary files differindex 407bd97444..08e7b4a9d5 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/pattern-match/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/pattern-match/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/pkg-config/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/pkg-config/GET/request index 8f2f5ae398..8299aa4ddd 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/pkg-config/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/pkg-config/GET/request @@ -1,7 +1,7 @@ > GET /info/pkg-config > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/pkg-config/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/pkg-config/GET/response Binary files differindex 892050438f..8d554fe6f3 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/pkg-config/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/pkg-config/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/polyglot/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/polyglot/GET/request index 8841563b63..8c529beb70 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/polyglot/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/polyglot/GET/request @@ -1,7 +1,7 @@ > GET /info/polyglot > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/polyglot/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/polyglot/GET/response Binary files differindex 2e5dba2b76..bc5fe8b131 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/polyglot/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/polyglot/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/power_assert/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/power_assert/GET/request index 73ef4c0d07..61030e2807 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/power_assert/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/power_assert/GET/request @@ -1,7 +1,7 @@ > GET /info/power_assert > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/power_assert/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/power_assert/GET/response Binary files differindex d9cdfe043b..7034d1754b 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/power_assert/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/power_assert/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/powerbar/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/powerbar/GET/request index 0a69936bc6..bbb55c635f 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/powerbar/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/powerbar/GET/request @@ -1,7 +1,7 @@ > GET /info/powerbar > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/powerbar/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/powerbar/GET/response Binary files differindex a71d6494db..b3a2512878 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/powerbar/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/powerbar/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/powerpack/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/powerpack/GET/request index 20bf19b1af..add0f7bfe4 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/powerpack/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/powerpack/GET/request @@ -1,7 +1,7 @@ > GET /info/powerpack > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/powerpack/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/powerpack/GET/response Binary files differindex 18240e5335..e3379ae402 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/powerpack/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/powerpack/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/preforker/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/preforker/GET/request index 2ba448e12d..0b5243ca23 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/preforker/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/preforker/GET/request @@ -1,7 +1,7 @@ > GET /info/preforker > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/preforker/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/preforker/GET/response Binary files differindex c9cf52559e..412f82606f 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/preforker/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/preforker/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/psych/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/psych/GET/request new file mode 100644 index 0000000000..4e9d65a823 --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/psych/GET/request @@ -0,0 +1,7 @@ +> GET /info/psych +> accept-encoding: gzip +> accept: */* +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 +> connection: keep-alive +> keep-alive: 30 +> host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/psych/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/psych/GET/response Binary files differnew file mode 100644 index 0000000000..f5b0562afa --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/psych/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/public_suffix/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/public_suffix/GET/request index 9f13c8a79e..6fa3095a85 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/public_suffix/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/public_suffix/GET/request @@ -1,7 +1,7 @@ > GET /info/public_suffix > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/public_suffix/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/public_suffix/GET/response Binary files differindex 75a81259f8..28c628a2a8 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/public_suffix/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/public_suffix/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/raabro/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/raabro/GET/request new file mode 100644 index 0000000000..2ed191f2db --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/raabro/GET/request @@ -0,0 +1,7 @@ +> GET /info/raabro +> accept-encoding: gzip +> accept: */* +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/install options/retry,no_install,path,spec_run 4001db3dbc9e7104 +> connection: keep-alive +> keep-alive: 30 +> host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/raabro/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/raabro/GET/response Binary files differnew file mode 100644 index 0000000000..d142d81716 --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/raabro/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/racc/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/racc/GET/request index dfc9adfa9d..7efd626582 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/racc/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/racc/GET/request @@ -1,7 +1,7 @@ > GET /info/racc > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/racc/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/racc/GET/response Binary files differindex 3b19786ead..37ee86ad24 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/racc/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/racc/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack-cache/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack-cache/GET/request index 27a90522f4..7a74a06473 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack-cache/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack-cache/GET/request @@ -1,7 +1,7 @@ > GET /info/rack-cache > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack-cache/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack-cache/GET/response Binary files differindex 94e686dc49..015cfbc01f 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack-cache/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack-cache/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack-mount/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack-mount/GET/request index 59a7bd8b8d..e1d894224e 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack-mount/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack-mount/GET/request @@ -1,7 +1,7 @@ > GET /info/rack-mount > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack-mount/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack-mount/GET/response Binary files differindex 42dde6a265..7a874f60fa 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack-mount/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack-mount/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack-protection/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack-protection/GET/request index 4eb6557436..e3dcaa3a5d 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack-protection/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack-protection/GET/request @@ -1,7 +1,7 @@ > GET /info/rack-protection > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9138760e40ab97c9 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack-protection/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack-protection/GET/response Binary files differindex 8ac5f63f69..78db96e7c9 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack-protection/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack-protection/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack-ssl/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack-ssl/GET/request index 6871bc0308..f59614d7e7 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack-ssl/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack-ssl/GET/request @@ -1,7 +1,7 @@ > GET /info/rack-ssl > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack-ssl/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack-ssl/GET/response Binary files differindex 47375b7ed8..5de5f5ece2 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack-ssl/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack-ssl/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack-test/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack-test/GET/request index 624dd07678..76741611ed 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack-test/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack-test/GET/request @@ -1,7 +1,7 @@ > GET /info/rack-test > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack-test/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack-test/GET/response Binary files differindex ee93493b49..0a168562e0 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack-test/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack-test/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack/GET/request index 16a0feac8c..022c64a97a 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack/GET/request @@ -1,7 +1,7 @@ > GET /info/rack > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack/GET/response Binary files differindex 867035cd63..d01b536213 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rack/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rails-deprecated_sanitizer/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rails-deprecated_sanitizer/GET/request index 67514b94c8..29ef25191a 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rails-deprecated_sanitizer/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rails-deprecated_sanitizer/GET/request @@ -1,7 +1,7 @@ > GET /info/rails-deprecated_sanitizer > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rails-deprecated_sanitizer/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rails-deprecated_sanitizer/GET/response Binary files differindex 1344345709..dddbda8e5e 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rails-deprecated_sanitizer/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rails-deprecated_sanitizer/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rails-dom-testing/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rails-dom-testing/GET/request index 2caa6d814e..d7f92ca2c0 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rails-dom-testing/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rails-dom-testing/GET/request @@ -1,7 +1,7 @@ > GET /info/rails-dom-testing > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rails-dom-testing/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rails-dom-testing/GET/response Binary files differindex cc215cf4f0..30c91d6357 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rails-dom-testing/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rails-dom-testing/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rails-html-sanitizer/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rails-html-sanitizer/GET/request index 54db344173..c565e3d282 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rails-html-sanitizer/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rails-html-sanitizer/GET/request @@ -1,7 +1,7 @@ > GET /info/rails-html-sanitizer > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rails-html-sanitizer/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rails-html-sanitizer/GET/response Binary files differindex 6dbdd7d5c3..3de230ad21 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rails-html-sanitizer/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rails-html-sanitizer/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rails-observers/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rails-observers/GET/request index 3fb8b11adf..5523ca353f 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rails-observers/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rails-observers/GET/request @@ -1,7 +1,7 @@ > GET /info/rails-observers > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rails-observers/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rails-observers/GET/response Binary files differindex ba7e9367fa..eb567b882d 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rails-observers/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rails-observers/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rails/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rails/GET/request index b156e7be25..4fca8b0130 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rails/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rails/GET/request @@ -1,7 +1,7 @@ > GET /info/rails > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rails/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rails/GET/response Binary files differindex 9ff62db657..99b358fd95 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rails/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rails/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/railties/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/railties/GET/request index 40f66c8a6f..c379d76dbe 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/railties/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/railties/GET/request @@ -1,7 +1,7 @@ > GET /info/railties > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/railties/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/railties/GET/response Binary files differindex c95e7e7edd..285217e961 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/railties/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/railties/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rainbow/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rainbow/GET/request index ae1ee0cee9..fe9cae07bc 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rainbow/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rainbow/GET/request @@ -1,7 +1,7 @@ > GET /info/rainbow > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rainbow/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rainbow/GET/response Binary files differindex f09bf393c2..fe3070b558 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rainbow/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rainbow/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rake-compiler/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rake-compiler/GET/request index 2f777a05bf..ae70edf6cb 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rake-compiler/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rake-compiler/GET/request @@ -1,7 +1,7 @@ > GET /info/rake-compiler > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rake-compiler/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rake-compiler/GET/response Binary files differindex 23e76df066..b17a1ffe07 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rake-compiler/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rake-compiler/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rake/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rake/GET/request index c161c917e1..5f2f38292c 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rake/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rake/GET/request @@ -1,7 +1,7 @@ > GET /info/rake > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rake/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rake/GET/response Binary files differindex da73b27d17..cbd61a1990 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rake/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rake/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rb-fchange/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rb-fchange/GET/request index 101066914a..97d07d3468 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rb-fchange/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rb-fchange/GET/request @@ -1,7 +1,7 @@ > GET /info/rb-fchange > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9138760e40ab97c9 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rb-fchange/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rb-fchange/GET/response Binary files differindex 99ed1a9fdf..3dccf1d56f 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rb-fchange/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rb-fchange/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rb-fsevent/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rb-fsevent/GET/request index 192253cb0c..11209cdcd7 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rb-fsevent/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rb-fsevent/GET/request @@ -1,7 +1,7 @@ > GET /info/rb-fsevent > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9138760e40ab97c9 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rb-fsevent/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rb-fsevent/GET/response Binary files differindex 536d498501..9e61d1ba2c 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rb-fsevent/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rb-fsevent/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rb-inotify/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rb-inotify/GET/request index cf7287e37b..156600fde9 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rb-inotify/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rb-inotify/GET/request @@ -1,7 +1,7 @@ > GET /info/rb-inotify > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9138760e40ab97c9 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rb-inotify/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rb-inotify/GET/response Binary files differindex 6e34ecb855..5a171dbe9c 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rb-inotify/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rb-inotify/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rb-kqueue/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rb-kqueue/GET/request index 6d256b9e11..26f5dc5094 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rb-kqueue/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rb-kqueue/GET/request @@ -1,7 +1,7 @@ > GET /info/rb-kqueue > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9138760e40ab97c9 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rb-kqueue/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rb-kqueue/GET/response Binary files differindex 63953471b7..161f6938cc 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rb-kqueue/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rb-kqueue/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rbnacl-libsodium/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rbnacl-libsodium/GET/request index 0a269f784f..69233761ce 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rbnacl-libsodium/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rbnacl-libsodium/GET/request @@ -1,7 +1,7 @@ > GET /info/rbnacl-libsodium > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rbnacl-libsodium/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rbnacl-libsodium/GET/response Binary files differindex 158fec8538..13e3a5df99 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rbnacl-libsodium/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rbnacl-libsodium/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rbnacl/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rbnacl/GET/request index d28de6c266..d73fe50e0c 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rbnacl/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rbnacl/GET/request @@ -1,7 +1,7 @@ > GET /info/rbnacl > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rbnacl/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rbnacl/GET/response Binary files differindex 6a5555bc2b..1636735e82 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rbnacl/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rbnacl/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rcov/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rcov/GET/request index 611a286a4c..fab1c65a68 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rcov/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rcov/GET/request @@ -1,7 +1,7 @@ > GET /info/rcov > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rcov/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rcov/GET/response Binary files differindex 7ef58c5aab..71320058b8 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rcov/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rcov/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rdoc/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rdoc/GET/request index 8402303257..ed1fc38c9c 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rdoc/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rdoc/GET/request @@ -1,7 +1,7 @@ > GET /info/rdoc > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rdoc/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rdoc/GET/response Binary files differindex 3d86e4f442..556fb52de3 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rdoc/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rdoc/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/redis-namespace/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/redis-namespace/GET/request index 9b78830065..c4c31b1f1c 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/redis-namespace/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/redis-namespace/GET/request @@ -1,7 +1,7 @@ > GET /info/redis-namespace > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/install options/retry,path,disable_shared_gems,spec_run,plugins,trampoline_disable d59b382d069fc94f +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/install options/retry,no_install,path,spec_run 4001db3dbc9e7104 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/redis-namespace/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/redis-namespace/GET/response Binary files differindex 03d9194045..e322e4a8e3 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/redis-namespace/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/redis-namespace/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/redis/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/redis/GET/request index 9bfcfc80fd..a8381bd8b5 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/redis/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/redis/GET/request @@ -1,7 +1,7 @@ > GET /info/redis > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/redis/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/redis/GET/response Binary files differindex 9f5d4406e5..c482655b9f 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/redis/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/redis/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ref/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ref/GET/request index 42ee151f68..fad1bb1bc4 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ref/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ref/GET/request @@ -1,7 +1,7 @@ > GET /info/ref > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ref/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ref/GET/response Binary files differindex 528ef107b5..8da1fe2b44 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ref/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ref/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/regexp_parser/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/regexp_parser/GET/request new file mode 100644 index 0000000000..ba4e22503e --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/regexp_parser/GET/request @@ -0,0 +1,7 @@ +> GET /info/regexp_parser +> accept-encoding: gzip +> accept: */* +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 +> connection: keep-alive +> keep-alive: 30 +> host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/regexp_parser/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/regexp_parser/GET/response Binary files differnew file mode 100644 index 0000000000..304d0dd69f --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/regexp_parser/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/representable/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/representable/GET/request index 73a5ca084e..10b7b0f0d5 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/representable/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/representable/GET/request @@ -1,7 +1,7 @@ > GET /info/representable > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9138760e40ab97c9 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/representable/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/representable/GET/response Binary files differindex 5a28b34afb..3c233b804c 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/representable/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/representable/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/resque-scheduler/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/resque-scheduler/GET/request index aa9132aedb..b9b0e3edfd 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/resque-scheduler/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/resque-scheduler/GET/request @@ -1,7 +1,7 @@ > GET /info/resque-scheduler > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/install options/retry,path,disable_shared_gems,spec_run,plugins,trampoline_disable d59b382d069fc94f +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/install options/retry,no_install,path,spec_run 4001db3dbc9e7104 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/resque-scheduler/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/resque-scheduler/GET/response Binary files differindex 8e0c95e2cb..5a3a8550c4 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/resque-scheduler/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/resque-scheduler/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/resque/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/resque/GET/request index 616a9e5b9f..b343d4f61a 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/resque/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/resque/GET/request @@ -1,7 +1,7 @@ > GET /info/resque > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/install options/retry,path,disable_shared_gems,spec_run,plugins,trampoline_disable d59b382d069fc94f +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/install options/retry,no_install,path,spec_run 4001db3dbc9e7104 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/resque/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/resque/GET/response Binary files differindex 32c3e51e9b..1dd998b652 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/resque/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/resque/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rest-client/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rest-client/GET/request index 5935658273..24813b41af 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rest-client/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rest-client/GET/request @@ -1,7 +1,7 @@ > GET /info/rest-client > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rest-client/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rest-client/GET/response Binary files differindex 5363438b08..424c8cb18f 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rest-client/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rest-client/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/retriable/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/retriable/GET/request index a76f439668..19639f592f 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/retriable/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/retriable/GET/request @@ -1,7 +1,7 @@ > GET /info/retriable > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9138760e40ab97c9 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/retriable/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/retriable/GET/response Binary files differindex 1ee15eeb98..4dedfaaa86 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/retriable/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/retriable/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rexical/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rexical/GET/request index 0390a17867..4f8bb736bc 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rexical/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rexical/GET/request @@ -1,7 +1,7 @@ > GET /info/rexical > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rexical/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rexical/GET/response Binary files differindex 9e6fb35c6c..653f3dfd60 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rexical/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rexical/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/right_aws/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/right_aws/GET/request index 46fa433f4a..7bd8c224d5 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/right_aws/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/right_aws/GET/request @@ -1,7 +1,7 @@ > GET /info/right_aws > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 6d5397ce7f8b26e0 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 7053ae03c762ac3b > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/right_aws/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/right_aws/GET/response Binary files differindex eb62d2516c..de5e2f6ca1 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/right_aws/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/right_aws/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/right_http_connection/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/right_http_connection/GET/request index 9afacd1726..9ab3e5b5b5 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/right_http_connection/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/right_http_connection/GET/request @@ -1,7 +1,7 @@ > GET /info/right_http_connection > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 6d5397ce7f8b26e0 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 7053ae03c762ac3b > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/right_http_connection/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/right_http_connection/GET/response Binary files differindex 05212f5e5e..2d65542a5b 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/right_http_connection/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/right_http_connection/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec-core/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec-core/GET/request index c9398deae9..970d81af63 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec-core/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec-core/GET/request @@ -1,7 +1,7 @@ > GET /info/rspec-core > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec-core/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec-core/GET/response Binary files differindex e34e0f1740..b27b576aac 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec-core/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec-core/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec-expectations/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec-expectations/GET/request index 660b24d100..b4ee08ffe2 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec-expectations/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec-expectations/GET/request @@ -1,7 +1,7 @@ > GET /info/rspec-expectations > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec-expectations/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec-expectations/GET/response Binary files differindex a51f67f84a..25c82fa8d2 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec-expectations/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec-expectations/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec-logsplit/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec-logsplit/GET/request index 5ff447f187..42b48afdc4 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec-logsplit/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec-logsplit/GET/request @@ -1,7 +1,7 @@ > GET /info/rspec-logsplit > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec-logsplit/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec-logsplit/GET/response Binary files differindex b0780175c6..7400f0895e 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec-logsplit/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec-logsplit/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec-mocks/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec-mocks/GET/request index 0a961c6ffd..71517920f8 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec-mocks/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec-mocks/GET/request @@ -1,7 +1,7 @@ > GET /info/rspec-mocks > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec-mocks/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec-mocks/GET/response Binary files differindex b80ac128fe..39afa81a58 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec-mocks/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec-mocks/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec-support/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec-support/GET/request index ab2d3175ec..dd312a431d 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec-support/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec-support/GET/request @@ -1,7 +1,7 @@ > GET /info/rspec-support > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec-support/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec-support/GET/response Binary files differindex b5ac515f64..f1b1e6ea4a 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec-support/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec-support/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec/GET/request index 3f327837cc..34786fedb1 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec/GET/request @@ -1,7 +1,7 @@ > GET /info/rspec > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec/GET/response Binary files differindex 15739a2536..2e975171b1 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rspec/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rubigen/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rubigen/GET/request index 19c742edd3..b99bf6e88e 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rubigen/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rubigen/GET/request @@ -1,7 +1,7 @@ > GET /info/rubigen > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/install options/retry,path,disable_shared_gems,spec_run,plugins,trampoline_disable d59b382d069fc94f +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/install options/retry,no_install,path,spec_run 4001db3dbc9e7104 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rubigen/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rubigen/GET/response Binary files differindex d891923d0f..6f9b03b25b 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rubigen/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rubigen/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rubocop/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rubocop/GET/request index 49899f0274..11b540193d 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rubocop/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rubocop/GET/request @@ -1,7 +1,7 @@ > GET /info/rubocop > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rubocop/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rubocop/GET/response Binary files differindex b04daa0835..bd82accc36 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rubocop/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rubocop/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby-maven-libs/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby-maven-libs/GET/request new file mode 100644 index 0000000000..7fb8eb8637 --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby-maven-libs/GET/request @@ -0,0 +1,7 @@ +> GET /info/ruby-maven-libs +> accept-encoding: gzip +> accept: */* +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 +> connection: keep-alive +> keep-alive: 30 +> host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby-maven-libs/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby-maven-libs/GET/response Binary files differnew file mode 100644 index 0000000000..943b5a8471 --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby-maven-libs/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby-maven/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby-maven/GET/request new file mode 100644 index 0000000000..7ddea467a9 --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby-maven/GET/request @@ -0,0 +1,7 @@ +> GET /info/ruby-maven +> accept-encoding: gzip +> accept: */* +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 +> connection: keep-alive +> keep-alive: 30 +> host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby-maven/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby-maven/GET/response Binary files differnew file mode 100644 index 0000000000..d6ba1fc4ec --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby-maven/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby-openid/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby-openid/GET/request index 83ae0d71e7..d4684cc146 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby-openid/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby-openid/GET/request @@ -1,7 +1,7 @@ > GET /info/ruby-openid > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby-openid/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby-openid/GET/response Binary files differindex 52ed57c65f..28c97e2452 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby-openid/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby-openid/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby-progressbar/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby-progressbar/GET/request index 85bcdde042..5d52273104 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby-progressbar/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby-progressbar/GET/request @@ -1,7 +1,7 @@ > GET /info/ruby-progressbar > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby-progressbar/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby-progressbar/GET/response Binary files differindex 17ac9088ac..bff1f736e3 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby-progressbar/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby-progressbar/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby-yadis/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby-yadis/GET/request index e12117e5dc..4aa072175e 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby-yadis/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby-yadis/GET/request @@ -1,7 +1,7 @@ > GET /info/ruby-yadis > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby-yadis/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby-yadis/GET/response Binary files differindex 13432135e4..677ca4dc4c 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby-yadis/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby-yadis/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby_dep/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby_dep/GET/request index 43d58ead74..1ca707a7fb 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby_dep/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby_dep/GET/request @@ -1,7 +1,7 @@ > GET /info/ruby_dep > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9138760e40ab97c9 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby_dep/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby_dep/GET/response Binary files differindex cc0788c900..9c69721e3e 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby_dep/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby_dep/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby_parser/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby_parser/GET/request index 460ff43276..5a6bba7091 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby_parser/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby_parser/GET/request @@ -1,7 +1,7 @@ > GET /info/ruby_parser > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby_parser/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby_parser/GET/response Binary files differindex 63c6ef0386..7f2e69444c 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby_parser/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/ruby_parser/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rubyforge/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rubyforge/GET/request index 92e612095d..0b51288835 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rubyforge/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rubyforge/GET/request @@ -1,7 +1,7 @@ > GET /info/rubyforge > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rubyforge/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rubyforge/GET/response Binary files differindex 16d3d25a0e..c2f35fb626 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rubyforge/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rubyforge/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rubyzip/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rubyzip/GET/request index 56ff5252ce..5c48b6a8ee 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rubyzip/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rubyzip/GET/request @@ -1,7 +1,7 @@ > GET /info/rubyzip > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rubyzip/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rubyzip/GET/response Binary files differindex 073c6fc055..a2edef2c4f 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rubyzip/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rubyzip/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rufus-scheduler/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rufus-scheduler/GET/request index 9c499d7320..4806f24c49 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rufus-scheduler/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rufus-scheduler/GET/request @@ -1,7 +1,7 @@ > GET /info/rufus-scheduler > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/install options/retry,path,disable_shared_gems,spec_run,plugins,trampoline_disable d59b382d069fc94f +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/install options/retry,no_install,path,spec_run 4001db3dbc9e7104 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rufus-scheduler/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rufus-scheduler/GET/response Binary files differindex 812fe87e81..19aa19c05d 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rufus-scheduler/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/rufus-scheduler/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sass-listen/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sass-listen/GET/request index 98051f0722..6f0241c73d 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sass-listen/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sass-listen/GET/request @@ -1,7 +1,7 @@ > GET /info/sass-listen > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9138760e40ab97c9 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sass-listen/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sass-listen/GET/response Binary files differindex 8c9edc10b3..d6c19b19d4 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sass-listen/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sass-listen/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sass-rails/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sass-rails/GET/request index ab996f5ead..083bd8072b 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sass-rails/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sass-rails/GET/request @@ -1,7 +1,7 @@ > GET /info/sass-rails > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9138760e40ab97c9 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sass-rails/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sass-rails/GET/response Binary files differindex c4a9239718..9cd53d6c22 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sass-rails/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sass-rails/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sass/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sass/GET/request index 16f4a2d834..be1e28f4be 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sass/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sass/GET/request @@ -1,7 +1,7 @@ > GET /info/sass > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9138760e40ab97c9 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sass/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sass/GET/response Binary files differindex 313c6759ab..f5f621d745 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sass/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sass/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/selenium-webdriver/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/selenium-webdriver/GET/request index 3128daa2f7..f2eb97c74e 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/selenium-webdriver/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/selenium-webdriver/GET/request @@ -1,7 +1,7 @@ > GET /info/selenium-webdriver > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/selenium-webdriver/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/selenium-webdriver/GET/response Binary files differindex 5776c2ea14..c176ecee27 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/selenium-webdriver/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/selenium-webdriver/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sexp_processor/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sexp_processor/GET/request index e92bfe4e50..97bed157b5 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sexp_processor/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sexp_processor/GET/request @@ -1,7 +1,7 @@ > GET /info/sexp_processor > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sexp_processor/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sexp_processor/GET/response Binary files differindex d7ebe60e4b..fc0d925d8c 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sexp_processor/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sexp_processor/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/shotgun/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/shotgun/GET/request index 9d6b958cc5..63fda90f9a 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/shotgun/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/shotgun/GET/request @@ -1,7 +1,7 @@ > GET /info/shotgun > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9138760e40ab97c9 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/shotgun/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/shotgun/GET/response Binary files differindex 5818a8035a..506717d956 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/shotgun/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/shotgun/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/signet/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/signet/GET/request index bd4257ed35..880d52030f 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/signet/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/signet/GET/request @@ -1,7 +1,7 @@ > GET /info/signet > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9138760e40ab97c9 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/signet/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/signet/GET/response Binary files differindex 8fc0070487..de2fcba275 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/signet/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/signet/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/simplecov-html/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/simplecov-html/GET/request index daf148a4f8..331ce2e176 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/simplecov-html/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/simplecov-html/GET/request @@ -1,7 +1,7 @@ > GET /info/simplecov-html > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/simplecov-html/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/simplecov-html/GET/response Binary files differindex 6f69f67f0f..c8f15b1372 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/simplecov-html/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/simplecov-html/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/simplecov/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/simplecov/GET/request index be9dec39be..fdd3f7ca8c 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/simplecov/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/simplecov/GET/request @@ -1,7 +1,7 @@ > GET /info/simplecov > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/simplecov/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/simplecov/GET/response Binary files differindex a3e776cc99..937887d913 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/simplecov/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/simplecov/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sinatra/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sinatra/GET/request index f442fa89f6..ecca8fb509 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sinatra/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sinatra/GET/request @@ -1,7 +1,7 @@ > GET /info/sinatra > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9138760e40ab97c9 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sinatra/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sinatra/GET/response Binary files differindex 75911724b2..ba5e920646 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sinatra/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sinatra/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/slop/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/slop/GET/request index f4a1685ba2..2c8804ba12 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/slop/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/slop/GET/request @@ -1,7 +1,7 @@ > GET /info/slop > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/slop/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/slop/GET/response Binary files differindex 4596867818..296997c21d 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/slop/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/slop/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/spicycode-rcov/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/spicycode-rcov/GET/request index c9686cae49..014f2a608c 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/spicycode-rcov/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/spicycode-rcov/GET/request @@ -1,7 +1,7 @@ > GET /info/spicycode-rcov > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/spicycode-rcov/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/spicycode-rcov/GET/response Binary files differindex 02f19182ab..89d39497bd 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/spicycode-rcov/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/spicycode-rcov/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/spoon/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/spoon/GET/request index d1f41c369a..b53def174d 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/spoon/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/spoon/GET/request @@ -1,7 +1,7 @@ > GET /info/spoon > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/spoon/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/spoon/GET/response Binary files differindex 1f3ef61f03..28cfe5d961 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/spoon/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/spoon/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sprockets-rails/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sprockets-rails/GET/request index 7b7ba15490..90f4e6ec50 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sprockets-rails/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sprockets-rails/GET/request @@ -1,7 +1,7 @@ > GET /info/sprockets-rails > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sprockets-rails/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sprockets-rails/GET/response Binary files differindex 7e3e31b886..31f4933d59 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sprockets-rails/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sprockets-rails/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sprockets/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sprockets/GET/request index 06767f04a6..ced5d17d16 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sprockets/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sprockets/GET/request @@ -1,7 +1,7 @@ > GET /info/sprockets > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sprockets/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sprockets/GET/response Binary files differindex e4bc7d20e3..b52e192608 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sprockets/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sprockets/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/spruz/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/spruz/GET/request index a9995940f5..3077aaece6 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/spruz/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/spruz/GET/request @@ -1,7 +1,7 @@ > GET /info/spruz > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/spruz/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/spruz/GET/response Binary files differindex 3bf25600b0..e9605e4607 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/spruz/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/spruz/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sqlite3/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sqlite3/GET/request index 39542c09e8..39a3e7e9a6 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sqlite3/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sqlite3/GET/request @@ -1,7 +1,7 @@ > GET /info/sqlite3 > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sqlite3/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sqlite3/GET/response Binary files differindex efc03a2679..c1bb2e82e2 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sqlite3/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sqlite3/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/syntax/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/syntax/GET/request index 462e2bd29b..9ca2d29a72 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/syntax/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/syntax/GET/request @@ -1,7 +1,7 @@ > GET /info/syntax > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/syntax/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/syntax/GET/response Binary files differindex afa8ce7387..a35611e00d 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/syntax/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/syntax/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sys-admin/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sys-admin/GET/request index 4ce082dcaa..657fc83cf5 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sys-admin/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sys-admin/GET/request @@ -1,7 +1,7 @@ > GET /info/sys-admin > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sys-admin/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sys-admin/GET/response Binary files differindex 249397108b..e737d33abb 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sys-admin/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/sys-admin/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tenderlove-frex/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tenderlove-frex/GET/request index 39f37ebdf3..b76a25fdbf 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tenderlove-frex/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tenderlove-frex/GET/request @@ -1,7 +1,7 @@ > GET /info/tenderlove-frex > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tenderlove-frex/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tenderlove-frex/GET/response Binary files differindex 53e2fb263e..89f6e3eaf8 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tenderlove-frex/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tenderlove-frex/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/term-ansicolor/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/term-ansicolor/GET/request index 23c9c82fcf..f47f06a940 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/term-ansicolor/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/term-ansicolor/GET/request @@ -1,7 +1,7 @@ > GET /info/term-ansicolor > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/term-ansicolor/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/term-ansicolor/GET/response Binary files differindex 9baf5c0838..be1ac03ee9 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/term-ansicolor/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/term-ansicolor/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/termios/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/termios/GET/request index 17087a36e1..639aebc904 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/termios/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/termios/GET/request @@ -1,7 +1,7 @@ > GET /info/termios > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/termios/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/termios/GET/response Binary files differindex ed5ff907da..239da575a9 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/termios/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/termios/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/terrapin/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/terrapin/GET/request new file mode 100644 index 0000000000..e53c5c2f25 --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/terrapin/GET/request @@ -0,0 +1,7 @@ +> GET /info/terrapin +> accept-encoding: gzip +> accept: */* +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 7053ae03c762ac3b +> connection: keep-alive +> keep-alive: 30 +> host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/terrapin/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/terrapin/GET/response Binary files differnew file mode 100644 index 0000000000..da51b8a668 --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/terrapin/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/test-spec/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/test-spec/GET/request index 1d2d581583..7b545d01bd 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/test-spec/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/test-spec/GET/request @@ -1,7 +1,7 @@ > GET /info/test-spec > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/test-spec/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/test-spec/GET/response Binary files differindex 4c95e0f607..e9d742ca97 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/test-spec/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/test-spec/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/test-unit/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/test-unit/GET/request index 92b85c1751..6179f1a057 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/test-unit/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/test-unit/GET/request @@ -1,7 +1,7 @@ > GET /info/test-unit > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/test-unit/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/test-unit/GET/response Binary files differindex bb27d58d78..c6d818b3b8 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/test-unit/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/test-unit/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/text-format/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/text-format/GET/request index 3a8cbe23e1..b7ce7aa045 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/text-format/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/text-format/GET/request @@ -1,7 +1,7 @@ > GET /info/text-format > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/text-format/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/text-format/GET/response Binary files differindex f1c0e296e5..e72afeb4e9 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/text-format/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/text-format/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/text-hyphen/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/text-hyphen/GET/request index 5aa85a177c..ad1d0ac22d 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/text-hyphen/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/text-hyphen/GET/request @@ -1,7 +1,7 @@ > GET /info/text-hyphen > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/text-hyphen/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/text-hyphen/GET/response Binary files differindex 415db7ffb8..18f93920cc 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/text-hyphen/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/text-hyphen/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/thin/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/thin/GET/request index ce6a7c8e8e..a5e99e6137 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/thin/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/thin/GET/request @@ -1,7 +1,7 @@ > GET /info/thin > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/thin/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/thin/GET/response Binary files differindex 2816f819c1..8c78eb80c6 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/thin/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/thin/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/thor/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/thor/GET/request index 413597fd9d..ab4c8d801b 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/thor/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/thor/GET/request @@ -1,7 +1,7 @@ > GET /info/thor > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/thor/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/thor/GET/response Binary files differindex e7ffff2c35..55fb0868a8 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/thor/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/thor/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/thoughtbot-shoulda/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/thoughtbot-shoulda/GET/request index b420081022..7fe1b6b562 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/thoughtbot-shoulda/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/thoughtbot-shoulda/GET/request @@ -1,7 +1,7 @@ > GET /info/thoughtbot-shoulda > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 6d5397ce7f8b26e0 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 7053ae03c762ac3b > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/thoughtbot-shoulda/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/thoughtbot-shoulda/GET/response Binary files differindex f9e7a1a93d..0df8733ceb 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/thoughtbot-shoulda/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/thoughtbot-shoulda/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/thread_safe/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/thread_safe/GET/request index f5f0fffab3..19ed10e6ad 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/thread_safe/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/thread_safe/GET/request @@ -1,7 +1,7 @@ > GET /info/thread_safe > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/thread_safe/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/thread_safe/GET/response Binary files differindex aea7453992..8def3f4c92 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/thread_safe/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/thread_safe/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tilt/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tilt/GET/request index 039aa0341f..349d34b503 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tilt/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tilt/GET/request @@ -1,7 +1,7 @@ > GET /info/tilt > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tilt/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tilt/GET/response Binary files differindex 2345ec0b21..a3534c757f 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tilt/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tilt/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/timers/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/timers/GET/request index 2fc37f3a88..05c93bdfec 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/timers/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/timers/GET/request @@ -1,7 +1,7 @@ > GET /info/timers > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/timers/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/timers/GET/response Binary files differindex e86a9276f5..ccd3c27476 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/timers/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/timers/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tins/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tins/GET/request index be1d206beb..e002e5c739 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tins/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tins/GET/request @@ -1,7 +1,7 @@ > GET /info/tins > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tins/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tins/GET/response Binary files differindex b115ddbd57..b80ad70d4a 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tins/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tins/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tlsmail/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tlsmail/GET/request index 56ebce0f3f..9e1db47da6 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tlsmail/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tlsmail/GET/request @@ -1,7 +1,7 @@ > GET /info/tlsmail > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tlsmail/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tlsmail/GET/response Binary files differindex ecd321ccbc..854b67c2d3 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tlsmail/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tlsmail/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tool/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tool/GET/request index a8492ade82..ec6d9fe4fb 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tool/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tool/GET/request @@ -1,7 +1,7 @@ > GET /info/tool > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9138760e40ab97c9 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tool/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tool/GET/response Binary files differindex 634d8a43da..b6e87943d2 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tool/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tool/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/treetop/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/treetop/GET/request index 52f2db382f..d9119a3bc7 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/treetop/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/treetop/GET/request @@ -1,7 +1,7 @@ > GET /info/treetop > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/treetop/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/treetop/GET/response Binary files differindex 7c41530d1c..5f621e1e13 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/treetop/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/treetop/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/trollop/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/trollop/GET/request index 224cab6988..477fc975f6 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/trollop/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/trollop/GET/request @@ -1,7 +1,7 @@ > GET /info/trollop > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/trollop/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/trollop/GET/response Binary files differindex 0b27048b76..0b65bbd195 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/trollop/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/trollop/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tzinfo/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tzinfo/GET/request index 0175216dd1..927d90bd8e 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tzinfo/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tzinfo/GET/request @@ -1,7 +1,7 @@ > GET /info/tzinfo > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tzinfo/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tzinfo/GET/response Binary files differindex 53f6c4697b..237de4cc23 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tzinfo/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/tzinfo/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/uber/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/uber/GET/request index 9fe5b0c30a..e42f62d4cd 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/uber/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/uber/GET/request @@ -1,7 +1,7 @@ > GET /info/uber > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9138760e40ab97c9 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/uber/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/uber/GET/response Binary files differindex eba3bd402e..f2ce8d1e30 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/uber/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/uber/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/unf/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/unf/GET/request index f67c99558f..ebaa275a9b 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/unf/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/unf/GET/request @@ -1,7 +1,7 @@ > GET /info/unf > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/unf/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/unf/GET/response Binary files differindex ffc37964aa..76dda92f2b 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/unf/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/unf/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/unf_ext/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/unf_ext/GET/request index 77598fe741..46de08b182 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/unf_ext/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/unf_ext/GET/request @@ -1,7 +1,7 @@ > GET /info/unf_ext > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/unf_ext/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/unf_ext/GET/response Binary files differindex df21493ce7..2812985ff2 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/unf_ext/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/unf_ext/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/unicode-display_width/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/unicode-display_width/GET/request index 9d4f27056b..ef24952b56 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/unicode-display_width/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/unicode-display_width/GET/request @@ -1,7 +1,7 @@ > GET /info/unicode-display_width > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/unicode-display_width/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/unicode-display_width/GET/response Binary files differindex 4c6e844651..f5d3584685 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/unicode-display_width/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/unicode-display_width/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/uuidtools/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/uuidtools/GET/request index 5daed37793..ca921a1154 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/uuidtools/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/uuidtools/GET/request @@ -1,7 +1,7 @@ > GET /info/uuidtools > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9138760e40ab97c9 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/uuidtools/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/uuidtools/GET/response Binary files differindex dce91487b9..0f437fe432 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/uuidtools/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/uuidtools/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/vegas/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/vegas/GET/request index f22bf57945..43948bae45 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/vegas/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/vegas/GET/request @@ -1,7 +1,7 @@ > GET /info/vegas > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/install options/retry,path,disable_shared_gems,spec_run,plugins,trampoline_disable d59b382d069fc94f +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/install options/retry,no_install,path,spec_run 4001db3dbc9e7104 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/vegas/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/vegas/GET/response Binary files differindex c927a24960..b61a5b21b1 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/vegas/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/vegas/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/virtus/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/virtus/GET/request index 858ceea38d..6e4e2b68b9 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/virtus/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/virtus/GET/request @@ -1,7 +1,7 @@ > GET /info/virtus > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 53c83f3e5793993c +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/virtus/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/virtus/GET/response Binary files differindex 5f4a979efb..b140cefd4f 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/virtus/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/virtus/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/weakling/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/weakling/GET/request index f6a7eb9098..2f843ae2bf 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/weakling/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/weakling/GET/request @@ -1,7 +1,7 @@ > GET /info/weakling > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/weakling/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/weakling/GET/response Binary files differindex 6bb2bd7f81..2b6e8cbafc 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/weakling/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/weakling/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/websocket-driver/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/websocket-driver/GET/request index 06463439e0..c3ce4ab6e9 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/websocket-driver/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/websocket-driver/GET/request @@ -1,7 +1,7 @@ > GET /info/websocket-driver > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/websocket-driver/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/websocket-driver/GET/response Binary files differindex 3e008063cf..3ce805da65 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/websocket-driver/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/websocket-driver/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/websocket-extensions/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/websocket-extensions/GET/request index 4757f24824..da7778cc41 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/websocket-extensions/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/websocket-extensions/GET/request @@ -1,7 +1,7 @@ > GET /info/websocket-extensions > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/websocket-extensions/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/websocket-extensions/GET/response Binary files differindex 82d7d627ef..1ee5deb61e 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/websocket-extensions/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/websocket-extensions/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/websocket/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/websocket/GET/request index 45eaa04e55..b27d36daf0 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/websocket/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/websocket/GET/request @@ -1,7 +1,7 @@ > GET /info/websocket > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/websocket/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/websocket/GET/response Binary files differindex 12f2851eb4..3353f782cb 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/websocket/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/websocket/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/win32-api/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/win32-api/GET/request index 9d47c2709b..a3bc6bacda 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/win32-api/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/win32-api/GET/request @@ -1,7 +1,7 @@ > GET /info/win32-api > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/win32-api/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/win32-api/GET/response Binary files differindex 0949fa6bd6..387e0aa16b 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/win32-api/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/win32-api/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/win32-dir/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/win32-dir/GET/request index 6a11013349..20af4069c7 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/win32-dir/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/win32-dir/GET/request @@ -1,7 +1,7 @@ > GET /info/win32-dir > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/win32-dir/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/win32-dir/GET/response Binary files differindex e3ef8912a4..433cfa497b 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/win32-dir/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/win32-dir/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/win32-security/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/win32-security/GET/request index d89f956691..99f1c55b97 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/win32-security/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/win32-security/GET/request @@ -1,7 +1,7 @@ > GET /info/win32-security > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/win32-security/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/win32-security/GET/response Binary files differindex bb0c9a7e36..33a50775fb 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/win32-security/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/win32-security/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/win32console/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/win32console/GET/request index 37acaa6088..5e35b5eca4 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/win32console/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/win32console/GET/request @@ -1,7 +1,7 @@ > GET /info/win32console > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/win32console/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/win32console/GET/response Binary files differindex 521817fcfc..57e39baa89 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/win32console/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/win32console/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/windows-api/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/windows-api/GET/request index 30402b17e0..bf18b53ee1 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/windows-api/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/windows-api/GET/request @@ -1,7 +1,7 @@ > GET /info/windows-api > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/windows-api/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/windows-api/GET/response Binary files differindex a5f9ab5106..37a8110ec8 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/windows-api/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/windows-api/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/windows-pr/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/windows-pr/GET/request index 31c1180ac7..c7a88b5ead 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/windows-pr/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/windows-pr/GET/request @@ -1,7 +1,7 @@ > GET /info/windows-pr > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/windows-pr/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/windows-pr/GET/response Binary files differindex da32f51343..6e44b07c29 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/windows-pr/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/windows-pr/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/xpath/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/xpath/GET/request index 5cc409d8db..9842d78085 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/xpath/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/xpath/GET/request @@ -1,7 +1,7 @@ > GET /info/xpath > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/lock options/spec_run 9d9d3e8c8762d996 > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/xpath/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/xpath/GET/response Binary files differindex 07edc592e7..1d9f171853 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/xpath/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/info/xpath/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/versions/GET/request b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/versions/GET/request index ec73805dff..aba35a7fae 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/versions/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/versions/GET/request @@ -1,7 +1,7 @@ > GET /versions > accept-encoding: gzip > accept: */* -> user-agent: bundler/1.15.0.pre.2 rubygems/2.6.11 ruby/2.4.1 (x86_64-apple-darwin16.5.0) command/lock options/spec_run,plugins,trampoline_disable 7edfb7e0938d0c35 +> user-agent: bundler/2.0.0.dev rubygems/3.1.0.pre1 ruby/2.6.1 (x86_64-pc-linux-gnu) command/ options/inline,spec_run,gemfile 2b245065a74de07f > connection: keep-alive > keep-alive: 30 > host: index.rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/versions/GET/response b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/versions/GET/response Binary files differindex 0a46b96850..b691a401ca 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/versions/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/index.rubygems.org/versions/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/activesupport-3.2.12.gem/GET/response b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/activesupport-3.2.12.gem/GET/response Binary files differindex 7690c1c76d..f1faae50b0 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/activesupport-3.2.12.gem/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/activesupport-3.2.12.gem/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/activesupport-3.2.22.5.gem/GET/response b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/activesupport-3.2.22.5.gem/GET/response Binary files differindex 3659fabd5f..3988e693d3 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/activesupport-3.2.22.5.gem/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/activesupport-3.2.22.5.gem/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/bundler-1.12.3.gem/GET/response b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/bundler-1.12.3.gem/GET/response Binary files differdeleted file mode 100644 index 8a5dc75d9e..0000000000 --- a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/bundler-1.12.3.gem/GET/response +++ /dev/null diff --git a/spec/support/artifice/vcr_cassettes/realworld/api.rubygems.org/gems/bundler-1.12.3.gem/GET/request b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/concurrent-ruby-1.1.4.gem/GET/request index 230892854c..ed9d94f1be 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/api.rubygems.org/gems/bundler-1.12.3.gem/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/concurrent-ruby-1.1.4.gem/GET/request @@ -1,7 +1,7 @@ -> GET /gems/bundler-1.12.3.gem +> GET /gems/concurrent-ruby-1.1.4.gem > accept-encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3 > accept: */* > user-agent: Ruby > connection: keep-alive > keep-alive: 30 -> host: api.rubygems.org
\ No newline at end of file +> host: rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/concurrent-ruby-1.1.4.gem/GET/response b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/concurrent-ruby-1.1.4.gem/GET/response Binary files differnew file mode 100644 index 0000000000..8e399c4708 --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/concurrent-ruby-1.1.4.gem/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/diff-lcs-1.3.gem/GET/response b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/diff-lcs-1.3.gem/GET/response Binary files differindex 908888f595..9a7f4ec4cd 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/diff-lcs-1.3.gem/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/diff-lcs-1.3.gem/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/faker-1.1.2.gem/GET/response b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/faker-1.1.2.gem/GET/response Binary files differindex 19bf053db5..b173c41d39 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/faker-1.1.2.gem/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/faker-1.1.2.gem/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/i18n-0.6.11.gem/GET/response b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/i18n-0.6.11.gem/GET/response Binary files differindex 0253208389..6ff4240791 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/i18n-0.6.11.gem/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/i18n-0.6.11.gem/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/i18n-0.8.1.gem/GET/response b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/i18n-0.8.1.gem/GET/response Binary files differdeleted file mode 100644 index e746a6b73d..0000000000 --- a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/i18n-0.8.1.gem/GET/response +++ /dev/null diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/i18n-0.8.1.gem/GET/request b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/i18n-0.9.5.gem/GET/request index 04e800510b..3ac549de64 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/i18n-0.8.1.gem/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/i18n-0.9.5.gem/GET/request @@ -1,4 +1,4 @@ -> GET /gems/i18n-0.8.1.gem +> GET /gems/i18n-0.9.5.gem > accept-encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3 > accept: */* > user-agent: Ruby diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/i18n-0.9.5.gem/GET/response b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/i18n-0.9.5.gem/GET/response Binary files differnew file mode 100644 index 0000000000..4dbd55135c --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/i18n-0.9.5.gem/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/mono_logger-1.1.0.gem/GET/response b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/mono_logger-1.1.0.gem/GET/response Binary files differindex 3e1edd9559..35cf30df71 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/mono_logger-1.1.0.gem/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/mono_logger-1.1.0.gem/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/multi_json-1.12.1.gem/GET/response b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/multi_json-1.12.1.gem/GET/response Binary files differdeleted file mode 100644 index 3a5565f9e0..0000000000 --- a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/multi_json-1.12.1.gem/GET/response +++ /dev/null diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/multi_json-1.12.1.gem/GET/request b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/multi_json-1.13.1.gem/GET/request index fa8e059e91..c383e3cd0b 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/multi_json-1.12.1.gem/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/multi_json-1.13.1.gem/GET/request @@ -1,4 +1,4 @@ -> GET /gems/multi_json-1.12.1.gem +> GET /gems/multi_json-1.13.1.gem > accept-encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3 > accept: */* > user-agent: Ruby diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/multi_json-1.13.1.gem/GET/response b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/multi_json-1.13.1.gem/GET/response Binary files differnew file mode 100644 index 0000000000..d035fd023d --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/multi_json-1.13.1.gem/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/bundler-1.12.3.gem/GET/request b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/mustermann-1.0.3.gem/GET/request index af03dfd189..bb59c7a10c 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/bundler-1.12.3.gem/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/mustermann-1.0.3.gem/GET/request @@ -1,4 +1,4 @@ -> GET /gems/bundler-1.12.3.gem +> GET /gems/mustermann-1.0.3.gem > accept-encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3 > accept: */* > user-agent: Ruby diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/mustermann-1.0.3.gem/GET/response b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/mustermann-1.0.3.gem/GET/response Binary files differnew file mode 100644 index 0000000000..4158b2a54f --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/mustermann-1.0.3.gem/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/rack-1.0.1.gem/GET/response b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/rack-1.0.1.gem/GET/response Binary files differindex 3c461eee58..5022f9b573 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/rack-1.0.1.gem/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/rack-1.0.1.gem/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/rack-1.6.5.gem/GET/response b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/rack-1.6.5.gem/GET/response Binary files differdeleted file mode 100644 index 81fbf129bb..0000000000 --- a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/rack-1.6.5.gem/GET/response +++ /dev/null diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/rack-2.0.1.gem/GET/response b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/rack-2.0.1.gem/GET/response Binary files differdeleted file mode 100644 index 4e2fc2b8cd..0000000000 --- a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/rack-2.0.1.gem/GET/response +++ /dev/null diff --git a/spec/support/artifice/vcr_cassettes/realworld/api.rubygems.org/specs.4.8.gz/GET/request b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/rack-2.0.6.gem/GET/request index 94f2b68688..da6fab8771 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/api.rubygems.org/specs.4.8.gz/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/rack-2.0.6.gem/GET/request @@ -1,7 +1,7 @@ -> GET /specs.4.8.gz +> GET /gems/rack-2.0.6.gem > accept-encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3 > accept: */* > user-agent: Ruby > connection: keep-alive > keep-alive: 30 -> host: api.rubygems.org
\ No newline at end of file +> host: rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/rack-2.0.6.gem/GET/response b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/rack-2.0.6.gem/GET/response Binary files differnew file mode 100644 index 0000000000..99e0bbc1cd --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/rack-2.0.6.gem/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/rack-protection-1.5.3.gem/GET/request b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/rack-protection-1.5.3.gem/GET/request deleted file mode 100644 index 03a85b2308..0000000000 --- a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/rack-protection-1.5.3.gem/GET/request +++ /dev/null @@ -1,7 +0,0 @@ -> GET /gems/rack-protection-1.5.3.gem -> accept-encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3 -> accept: */* -> user-agent: Ruby -> connection: keep-alive -> keep-alive: 30 -> host: rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/rack-protection-1.5.3.gem/GET/response b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/rack-protection-1.5.3.gem/GET/response Binary files differdeleted file mode 100644 index 5753f9f8c6..0000000000 --- a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/rack-protection-1.5.3.gem/GET/response +++ /dev/null diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/rack-protection-2.0.5.gem/GET/request b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/rack-protection-2.0.5.gem/GET/request new file mode 100644 index 0000000000..76fd9283e0 --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/rack-protection-2.0.5.gem/GET/request @@ -0,0 +1,7 @@ +> GET /gems/rack-protection-2.0.5.gem +> accept-encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3 +> accept: */* +> user-agent: Ruby +> connection: keep-alive +> keep-alive: 30 +> host: rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/rack-protection-2.0.5.gem/GET/response b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/rack-protection-2.0.5.gem/GET/response Binary files differnew file mode 100644 index 0000000000..24dc106683 --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/rack-protection-2.0.5.gem/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/redis-3.3.3.gem/GET/request b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/redis-3.3.3.gem/GET/request deleted file mode 100644 index 7d5ad5ad23..0000000000 --- a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/redis-3.3.3.gem/GET/request +++ /dev/null @@ -1,7 +0,0 @@ -> GET /gems/redis-3.3.3.gem -> accept-encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3 -> accept: */* -> user-agent: Ruby -> connection: keep-alive -> keep-alive: 30 -> host: rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/redis-3.3.3.gem/GET/response b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/redis-3.3.3.gem/GET/response Binary files differdeleted file mode 100644 index 375d86d9d7..0000000000 --- a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/redis-3.3.3.gem/GET/response +++ /dev/null diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/rack-2.0.1.gem/GET/request b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/redis-4.1.0.gem/GET/request index ed63e334fa..4c0afb57f7 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/rack-2.0.1.gem/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/redis-4.1.0.gem/GET/request @@ -1,4 +1,4 @@ -> GET /gems/rack-2.0.1.gem +> GET /gems/redis-4.1.0.gem > accept-encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3 > accept: */* > user-agent: Ruby diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/redis-4.1.0.gem/GET/response b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/redis-4.1.0.gem/GET/response Binary files differnew file mode 100644 index 0000000000..6d81d6fab4 --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/redis-4.1.0.gem/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/redis-namespace-1.5.3.gem/GET/request b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/redis-namespace-1.5.3.gem/GET/request deleted file mode 100644 index f928e29dd3..0000000000 --- a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/redis-namespace-1.5.3.gem/GET/request +++ /dev/null @@ -1,7 +0,0 @@ -> GET /gems/redis-namespace-1.5.3.gem -> accept-encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3 -> accept: */* -> user-agent: Ruby -> connection: keep-alive -> keep-alive: 30 -> host: rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/redis-namespace-1.5.3.gem/GET/response b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/redis-namespace-1.5.3.gem/GET/response Binary files differdeleted file mode 100644 index eab27de2e2..0000000000 --- a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/redis-namespace-1.5.3.gem/GET/response +++ /dev/null diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/redis-namespace-1.6.0.gem/GET/request b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/redis-namespace-1.6.0.gem/GET/request new file mode 100644 index 0000000000..b942155d2d --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/redis-namespace-1.6.0.gem/GET/request @@ -0,0 +1,7 @@ +> GET /gems/redis-namespace-1.6.0.gem +> accept-encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3 +> accept: */* +> user-agent: Ruby +> connection: keep-alive +> keep-alive: 30 +> host: rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/redis-namespace-1.6.0.gem/GET/response b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/redis-namespace-1.6.0.gem/GET/response Binary files differnew file mode 100644 index 0000000000..376f1f2eca --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/redis-namespace-1.6.0.gem/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/resque-1.24.1.gem/GET/response b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/resque-1.24.1.gem/GET/response Binary files differindex 33d38e4c6c..462217ab00 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/resque-1.24.1.gem/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/resque-1.24.1.gem/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/resque-scheduler-2.2.0.gem/GET/response b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/resque-scheduler-2.2.0.gem/GET/response Binary files differindex 455dc8bb01..9adea527b3 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/resque-scheduler-2.2.0.gem/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/resque-scheduler-2.2.0.gem/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/rufus-scheduler-2.0.24.gem/GET/response b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/rufus-scheduler-2.0.24.gem/GET/response Binary files differindex 72b58e69dd..89d63b5641 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/rufus-scheduler-2.0.24.gem/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/rufus-scheduler-2.0.24.gem/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/sinatra-1.4.8.gem/GET/request b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/sinatra-1.4.8.gem/GET/request deleted file mode 100644 index ee93e5d100..0000000000 --- a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/sinatra-1.4.8.gem/GET/request +++ /dev/null @@ -1,7 +0,0 @@ -> GET /gems/sinatra-1.4.8.gem -> accept-encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3 -> accept: */* -> user-agent: Ruby -> connection: keep-alive -> keep-alive: 30 -> host: rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/sinatra-1.4.8.gem/GET/response b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/sinatra-1.4.8.gem/GET/response Binary files differdeleted file mode 100644 index c3aa1333c6..0000000000 --- a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/sinatra-1.4.8.gem/GET/response +++ /dev/null diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/sinatra-2.0.5.gem/GET/request b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/sinatra-2.0.5.gem/GET/request new file mode 100644 index 0000000000..16692fad88 --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/sinatra-2.0.5.gem/GET/request @@ -0,0 +1,7 @@ +> GET /gems/sinatra-2.0.5.gem +> accept-encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3 +> accept: */* +> user-agent: Ruby +> connection: keep-alive +> keep-alive: 30 +> host: rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/sinatra-2.0.5.gem/GET/response b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/sinatra-2.0.5.gem/GET/response Binary files differnew file mode 100644 index 0000000000..20ffc1b34d --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/sinatra-2.0.5.gem/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/thread_safe-0.3.6.gem/GET/request b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/thread_safe-0.3.6.gem/GET/request deleted file mode 100644 index 51ddc098ae..0000000000 --- a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/thread_safe-0.3.6.gem/GET/request +++ /dev/null @@ -1,7 +0,0 @@ -> GET /gems/thread_safe-0.3.6.gem -> accept-encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3 -> accept: */* -> user-agent: Ruby -> connection: keep-alive -> keep-alive: 30 -> host: rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/thread_safe-0.3.6.gem/GET/response b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/thread_safe-0.3.6.gem/GET/response Binary files differdeleted file mode 100644 index 9007f04014..0000000000 --- a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/thread_safe-0.3.6.gem/GET/response +++ /dev/null diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/tilt-2.0.7.gem/GET/request b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/tilt-2.0.7.gem/GET/request deleted file mode 100644 index c329c7b4c2..0000000000 --- a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/tilt-2.0.7.gem/GET/request +++ /dev/null @@ -1,7 +0,0 @@ -> GET /gems/tilt-2.0.7.gem -> accept-encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3 -> accept: */* -> user-agent: Ruby -> connection: keep-alive -> keep-alive: 30 -> host: rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/tilt-2.0.7.gem/GET/response b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/tilt-2.0.7.gem/GET/response Binary files differdeleted file mode 100644 index 46add52ee8..0000000000 --- a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/tilt-2.0.7.gem/GET/response +++ /dev/null diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/rack-1.6.5.gem/GET/request b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/tilt-2.0.9.gem/GET/request index 4ae9745db3..6c0f46874e 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/rack-1.6.5.gem/GET/request +++ b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/tilt-2.0.9.gem/GET/request @@ -1,4 +1,4 @@ -> GET /gems/rack-1.6.5.gem +> GET /gems/tilt-2.0.9.gem > accept-encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3 > accept: */* > user-agent: Ruby diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/tilt-2.0.9.gem/GET/response b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/tilt-2.0.9.gem/GET/response Binary files differnew file mode 100644 index 0000000000..d6fc73c8f2 --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/tilt-2.0.9.gem/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/tzinfo-1.2.3.gem/GET/request b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/tzinfo-1.2.3.gem/GET/request deleted file mode 100644 index df7b05b346..0000000000 --- a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/tzinfo-1.2.3.gem/GET/request +++ /dev/null @@ -1,7 +0,0 @@ -> GET /gems/tzinfo-1.2.3.gem -> accept-encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3 -> accept: */* -> user-agent: Ruby -> connection: keep-alive -> keep-alive: 30 -> host: rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/tzinfo-1.2.3.gem/GET/response b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/tzinfo-1.2.3.gem/GET/response Binary files differdeleted file mode 100644 index a64e2fda89..0000000000 --- a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/tzinfo-1.2.3.gem/GET/response +++ /dev/null diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/tzinfo-2.0.0.gem/GET/request b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/tzinfo-2.0.0.gem/GET/request new file mode 100644 index 0000000000..a86d867d8e --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/tzinfo-2.0.0.gem/GET/request @@ -0,0 +1,7 @@ +> GET /gems/tzinfo-2.0.0.gem +> accept-encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3 +> accept: */* +> user-agent: Ruby +> connection: keep-alive +> keep-alive: 30 +> host: rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/tzinfo-2.0.0.gem/GET/response b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/tzinfo-2.0.0.gem/GET/response Binary files differnew file mode 100644 index 0000000000..6a4228bd9e --- /dev/null +++ b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/tzinfo-2.0.0.gem/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/vegas-0.1.11.gem/GET/response b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/vegas-0.1.11.gem/GET/response Binary files differindex b84b62a38c..0aaea9e31c 100644 --- a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/vegas-0.1.11.gem/GET/response +++ b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/gems/vegas-0.1.11.gem/GET/response diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/quick/Marshal.4.8/bundler-1.12.3.gemspec.rz/GET/request b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/quick/Marshal.4.8/bundler-1.12.3.gemspec.rz/GET/request deleted file mode 100644 index ef6eab21ce..0000000000 --- a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/quick/Marshal.4.8/bundler-1.12.3.gemspec.rz/GET/request +++ /dev/null @@ -1,7 +0,0 @@ -> GET /quick/Marshal.4.8/bundler-1.12.3.gemspec.rz -> accept-encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3 -> accept: */* -> user-agent: Ruby -> connection: keep-alive -> keep-alive: 30 -> host: rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/quick/Marshal.4.8/bundler-1.12.3.gemspec.rz/GET/response b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/quick/Marshal.4.8/bundler-1.12.3.gemspec.rz/GET/response Binary files differdeleted file mode 100644 index c2e8cb4bce..0000000000 --- a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/quick/Marshal.4.8/bundler-1.12.3.gemspec.rz/GET/response +++ /dev/null diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/specs.4.8.gz/GET/request b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/specs.4.8.gz/GET/request deleted file mode 100644 index ca0f179471..0000000000 --- a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/specs.4.8.gz/GET/request +++ /dev/null @@ -1,7 +0,0 @@ -> GET /specs.4.8.gz -> accept-encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3 -> accept: */* -> user-agent: Ruby -> connection: keep-alive -> keep-alive: 30 -> host: rubygems.org
\ No newline at end of file diff --git a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/specs.4.8.gz/GET/response b/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/specs.4.8.gz/GET/response Binary files differdeleted file mode 100644 index 95277c9b51..0000000000 --- a/spec/support/artifice/vcr_cassettes/realworld/rubygems.org/specs.4.8.gz/GET/response +++ /dev/null diff --git a/spec/support/builders.rb b/spec/support/builders.rb index 188b1d3eb7..33a81f6f65 100644 --- a/spec/support/builders.rb +++ b/spec/support/builders.rb @@ -40,7 +40,7 @@ module Spec build_gem "rails", "2.3.2" do |s| s.executables = "rails" - s.add_dependency "rake", "10.0.2" + s.add_dependency "rake", "12.3.2" s.add_dependency "actionpack", "2.3.2" s.add_dependency "activerecord", "2.3.2" s.add_dependency "actionmailer", "2.3.2" @@ -649,7 +649,7 @@ module Spec `git config user.email "lol@wut.com"` `git config user.name "lolwut"` `git config commit.gpgsign false` - `git commit -m 'OMG INITIAL COMMIT'` + `git commit -m "OMG INITIAL COMMIT"` end end end diff --git a/spec/support/code_climate.rb b/spec/support/code_climate.rb deleted file mode 100644 index a15442cabe..0000000000 --- a/spec/support/code_climate.rb +++ /dev/null @@ -1,26 +0,0 @@ -# frozen_string_literal: true - -module Spec - module CodeClimate - def self.setup - require "codeclimate-test-reporter" - ::CodeClimate::TestReporter.start - configure_exclusions - rescue LoadError - # it's fine if CodeClimate isn't set up - nil - end - - def self.configure_exclusions - SimpleCov.start do - add_filter "/bin/" - add_filter "/lib/bundler/man/" - add_filter "/lib/bundler/vendor/" - add_filter "/man/" - add_filter "/pkg/" - add_filter "/spec/" - add_filter "/tmp/" - end - end - end -end diff --git a/spec/support/command_execution.rb b/spec/support/command_execution.rb index 556285ac52..cec531d6c3 100644 --- a/spec/support/command_execution.rb +++ b/spec/support/command_execution.rb @@ -27,14 +27,6 @@ module Spec @stdboth ||= [stderr, stdout].join("\n").strip end - def bundler_err - if Bundler::VERSION.start_with?("1.") - stdout - else - stderr - end - end - def to_s_verbose [ to_s, diff --git a/spec/support/helpers.rb b/spec/support/helpers.rb index af6b1c556a..478fe60822 100644 --- a/spec/support/helpers.rb +++ b/spec/support/helpers.rb @@ -41,19 +41,25 @@ module Spec end def out - last_command.stdboth + last_command.stdout end def err last_command.stderr end - def exitstatus - last_command.exitstatus + MAJOR_DEPRECATION = /^\[DEPRECATED\]\s*/.freeze + + def err_without_deprecations + err.gsub(/#{MAJOR_DEPRECATION}.+[\n]?/, "") end - def bundle_update_requires_all? - Bundler::VERSION.start_with?("1.") ? nil : true + def deprecations + err.split("\n").select {|l| l =~ MAJOR_DEPRECATION }.join("\n").split(MAJOR_DEPRECATION) + end + + def exitstatus + last_command.exitstatus end def in_app_root(&blk) @@ -71,7 +77,7 @@ module Spec def run(cmd, *args) opts = args.last.is_a?(Hash) ? args.pop : {} groups = args.map(&:inspect).join(", ") - setup = "require 'rubygems' ; require 'bundler' ; Bundler.setup(#{groups})\n" + setup = "require 'bundler' ; Bundler.setup(#{groups})\n" ruby(setup + cmd, opts) end bang :run @@ -131,8 +137,6 @@ module Spec load_path << spec load_path_str = "-I#{load_path.join(File::PATH_SEPARATOR)}" - env = env.map {|k, v| "#{k}='#{v}'" }.join(" ") - args = options.map do |k, v| case v when nil @@ -146,13 +150,13 @@ module Spec end end.join - cmd = "#{env} #{sudo} #{Gem.ruby} #{load_path_str} #{requires_str} #{bundle_bin} #{cmd}#{args}" - sys_exec(cmd) {|i, o, thr| yield i, o, thr if block_given? } + cmd = "#{sudo} #{Gem.ruby} #{load_path_str} #{requires_str} #{bundle_bin} #{cmd}#{args}" + sys_exec(cmd, env) {|i, o, thr| yield i, o, thr if block_given? } end bang :bundle def forgotten_command_line_options(options) - remembered = Bundler::VERSION.split(".", 2).first == "1" + remembered = Bundler::VERSION.split(".", 2).first == "2" options = options.map do |k, v| k = Array(k)[remembered ? 0 : -1] v = '""' if v && v.to_s.empty? @@ -161,9 +165,9 @@ module Spec return Hash[options] if remembered options.each do |k, v| if v.nil? - bundle! "config --delete #{k}" + bundle! "config unset #{k}" else - bundle! "config --local #{k} #{v}" + bundle! "config set --local #{k} #{v}" end end {} @@ -216,10 +220,12 @@ module Spec "#{Gem.ruby} -S #{ENV["GEM_PATH"]}/bin/rake" end - def sys_exec(cmd) + def sys_exec(cmd, env = {}) command_execution = CommandExecution.new(cmd.to_s, Dir.pwd) - Open3.popen3(cmd.to_s) do |stdin, stdout, stderr, wait_thr| + env = env.map {|k, v| [k.to_s, v.to_s] }.to_h # convert env keys and values to string + + Open3.popen3(env, cmd.to_s) do |stdin, stdout, stderr, wait_thr| yield stdin, stdout, wait_thr if block_given? stdin.close @@ -258,18 +264,22 @@ module Spec end def gemfile(*args) - if args.empty? + contents = args.shift + + if contents.nil? File.open("Gemfile", "r", &:read) else - create_file("Gemfile", *args) + create_file("Gemfile", contents, *args) end end def lockfile(*args) - if args.empty? + contents = args.shift + + if contents.nil? File.open("Gemfile.lock", "r", &:read) else - create_file("Gemfile.lock", *args) + create_file("Gemfile.lock", normalize_uri_file(contents), *args) end end @@ -308,13 +318,17 @@ module Spec gem_repo = options.fetch(:gem_repo) { gem_repo1 } gems.each do |g| path = if g == :bundler - Dir.chdir(root) { gem_command! :build, gemspec.to_s } - bundler_path = if ruby_core? - root + "lib/bundler-#{Bundler::VERSION}.gem" + if ruby_core? + spec = Gem::Specification.load(gemspec.to_s) + spec.bindir = "libexec" + File.open(root.join("bundler.gemspec").to_s, "w") {|f| f.write spec.to_ruby } + Dir.chdir(root) { gem_command! :build, root.join("bundler.gemspec").to_s } + FileUtils.rm(root.join("bundler.gemspec")) else - root + "bundler-#{Bundler::VERSION}.gem" + Dir.chdir(root) { gem_command! :build, gemspec.to_s } end - elsif g.to_s =~ %r{\A/.*\.gem\z} + bundler_path = root + "bundler-#{Bundler::VERSION}.gem" + elsif g.to_s =~ %r{\A(?:[A-Z]:)?/.*\.gem\z} g else "#{gem_repo}/gems/#{g}.gem" @@ -425,7 +439,7 @@ module Spec ENV["GEM_PATH"] = system_gem_path.to_s gems.each do |gem| - gem_command :install, "--no-rdoc --no-ri #{gem}" + gem_command! :install, "--no-document #{gem}" end return unless block_given? begin @@ -565,7 +579,7 @@ module Spec tries = 0 sleep 0.5 TCPSocket.new(host, port) - rescue => e + rescue StandardError => e raise(e) if tries > (seconds * 2) tries += 1 retry @@ -575,7 +589,7 @@ module Spec port = 21_453 begin port += 1 while TCPSocket.new("127.0.0.1", port) - rescue + rescue StandardError false end port diff --git a/spec/support/less_than_proc.rb b/spec/support/less_than_proc.rb deleted file mode 100644 index 68d37b44c9..0000000000 --- a/spec/support/less_than_proc.rb +++ /dev/null @@ -1,20 +0,0 @@ -# frozen_string_literal: true - -class LessThanProc < Proc - attr_accessor :present - - def self.with(present) - provided = Gem::Version.new(present.dup) - new do |required| - if required.is_a?(String) && required =~ /[=><~]/ - !Gem::Requirement.new(required).satisfied_by?(provided) - else - provided < Gem::Version.new(required) - end - end.tap {|l| l.present = present } - end - - def inspect - "\"=< #{present}\"" - end -end diff --git a/spec/support/matchers.rb b/spec/support/matchers.rb index 8e17be3a02..5d1a6a7919 100644 --- a/spec/support/matchers.rb +++ b/spec/support/matchers.rb @@ -60,36 +60,6 @@ module Spec end end - MAJOR_DEPRECATION = /^\[DEPRECATED FOR 2\.0\]\s*/ - - RSpec::Matchers.define :lack_errors do - diffable - match do |actual| - actual.gsub(/#{MAJOR_DEPRECATION}.+[\n]?/, "") == "" - end - end - - RSpec::Matchers.define :eq_err do |expected| - diffable - match do |actual| - actual.gsub(/#{MAJOR_DEPRECATION}.+[\n]?/, "") == expected - end - end - - RSpec::Matchers.define :have_major_deprecation do |expected| - diffable - match do |actual| - deprecations = actual.split(MAJOR_DEPRECATION) - - return !expected.nil? if deprecations.size <= 1 - return true if expected.nil? - - deprecations.any? do |d| - !d.empty? && values_match?(expected, d.strip) - end - end - end - RSpec::Matchers.define :have_dep do |*args| dep = Bundler::Dependency.new(*args) @@ -128,6 +98,14 @@ module Spec end end + RSpec::Matchers.define :be_well_formed do + match(&:empty?) + + failure_message do |actual| + actual.join("\n") + end + end + define_compound_matcher :read_as, [exist] do |file_contents| diffable @@ -152,11 +130,10 @@ module Spec version_const = name == "bundler" ? "Bundler::VERSION" : Spec::Builders.constantize(name) begin run! "require '#{name}.rb'; puts #{version_const}", *groups - rescue => e + rescue StandardError => e next "#{name} is not installed:\n#{indent(e)}" end - last_command.stdout.gsub!(/#{MAJOR_DEPRECATION}.*$/, "") - actual_version, actual_platform = last_command.stdout.strip.split(/\s+/, 2) + actual_version, actual_platform = out.strip.split(/\s+/, 2) unless Gem::Version.new(actual_version) == Gem::Version.new(version) next "#{name} was expected to be at version #{version} but was #{actual_version}" end @@ -167,11 +144,10 @@ module Spec begin source_const = "#{Spec::Builders.constantize(name)}_SOURCE" run! "require '#{name}/source'; puts #{source_const}", *groups - rescue + rescue StandardError next "#{name} does not have a source defined:\n#{indent(e)}" end - last_command.stdout.gsub!(/#{MAJOR_DEPRECATION}.*$/, "") - unless last_command.stdout.strip == source + unless out.strip == source next "Expected #{name} (#{version}) to be installed from `#{source}`, was actually from `#{out}`" end end.compact @@ -193,12 +169,12 @@ module Spec puts "WIN" end R - rescue => e + rescue StandardError => e next "checking for #{name} failed:\n#{e}" end - next if last_command.stdout == "WIN" + next if out == "WIN" next "expected #{name} to not be installed, but it was" if version.nil? - if Gem::Version.new(last_command.stdout) == Gem::Version.new(version) + if Gem::Version.new(out) == Gem::Version.new(version) next "expected #{name} (#{version}) not to be installed, but it was" end end.compact @@ -218,7 +194,7 @@ module Spec RSpec::Matchers.alias_matcher :include_gem, :include_gems def have_lockfile(expected) - read_as(strip_whitespace(expected)) + read_as(normalize_uri_file(strip_whitespace(expected))) end def plugin_should_be_installed(*names) @@ -236,7 +212,7 @@ module Spec end def lockfile_should_be(expected) - expect(bundled_app("Gemfile.lock")).to read_as(normalize_uri_file(strip_whitespace(expected))) + expect(bundled_app("Gemfile.lock")).to have_lockfile(expected) end def gemfile_should_be(expected) diff --git a/spec/support/path.rb b/spec/support/path.rb index f85fbf330f..dc4b3bb6eb 100644 --- a/spec/support/path.rb +++ b/spec/support/path.rb @@ -9,7 +9,7 @@ module Spec end def gemspec - @gemspec ||= root.join(ruby_core? ? "lib/bundler.gemspec" : "bundler.gemspec") + @gemspec ||= root.join(ruby_core? ? "lib/bundler/bundler.gemspec" : "bundler.gemspec") end def bindir @@ -29,7 +29,7 @@ module Spec end def default_bundle_path(*path) - if Bundler::VERSION.split(".").first.to_i < 2 + if Bundler::VERSION.split(".").first.to_i < 3 system_gem_path(*path) else bundled_app(*[".bundle", ENV.fetch("BUNDLER_SPEC_RUBY_ENGINE", Gem.ruby_engine), Gem::ConfigMap[:ruby_version], *path].compact) diff --git a/spec/support/platforms.rb b/spec/support/platforms.rb index 39040a61bd..caac7734bf 100644 --- a/spec/support/platforms.rb +++ b/spec/support/platforms.rb @@ -100,13 +100,12 @@ module Spec 9999 end - def lockfile_platforms(*platforms) - platforms = local_platforms if platforms.empty? - platforms.map(&:to_s).sort.join("\n ") + def lockfile_platforms + local_platforms.map(&:to_s).sort.join("\n ") end def local_platforms - if Bundler::VERSION.split(".").first.to_i > 1 + if Bundler.feature_flag.specific_platform? [local, specific_local_platform] else [local] diff --git a/spec/support/requirement_checker.rb b/spec/support/requirement_checker.rb new file mode 100644 index 0000000000..d8f5fd5e5f --- /dev/null +++ b/spec/support/requirement_checker.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +class RequirementChecker < Proc + def self.against(present) + provided = Gem::Version.new(present) + + new do |required| + !Gem::Requirement.new(required).satisfied_by?(provided) + end + end +end diff --git a/spec/support/rubygems_ext.rb b/spec/support/rubygems_ext.rb index 7a69d713cb..2f3d252865 100644 --- a/spec/support/rubygems_ext.rb +++ b/spec/support/rubygems_ext.rb @@ -1,31 +1,25 @@ # frozen_string_literal: true require "rubygems/user_interaction" -require "support/path" unless defined?(Spec::Path) +require "support/path" +require "fileutils" module Spec module Rubygems DEPS = begin - deps = { - # rack 2.x requires Ruby version >= 2.2.2. + { # artifice doesn't support rack 2.x now. - # TODO: revert to `< 2` once https://github.com/rack/rack/issues/1168 is - # addressed - "rack" => "1.6.6", - # rack-test 0.7.0 dropped 1.8.7 support - # https://github.com/rack-test/rack-test/issues/193#issuecomment-314230318 - "rack-test" => "< 0.7.0", + "rack" => "< 2.0", + "rack-test" => "~> 1.1", "artifice" => "~> 0.6.0", "compact_index" => "~> 0.11.0", "sinatra" => "~> 1.4.7", # Rake version has to be consistent for tests to pass - "rake" => "10.0.2", - # 3.0.0 breaks 1.9.2 specs - "builder" => "2.1.2", + "rake" => "12.3.2", + "builder" => "~> 3.2", + # ruby-graphviz is used by the viz tests + "ruby-graphviz" => nil, } - # ruby-graphviz is used by the viz tests - deps["ruby-graphviz"] = nil if RUBY_VERSION >= "1.9.3" - deps end def self.setup @@ -54,12 +48,11 @@ module Spec def self.install_gems(gems) reqs, no_reqs = gems.partition {|_, req| !req.nil? && !req.split(" ").empty? } - # TODO: remove when we drop ruby 1.8.7-2.2.2 support - reqs = reqs.sort_by {|name, _| name == "rack" ? 0 : 1 }.sort_by {|name, _| name =~ /rack/ ? 0 : 1 } no_reqs.map!(&:first) reqs.map! {|name, req| "'#{name}:#{req}'" } deps = reqs.concat(no_reqs).join(" ") - cmd = "#{Gem.ruby} -S gem install #{deps} --no-document --conservative" + gem = Spec::Path.ruby_core? ? ENV["BUNDLE_GEM"] : "#{Gem.ruby} -S gem" + cmd = "#{gem} install #{deps} --no-document --conservative" puts cmd system(cmd) || raise("Installing gems #{deps} for the tests to use failed!") end diff --git a/spec/update/gemfile_spec.rb b/spec/update/gemfile_spec.rb index f59f3a2d32..6c47c254cd 100644 --- a/spec/update/gemfile_spec.rb +++ b/spec/update/gemfile_spec.rb @@ -9,7 +9,7 @@ RSpec.describe "bundle update" do G bundle! :install, :gemfile => bundled_app("NotGemfile") - bundle! :update, :gemfile => bundled_app("NotGemfile"), :all => bundle_update_requires_all? + bundle! :update, :gemfile => bundled_app("NotGemfile"), :all => true # Specify BUNDLE_GEMFILE for `the_bundle` # to retrieve the proper Gemfile @@ -25,12 +25,12 @@ RSpec.describe "bundle update" do gem 'rack' G - bundle "config --local gemfile #{bundled_app("NotGemfile")}" + bundle "config set --local gemfile #{bundled_app("NotGemfile")}" bundle! :install end it "uses the gemfile to update" do - bundle! "update", :all => bundle_update_requires_all? + bundle! "update", :all => true bundle "list" expect(out).to include("rack (1.0.0)") @@ -39,28 +39,11 @@ RSpec.describe "bundle update" do it "uses the gemfile while in a subdirectory" do bundled_app("subdir").mkpath Dir.chdir(bundled_app("subdir")) do - bundle! "update", :all => bundle_update_requires_all? + bundle! "update", :all => true bundle "list" expect(out).to include("rack (1.0.0)") end end end - - context "with prefer_gems_rb set" do - before { bundle! "config prefer_gems_rb true" } - - it "prefers gems.rb to Gemfile" do - create_file("gems.rb", "gem 'bundler'") - create_file("Gemfile", "raise 'wrong Gemfile!'") - - bundle! :install - bundle! :update, :all => bundle_update_requires_all? - - expect(bundled_app("gems.rb")).to be_file - expect(bundled_app("Gemfile.lock")).not_to be_file - - expect(the_bundle).to include_gem "bundler #{Bundler::VERSION}" - end - end end diff --git a/spec/update/gems/post_install_spec.rb b/spec/update/gems/post_install_spec.rb index 2fb3547806..f6b7f39d0b 100644 --- a/spec/update/gems/post_install_spec.rb +++ b/spec/update/gems/post_install_spec.rb @@ -10,7 +10,7 @@ RSpec.describe "bundle update" do gem 'thin' G - bundle! "config #{config}" if config + bundle! "config set #{config}" if config bundle! :install end @@ -52,7 +52,7 @@ RSpec.describe "bundle update" do gem 'thin' G - bundle! :update, :all => bundle_update_requires_all? + bundle! :update, :all => true end it_behaves_like "a post-install message outputter" @@ -67,7 +67,7 @@ RSpec.describe "bundle update" do gem 'thin' G - bundle! :update, :all => bundle_update_requires_all? + bundle! :update, :all => true end it_behaves_like "a post-install message outputter" diff --git a/spec/update/git_spec.rb b/spec/update/git_spec.rb index b4cbb79434..bc230a3575 100644 --- a/spec/update/git_spec.rb +++ b/spec/update/git_spec.rb @@ -16,7 +16,7 @@ RSpec.describe "bundle update" do s.write "lib/foo.rb", "FOO = '1.1'" end - bundle "update", :all => bundle_update_requires_all? + bundle "update", :all => true expect(the_bundle).to include_gems "foo 1.1" end @@ -88,7 +88,7 @@ RSpec.describe "bundle update" do gem "foo", "1.0", :git => "#{lib_path("foo_two")}" G - expect(err).to lack_errors + expect(err).to be_empty expect(out).to include("Fetching #{lib_path}/foo_two") expect(out).to include("Bundle complete!") end @@ -111,7 +111,7 @@ RSpec.describe "bundle update" do gem 'foo', :git => "#{@remote.path}", :tag => "fubar" G - bundle "update", :all => bundle_update_requires_all? + bundle "update", :all => true expect(exitstatus).to eq(0) if exitstatus end @@ -191,8 +191,8 @@ RSpec.describe "bundle update" do lib_path("foo-1.0").join(".git").rmtree - bundle :update, :all => bundle_update_requires_all? - expect(last_command.bundler_err).to include(lib_path("foo-1.0").to_s). + bundle :update, :all => true + expect(err).to include(lib_path("foo-1.0").to_s). and match(/Git error: command `git fetch.+has failed/) end @@ -208,7 +208,7 @@ RSpec.describe "bundle update" do gem "rack", :git => "#{lib_path("rack-0.8")}", :branch => "master" G - bundle %(config local.rack #{lib_path("local-rack")}) + bundle %(config set local.rack #{lib_path("local-rack")}) bundle "update rack" expect(out).to include("Bundle updated!") end @@ -233,7 +233,7 @@ RSpec.describe "bundle update" do rails! G - bundle "update", :all => bundle_update_requires_all? + bundle "update", :all => true expect(out).to include("Using rails 3.0 (was 2.3.2) from #{lib_path("rails")} (at master@#{revision_for(lib_path("rails"))[0..6]})") end end @@ -299,7 +299,7 @@ RSpec.describe "bundle update" do G end - it "the --source flag updates version of gems that were originally pulled in by the source", :bundler => "< 2" do + it "the --source flag updates version of gems that were originally pulled in by the source", :bundler => "< 3" do spec_lines = lib_path("bar/foo.gemspec").read.split("\n") spec_lines[5] = "s.version = '2.0'" @@ -335,7 +335,7 @@ RSpec.describe "bundle update" do G end - it "the --source flag updates version of gems that were originally pulled in by the source", :bundler => "2" do + it "the --source flag updates version of gems that were originally pulled in by the source", :bundler => "3" do spec_lines = lib_path("bar/foo.gemspec").read.split("\n") spec_lines[5] = "s.version = '2.0'" @@ -348,17 +348,17 @@ RSpec.describe "bundle update" do bundle "update --source bar" lockfile_should_be <<-G - GEM - remote: file://localhost#{gem_repo2}/ - specs: - rack (1.0.0) - GIT remote: #{@git.path} revision: #{ref} specs: foo (2.0) + GEM + remote: file://localhost#{gem_repo2}/ + specs: + rack (1.0.0) + PLATFORMS #{lockfile_platforms} diff --git a/spec/update/redownload_spec.rb b/spec/update/redownload_spec.rb index 5a739c51b3..39edac0902 100644 --- a/spec/update/redownload_spec.rb +++ b/spec/update/redownload_spec.rb @@ -11,34 +11,24 @@ RSpec.describe "bundle update" do describe "with --force" do it "shows a deprecation when single flag passed", :bundler => 2 do bundle! "update rack --force" - expect(out).to include "[DEPRECATED FOR 2.0] The `--force` option has been renamed to `--redownload`" + expect(err).to include "[DEPRECATED] The `--force` option has been renamed to `--redownload`" end it "shows a deprecation when multiple flags passed", :bundler => 2 do bundle! "update rack --no-color --force" - expect(out).to include "[DEPRECATED FOR 2.0] The `--force` option has been renamed to `--redownload`" - end - - it "does not show a deprecation when single flag passed", :bundler => "< 2" do - bundle! "update rack --force" - expect(out).not_to include "[DEPRECATED FOR 2.0] The `--force` option has been renamed to `--redownload`" - end - - it "does not show a deprecation when multiple flags passed", :bundler => "< 2" do - bundle! "update rack --no-color --force" - expect(out).not_to include "[DEPRECATED FOR 2.0] The `--force` option has been renamed to `--redownload`" + expect(err).to include "[DEPRECATED] The `--force` option has been renamed to `--redownload`" end end describe "with --redownload" do it "does not show a deprecation when single flag passed" do bundle! "update rack --redownload" - expect(out).not_to include "[DEPRECATED FOR 2.0] The `--force` option has been renamed to `--redownload`" + expect(err).not_to include "[DEPRECATED] The `--force` option has been renamed to `--redownload`" end it "does not show a deprecation when single multiple flags passed" do bundle! "update rack --no-color --redownload" - expect(out).not_to include "[DEPRECATED FOR 2.0] The `--force` option has been renamed to `--redownload`" + expect(err).not_to include "[DEPRECATED] The `--force` option has been renamed to `--redownload`" end end end diff --git a/task/build_metadata.rake b/task/build_metadata.rake index f899562b46..55ffaf4ba7 100644 --- a/task/build_metadata.rake +++ b/task/build_metadata.rake @@ -1,5 +1,9 @@ # frozen_string_literal: true +def bundler_spec + Gem::Specification.load("bundler.gemspec") +end + def write_build_metadata(build_metadata) build_metadata_file = "lib/bundler/build_metadata.rb" diff --git a/task/release.rake b/task/release.rake index 3a48c1d255..29fdc1dcb3 100644 --- a/task/release.rake +++ b/task/release.rake @@ -4,9 +4,33 @@ require "bundler/gem_tasks" task :build => ["build_metadata", "man:build", "generate_files"] do Rake::Task["build_metadata:clean"].tap(&:reenable).real_invoke end -task :release => ["man:require", "man:build", "release:verify_github", "build_metadata"] +task :release => ["man:build", "release:verify_files", "release:verify_github", "build_metadata"] namespace :release do + task :verify_files do + git_list = IO.popen("git ls-files -z", &:read).split("\x0").select {|f| f.match(%r{^(lib|exe)/}) } + git_list += %w[CHANGELOG.md LICENSE.md README.md bundler.gemspec] + git_list += Dir.glob("man/**/*") + + gem_list = Gem::Specification.load("bundler.gemspec").files + + extra_files = gem_list.to_set - git_list.to_set + + error_msg = <<~MSG + + You intend to ship some files with the gem that are not generated man pages + nor source control files. Please review the extra list of files and try + again: + + #{extra_files.to_a.join("\n ")} + + MSG + + raise error_msg if extra_files.any? + + puts "The file list is correct for a release." + end + def gh_api_post(opts) gem "netrc", "~> 0.11.0" require "netrc" |