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)
|
||||
|
||||
* Fix incorrect http verb when revoking credentials.
|
||||
* Warn on EOL ruby versions.
|
||||
|
||||
## 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
|
||||
[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
|
||||
|
||||
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/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
|
||||
# used to access Google APIs.
|
||||
module Auth
|
||||
VERSION = '0.6.4'.freeze
|
||||
VERSION = '0.6.5'.freeze
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue