Project

General

Profile

Actions

Feature #29946

closed

Update i18n gem (~> 1.6.0)

Added by Go MAEDA over 5 years ago. Updated over 4 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Gems support
Target version:
Start date:
Due date:
% Done:

0%

Estimated time:
Resolution:
Fixed

Description

The latest version of i18n gem is 1.1.1 but Redmine still uses 0.7.0 that was released 4 years ago.

The reason why Redmine uses the old version is a test failure (see r16324). We should fix the error and should follow the recent version.


Files


Related issues

Related to Redmine - Defect #33334: bump i18n for advisory: CVE-2014-10077 Closed

Actions
Blocked by Redmine - Feature #30356: Drop Ruby 2.2 supportClosedGo MAEDA

Actions
Blocked by Redmine - Patch #31384: Remove custom lazy loading of i18n filesClosedJean-Philippe Lang

Actions
Actions #1

Updated by Marius BĂLTEANU over 5 years ago

I can take a look if you want.

Actions #2

Updated by Go MAEDA over 5 years ago

Marius BALTEANU wrote:

I can take a look if you want.

Thanks. I have not started the work yet, so I am glad if you work on it. Although the priority of this issue is low, we have to upgrade i18n someday.

Actions #3

Updated by Marius BĂLTEANU over 5 years ago

The test that fails on my local environment is the below one and not the one from r16324.

root@45ec3a6558b0:/work# ruby test/unit/lib/redmine/i18n_test.rb 
DEPRECATION WARNING: `secrets.secret_token` is deprecated in favor of `secret_key_base` and will be removed in Rails 6.0. (called from <top (required)> at /work/config/environment.rb:14)
Run options: --seed 36235

# Running:

.........F
Failure:
Redmine::I18nTest#test_fallback [test/unit/lib/redmine/i18n_test.rb:234]:
--- expected
+++ actual
@@ -1 +1 @@
-"Untranslated string" 
+"translation missing: fr.untranslated" 
Actions #4

Updated by Marius BĂLTEANU over 5 years ago

There are multiple changes between 0.7.0 version and 1.1.1.

One reason of the failing test is https://github.com/svenfuchs/i18n/pull/415 which doesn't consider anymore the default locale as fallback locale. Now you need to explicitly define in the config the fallback locales. For example, if we add the line config.i18n.fallbacks = [:en] to config/application.rb, the above test will pass, but I don't think that should be the solution because from what I've observed until now, we add the en version of the locale to all locale files (which is healthier from point of view).

Attached the patch that updates the gem version and fixes the failing test. The safest way is to schedule this update for 4.1.0 in order to have time to catch missing translation keys (if exists).

Actions #5

Updated by Marius BĂLTEANU over 5 years ago

Marius BALTEANU wrote:

[...] but I don't think that should be the solution because from what I've observed until now, we add the en version of the locale to all locale files (which is healthier from point of view).

It seems that are some missing keys.

Actions #6

Updated by Marius BĂLTEANU about 5 years ago

  • Assignee set to Marius BĂLTEANU
  • Target version set to Candidate for next major release

i18n now is at v1.5.3 which supports only Ruby > 2.2. I'll work on this for 4.1.0

Actions #7

Updated by Marius BĂLTEANU about 5 years ago

I've attached a new patch with a different fix, but I would like a review on the proposed changes even if all the existing tests pass

The failing test from r16324 was generated by a change to the exists? method which returns true when a fallback exists (please see https://github.com/ruby-i18n/i18n/pull/326).

In my note 3, I wasn't able to reproduce the failing test because the fallback was not enabled.

Actions #8

Updated by Marius BĂLTEANU about 5 years ago

One more thing, in the future, we can change back to exists? method if the https://github.com/ruby-i18n/i18n/issues/365 will be implemented.

Actions #9

Updated by Go MAEDA about 5 years ago

Actions #10

Updated by Go MAEDA about 5 years ago

  • Subject changed from Update i18n gem to Update i18n gem (~> 1.5.3)
  • Status changed from New to Closed
  • Assignee set to Go MAEDA
  • Resolution set to Fixed

Committed the patch. Thank you for writing the patch.

Actions #11

Updated by Go MAEDA almost 5 years ago

  • Status changed from Closed to Reopened

i18n 1.6.0 has been released on 2019-03-03.
https://rubygems.org/gems/i18n/versions/1.6.0

I confirmed that it passes all tests. We can update i18n to ~> 1.6.0.

Actions #12

Updated by Go MAEDA almost 5 years ago

  • Subject changed from Update i18n gem (~> 1.5.3) to Update i18n gem (~> 1.6.0)
  • Status changed from Reopened to Closed

Updated i18n to 1.6 in r17921.

Actions #13

Updated by Go MAEDA almost 5 years ago

  • Related to Patch #31384: Remove custom lazy loading of i18n files added
Actions #14

Updated by Go MAEDA almost 5 years ago

  • Related to deleted (Patch #31384: Remove custom lazy loading of i18n files)
Actions #15

Updated by Go MAEDA almost 5 years ago

  • Blocked by Patch #31384: Remove custom lazy loading of i18n files added
Actions #16

Updated by Go MAEDA almost 5 years ago

  • Status changed from Closed to Reopened

#31384 has been reported for this change.

Actions #17

Updated by Jean-Philippe Lang over 4 years ago

  • Status changed from Reopened to Closed
Actions #18

Updated by Go MAEDA almost 4 years ago

  • Related to Defect #33334: bump i18n for advisory: CVE-2014-10077 added
Actions

Also available in: Atom PDF