appveyor / ci

AppVeyor community support repository
https://www.appveyor.com
344 stars 65 forks source link

Bundler for Ruby 2.7 and 2.6 shouldn't work as expected on Visual Studio 2019 image #3928

Open cosmo0920 opened 1 month ago

cosmo0920 commented 1 month ago

Since Bundler 2.5, Ruby 2.6 and 2.7 support was dropped. However, Visual Studio 2019 image installs bundler 2.5 series forcibly. Bundler 2.5 series only supports with Ruby 3.0 or above: https://rubygems.org/gems/bundler

This causes the following error when using Ruby 2.6 and 2.7:

--- ERROR REPORT TEMPLATE -------------------------------------------------------

SyntaxError: C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/compact_index_client/cache.rb:46: syntax error, unexpected '=', expecting ';' or '\n' def names_path = directory.join("names") ^ C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/compact_index_client/cache.rb:47: syntax error, unexpected '=', expecting ';' or '\n' def names_etag_path = directory.join("names.etag") ^ C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/compact_index_client/cache.rb:48: syntax error, unexpected '=', expecting ';' or '\n' def versions_path = directory.join("versions") ^ C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/compact_index_client/cache.rb:49: syntax error, unexpected '=', expecting ';' or '\n' def versions_etag_path = directory.join("versions.eta... ^ C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/compact_index_client.rb:52:in require_relative' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/compact_index_client.rb:52:in' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/compact_index_client.rb:30:in <module:Bundler>' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/compact_index_client.rb:6:in<top (required)>' C:/Ruby27-x64/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in require' C:/Ruby27-x64/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:inrequire' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/fetcher/compact_index.rb:14:in rescue in block in compact_index_request' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/fetcher/compact_index.rb:13:inblock in compact_index_request' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/fetcher.rb:232:in block in fetchers' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/fetcher.rb:232:indrop_while' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/fetcher.rb:232:in fetchers' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/fetcher.rb:205:inapi_fetcher?' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/source/rubygems.rb:403:in select' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/source/rubygems.rb:403:inapi_fetchers' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/source/rubygems.rb:408:in block in remote_specs' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/index.rb:9:inbuild' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/source/rubygems.rb:407:in remote_specs' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/source/rubygems.rb:142:inspecs' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/resolver.rb:41:in block in setup_solver' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/resolver.rb:246:inall_versions_for' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/resolver.rb:54:in block in setup_solver' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/resolver.rb:342:infiltered_versions_for' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/resolver.rb:58:in block in setup_solver' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/resolver.rb:419:inselect_sorted_versions' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/resolver.rb:398:in block in prepare_dependencies' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/resolver.rb:392:ineach' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/resolver.rb:392:in map' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/resolver.rb:392:inprepare_dependencies' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/resolver.rb:63:in setup_solver' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/resolver.rb:28:instart' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/definition.rb:626:in start_resolution' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/definition.rb:305:inresolve' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/definition.rb:179:in resolve_remotely!' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/installer.rb:258:inresolve_if_needed' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/installer.rb:82:in block in run' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/process_lock.rb:12:inblock in lock' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/process_lock.rb:9:in open' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/process_lock.rb:9:inlock' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/installer.rb:71:in run' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/installer.rb:23:ininstall' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/cli/install.rb:63:in run' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/cli.rb:247:inblock in install' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/settings.rb:158:in temporary' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/cli.rb:246:ininstall' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/vendor/thor/lib/thor/command.rb:28:in run' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:ininvoke_command' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/vendor/thor/lib/thor.rb:527:in dispatch' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/cli.rb:35:indispatch' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/vendor/thor/lib/thor/base.rb:584:in start' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/cli.rb:29:instart' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/exe/bundle:28:in block in <top (required)>' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/friendly_errors.rb:117:inwith_friendly_errors' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/exe/bundle:20:in <top (required)>' C:/Ruby27-x64/bin/bundle:23:inload' C:/Ruby27-x64/bin/bundle:23:in <main>' SyntaxError: C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/compact_index_client/cache.rb:46: syntax error, unexpected '=', expecting ';' or '\n' def names_path = directory.join("names") ^ C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/compact_index_client/cache.rb:47: syntax error, unexpected '=', expecting ';' or '\n' def names_etag_path = directory.join("names.etag") ^ C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/compact_index_client/cache.rb:48: syntax error, unexpected '=', expecting ';' or '\n' def versions_path = directory.join("versions") ^ C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/compact_index_client/cache.rb:49: syntax error, unexpected '=', expecting ';' or '\n' def versions_etag_path = directory.join("versions.eta... ^ C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/compact_index_client.rb:52:inrequire_relative' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/compact_index_client.rb:52:in <class:CompactIndexClient>' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/compact_index_client.rb:30:in' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/compact_index_client.rb:6:in <top (required)>' C:/Ruby27-x64/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:inrequire' C:/Ruby27-x64/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in require' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/fetcher/compact_index.rb:56:inrescue in available?' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/fetcher/compact_index.rb:49:in available?' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/fetcher/compact_index.rb:13:incall' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/fetcher/compact_index.rb:13:in block in compact_index_request' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/fetcher.rb:232:inblock in fetchers' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/fetcher.rb:232:in drop_while' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/fetcher.rb:232:infetchers' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/fetcher.rb:205:in api_fetcher?' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/source/rubygems.rb:403:inselect' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/source/rubygems.rb:403:in api_fetchers' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/source/rubygems.rb:408:inblock in remote_specs' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/index.rb:9:in build' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/source/rubygems.rb:407:inremote_specs' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/source/rubygems.rb:142:in specs' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/resolver.rb:41:inblock in setup_solver' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/resolver.rb:246:in all_versions_for' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/resolver.rb:54:inblock in setup_solver' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/resolver.rb:342:in filtered_versions_for' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/resolver.rb:58:inblock in setup_solver' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/resolver.rb:419:in select_sorted_versions' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/resolver.rb:398:inblock in prepare_dependencies' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/resolver.rb:392:in each' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/resolver.rb:392:inmap' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/resolver.rb:392:in prepare_dependencies' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/resolver.rb:63:insetup_solver' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/resolver.rb:28:in start' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/definition.rb:626:instart_resolution' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/definition.rb:305:in resolve' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/definition.rb:179:inresolve_remotely!' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/installer.rb:258:in resolve_if_needed' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/installer.rb:82:inblock in run' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/process_lock.rb:12:in block in lock' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/process_lock.rb:9:inopen' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/process_lock.rb:9:in lock' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/installer.rb:71:inrun' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/installer.rb:23:in install' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/cli/install.rb:63:inrun' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/cli.rb:247:in block in install' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/settings.rb:158:intemporary' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/cli.rb:246:in install' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/vendor/thor/lib/thor/command.rb:28:inrun' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in invoke_command' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/vendor/thor/lib/thor.rb:527:indispatch' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/cli.rb:35:in dispatch' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/vendor/thor/lib/thor/base.rb:584:instart' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/cli.rb:29:in start' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/exe/bundle:28:inblock in <top (required)>' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/friendly_errors.rb:117:in with_friendly_errors' C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/exe/bundle:20:in<top (required)>' C:/Ruby27-x64/bin/bundle:23:in load' C:/Ruby27-x64/bin/bundle:23:in

'

## Environment

Bundler 2.5.13 Platforms ruby, x64-mingw32 Ruby 2.7.8p225 (2023-03-30 revision 1f4d4558484b370999954f3ede7e3aa3a3a01ef3) [x64-mingw32] Full Path C:/Ruby27-x64/bin/ruby.exe Config Dir C:/ProgramData RubyGems 3.1.6 Gem Home C:/Ruby27-x64/lib/ruby/gems/2.7.0 Gem Path C:/Users/appveyor/.gem/ruby/2.7.0;C:/Ruby27-x64/lib/ruby/gems/2.7.0 User Home C:/Users/appveyor User Path C:/Users/appveyor/.gem/ruby/2.7.0 Bin Dir C:/Ruby27-x64/bin OpenSSL
Compiled OpenSSL 1.1.1t 7 Feb 2023 Loaded OpenSSL 1.1.1t 7 Feb 2023 Cert File C:/Ruby27-x64/ssl/cert.pem Cert Dir C:/Ruby27-x64/ssl/certs Tools
Git 2.45.2.windows.1 RVM not installed rbenv not installed chruby not installed

## Bundler Build Metadata

Built At 2024-06-14 Git SHA 5525a3d9b0 Released Version true

## Gemfile
### Gemfile
```ruby
source "https://rubygems.org"
git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
# Specify your gem's dependencies in winevt_c.gemspec
gemspec

Gemfile.lock

<No C:/projects/winevt-c-6145k/Gemfile.lock found>

Gemspecs

winevt_c.gemspec

lib = File.expand_path("../lib", __FILE__)
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
require "winevt/version"
Gem::Specification.new do |spec|
  spec.name          = "winevt_c"
  spec.version       = Winevt::VERSION
  spec.authors       = ["Hiroshi Hatake"]
  spec.email         = ["cosmo0920.wp@gmail.com"]
  spec.summary       = %q{Windows Event Log API bindings from winevt.h.}
  spec.description   = spec.summary
  spec.homepage      = "https://github.com/fluent-plugins-nursery/winevt_c"
  # Specify which files should be added to the gem when it is released.
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
  spec.files         = Dir.chdir(File.expand_path('..', __FILE__)) do
    `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
  end
  spec.bindir        = "exe"
  spec.executables   = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
  spec.require_paths = ["lib"]
  spec.extensions = ["ext/winevt/extconf.rb"]
  spec.license = "Apache-2.0"
  spec.required_ruby_version = Gem::Requirement.new(">= 2.4".freeze)
  spec.add_development_dependency "bundler", [">= 1.16", "< 3"]
  spec.add_development_dependency "rake", "~> 13.0"
  spec.add_development_dependency "rake-compiler", "~> 1.0"
  spec.add_development_dependency "rake-compiler-dock", "~> 1.1.0"
  spec.add_development_dependency "test-unit", "~> 3.2"
  spec.add_development_dependency "yard", "~> 0.9"
end

--- TEMPLATE END ---------------------------------------------------------------- Unfortunately, an unexpected error occurred, and Bundler cannot continue.

OwenMcDonnell commented 1 month ago

Does the same error occur using Ruby 2.4 or 2.5?

cosmo0920 commented 1 month ago

No, it's only occurred for Ruby 2.6 and 2.7.

OwenMcDonnell commented 1 month ago

Can you try running this script at the beginning of the install stage of your build. This should reset the Ruby 2.6 and 2.7 installs to default bundler.

cosmo0920 commented 1 month ago

Thanks for your help. We succeeded to pass task in AppVeyor: https://ci.appveyor.com/project/cosmo0920/winevt-c-6145k/builds/50288705