1
0
Fork 0
mirror of https://github.com/heartcombo/devise.git synced 2022-11-09 12:18:31 -05:00

Test on Ruby 3+ with Rails 6+

And remove dupe entry in the exclude matrix.

In order to get Ruby 3 working we needed to install `rexml` as part of
the test dependencies, only done on the main Gemfile (Rails 6.1) and the
6.0 versions. (which are the only ones supported by Ruby 3.)

Devise itself doesn't require `rexml` as it does nothing with it, but a
dependency we use during tests seem to require it. I was able to track
it down to omniauth-openid -> rack-openid -> ruby-openid requiring it:

    13a88ad644/lib/openid/yadis/xrds.rb (L1)

So while we have tests using omniauth-openid, we'll need this require in
place as well. Ideally that upstream version of ruby-openid should have
it, but it seems that one isn't updated in a while.
This commit is contained in:
Carlos Antonio da Silva 2021-02-09 10:03:34 -03:00
parent 1bb5fcbbec
commit ad91686b62
5 changed files with 17 additions and 2 deletions

View file

@ -21,6 +21,7 @@ jobs:
- 2.5 - 2.5
- 2.6 - 2.6
- 2.7 - 2.7
- 3.0
env: env:
- DEVISE_ORM=active_record - DEVISE_ORM=active_record
- DEVISE_ORM=mongoid - DEVISE_ORM=mongoid
@ -59,8 +60,6 @@ jobs:
gemfile: gemfiles/Gemfile-rails-4-2 gemfile: gemfiles/Gemfile-rails-4-2
- ruby: 2.7 - ruby: 2.7
gemfile: gemfiles/Gemfile-rails-4-1 gemfile: gemfiles/Gemfile-rails-4-1
- ruby: 2.7
gemfile: gemfiles/Gemfile-rails-4-1
- ruby: 2.7 - ruby: 2.7
gemfile: gemfiles/Gemfile-rails-4-2 gemfile: gemfiles/Gemfile-rails-4-2
- ruby: 2.7 - ruby: 2.7
@ -69,6 +68,16 @@ jobs:
gemfile: gemfiles/Gemfile-rails-5-1 gemfile: gemfiles/Gemfile-rails-5-1
- ruby: 2.7 - ruby: 2.7
gemfile: gemfiles/Gemfile-rails-5-2 gemfile: gemfiles/Gemfile-rails-5-2
- ruby: 3.0
gemfile: gemfiles/Gemfile-rails-4-1
- ruby: 3.0
gemfile: gemfiles/Gemfile-rails-4-2
- ruby: 3.0
gemfile: gemfiles/Gemfile-rails-5-0
- ruby: 3.0
gemfile: gemfiles/Gemfile-rails-5-1
- ruby: 3.0
gemfile: gemfiles/Gemfile-rails-5-2
- env: DEVISE_ORM=mongoid - env: DEVISE_ORM=mongoid
gemfile: Gemfile gemfile: Gemfile
- env: DEVISE_ORM=mongoid - env: DEVISE_ORM=mongoid

View file

@ -4,6 +4,8 @@
* Devise now enables the upgrade of OmniAuth 2+. Previously Devise would raise an error if you'd try to upgrade. Please note that OmniAuth 2 is considered a security upgrade and recommended to everyone. You can read more about the details (and possible necessary changes to your app as part of the upgrade) in [their release notes](https://github.com/omniauth/omniauth/releases/tag/v2.0.0). [Devise's OmniAuth Overview wiki](https://github.com/heartcombo/devise/wiki/OmniAuth:-Overview) was also updated to cover OmniAuth 2.0 requirements. * Devise now enables the upgrade of OmniAuth 2+. Previously Devise would raise an error if you'd try to upgrade. Please note that OmniAuth 2 is considered a security upgrade and recommended to everyone. You can read more about the details (and possible necessary changes to your app as part of the upgrade) in [their release notes](https://github.com/omniauth/omniauth/releases/tag/v2.0.0). [Devise's OmniAuth Overview wiki](https://github.com/heartcombo/devise/wiki/OmniAuth:-Overview) was also updated to cover OmniAuth 2.0 requirements.
- Note that the upgrade required Devise shared links that initiate the OmniAuth flow to be changed to `method: :post`, which is now a requirement for OmniAuth, part of the security improvement. If you have copied and customized the Devise shared links partial to your app, or if you have other links in your app that initiate the OmniAuth flow, they will have to be updated to use `method: :post`, or changed to use buttons (e.g. `button_to`) to work with OmniAuth 2. (if you're using links with `method: :post`, make sure your app has `rails-ujs` or `jquery-ujs` included in order for these links to work properly.) - Note that the upgrade required Devise shared links that initiate the OmniAuth flow to be changed to `method: :post`, which is now a requirement for OmniAuth, part of the security improvement. If you have copied and customized the Devise shared links partial to your app, or if you have other links in your app that initiate the OmniAuth flow, they will have to be updated to use `method: :post`, or changed to use buttons (e.g. `button_to`) to work with OmniAuth 2. (if you're using links with `method: :post`, make sure your app has `rails-ujs` or `jquery-ujs` included in order for these links to work properly.)
- As part of the OmniAuth 2.0 upgrade you might also need to add the [`omniauth-rails_csrf_protection`](https://github.com/cookpad/omniauth-rails_csrf_protection) gem to your app if you don't have it already. (and you don't want to roll your own code to verify requests.) Check the OmniAuth v2 release notes for more info. - As part of the OmniAuth 2.0 upgrade you might also need to add the [`omniauth-rails_csrf_protection`](https://github.com/cookpad/omniauth-rails_csrf_protection) gem to your app if you don't have it already. (and you don't want to roll your own code to verify requests.) Check the OmniAuth v2 release notes for more info.
* Add support for Ruby 3.
* Add support for Rails 6.1.
* Move CI to GitHub Actions. * Move CI to GitHub Actions.
* deprecations * deprecations

View file

@ -18,6 +18,7 @@ gem "responders", "~> 3.0"
group :test do group :test do
gem "omniauth-facebook" gem "omniauth-facebook"
gem "omniauth-openid" gem "omniauth-openid"
gem "rexml"
gem "timecop" gem "timecop"
gem "webrat", "0.7.3", require: false gem "webrat", "0.7.3", require: false
gem "mocha", "~> 1.1", require: false gem "mocha", "~> 1.1", require: false

View file

@ -183,6 +183,7 @@ GEM
responders (3.0.1) responders (3.0.1)
actionpack (>= 5.0) actionpack (>= 5.0)
railties (>= 5.0) railties (>= 5.0)
rexml (3.2.4)
ruby-openid (2.9.2) ruby-openid (2.9.2)
ruby2_keywords (0.0.4) ruby2_keywords (0.0.4)
sprockets (4.0.2) sprockets (4.0.2)
@ -223,6 +224,7 @@ DEPENDENCIES
rails-controller-testing! rails-controller-testing!
rdoc rdoc
responders (~> 3.0) responders (~> 3.0)
rexml
sqlite3 (~> 1.4) sqlite3 (~> 1.4)
timecop timecop
webrat (= 0.7.3) webrat (= 0.7.3)

View file

@ -16,6 +16,7 @@ gem "responders", "~> 3.0"
group :test do group :test do
gem "omniauth-facebook" gem "omniauth-facebook"
gem "omniauth-openid" gem "omniauth-openid"
gem "rexml"
gem "timecop" gem "timecop"
gem "webrat", "0.7.3", require: false gem "webrat", "0.7.3", require: false
gem "mocha", "~> 1.1", require: false gem "mocha", "~> 1.1", require: false