Patch #32788

Specify supported Ruby version in Gemfile and doc/INSTALL

Added by Go MAEDA 3 months ago. Updated 2 months ago.

Status:ClosedStart date:
Priority:NormalDue date:
Assignee:Go MAEDA% Done:

0%

Category:Ruby support
Target version:4.0.7

Description

Currently, source:tags/4.1.0/doc/INSTALL says that Redmine 4.1.0 supports Ruby 2.3 or later. However, Redmine 4.1.0 does not yet support Ruby 2.7 (#31500).

The document should list all supported Ruby versions to prevent users from using unsupported the latest Ruby version.

list-all-supported-ruby-versions.patch Magnifier (246 Bytes) Go MAEDA, 2020-01-12 06:27

specify-ruby-version-in-gemfile.patch Magnifier (469 Bytes) Go MAEDA, 2020-01-13 01:33


Related issues

Related to Redmine - Patch #32787: Redmine 4.0 no longer supports Ruby 2.2 Closed
Related to Redmine - Patch #32841: Drop support for Bundler prior to 1.12.0 Closed

Associated revisions

Revision 19425
Added by Go MAEDA 3 months ago

Specify supported Ruby version in Gemfile and doc/INSTALL (#32788).

Revision 19426
Added by Go MAEDA 3 months ago

Merged r19425 from trunk to 4.1-stable (#32788).

Revision 19427
Added by Go MAEDA 3 months ago

Merged r19425 from trunk to 4.0-stable (#32788).

Revision 19461
Added by Go MAEDA 2 months ago

`ruby` directive is not supported in Bundler prior to 1.12.0 (#32788).

Revision 19462
Added by Go MAEDA 2 months ago

Merged r19461 from trunk to 4.1-stable (#32788).

Revision 19463
Added by Go MAEDA 2 months ago

Merged r19461 from trunk to 4.0-stable (#32788).

History

#1 Updated by Go MAEDA 3 months ago

  • Related to Patch #32787: Redmine 4.0 no longer supports Ruby 2.2 added

#2 Updated by Jean-Philippe Lang 3 months ago

A probably better option would be to set this as a dependency in the Gemfile: https://bundler.io/v1.12/gemfile_ruby.html
That would ensure that a compatible ruby version is used.
What do you think?

#3 Updated by Marius BALTEANU 3 months ago

Jean-Philippe Lang wrote:

A probably better option would be to set this as a dependency in the Gemfile: https://bundler.io/v1.12/gemfile_ruby.html
That would ensure that a compatible ruby version is used.
What do you think?

I’m in favor of this option.

#4 Updated by Go MAEDA 3 months ago

  • File specify-ruby-version-in-gemfile.patchMagnifier added
  • Subject changed from List all supported Ruby versions in doc/INSTALL to Specify supported Ruby version in Gemfile
  • Category changed from Documentation to Ruby support

Jean-Philippe Lang wrote:

A probably better option would be to set this as a dependency in the Gemfile: https://bundler.io/v1.12/gemfile_ruby.html
That would ensure that a compatible ruby version is used.
What do you think?

It is a more sophisticated way than simply describing in the document. I didn't know the feature of Bundler. Thank you for the advice.

The attached is a new patch that updates both Gemfile and doc/INSTALL.

#5 Updated by Go MAEDA 3 months ago

  • Subject changed from Specify supported Ruby version in Gemfile to Specify supported Ruby version in Gemfile and doc/INSTALL
  • Status changed from New to Closed
  • Assignee set to Go MAEDA

Committed the patch.

#6 Updated by Go MAEDA 2 months ago

  • Related to Patch #32841: Drop support for Bundler prior to 1.12.0 added

#7 Updated by Go MAEDA 2 months ago

  • Status changed from Closed to Reopened

The ruby directive in Gemfile is supported by bundler 1.12.0 or later. So, r19425 causes the following error when a user runs bundle install if the version of bundler is prior to 1.12.0.

$ bundle -v
Bundler version 1.11.2
$ bundle install

[!] There was an error parsing `Gemfile`: no implicit conversion of Symbol into Integer. Bundler cannot continue.

 #  from /Users/maeda/redmines/trunk/Gemfile:3
 #  -------------------------------------------
 #
 >  ruby '>= 2.3.0', '< 2.7.0'
 #  gem "bundler", ">= 1.5.0" 
 #  -------------------------------------------

You can avoid the error by skipping the ruby directive with the following patch. The version of Ruby is not checked if you run an older version of Bundler that does not support ruby directive.

diff --git a/Gemfile b/Gemfile
index 78db5caf8..bcc58ee35 100644
--- a/Gemfile
+++ b/Gemfile
@@ -1,6 +1,6 @@
 source 'https://rubygems.org'

-ruby '>= 2.3.0', '< 2.7.0'
+ruby '>= 2.3.0', '< 2.7.0' if Bundler::VERSION >= '1.12.0'
 gem "bundler", ">= 1.5.0" 

 gem "rails", "5.2.4.1" 

#8 Updated by Go MAEDA 2 months ago

  • Status changed from Reopened to Closed

Committed the fix described in #32788#note-7.

Also available in: Atom PDF