avrolution 0.7.2 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.circleci/config.yml +12 -11
- data/.github/CODEOWNERS +1 -0
- data/.rubocop.yml +1 -1
- data/CHANGELOG.md +8 -0
- data/README.md +18 -0
- data/avrolution.gemspec +7 -4
- data/lib/avrolution/compatibility_check.rb +1 -4
- data/lib/avrolution/discover_schemas.rb +12 -0
- data/lib/avrolution/rake/rails_avrolution.rake +2 -0
- data/lib/avrolution/rake/register_all_schemas_task.rb +29 -0
- data/lib/avrolution/version.rb +1 -1
- data/lib/avrolution.rb +1 -0
- metadata +29 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 80fc2f8ce1e35eb68aa06fe4172a56c6bdd78d759a20dfc8d0d5537a66c2929f
|
4
|
+
data.tar.gz: 11e3e8adcfa4a48723cb56e12b4057bf85747f037fd6860cc58a1a01771740a9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f151058641e61ca2446f5bb15cc84f413baa26fbdfb9aef3efb7136299c4e64dafeb59958003a183c5aec3c1bd297b01bbdba8d303ab336a0dda5f19a0aa481b
|
7
|
+
data.tar.gz: 96624556c6e65cf0d3f32d1a165ae1fd47363a1c701e1a85b5c851059d1a8feeb5e4a441c255278f0b70df2878cc6d3b12b4aa35865b6efb0e3c2504ec09d099
|
data/.circleci/config.yml
CHANGED
@@ -2,14 +2,14 @@ version: 2.1
|
|
2
2
|
jobs:
|
3
3
|
lint:
|
4
4
|
docker:
|
5
|
-
- image: salsify/ruby_ci:2.
|
6
|
-
working_directory: ~/
|
5
|
+
- image: salsify/ruby_ci:2.7.7
|
6
|
+
working_directory: ~/avrolution
|
7
7
|
steps:
|
8
8
|
- checkout
|
9
9
|
- restore_cache:
|
10
10
|
keys:
|
11
|
-
- v2-gems-ruby-2.
|
12
|
-
- v2-gems-ruby-2.
|
11
|
+
- v2-gems-ruby-2.7.7-{{ checksum "avrolution.gemspec" }}-{{ checksum "Gemfile" }}
|
12
|
+
- v2-gems-ruby-2.7.7-
|
13
13
|
- run:
|
14
14
|
name: Install Gems
|
15
15
|
command: |
|
@@ -18,7 +18,7 @@ jobs:
|
|
18
18
|
bundle clean
|
19
19
|
fi
|
20
20
|
- save_cache:
|
21
|
-
key: v2-gems-ruby-2.
|
21
|
+
key: v2-gems-ruby-2.7.7-{{ checksum "avrolution.gemspec" }}-{{ checksum "Gemfile" }}
|
22
22
|
paths:
|
23
23
|
- "vendor/bundle"
|
24
24
|
- "gemfiles/vendor/bundle"
|
@@ -33,12 +33,12 @@ jobs:
|
|
33
33
|
- image: salsify/ruby_ci:<< parameters.ruby-version >>
|
34
34
|
environment:
|
35
35
|
CIRCLE_TEST_REPORTS: "test-results"
|
36
|
-
working_directory: ~/
|
36
|
+
working_directory: ~/avrolution
|
37
37
|
steps:
|
38
38
|
- checkout
|
39
39
|
- restore_cache:
|
40
40
|
keys:
|
41
|
-
- v2-gems-ruby-<< parameters.ruby-version >>-{{ checksum "
|
41
|
+
- v2-gems-ruby-<< parameters.ruby-version >>-{{ checksum "avrolution.gemspec" }}-{{ checksum "Gemfile" }}
|
42
42
|
- v2-gems-ruby-<< parameters.ruby-version >>-
|
43
43
|
- run:
|
44
44
|
name: Install Gems
|
@@ -48,7 +48,7 @@ jobs:
|
|
48
48
|
bundle clean
|
49
49
|
fi
|
50
50
|
- save_cache:
|
51
|
-
key: v2-gems-ruby-<< parameters.ruby-version >>-{{ checksum "
|
51
|
+
key: v2-gems-ruby-<< parameters.ruby-version >>-{{ checksum "avrolution.gemspec" }}-{{ checksum "Gemfile" }}
|
52
52
|
paths:
|
53
53
|
- "vendor/bundle"
|
54
54
|
- "gemfiles/vendor/bundle"
|
@@ -66,6 +66,7 @@ workflows:
|
|
66
66
|
matrix:
|
67
67
|
parameters:
|
68
68
|
ruby-version:
|
69
|
-
- "2.
|
70
|
-
- "
|
71
|
-
- "3.
|
69
|
+
- "2.7.7"
|
70
|
+
- "3.0.5"
|
71
|
+
- "3.1.3"
|
72
|
+
- "3.2.0"
|
data/.github/CODEOWNERS
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
* @jturkel @tjwp
|
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
# avrolution
|
2
2
|
|
3
|
+
## v0.9.0
|
4
|
+
- Add support for Ruby 3.2.
|
5
|
+
- Drop support for Ruby 2.6.
|
6
|
+
-
|
7
|
+
## v0.8.0
|
8
|
+
- Added the ability to register all schemas found under `Avrolution.root` with the task
|
9
|
+
`rake avro:register_all_schemas`.
|
10
|
+
|
3
11
|
## v0.7.2
|
4
12
|
- Fix a bug related to Ruby 3.0 keyword arguments in
|
5
13
|
AvroSchemaRegistry::Client#register_without_lookup.
|
data/README.md
CHANGED
@@ -106,6 +106,24 @@ require 'avroluation/rake/register_schemas_task'
|
|
106
106
|
Avrolution::Rake::RegisterSchemasTask.define
|
107
107
|
```
|
108
108
|
|
109
|
+
### Avro Register All Schemas Rake Task
|
110
|
+
|
111
|
+
This rake task allows you to register all schemas discovered under `Avrolution.root`.
|
112
|
+
|
113
|
+
Similarly to the task `avro:register_schemas`, it will register them against the configured
|
114
|
+
registry. Additionally, this task will be auto included for Rails applications.
|
115
|
+
|
116
|
+
```bash
|
117
|
+
rake avro:register_all_schemas
|
118
|
+
```
|
119
|
+
|
120
|
+
For non-Rails projects, tasks can be defined as:
|
121
|
+
|
122
|
+
```ruby
|
123
|
+
require 'avroluation/rake/register_all_schemas_task'
|
124
|
+
Avrolution::Rake::RegisterAllSchemasTask.define
|
125
|
+
```
|
126
|
+
|
109
127
|
### Avro Add Compatibility Break Rake Task
|
110
128
|
|
111
129
|
There is a rake task add an entry to the `Avrolution.compatibility_breaks_file`.
|
data/avrolution.gemspec
CHANGED
@@ -19,24 +19,27 @@ Gem::Specification.new do |spec|
|
|
19
19
|
# Set 'allowed_push_post' to control where this gem can be published.
|
20
20
|
if spec.respond_to?(:metadata)
|
21
21
|
spec.metadata['allowed_push_host'] = 'https://rubygems.org'
|
22
|
+
spec.metadata['rubygems_mfa_required'] = 'true'
|
22
23
|
else
|
23
24
|
raise 'RubyGems 2.0 or newer is required to protect against public gem pushes.'
|
24
25
|
end
|
25
26
|
|
26
27
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
27
|
-
spec.bindir = '
|
28
|
-
spec.executables = spec.files.grep(%r{^
|
28
|
+
spec.bindir = 'exe'
|
29
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
29
30
|
spec.require_paths = ['lib']
|
30
31
|
|
31
|
-
spec.required_ruby_version = '>= 2.
|
32
|
+
spec.required_ruby_version = '>= 2.7'
|
32
33
|
|
33
34
|
spec.add_development_dependency 'bundler', '~> 2.0'
|
34
35
|
spec.add_development_dependency 'fakefs'
|
35
36
|
spec.add_development_dependency 'overcommit'
|
36
37
|
spec.add_development_dependency 'rake', '~> 13.0'
|
37
|
-
spec.add_development_dependency 'rspec', '~> 3.
|
38
|
+
spec.add_development_dependency 'rspec', '~> 3.12'
|
38
39
|
spec.add_development_dependency 'rspec-its'
|
39
40
|
spec.add_development_dependency 'rspec_junit_formatter'
|
41
|
+
# rspec-mocks 3.12.2+ is required for Ruby 3.2.0 support
|
42
|
+
spec.add_development_dependency 'rspec-mocks', '>= 3.12.2'
|
40
43
|
spec.add_development_dependency 'salsify_rubocop', '~> 1.0.1'
|
41
44
|
spec.add_development_dependency 'simplecov'
|
42
45
|
|
@@ -39,10 +39,7 @@ module Avrolution
|
|
39
39
|
private
|
40
40
|
|
41
41
|
def check_schemas(path)
|
42
|
-
|
43
|
-
Dir[File.join(path, '**/*.avsc')].reject do |file|
|
44
|
-
file.start_with?(vendor_bundle_path)
|
45
|
-
end.each do |schema_file|
|
42
|
+
Avrolution::DiscoverSchemas.discover(path).each do |schema_file|
|
46
43
|
check_schema_compatibility(schema_file)
|
47
44
|
end
|
48
45
|
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Avrolution
|
4
|
+
class DiscoverSchemas
|
5
|
+
def self.discover(path)
|
6
|
+
vendor_bundle_path = File.join(path, 'vendor/bundle/')
|
7
|
+
Dir[File.join(path, '**/*.avsc')].reject do |file|
|
8
|
+
file.start_with?(vendor_bundle_path)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -2,8 +2,10 @@
|
|
2
2
|
|
3
3
|
require 'avrolution/rake/check_compatibility_task'
|
4
4
|
require 'avrolution/rake/add_compatibility_break_task'
|
5
|
+
require 'avrolution/rake/register_all_schemas_task'
|
5
6
|
require 'avrolution/rake/register_schemas_task'
|
6
7
|
|
7
8
|
Avrolution::Rake::AddCompatibilityBreakTask.define(dependencies: [:environment])
|
8
9
|
Avrolution::Rake::CheckCompatibilityTask.define(dependencies: [:environment])
|
10
|
+
Avrolution::Rake::RegisterAllSchemasTask.define(dependencies: [:environment])
|
9
11
|
Avrolution::Rake::RegisterSchemasTask.define(dependencies: [:environment])
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avrolution/rake/base_task'
|
4
|
+
|
5
|
+
module Avrolution
|
6
|
+
module Rake
|
7
|
+
class RegisterAllSchemasTask < BaseTask
|
8
|
+
|
9
|
+
def initialize(**)
|
10
|
+
super
|
11
|
+
@name ||= :register_all_schemas
|
12
|
+
@task_desc ||= 'Register all discovered Avro JSON schemas (using Avrolution.root)'
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
def perform
|
18
|
+
schemas = Avrolution::DiscoverSchemas.discover(Avrolution.root)
|
19
|
+
|
20
|
+
if schemas.blank?
|
21
|
+
puts 'could not find any schemas'
|
22
|
+
exit(1)
|
23
|
+
else
|
24
|
+
Avrolution::RegisterSchemas.call(schemas)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
data/lib/avrolution/version.rb
CHANGED
data/lib/avrolution.rb
CHANGED
@@ -17,6 +17,7 @@ require 'avrolution/configuration'
|
|
17
17
|
require 'avrolution/compatibility_break'
|
18
18
|
require 'avrolution/compatibility_breaks_file'
|
19
19
|
require 'avrolution/compatibility_check'
|
20
|
+
require 'avrolution/discover_schemas'
|
20
21
|
require 'avrolution/register_schemas'
|
21
22
|
|
22
23
|
require 'avrolution/railtie' if defined?(Rails)
|
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.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Salsify, Inc
|
8
|
-
autorequire:
|
9
|
-
bindir:
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-01-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -72,14 +72,14 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '3.
|
75
|
+
version: '3.12'
|
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: '3.
|
82
|
+
version: '3.12'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: rspec-its
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -108,6 +108,20 @@ dependencies:
|
|
108
108
|
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: rspec-mocks
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 3.12.2
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 3.12.2
|
111
125
|
- !ruby/object:Gem::Dependency
|
112
126
|
name: salsify_rubocop
|
113
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -237,13 +251,12 @@ dependencies:
|
|
237
251
|
description: Support for the evolution of Avro schemas stored in a schema registry.
|
238
252
|
email:
|
239
253
|
- engineering@salsify.com
|
240
|
-
executables:
|
241
|
-
- console
|
242
|
-
- setup
|
254
|
+
executables: []
|
243
255
|
extensions: []
|
244
256
|
extra_rdoc_files: []
|
245
257
|
files:
|
246
258
|
- ".circleci/config.yml"
|
259
|
+
- ".github/CODEOWNERS"
|
247
260
|
- ".gitignore"
|
248
261
|
- ".overcommit.yml"
|
249
262
|
- ".rspec"
|
@@ -261,11 +274,13 @@ files:
|
|
261
274
|
- lib/avrolution/compatibility_breaks_file.rb
|
262
275
|
- lib/avrolution/compatibility_check.rb
|
263
276
|
- lib/avrolution/configuration.rb
|
277
|
+
- lib/avrolution/discover_schemas.rb
|
264
278
|
- lib/avrolution/railtie.rb
|
265
279
|
- lib/avrolution/rake/add_compatibility_break_task.rb
|
266
280
|
- lib/avrolution/rake/base_task.rb
|
267
281
|
- lib/avrolution/rake/check_compatibility_task.rb
|
268
282
|
- lib/avrolution/rake/rails_avrolution.rake
|
283
|
+
- lib/avrolution/rake/register_all_schemas_task.rb
|
269
284
|
- lib/avrolution/rake/register_schemas_task.rb
|
270
285
|
- lib/avrolution/register_schemas.rb
|
271
286
|
- lib/avrolution/version.rb
|
@@ -276,7 +291,8 @@ licenses:
|
|
276
291
|
- MIT
|
277
292
|
metadata:
|
278
293
|
allowed_push_host: https://rubygems.org
|
279
|
-
|
294
|
+
rubygems_mfa_required: 'true'
|
295
|
+
post_install_message:
|
280
296
|
rdoc_options: []
|
281
297
|
require_paths:
|
282
298
|
- lib
|
@@ -284,15 +300,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
284
300
|
requirements:
|
285
301
|
- - ">="
|
286
302
|
- !ruby/object:Gem::Version
|
287
|
-
version: '2.
|
303
|
+
version: '2.7'
|
288
304
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
289
305
|
requirements:
|
290
306
|
- - ">="
|
291
307
|
- !ruby/object:Gem::Version
|
292
308
|
version: '0'
|
293
309
|
requirements: []
|
294
|
-
rubygems_version: 3.
|
295
|
-
signing_key:
|
310
|
+
rubygems_version: 3.3.7
|
311
|
+
signing_key:
|
296
312
|
specification_version: 4
|
297
313
|
summary: Support for the evolution of Avro schemas stored in a schema registry.
|
298
314
|
test_files: []
|