Bundler for Ruby 2.7 and 2.6 shouldn't work as expected on Visual Studio 2019 image
cosmo0920 opened this issue · 4 comments
cosmo0920 commented
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 `<class:CompactIndexClient>'
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:in `require'
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: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:in `block 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:in `fetchers'
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:in `select'
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:in `block 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:in `remote_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:in `block 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:in `block 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:in `block 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:in `block 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:in `map'
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:in `setup_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:in `start_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:in `resolve_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:in `block 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:in `open'
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:in `run'
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:in `run'
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:in `temporary'
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: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: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:in `dispatch'
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:in `start'
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: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: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 `<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: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 `<class:CompactIndexClient>'
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:in `require'
C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/bundler-2.5.13/lib/bundler/fetcher/compact_index.rb:56:in `rescue 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:in `call'
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:in `block 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:in `fetchers'
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:in `select'
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:in `block 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:in `remote_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:in `block 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:in `block 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:in `block 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:in `block 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:in `map'
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:in `setup_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:in `start_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:in `resolve_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:in `block 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:in `open'
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:in `run'
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:in `run'
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:in `temporary'
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: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: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:in `dispatch'
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:in `start'
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: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: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 `<main>'
```
## 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
```ruby
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
Does the same error occur using Ruby 2.4 or 2.5?
cosmo0920 commented
No, it's only occurred for Ruby 2.6 and 2.7.
OwenMcDonnell commented
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
Thanks for your help. We succeeded to pass task in AppVeyor: https://ci.appveyor.com/project/cosmo0920/winevt-c-6145k/builds/50288705