diff --git a/grpc.gemspec b/grpc.gemspec index 2b41f134691..d3779a9991e 100644 --- a/grpc.gemspec +++ b/grpc.gemspec @@ -33,12 +33,12 @@ Gem::Specification.new do |s| s.add_development_dependency 'bundler', '~> 1.9' s.add_development_dependency 'facter', '~> 2.4' s.add_development_dependency 'logging', '~> 2.0' - s.add_development_dependency 'simplecov', '~> 0.9' - s.add_development_dependency 'rake', '~> 10.4' + s.add_development_dependency 'simplecov', '~> 0.14.1' + s.add_development_dependency 'rake', '~> 12.0' s.add_development_dependency 'rake-compiler', '~> 1.0' s.add_development_dependency 'rake-compiler-dock', '~> 0.5.1' - s.add_development_dependency 'rspec', '~> 3.2' - s.add_development_dependency 'rubocop', '~> 0.30.0' + s.add_development_dependency 'rspec', '~> 3.6' + s.add_development_dependency 'rubocop', '~> 0.49.1' s.add_development_dependency 'signet', '~> 0.7.0' s.extensions = %w(src/ruby/ext/grpc/extconf.rb) diff --git a/src/ruby/.rubocop_todo.yml b/src/ruby/.rubocop_todo.yml index 05db4045825..32b84b8de0e 100644 --- a/src/ruby/.rubocop_todo.yml +++ b/src/ruby/.rubocop_todo.yml @@ -1,44 +1,569 @@ -# This configuration was generated by `rubocop --auto-gen-config` -# on 2015-05-22 13:23:34 -0700 using RuboCop version 0.30.1. +# This configuration was generated by +# `rubocop --auto-gen-config` +# on 2017-09-04 17:00:36 +0200 using RuboCop version 0.49.1. # The point is for the user to remove these configuration records # one by one as the offenses are removed from the code base. # Note that changes in the inspected code, or installation of new # versions of RuboCop, may require this file to be generated again. -# Offense count: 30 -Metrics/AbcSize: - Max: 38 +# Offense count: 3 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles, IndentOneStep, IndentationWidth. +# SupportedStyles: case, end +Layout/CaseIndentation: + Exclude: + - 'tools/platform_check.rb' + +# Offense count: 1 +# Cop supports --auto-correct. +Layout/CommentIndentation: + Exclude: + - 'qps/client.rb' + +# Offense count: 1 +# Cop supports --auto-correct. +Layout/EmptyLineAfterMagicComment: + Exclude: + - 'tools/grpc-tools.gemspec' + +# Offense count: 33 +# Cop supports --auto-correct. +# Configuration parameters: AllowAdjacentOneLineDefs, NumberOfEmptyLines. +Layout/EmptyLineBetweenDefs: + Exclude: + - 'qps/client.rb' + - 'qps/histogram.rb' + - 'qps/proxy-worker.rb' + - 'qps/server.rb' + - 'qps/worker.rb' + +# Offense count: 1 +# Cop supports --auto-correct. +Layout/EmptyLines: + Exclude: + - 'qps/qps-common.rb' + +# Offense count: 8 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +# SupportedStyles: empty_lines, empty_lines_except_namespace, empty_lines_special, no_empty_lines +Layout/EmptyLinesAroundClassBody: + Exclude: + - 'pb/grpc/testing/duplicate/echo_duplicate_services_pb.rb' + - 'pb/grpc/testing/metrics_services_pb.rb' + - 'pb/src/proto/grpc/testing/test_services_pb.rb' + - 'qps/src/proto/grpc/testing/proxy-service_services_pb.rb' + - 'qps/src/proto/grpc/testing/services_services_pb.rb' + +# Offense count: 28 +# Cop supports --auto-correct. +# Configuration parameters: AllowForAlignment, ForceEqualSignAlignment. +Layout/ExtraSpacing: + Enabled: false + +# Offense count: 1 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +# SupportedStyles: normal, rails +Layout/IndentationConsistency: + Exclude: + - 'pb/grpc/health/checker.rb' + +# Offense count: 1 +# Cop supports --auto-correct. +# Configuration parameters: Width, IgnoredPatterns. +Layout/IndentationWidth: + Exclude: + - 'pb/grpc/health/checker.rb' + +# Offense count: 1 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +# SupportedStyles: symmetrical, new_line, same_line +Layout/MultilineHashBraceLayout: + Exclude: + - 'spec/generic/active_call_spec.rb' + +# Offense count: 70 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +# SupportedStyles: symmetrical, new_line, same_line +Layout/MultilineMethodCallBraceLayout: + Enabled: false + +# Offense count: 2 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles, IndentationWidth. +# SupportedStyles: aligned, indented, indented_relative_to_receiver +Layout/MultilineMethodCallIndentation: + Exclude: + - 'spec/generic/rpc_desc_spec.rb' + +# Offense count: 1 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +# SupportedStyles: symmetrical, new_line, same_line +Layout/MultilineMethodDefinitionBraceLayout: + Exclude: + - 'spec/generic/client_stub_spec.rb' + +# Offense count: 5 +# Cop supports --auto-correct. +Layout/SpaceAfterColon: + Exclude: + - 'lib/grpc/generic/rpc_server.rb' + +# Offense count: 7 +# Cop supports --auto-correct. +Layout/SpaceAfterComma: + Exclude: + - 'qps/client.rb' + +# Offense count: 27 +# Cop supports --auto-correct. +# Configuration parameters: AllowForAlignment. +Layout/SpaceAroundOperators: + Exclude: + - 'qps/client.rb' + - 'qps/histogram.rb' + - 'qps/proxy-worker.rb' + - 'qps/server.rb' + - 'spec/generic/active_call_spec.rb' + - 'spec/generic/rpc_server_spec.rb' + +# Offense count: 1 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles, EnforcedStyleForEmptyBraces, SupportedStylesForEmptyBraces, SpaceBeforeBlockParameters. +# SupportedStyles: space, no_space +# SupportedStylesForEmptyBraces: space, no_space +Layout/SpaceInsideBlockBraces: + Exclude: + - 'stress/stress_client.rb' + +# Offense count: 4 +# Cop supports --auto-correct. +Layout/SpaceInsideBrackets: + Exclude: + - 'tools/bin/grpc_tools_ruby_protoc' + - 'tools/bin/grpc_tools_ruby_protoc_plugin' + +# Offense count: 2 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles, EnforcedStyleForEmptyBraces, SupportedStylesForEmptyBraces. +# SupportedStyles: space, no_space, compact +# SupportedStylesForEmptyBraces: space, no_space +Layout/SpaceInsideHashLiteralBraces: + Exclude: + - 'qps/server.rb' + +# Offense count: 6 +# Cop supports --auto-correct. +Layout/SpaceInsidePercentLiteralDelimiters: + Exclude: + - 'spec/generic/client_stub_spec.rb' + - 'tools/grpc-tools.gemspec' # Offense count: 3 -# Configuration parameters: CountComments. -Metrics/ClassLength: - Max: 200 +# Cop supports --auto-correct. +Layout/Tab: + Exclude: + - 'pb/grpc/health/checker.rb' + - 'qps/client.rb' + +# Offense count: 1 +# Cop supports --auto-correct. +Layout/TrailingWhitespace: + Exclude: + - 'qps/worker.rb' + +# Offense count: 1 +Lint/IneffectiveAccessModifier: + Exclude: + - 'lib/grpc/generic/active_call.rb' + +# Offense count: 4 +# Cop supports --auto-correct. +Lint/PercentStringArray: + Exclude: + - 'spec/client_server_spec.rb' + - 'spec/generic/active_call_spec.rb' + - 'spec/generic/client_stub_spec.rb' + +# Offense count: 4 +Lint/ScriptPermission: + Exclude: + - 'qps/client.rb' + - 'qps/histogram.rb' + - 'qps/qps-common.rb' + - 'qps/server.rb' + +# Offense count: 2 +# Cop supports --auto-correct. +# Configuration parameters: IgnoreEmptyBlocks, AllowUnusedKeywordArguments. +Lint/UnusedBlockArgument: + Exclude: + - 'qps/client.rb' + +# Offense count: 2 +# Cop supports --auto-correct. +# Configuration parameters: AllowUnusedKeywordArguments, IgnoreEmptyMethods. +Lint/UnusedMethodArgument: + Exclude: + - 'qps/client.rb' + +# Offense count: 1 +# Configuration parameters: ContextCreatingMethods, MethodCreatingMethods. +Lint/UselessAccessModifier: + Exclude: + - 'lib/grpc/logconfig.rb' + +# Offense count: 1 +Lint/UselessAssignment: + Exclude: + - 'qps/client.rb' -# Offense count: 35 +# Offense count: 4 +Lint/Void: + Exclude: + - 'stress/metrics_server.rb' + - 'stress/stress_client.rb' + +# Offense count: 53 +Metrics/AbcSize: + Max: 57 + +# Offense count: 81 +# Configuration parameters: CountComments, ExcludedMethods. +Metrics/BlockLength: + Max: 715 + +# Offense count: 82 +# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns. +# URISchemes: http, https +Metrics/LineLength: + Max: 141 + +# Offense count: 82 # Configuration parameters: CountComments. Metrics/MethodLength: - Max: 36 + Max: 54 -# Offense count: 7 +# Offense count: 5 # Configuration parameters: CountKeywordArgs. Metrics/ParameterLists: - Max: 8 + Max: 7 + +# Offense count: 1 +# Cop supports --auto-correct. +Performance/RedundantBlockCall: + Exclude: + - 'spec/generic/client_stub_spec.rb' + +# Offense count: 5 +# Cop supports --auto-correct. +# Configuration parameters: MaxKeyValuePairs. +Performance/RedundantMerge: + Exclude: + - 'spec/generic/active_call_spec.rb' + - 'spec/generic/client_stub_spec.rb' + +# Offense count: 8 +# Cop supports --auto-correct. +Performance/TimesMap: + Exclude: + - 'spec/channel_spec.rb' + - 'spec/client_server_spec.rb' + - 'spec/server_spec.rb' + +# Offense count: 7 +Style/AccessorMethodName: + Exclude: + - 'qps/server.rb' + - 'stress/metrics_server.rb' + - 'stress/stress_client.rb' + +# Offense count: 2 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +# SupportedStyles: prefer_alias, prefer_alias_method +Style/Alias: + Exclude: + - 'lib/grpc/generic/rpc_server.rb' + - 'lib/grpc/notifier.rb' + +# Offense count: 7 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles, ProceduralMethods, FunctionalMethods, IgnoredMethods. +# SupportedStyles: line_count_based, semantic, braces_for_chaining +# ProceduralMethods: benchmark, bm, bmbm, create, each_with_object, measure, new, realtime, tap, with_object +# FunctionalMethods: let, let!, subject, watch +# IgnoredMethods: lambda, proc, it +Style/BlockDelimiters: + Exclude: + - 'qps/client.rb' + - 'qps/proxy-worker.rb' + - 'qps/server.rb' + - 'qps/worker.rb' + +# Offense count: 2 +# Cop supports --auto-correct. +Style/ClassMethods: + Exclude: + - 'tools/platform_check.rb' + +# Offense count: 2 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles, SingleLineConditionsOnly, IncludeTernaryExpressions. +# SupportedStyles: assign_to_condition, assign_inside_condition +Style/ConditionalAssignment: + Exclude: + - 'lib/grpc/generic/rpc_server.rb' + - 'lib/grpc/generic/service.rb' + +# Offense count: 19 +Style/Documentation: + Exclude: + - 'spec/**/*' + - 'test/**/*' + - 'pb/grpc/testing/duplicate/echo_duplicate_services_pb.rb' + - 'pb/grpc/testing/metrics_services_pb.rb' + - 'pb/src/proto/grpc/testing/test_pb.rb' + - 'qps/client.rb' + - 'qps/histogram.rb' + - 'qps/proxy-worker.rb' + - 'qps/server.rb' + - 'qps/src/proto/grpc/testing/proxy-service_services_pb.rb' + - 'qps/src/proto/grpc/testing/services_pb.rb' + - 'qps/src/proto/grpc/testing/services_services_pb.rb' + - 'qps/worker.rb' + - 'stress/metrics_server.rb' + - 'stress/stress_client.rb' + - 'tools/platform_check.rb' -# Offense count: 9 +# Offense count: 8 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +# SupportedStyles: compact, expanded +Style/EmptyMethod: + Exclude: + - 'bin/noproto_server.rb' + - 'lib/grpc/logconfig.rb' + - 'spec/generic/rpc_desc_spec.rb' + +# Offense count: 2 +# Configuration parameters: ExpectMatchingDefinition, Regex, IgnoreExecutableScripts, AllowedAcronyms. +# AllowedAcronyms: CLI, DSL, ACL, API, ASCII, CPU, CSS, DNS, EOF, GUID, HTML, HTTP, HTTPS, ID, IP, JSON, LHS, QPS, RAM, RHS, RPC, SLA, SMTP, SQL, SSH, TCP, TLS, TTL, UDP, UI, UID, UUID, URI, URL, UTF8, VM, XML, XMPP, XSRF, XSS +Style/FileName: + Exclude: + - 'qps/src/proto/grpc/testing/proxy-service_pb.rb' + - 'qps/src/proto/grpc/testing/proxy-service_services_pb.rb' + +# Offense count: 12 # Configuration parameters: AllowedVariables. Style/GlobalVars: - Enabled: false + Exclude: + - 'ext/grpc/extconf.rb' + +# Offense count: 3 +# Configuration parameters: MinBodyLength. +Style/GuardClause: + Exclude: + - 'lib/grpc/generic/bidi_call.rb' + - 'lib/grpc/generic/rpc_server.rb' + - 'qps/client.rb' + +# Offense count: 1 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles, UseHashRocketsWithSymbolValues, PreferHashRocketsForNonAlnumEndingSymbols. +# SupportedStyles: ruby19, hash_rockets, no_mixed_keys, ruby19_no_mixed_keys +Style/HashSyntax: + Exclude: + - 'stress/metrics_server.rb' + +# Offense count: 1 +Style/IfInsideElse: + Exclude: + - 'lib/grpc/generic/rpc_desc.rb' + +# Offense count: 4 +# Cop supports --auto-correct. +# Configuration parameters: MaxLineLength. +Style/IfUnlessModifier: + Exclude: + - 'ext/grpc/extconf.rb' + - 'qps/histogram.rb' + - 'stress/stress_client.rb' + +# Offense count: 1 +# Cop supports --auto-correct. +Style/MethodCallWithoutArgsParentheses: + Exclude: + - 'qps/client.rb' + +# Offense count: 3 +# Cop supports --auto-correct. +Style/MultilineIfModifier: + Exclude: + - 'lib/grpc/generic/bidi_call.rb' + - 'lib/grpc/generic/client_stub.rb' + - 'spec/spec_helper.rb' + +# Offense count: 7 +# Cop supports --auto-correct. +Style/MutableConstant: + Exclude: + - 'ext/grpc/extconf.rb' + - 'lib/grpc/version.rb' + - 'spec/compression_options_spec.rb' + - 'spec/generic/active_call_spec.rb' + - 'tools/version.rb' # Offense count: 1 -# Configuration parameters: EnforcedStyle, MinBodyLength, SupportedStyles. -Style/Next: +# Cop supports --auto-correct. +Style/NegatedWhile: + Exclude: + - 'qps/client.rb' + +# Offense count: 1 +# Cop supports --auto-correct. +# Configuration parameters: AutoCorrect, EnforcedStyle, SupportedStyles. +# SupportedStyles: predicate, comparison +Style/NumericPredicate: + Exclude: + - 'spec/**/*' + - 'ext/grpc/extconf.rb' + +# Offense count: 7 +# Cop supports --auto-correct. +Style/ParallelAssignment: + Exclude: + - 'bin/math_server.rb' + - 'lib/grpc/generic/rpc_server.rb' + - 'spec/generic/client_stub_spec.rb' + - 'spec/generic/rpc_desc_spec.rb' + - 'spec/generic/rpc_server_pool_spec.rb' + - 'spec/generic/rpc_server_spec.rb' + +# Offense count: 8 +# Cop supports --auto-correct. +# Configuration parameters: PreferredDelimiters. +Style/PercentLiteralDelimiters: + Exclude: + - 'end2end/grpc_class_init_driver.rb' + - 'spec/client_server_spec.rb' + - 'spec/generic/active_call_spec.rb' + - 'spec/generic/client_stub_spec.rb' + - 'tools/grpc-tools.gemspec' + +# Offense count: 3 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +# SupportedStyles: compact, exploded +Style/RaiseArgs: + Exclude: + - 'stress/metrics_server.rb' + +# Offense count: 4 +# Cop supports --auto-correct. +Style/RedundantParentheses: + Exclude: + - 'lib/grpc/generic/rpc_server.rb' + - 'qps/client.rb' + - 'qps/proxy-worker.rb' + - 'spec/generic/rpc_desc_spec.rb' + +# Offense count: 5 +# Cop supports --auto-correct. +# Configuration parameters: AllowMultipleReturnValues. +Style/RedundantReturn: + Exclude: + - 'end2end/grpc_class_init_client.rb' + +# Offense count: 77 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +# SupportedStyles: only_raise, only_fail, semantic +Style/SignalException: Enabled: false # Offense count: 2 -# Configuration parameters: Methods. -Style/SingleLineBlockParams: - Enabled: false +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles. +# SupportedStyles: use_perl_names, use_english_names +Style/SpecialGlobalVars: + Exclude: + - 'ext/grpc/extconf.rb' + - 'stress/stress_client.rb' + +# Offense count: 189 +# Cop supports --auto-correct. +# Configuration parameters: EnforcedStyle, SupportedStyles, ConsistentQuotesInMultiline. +# SupportedStyles: single_quotes, double_quotes +Style/StringLiterals: + Exclude: + - 'pb/grpc/testing/metrics_pb.rb' + - 'pb/src/proto/grpc/testing/empty_pb.rb' + - 'pb/src/proto/grpc/testing/messages_pb.rb' + - 'qps/proxy-worker.rb' + - 'qps/server.rb' + - 'qps/src/proto/grpc/testing/control_pb.rb' + - 'qps/src/proto/grpc/testing/messages_pb.rb' + - 'qps/src/proto/grpc/testing/payloads_pb.rb' + - 'qps/src/proto/grpc/testing/proxy-service_pb.rb' + - 'qps/src/proto/grpc/testing/stats_pb.rb' + - 'qps/worker.rb' # Offense count: 1 Style/StructInheritance: - Enabled: false + Exclude: + - 'lib/grpc/generic/rpc_desc.rb' + +# Offense count: 10 +# Cop supports --auto-correct. +# Configuration parameters: MinSize, SupportedStyles. +# SupportedStyles: percent, brackets +Style/SymbolArray: + EnforcedStyle: brackets + +# Offense count: 2 +# Cop supports --auto-correct. +# Configuration parameters: IgnoredMethods. +# IgnoredMethods: respond_to, define_method +Style/SymbolProc: + Exclude: + - 'qps/client.rb' + - 'stress/stress_client.rb' + +# Offense count: 6 +# Cop supports --auto-correct. +# Configuration parameters: AllowNamedUnderscoreVariables. +Style/TrailingUnderscoreVariable: + Exclude: + - 'spec/channel_credentials_spec.rb' + - 'spec/server_credentials_spec.rb' + +# Offense count: 3 +# Cop supports --auto-correct. +# Configuration parameters: ExactNameMatch, AllowPredicates, AllowDSLWriters, IgnoreClassMethods, Whitelist. +# Whitelist: to_ary, to_a, to_c, to_enum, to_h, to_hash, to_i, to_int, to_io, to_open, to_path, to_proc, to_r, to_regexp, to_str, to_s, to_sym +Style/TrivialAccessors: + Exclude: + - 'qps/histogram.rb' + +# Offense count: 3 +# Cop supports --auto-correct. +Style/UnneededInterpolation: + Exclude: + - 'pb/grpc/health/checker.rb' + +# Offense count: 1 +# Cop supports --auto-correct. +Style/YodaCondition: + Exclude: + - 'stress/stress_client.rb' + +# Offense count: 2 +# Cop supports --auto-correct. +Style/ZeroLengthPredicate: + Exclude: + - 'lib/grpc/generic/rpc_server.rb' diff --git a/src/ruby/end2end/grpc_class_init_client.rb b/src/ruby/end2end/grpc_class_init_client.rb index b9e3d6054f6..c35719a71fd 100755 --- a/src/ruby/end2end/grpc_class_init_client.rb +++ b/src/ruby/end2end/grpc_class_init_client.rb @@ -41,7 +41,7 @@ def run_gc_stress_test(test_proc) GC.enable construct_many(test_proc) - GC.start(full_mark: true, immediate_sweep: true) + GC.start construct_many(test_proc) end diff --git a/templates/grpc.gemspec.template b/templates/grpc.gemspec.template index 8b5799306a1..e62e5b27215 100644 --- a/templates/grpc.gemspec.template +++ b/templates/grpc.gemspec.template @@ -35,12 +35,12 @@ s.add_development_dependency 'bundler', '~> 1.9' s.add_development_dependency 'facter', '~> 2.4' s.add_development_dependency 'logging', '~> 2.0' - s.add_development_dependency 'simplecov', '~> 0.9' - s.add_development_dependency 'rake', '~> 10.4' + s.add_development_dependency 'simplecov', '~> 0.14.1' + s.add_development_dependency 'rake', '~> 12.0' s.add_development_dependency 'rake-compiler', '~> 1.0' s.add_development_dependency 'rake-compiler-dock', '~> 0.5.1' - s.add_development_dependency 'rspec', '~> 3.2' - s.add_development_dependency 'rubocop', '~> 0.30.0' + s.add_development_dependency 'rspec', '~> 3.6' + s.add_development_dependency 'rubocop', '~> 0.49.1' s.add_development_dependency 'signet', '~> 0.7.0' s.extensions = %w(src/ruby/ext/grpc/extconf.rb)