Warn on EOL Ruby Versions (#159)
This commit is contained in:
parent
b03268d33f
commit
b5d73a84a4
|
@ -1,6 +1,7 @@
|
||||||
## 0.6.5 (2018/08/16)
|
## 0.6.5 (2018/08/16)
|
||||||
|
|
||||||
* Fix incorrect http verb when revoking credentials.
|
* Fix incorrect http verb when revoking credentials.
|
||||||
|
* Warn on EOL ruby versions.
|
||||||
|
|
||||||
## 0.6.4 (2018/08/03)
|
## 0.6.4 (2018/08/03)
|
||||||
|
|
||||||
|
|
11
README.md
11
README.md
|
@ -162,6 +162,17 @@ access and refresh tokens. Two storage implementations are included:
|
||||||
Custom storage implementations can also be used. See
|
Custom storage implementations can also be used. See
|
||||||
[token_store.rb](lib/googleauth/token_store.rb) for additional details.
|
[token_store.rb](lib/googleauth/token_store.rb) for additional details.
|
||||||
|
|
||||||
|
## Supported Ruby Versions
|
||||||
|
|
||||||
|
This library is currently supported on Ruby 1.9+.
|
||||||
|
|
||||||
|
However, Ruby 2.4 or later is strongly recommended, as earlier releases have
|
||||||
|
reached or are nearing end-of-life. After March 31, 2019, Google will provide
|
||||||
|
official support only for Ruby versions that are considered current and
|
||||||
|
supported by Ruby Core (that is, Ruby versions that are either in normal
|
||||||
|
maintenance or in security maintenance).
|
||||||
|
See https://www.ruby-lang.org/en/downloads/branches/ for further details.
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
This library is licensed under Apache 2.0. Full license text is
|
This library is licensed under Apache 2.0. Full license text is
|
||||||
|
|
|
@ -33,3 +33,75 @@ require 'googleauth/credentials'
|
||||||
require 'googleauth/default_credentials'
|
require 'googleauth/default_credentials'
|
||||||
require 'googleauth/user_authorizer'
|
require 'googleauth/user_authorizer'
|
||||||
require 'googleauth/web_user_authorizer'
|
require 'googleauth/web_user_authorizer'
|
||||||
|
|
||||||
|
module Google
|
||||||
|
# Module Auth provides classes that provide Google-specific authorization
|
||||||
|
# used to access Google APIs.
|
||||||
|
module Auth
|
||||||
|
# rubocop:disable MethodDefParentheses
|
||||||
|
|
||||||
|
# On March 31, 2019, set supported version to 2.4 and recommended to 2.6.
|
||||||
|
# Thereafter, follow the MRI support schedule: supported means non-EOL,
|
||||||
|
# and recommended means in normal (rather than security) maintenance.
|
||||||
|
# See https://www.ruby-lang.org/en/downloads/branches/
|
||||||
|
##
|
||||||
|
# Minimum "supported" Ruby version (non-EOL)
|
||||||
|
# @private
|
||||||
|
#
|
||||||
|
SUPPORTED_VERSION_THRESHOLD = '1.9'.freeze
|
||||||
|
##
|
||||||
|
# Minimum "recommended" Ruby version (normal maintenance)
|
||||||
|
# @private
|
||||||
|
#
|
||||||
|
RECOMMENDED_VERSION_THRESHOLD = '2.4'.freeze
|
||||||
|
##
|
||||||
|
# Check Ruby version and emit a warning if it is old
|
||||||
|
# @private
|
||||||
|
#
|
||||||
|
def self.warn_on_old_ruby_version
|
||||||
|
return if ENV['GOOGLE_CLOUD_SUPPRESS_RUBY_WARNINGS']
|
||||||
|
cur_version = Gem::Version.new RUBY_VERSION
|
||||||
|
if cur_version < Gem::Version.new(SUPPORTED_VERSION_THRESHOLD)
|
||||||
|
warn_unsupported_ruby cur_version, RECOMMENDED_VERSION_THRESHOLD
|
||||||
|
elsif cur_version < Gem::Version.new(RECOMMENDED_VERSION_THRESHOLD)
|
||||||
|
warn_nonrecommended_ruby cur_version, RECOMMENDED_VERSION_THRESHOLD
|
||||||
|
end
|
||||||
|
rescue ArgumentError
|
||||||
|
warn 'Unable to determine current Ruby version.'
|
||||||
|
end
|
||||||
|
|
||||||
|
##
|
||||||
|
# Print a warning for an EOL version of Ruby
|
||||||
|
# @private
|
||||||
|
#
|
||||||
|
def self.warn_unsupported_ruby cur_version, recommended_version
|
||||||
|
warn "WARNING: You are running Ruby #{cur_version}, which has reached" \
|
||||||
|
' end-of-life and is no longer supported by Ruby Core.'
|
||||||
|
warn 'The Google Cloud API clients work best on supported versions of' \
|
||||||
|
' Ruby. It is strongly recommended that you upgrade to Ruby' \
|
||||||
|
" #{recommended_version} or later."
|
||||||
|
warn 'See https://www.ruby-lang.org/en/downloads/branches/ for more' \
|
||||||
|
' info on the Ruby maintenance schedule.'
|
||||||
|
warn 'To suppress this message, set the' \
|
||||||
|
' GOOGLE_CLOUD_SUPPRESS_RUBY_WARNINGS environment variable.'
|
||||||
|
end
|
||||||
|
|
||||||
|
##
|
||||||
|
# Print a warning for a supported but nearing EOL version of Ruby
|
||||||
|
# @private
|
||||||
|
#
|
||||||
|
def self.warn_nonrecommended_ruby cur_version, recommended_version
|
||||||
|
warn "WARNING: You are running Ruby #{cur_version}, which is nearing" \
|
||||||
|
' end-of-life.'
|
||||||
|
warn 'The Google Cloud API clients work best on supported versions of' \
|
||||||
|
" Ruby. Consider upgrading to Ruby #{recommended_version} or later."
|
||||||
|
warn 'See https://www.ruby-lang.org/en/downloads/branches/ for more' \
|
||||||
|
' info on the Ruby maintenance schedule.'
|
||||||
|
warn 'To suppress this message, set the' \
|
||||||
|
' GOOGLE_CLOUD_SUPPRESS_RUBY_WARNINGS environment variable.'
|
||||||
|
end
|
||||||
|
# rubocop:enable MethodDefParentheses
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
Google::Auth.warn_on_old_ruby_version
|
||||||
|
|
|
@ -31,6 +31,6 @@ module Google
|
||||||
# Module Auth provides classes that provide Google-specific authorization
|
# Module Auth provides classes that provide Google-specific authorization
|
||||||
# used to access Google APIs.
|
# used to access Google APIs.
|
||||||
module Auth
|
module Auth
|
||||||
VERSION = '0.6.4'.freeze
|
VERSION = '0.6.5'.freeze
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue