Story #14873

[API] Update to Rails 5

Added by Tom Morris 29 days ago. Updated about 15 hours ago.

Status:
In Progress
Priority:
Normal
Assigned To:
Category:
API
Target version:
Start date:
03/20/2019
Due date:
% Done:

100%

Estimated time:
(Total: 0.00 h)
Story points:
-
Release relationship:
Auto

Description

When Rails 6 is released in May 2019, Ralis 4.x will become unsupported, so we need to be supporting Rails 5 and associated dependencies in a stable release before then.

https://weblog.rubyonrails.org/2018/12/20/timeline-for-the-release-of-Rails-6-0/


Subtasks

Task #15004: Review 14873-google-api-client-updateResolvedPeter Amstutz


Related issues

Related to Arvados - Story #14824: postgresql 10.x compatibility New

Blocks Arvados - Story #14946: Update to Ruby 2.4 - 2.3 is going EOLIn Progress

Blocks Arvados - Story #13484: [API] Support multiple load-balanced API server nodesNew2019-03-18

Associated revisions

Revision a07891c7
Added by Lucas Di Pentima about 14 hours ago

Merge branch '14873-google-api-client-update'
Refs #14873

Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <>

History

#1 Updated by Eric Biagiotti 29 days ago

  • Related to Story #14824: postgresql 10.x compatibility added

#2 Updated by Tom Morris 28 days ago

  • Description updated (diff)
  • Release set to 15

#3 Updated by Tom Morris 28 days ago

  • Description updated (diff)

#4 Updated by Lucas Di Pentima 3 days ago

  • Blocks Story #14946: Update to Ruby 2.4 - 2.3 is going EOL added

#5 Updated by Peter Amstutz 3 days ago

  • Blocks Story #13484: [API] Support multiple load-balanced API server nodes added

#7 Updated by Lucas Di Pentima 3 days ago

  • Subject changed from Update to Rails 5 to [API] Update to Rails 5
  • Category set to API
  • Status changed from New to In Progress
  • Assigned To set to Lucas Di Pentima
  • Target version changed from To Be Groomed to 2019-03-27 Sprint

#8 Updated by Lucas Di Pentima 3 days ago

After removing API Server's dependency on protected_attributes and activerecord-deprecated_finders gems, I'm having issues with cure-google-api-client and arvados-cli gems:

[...]
    arvados-cli was resolved to 1.3.1.20190211211047, which depends on
      activesupport (>= 3.2.13, < 5)

    arvados (>= 1.3.1.20190301212059) was resolved to 1.3.1.20190301212059, which depends on
      cure-google-api-client (>= 0.7, < 0.8.9) was resolved to 0.8.7.1, which depends on
        activesupport (>= 3.2, < 5.0)
[...]

#9 Updated by Peter Amstutz 3 days ago

Lucas Di Pentima wrote:

After removing API Server's dependency on protected_attributes and activerecord-deprecated_finders gems, I'm having issues with cure-google-api-client and arvados-cli gems:

[...]

I suspect it is just out of caution since a major version number increase could be incompatible.

#10 Updated by Lucas Di Pentima 2 days ago

Forked Ward's google-api-ruby-client repo to github.com/curoverse and made a new branch to adjust the activesupport dependency upper limit to '< 5.1': https://github.com/curoverse/google-api-ruby-client/tree/14873-activesupport5-dependency

Note that I branched out from fix-for-ruby-2.3.7, the branch that seems to have been used to publish the cure-google-api-client-0.8.7.1 gem.

#11 Updated by Lucas Di Pentima 2 days ago

I've manually built & installed the new gem on a ruby 2.5.5 rvm env, and also installed arvados-cli without the activesupport '< 5' dependency. As a result, activesupport 5.0.7.2 was installed and manual tests on the arv command were successful.

#12 Updated by Lucas Di Pentima 2 days ago

Updates at 0e063dfd9 - branch 14873-arvadoscli-gem-activesupport-dep

Bumped arvados-cli upper limit dependency on activesupport from '< 5' to '< 5.1' in order to be able to upgrade to rails 5.

I think we should publish cure-google-api-ruby-client version 0.8.7.2 from #note-10 to be able to run the test suite and do the api server upgrade.

#13 Updated by Peter Amstutz 2 days ago

Lucas Di Pentima wrote:

Updates at 0e063dfd9 - branch 14873-arvadoscli-gem-activesupport-dep

Bumped arvados-cli upper limit dependency on activesupport from '< 5' to '< 5.1' in order to be able to upgrade to rails 5.

I think we should publish cure-google-api-ruby-client version 0.8.7.2 from #note-10 to be able to run the test suite and do the api server upgrade.

If we publish it as 0.8.7.2 will that cause all the dependencies to start using it? Is is otherwise backwards compatible?

#14 Updated by Lucas Di Pentima 2 days ago

Both arvados & arvados-cli would ask for it because their dependency line is:

s.add_dependency('cure-google-api-client', '>= 0.7', '< 0.8.9')

OTOH, current arvados-cli also asks for activesupport '< 5' so I think that would avoid upgrading that gem, the rest is the same.

#15 Updated by Peter Amstutz 2 days ago

Lucas Di Pentima wrote:

Both arvados & arvados-cli would ask for it because their dependency line is:

[...]

OTOH, current arvados-cli also asks for activesupport '< 5' so I think that would avoid upgrading that gem, the rest is the same.

I see, so long as Ruby's dependency solver respects activesupport '< 5' then it will do the same thing even with activesupport '< 5.1' . Sounds good.

#16 Updated by Lucas Di Pentima about 16 hours ago

Branch 14873-google-api-client-update (8c0178f2ff01a284ac4bebbc664b9fb7f64cdc38)
Test run: https://ci.curoverse.com/job/developer-run-tests/1139/

Updates arvados and arvados-cli gemspecs to use arvados-google-api-client gem that requests activesupport <5.1.

I also locally ran services/api test suite with these new gem versions by running bundle package to generate vendor/cache directory, then copying the new gem versions to it and then running bundle update arvados[-cli] --local to update the Gemfile.lock, also making sure that those gems were installed on the random gemset created by the test suite. The result: all tests OK.

#17 Updated by Peter Amstutz about 15 hours ago

Lucas Di Pentima wrote:

Branch 14873-google-api-client-update (8c0178f2ff01a284ac4bebbc664b9fb7f64cdc38)
Test run: https://ci.curoverse.com/job/developer-run-tests/1139/

Updates arvados and arvados-cli gemspecs to use arvados-google-api-client gem that requests activesupport <5.1.

I also locally ran services/api test suite with these new gem versions by running bundle package to generate vendor/cache directory, then copying the new gem versions to it and then running bundle update arvados[-cli] --local to update the Gemfile.lock, also making sure that those gems were installed on the random gemset created by the test suite. The result: all tests OK.

This LGTM

Also available in: Atom PDF