avrolution 0.6.0 → 0.7.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.circleci/config.yml +71 -0
- data/.gitignore +1 -0
- data/.rubocop.yml +6 -0
- data/CHANGELOG.md +15 -0
- data/Gemfile +2 -0
- data/README.md +3 -1
- data/Rakefile +2 -0
- data/avrolution.gemspec +14 -10
- data/bin/console +1 -0
- data/lib/avrolution/compatibility_break.rb +12 -3
- data/lib/avrolution/compatibility_breaks_file.rb +6 -2
- data/lib/avrolution/compatibility_check.rb +15 -8
- data/lib/avrolution/configuration.rb +5 -2
- data/lib/avrolution/railtie.rb +3 -1
- data/lib/avrolution/rake/add_compatibility_break_task.rb +11 -5
- data/lib/avrolution/rake/base_task.rb +5 -0
- data/lib/avrolution/rake/check_compatibility_task.rb +3 -1
- data/lib/avrolution/rake/rails_avrolution.rake +5 -3
- data/lib/avrolution/rake/register_schemas_task.rb +3 -1
- data/lib/avrolution/register_schemas.rb +11 -5
- data/lib/avrolution/version.rb +3 -1
- data/lib/avrolution.rb +2 -0
- data/lib/generators/avrolution/install_generator.rb +2 -0
- metadata +58 -45
- data/.travis.yml +0 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 444e46752c437b989bfebbf5370818c0fc770acae6e11b41c17846d89c6cc0f4
|
4
|
+
data.tar.gz: 9b3a81634fea7865ab3189b1a0576a072986b37efe76f22ecf19b7df035495e4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7aab59b4a3da8b0a429c1b607c072caa8b20a0c88f27943d604f0b3c2e5dba6ae975344fa553eaf194b5c186b09a5edf718260db3139f20e31e5a6eebd5806cb
|
7
|
+
data.tar.gz: 938cb343916b6a6c85edb46f78526bc760c5339d16cbd586f75dfa0730f17da3d49891841a533a06bcc3db38953465e98161847290f99982f37a86efb9959330
|
@@ -0,0 +1,71 @@
|
|
1
|
+
version: 2.1
|
2
|
+
jobs:
|
3
|
+
lint:
|
4
|
+
docker:
|
5
|
+
- image: salsify/ruby_ci:2.6.6
|
6
|
+
working_directory: ~/avromatic
|
7
|
+
steps:
|
8
|
+
- checkout
|
9
|
+
- restore_cache:
|
10
|
+
keys:
|
11
|
+
- v2-gems-ruby-2.6.6-{{ checksum "avromatic.gemspec" }}-{{ checksum "Gemfile" }}
|
12
|
+
- v2-gems-ruby-2.6.6-
|
13
|
+
- run:
|
14
|
+
name: Install Gems
|
15
|
+
command: |
|
16
|
+
if ! bundle check --path=vendor/bundle; then
|
17
|
+
bundle install --path=vendor/bundle --jobs=4 --retry=3
|
18
|
+
bundle clean
|
19
|
+
fi
|
20
|
+
- save_cache:
|
21
|
+
key: v2-gems-ruby-2.6.6-{{ checksum "avromatic.gemspec" }}-{{ checksum "Gemfile" }}
|
22
|
+
paths:
|
23
|
+
- "vendor/bundle"
|
24
|
+
- "gemfiles/vendor/bundle"
|
25
|
+
- run:
|
26
|
+
name: Run Rubocop
|
27
|
+
command: bundle exec rubocop
|
28
|
+
test:
|
29
|
+
parameters:
|
30
|
+
ruby-version:
|
31
|
+
type: string
|
32
|
+
docker:
|
33
|
+
- image: salsify/ruby_ci:<< parameters.ruby-version >>
|
34
|
+
environment:
|
35
|
+
CIRCLE_TEST_REPORTS: "test-results"
|
36
|
+
working_directory: ~/avromatic
|
37
|
+
steps:
|
38
|
+
- checkout
|
39
|
+
- restore_cache:
|
40
|
+
keys:
|
41
|
+
- v2-gems-ruby-<< parameters.ruby-version >>-{{ checksum "avromatic.gemspec" }}-{{ checksum "Gemfile" }}
|
42
|
+
- v2-gems-ruby-<< parameters.ruby-version >>-
|
43
|
+
- run:
|
44
|
+
name: Install Gems
|
45
|
+
command: |
|
46
|
+
if ! bundle check --path=vendor/bundle; then
|
47
|
+
bundle install --path=vendor/bundle --jobs=4 --retry=3
|
48
|
+
bundle clean
|
49
|
+
fi
|
50
|
+
- save_cache:
|
51
|
+
key: v2-gems-ruby-<< parameters.ruby-version >>-{{ checksum "avromatic.gemspec" }}-{{ checksum "Gemfile" }}
|
52
|
+
paths:
|
53
|
+
- "vendor/bundle"
|
54
|
+
- "gemfiles/vendor/bundle"
|
55
|
+
- run:
|
56
|
+
name: Run Tests
|
57
|
+
command: |
|
58
|
+
bundle exec rspec --format RspecJunitFormatter --out $CIRCLE_TEST_REPORTS/rspec/junit.xml --format progress spec
|
59
|
+
- store_test_results:
|
60
|
+
path: "test-results"
|
61
|
+
workflows:
|
62
|
+
build:
|
63
|
+
jobs:
|
64
|
+
- lint
|
65
|
+
- test:
|
66
|
+
matrix:
|
67
|
+
parameters:
|
68
|
+
ruby-version:
|
69
|
+
- "2.6.6"
|
70
|
+
- "2.7.2"
|
71
|
+
- "3.0.0"
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,20 @@
|
|
1
1
|
# avrolution
|
2
2
|
|
3
|
+
## v0.7.2
|
4
|
+
- Fix a bug related to Ruby 3.0 keyword arguments in
|
5
|
+
AvroSchemaRegistry::Client#register_without_lookup.
|
6
|
+
|
7
|
+
## v0.7.1
|
8
|
+
- Adjust Rake task definitions to work with Ruby 3.0.
|
9
|
+
|
10
|
+
## v0.7.0
|
11
|
+
- Add support for Ruby 3.0.
|
12
|
+
- Drop support for Ruby < 2.6.
|
13
|
+
- Use frozen string literals.
|
14
|
+
|
15
|
+
## v0.6.1
|
16
|
+
- Add missing require to `Avrolution::Rake::BaseTask`.
|
17
|
+
|
3
18
|
## v0.6.0
|
4
19
|
- Do not check compatibility for previously registered schemas.
|
5
20
|
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -149,7 +149,9 @@ push git commits and tags, and push the `.gem` file to
|
|
149
149
|
## Contributing
|
150
150
|
|
151
151
|
Bug reports and pull requests are welcome on GitHub at
|
152
|
-
https://github.com/salsify/avrolution
|
152
|
+
https://github.com/salsify/avrolution.
|
153
|
+
|
154
|
+
## License
|
153
155
|
|
154
156
|
The gem is available as open source under the terms of the
|
155
157
|
[MIT License](http://opensource.org/licenses/MIT).
|
data/Rakefile
CHANGED
data/avrolution.gemspec
CHANGED
@@ -1,5 +1,6 @@
|
|
1
|
-
#
|
2
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
lib = File.expand_path('lib', __dir__)
|
3
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
5
|
require 'avrolution/version'
|
5
6
|
|
@@ -27,20 +28,23 @@ Gem::Specification.new do |spec|
|
|
27
28
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
28
29
|
spec.require_paths = ['lib']
|
29
30
|
|
30
|
-
spec.
|
31
|
-
|
32
|
-
spec.add_development_dependency '
|
33
|
-
spec.add_development_dependency 'rspec-its'
|
34
|
-
spec.add_development_dependency 'salsify_rubocop', '~> 0.47.2'
|
35
|
-
spec.add_development_dependency 'overcommit'
|
31
|
+
spec.required_ruby_version = '>= 2.6'
|
32
|
+
|
33
|
+
spec.add_development_dependency 'bundler', '~> 2.0'
|
36
34
|
spec.add_development_dependency 'fakefs'
|
35
|
+
spec.add_development_dependency 'overcommit'
|
36
|
+
spec.add_development_dependency 'rake', '~> 13.0'
|
37
|
+
spec.add_development_dependency 'rspec', '~> 3.8'
|
38
|
+
spec.add_development_dependency 'rspec-its'
|
39
|
+
spec.add_development_dependency 'rspec_junit_formatter'
|
40
|
+
spec.add_development_dependency 'salsify_rubocop', '~> 1.0.1'
|
37
41
|
spec.add_development_dependency 'simplecov'
|
38
42
|
|
43
|
+
spec.add_runtime_dependency 'activemodel'
|
44
|
+
spec.add_runtime_dependency 'activesupport'
|
39
45
|
spec.add_runtime_dependency 'avro-resolution_canonical_form', '>= 0.2.0'
|
40
46
|
spec.add_runtime_dependency 'avro_schema_registry-client', '>= 0.2.0'
|
41
47
|
spec.add_runtime_dependency 'diffy'
|
42
48
|
spec.add_runtime_dependency 'private_attr'
|
43
|
-
spec.add_runtime_dependency 'activesupport'
|
44
|
-
spec.add_runtime_dependency 'activemodel'
|
45
49
|
spec.add_runtime_dependency 'procto'
|
46
50
|
end
|
data/bin/console
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'active_model'
|
2
4
|
|
3
5
|
module Avrolution
|
@@ -6,9 +8,16 @@ module Avrolution
|
|
6
8
|
|
7
9
|
ValidationError = Class.new(StandardError)
|
8
10
|
|
9
|
-
VALID_COMPATIBILITY_VALUES =
|
10
|
-
|
11
|
-
|
11
|
+
VALID_COMPATIBILITY_VALUES = [
|
12
|
+
'BACKWARD',
|
13
|
+
'BACKWARD_TRANSITIVE',
|
14
|
+
'FORWARD',
|
15
|
+
'FORWARD_TRANSITIVE',
|
16
|
+
'FULL',
|
17
|
+
'FULL_TRANSITIVE',
|
18
|
+
'NONE'
|
19
|
+
].freeze
|
20
|
+
NONE = 'NONE'
|
12
21
|
|
13
22
|
attr_reader :name, :fingerprint, :with_compatibility, :after_compatibility
|
14
23
|
|
@@ -1,7 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Avrolution
|
2
4
|
module CompatibilityBreaksFile
|
3
5
|
|
4
|
-
NONE = 'NONE'
|
6
|
+
NONE = 'NONE'
|
5
7
|
|
6
8
|
class DuplicateEntryError < StandardError
|
7
9
|
def initialize(key)
|
@@ -19,7 +21,9 @@ module Avrolution
|
|
19
21
|
after_compatibility: nil,
|
20
22
|
logger: Avrolution.logger)
|
21
23
|
|
22
|
-
compatibility_break = Avrolution::CompatibilityBreak.new(
|
24
|
+
compatibility_break = Avrolution::CompatibilityBreak.new(
|
25
|
+
name, fingerprint, with_compatibility, after_compatibility
|
26
|
+
)
|
23
27
|
compatibility_break.validate!
|
24
28
|
|
25
29
|
compatibility_breaks = load
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'avro-resolution_canonical_form'
|
2
4
|
require 'private_attr'
|
3
5
|
require 'diffy'
|
@@ -9,11 +11,11 @@ module Avrolution
|
|
9
11
|
|
10
12
|
attr_reader :incompatible_schemas
|
11
13
|
|
12
|
-
NONE = 'NONE'
|
13
|
-
FULL = 'FULL'
|
14
|
-
BOTH = 'BOTH'
|
15
|
-
BACKWARD = 'BACKWARD'
|
16
|
-
FORWARD = 'FORWARD'
|
14
|
+
NONE = 'NONE'
|
15
|
+
FULL = 'FULL'
|
16
|
+
BOTH = 'BOTH'
|
17
|
+
BACKWARD = 'BACKWARD'
|
18
|
+
FORWARD = 'FORWARD'
|
17
19
|
|
18
20
|
private_attr_reader :schema_registry, :compatibility_breaks,
|
19
21
|
:logger
|
@@ -55,6 +57,7 @@ module Avrolution
|
|
55
57
|
|
56
58
|
logger.info("Checking compatibility: #{fullname}")
|
57
59
|
return if schema_registered?(fullname, schema)
|
60
|
+
|
58
61
|
compatible = schema_registry.compatible?(fullname, schema, 'latest')
|
59
62
|
|
60
63
|
if compatible.nil?
|
@@ -80,7 +83,9 @@ module Avrolution
|
|
80
83
|
|
81
84
|
if compatibility_break
|
82
85
|
logger.info("... Checking compatibility with level set to #{compatibility_break.with_compatibility}")
|
83
|
-
schema_registry.compatible?(
|
86
|
+
schema_registry.compatible?(
|
87
|
+
fullname, schema, 'latest', with_compatibility: compatibility_break.with_compatibility
|
88
|
+
)
|
84
89
|
else
|
85
90
|
false
|
86
91
|
end
|
@@ -104,12 +109,14 @@ module Avrolution
|
|
104
109
|
logger.info("... Compatibility with last version: #{compatibility_with_last}")
|
105
110
|
logger.info(Diffy::Diff.new(last_json, json, context: 3).to_s) unless compatibility_with_last == FULL
|
106
111
|
|
107
|
-
compatibility = schema_registry.subject_config(fullname)['compatibility'] ||
|
112
|
+
compatibility = schema_registry.subject_config(fullname)['compatibility'] ||
|
113
|
+
schema_registry.global_config['compatibility']
|
108
114
|
compatibility = FULL if compatibility == BOTH
|
109
115
|
logger.info("... Current compatibility level: #{compatibility}")
|
110
116
|
logger.info(
|
111
117
|
"\n To allow a compatibility break, run:\n" \
|
112
|
-
" rake avro:add_compatibility_break name=#{fullname} fingerprint=#{fingerprint}
|
118
|
+
" rake avro:add_compatibility_break name=#{fullname} fingerprint=#{fingerprint} " \
|
119
|
+
"with_compatibility=#{compatibility_with_last} [after_compatibility=<LEVEL>]\n"
|
113
120
|
)
|
114
121
|
end
|
115
122
|
|
@@ -1,7 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Avrolution
|
2
4
|
|
3
|
-
COMPATIBILITY = 'compatibility'
|
4
|
-
DEPLOYMENT = 'deployment'
|
5
|
+
COMPATIBILITY = 'compatibility'
|
6
|
+
DEPLOYMENT = 'deployment'
|
5
7
|
|
6
8
|
class << self
|
7
9
|
# Root directory to search for schemas, and default location for
|
@@ -35,6 +37,7 @@ module Avrolution
|
|
35
37
|
end
|
36
38
|
|
37
39
|
raise "#{env_name.downcase} must be set" if result.blank?
|
40
|
+
|
38
41
|
result
|
39
42
|
end
|
40
43
|
end
|
data/lib/avrolution/railtie.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Avrolution
|
2
4
|
class Railtie < Rails::Railtie
|
3
5
|
|
@@ -8,7 +10,7 @@ module Avrolution
|
|
8
10
|
end
|
9
11
|
|
10
12
|
rake_tasks do
|
11
|
-
load File.expand_path('
|
13
|
+
load File.expand_path('rake/rails_avrolution.rake', __dir__)
|
12
14
|
end
|
13
15
|
end
|
14
16
|
end
|
@@ -1,27 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'avrolution/rake/base_task'
|
2
4
|
|
3
5
|
module Avrolution
|
4
6
|
module Rake
|
5
7
|
class AddCompatibilityBreakTask < BaseTask
|
6
8
|
|
7
|
-
def initialize(
|
9
|
+
def initialize(**)
|
8
10
|
super
|
9
11
|
@name ||= :add_compatibility_break
|
10
|
-
@task_desc ||= 'Add an Avro schema compatibility break. Parameters: name, fingerprint,
|
12
|
+
@task_desc ||= 'Add an Avro schema compatibility break. Parameters: name, fingerprint, ' \
|
13
|
+
'with_compatibility, after_compatibility'
|
11
14
|
end
|
12
15
|
|
13
16
|
private
|
14
17
|
|
15
18
|
def perform
|
16
|
-
compatibility_break_args = ENV.to_h.slice(
|
19
|
+
compatibility_break_args = ENV.to_h.slice(
|
20
|
+
'name', 'fingerprint', 'with_compatibility', 'after_compatibility'
|
21
|
+
).symbolize_keys
|
17
22
|
|
18
|
-
missing_args =
|
23
|
+
missing_args = [:name, :fingerprint].select do |arg|
|
19
24
|
compatibility_break_args[arg].blank?
|
20
25
|
end
|
21
26
|
|
22
27
|
if missing_args.any?
|
23
28
|
puts missing_args.map { |arg| "#{arg} can't be blank" }.join(', ')
|
24
|
-
puts 'Usage: rake avro:add_compatibility_break name=<name> fingerprint=<fingerprint>
|
29
|
+
puts 'Usage: rake avro:add_compatibility_break name=<name> fingerprint=<fingerprint> ' \
|
30
|
+
'[with_compatibility=<default:NONE>] [after_compatibility=<compatibility>]'
|
25
31
|
exit(1)
|
26
32
|
end
|
27
33
|
|
@@ -1,3 +1,7 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'rake/tasklib'
|
4
|
+
|
1
5
|
module Avrolution
|
2
6
|
module Rake
|
3
7
|
class BaseTask < ::Rake::TaskLib
|
@@ -9,6 +13,7 @@ module Avrolution
|
|
9
13
|
end
|
10
14
|
|
11
15
|
def initialize(name: nil, dependencies: [])
|
16
|
+
super()
|
12
17
|
@name = name
|
13
18
|
@task_namespace = :avro
|
14
19
|
@dependencies = dependencies
|
@@ -1,10 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'avrolution/rake/base_task'
|
2
4
|
|
3
5
|
module Avrolution
|
4
6
|
module Rake
|
5
7
|
class CheckCompatibilityTask < BaseTask
|
6
8
|
|
7
|
-
def initialize(
|
9
|
+
def initialize(**)
|
8
10
|
super
|
9
11
|
@name ||= :check_compatibility
|
10
12
|
@task_desc ||= 'Check that all Avro schemas are compatible with latest registered in production'
|
@@ -1,7 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'avrolution/rake/check_compatibility_task'
|
2
4
|
require 'avrolution/rake/add_compatibility_break_task'
|
3
5
|
require 'avrolution/rake/register_schemas_task'
|
4
6
|
|
5
|
-
Avrolution::Rake::AddCompatibilityBreakTask.define(dependencies:
|
6
|
-
Avrolution::Rake::CheckCompatibilityTask.define(dependencies:
|
7
|
-
Avrolution::Rake::RegisterSchemasTask.define(dependencies:
|
7
|
+
Avrolution::Rake::AddCompatibilityBreakTask.define(dependencies: [:environment])
|
8
|
+
Avrolution::Rake::CheckCompatibilityTask.define(dependencies: [:environment])
|
9
|
+
Avrolution::Rake::RegisterSchemasTask.define(dependencies: [:environment])
|
@@ -1,10 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'avrolution/rake/base_task'
|
2
4
|
|
3
5
|
module Avrolution
|
4
6
|
module Rake
|
5
7
|
class RegisterSchemasTask < BaseTask
|
6
8
|
|
7
|
-
def initialize(
|
9
|
+
def initialize(**)
|
8
10
|
super
|
9
11
|
@name ||= :register_schemas
|
10
12
|
@task_desc ||= 'Register the specified Avro JSON schemas'
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'avro_schema_registry-client'
|
2
4
|
require 'private_attr'
|
3
5
|
require 'procto'
|
@@ -38,11 +40,15 @@ module Avrolution
|
|
38
40
|
compatibility_break = compatibility_breaks[[fullname, fingerprint]]
|
39
41
|
|
40
42
|
begin
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
43
|
+
if compatibility_break
|
44
|
+
schema_registry.register_without_lookup(
|
45
|
+
fullname,
|
46
|
+
json,
|
47
|
+
**compatibility_break.register_options
|
48
|
+
)
|
49
|
+
else
|
50
|
+
schema_registry.register_without_lookup(fullname, json)
|
51
|
+
end
|
46
52
|
rescue Excon::Error::Conflict
|
47
53
|
raise IncompatibleSchemaError.new(fullname)
|
48
54
|
end
|
data/lib/avrolution/version.rb
CHANGED
data/lib/avrolution.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: avrolution
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Salsify, Inc
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-11-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -16,72 +16,72 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '2.0'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '2.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: fakefs
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: overcommit
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
61
|
+
version: '13.0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
68
|
+
version: '13.0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: rspec
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
75
|
+
version: '3.8'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
82
|
+
version: '3.8'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
84
|
+
name: rspec-its
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - ">="
|
@@ -95,7 +95,7 @@ dependencies:
|
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
98
|
+
name: rspec_junit_formatter
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - ">="
|
@@ -108,6 +108,20 @@ dependencies:
|
|
108
108
|
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: salsify_rubocop
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 1.0.1
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 1.0.1
|
111
125
|
- !ruby/object:Gem::Dependency
|
112
126
|
name: simplecov
|
113
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -123,63 +137,63 @@ dependencies:
|
|
123
137
|
- !ruby/object:Gem::Version
|
124
138
|
version: '0'
|
125
139
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
140
|
+
name: activemodel
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|
128
142
|
requirements:
|
129
143
|
- - ">="
|
130
144
|
- !ruby/object:Gem::Version
|
131
|
-
version: 0
|
145
|
+
version: '0'
|
132
146
|
type: :runtime
|
133
147
|
prerelease: false
|
134
148
|
version_requirements: !ruby/object:Gem::Requirement
|
135
149
|
requirements:
|
136
150
|
- - ">="
|
137
151
|
- !ruby/object:Gem::Version
|
138
|
-
version: 0
|
152
|
+
version: '0'
|
139
153
|
- !ruby/object:Gem::Dependency
|
140
|
-
name:
|
154
|
+
name: activesupport
|
141
155
|
requirement: !ruby/object:Gem::Requirement
|
142
156
|
requirements:
|
143
157
|
- - ">="
|
144
158
|
- !ruby/object:Gem::Version
|
145
|
-
version: 0
|
159
|
+
version: '0'
|
146
160
|
type: :runtime
|
147
161
|
prerelease: false
|
148
162
|
version_requirements: !ruby/object:Gem::Requirement
|
149
163
|
requirements:
|
150
164
|
- - ">="
|
151
165
|
- !ruby/object:Gem::Version
|
152
|
-
version: 0
|
166
|
+
version: '0'
|
153
167
|
- !ruby/object:Gem::Dependency
|
154
|
-
name:
|
168
|
+
name: avro-resolution_canonical_form
|
155
169
|
requirement: !ruby/object:Gem::Requirement
|
156
170
|
requirements:
|
157
171
|
- - ">="
|
158
172
|
- !ruby/object:Gem::Version
|
159
|
-
version:
|
173
|
+
version: 0.2.0
|
160
174
|
type: :runtime
|
161
175
|
prerelease: false
|
162
176
|
version_requirements: !ruby/object:Gem::Requirement
|
163
177
|
requirements:
|
164
178
|
- - ">="
|
165
179
|
- !ruby/object:Gem::Version
|
166
|
-
version:
|
180
|
+
version: 0.2.0
|
167
181
|
- !ruby/object:Gem::Dependency
|
168
|
-
name:
|
182
|
+
name: avro_schema_registry-client
|
169
183
|
requirement: !ruby/object:Gem::Requirement
|
170
184
|
requirements:
|
171
185
|
- - ">="
|
172
186
|
- !ruby/object:Gem::Version
|
173
|
-
version:
|
187
|
+
version: 0.2.0
|
174
188
|
type: :runtime
|
175
189
|
prerelease: false
|
176
190
|
version_requirements: !ruby/object:Gem::Requirement
|
177
191
|
requirements:
|
178
192
|
- - ">="
|
179
193
|
- !ruby/object:Gem::Version
|
180
|
-
version:
|
194
|
+
version: 0.2.0
|
181
195
|
- !ruby/object:Gem::Dependency
|
182
|
-
name:
|
196
|
+
name: diffy
|
183
197
|
requirement: !ruby/object:Gem::Requirement
|
184
198
|
requirements:
|
185
199
|
- - ">="
|
@@ -193,7 +207,7 @@ dependencies:
|
|
193
207
|
- !ruby/object:Gem::Version
|
194
208
|
version: '0'
|
195
209
|
- !ruby/object:Gem::Dependency
|
196
|
-
name:
|
210
|
+
name: private_attr
|
197
211
|
requirement: !ruby/object:Gem::Requirement
|
198
212
|
requirements:
|
199
213
|
- - ">="
|
@@ -229,11 +243,11 @@ executables:
|
|
229
243
|
extensions: []
|
230
244
|
extra_rdoc_files: []
|
231
245
|
files:
|
246
|
+
- ".circleci/config.yml"
|
232
247
|
- ".gitignore"
|
233
248
|
- ".overcommit.yml"
|
234
249
|
- ".rspec"
|
235
250
|
- ".rubocop.yml"
|
236
|
-
- ".travis.yml"
|
237
251
|
- CHANGELOG.md
|
238
252
|
- Gemfile
|
239
253
|
- LICENSE.txt
|
@@ -262,7 +276,7 @@ licenses:
|
|
262
276
|
- MIT
|
263
277
|
metadata:
|
264
278
|
allowed_push_host: https://rubygems.org
|
265
|
-
post_install_message:
|
279
|
+
post_install_message:
|
266
280
|
rdoc_options: []
|
267
281
|
require_paths:
|
268
282
|
- lib
|
@@ -270,16 +284,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
270
284
|
requirements:
|
271
285
|
- - ">="
|
272
286
|
- !ruby/object:Gem::Version
|
273
|
-
version: '
|
287
|
+
version: '2.6'
|
274
288
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
275
289
|
requirements:
|
276
290
|
- - ">="
|
277
291
|
- !ruby/object:Gem::Version
|
278
292
|
version: '0'
|
279
293
|
requirements: []
|
280
|
-
|
281
|
-
|
282
|
-
signing_key:
|
294
|
+
rubygems_version: 3.1.4
|
295
|
+
signing_key:
|
283
296
|
specification_version: 4
|
284
297
|
summary: Support for the evolution of Avro schemas stored in a schema registry.
|
285
298
|
test_files: []
|