avrolution 0.1.0 → 0.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a77bd13e1ee60023abd3c9dc39531d825108333c
4
- data.tar.gz: 682db54c1f2ca910df08b53e5bc762a0783c198a
3
+ metadata.gz: cbf0fc83c28860289887a88b8e789f5217f2c365
4
+ data.tar.gz: 54e25410dffeb032b364f5cd0568c679b56eae5a
5
5
  SHA512:
6
- metadata.gz: 27c73ea125534233e30fef39bb25f58b82c260924071676fc38a64b88014ad31c5b9f7fb1ec7a534f0c6814750fe7d7f2ffba1982ac91de3b14168a6f89fc9db
7
- data.tar.gz: 9f3474ebff5d9d979f392865bcacaf3b17a62b93dace4953f9ab189cdc261bfe1916fc0ece516d18bb8d972d2bc1fead891ecd7d3b7806344fd623d47b8080aa
6
+ metadata.gz: 33fbbf8d76a0f753d6271d20ef08cf3dff2700f7b2b266fe4c3fb3f7e4748ae0bf529afda8411ad37b25c2460f6acf8a5bc2f0cf59191121854ae4512dcbbb7e
7
+ data.tar.gz: ad9c8d2f67de145deafb60ee1b7199bb64db193b78ccdda78c938d843b0b40441609c69c7e5a746fc8dd899aa6b0e579907ca1344b08527d881b147f46b38605
data/CHANGELOG.md CHANGED
@@ -1,4 +1,10 @@
1
1
  # avrolution
2
2
 
3
+ ## v0.2.0
4
+ - Add Rails generator to create `avro_compatibility_breaks.txt` file.
5
+ - Replace the dependency on `avromatic` with `avro_schema_registry-client`.
6
+ - Reverse the identification of BACKWARD and FORWARD compatibility levels
7
+ with the latest registered version.
8
+
3
9
  ## v0.1.0
4
10
  - Add rake task to check the compatibility of schemas against a schema registry.
data/README.md CHANGED
@@ -24,6 +24,11 @@ Or install it yourself as:
24
24
 
25
25
  $ gem install avrolution
26
26
 
27
+ Within a Rails project, create an `avro_compatibility_breaks.txt` file at
28
+ `Rails.root` by running:
29
+
30
+ $ rails generate avrolution:install
31
+
27
32
  ## Configuration
28
33
 
29
34
  The gem supports the following configuration:
data/avrolution.gemspec CHANGED
@@ -36,7 +36,7 @@ Gem::Specification.new do |spec|
36
36
  spec.add_development_dependency 'simplecov'
37
37
 
38
38
  spec.add_runtime_dependency 'avro-salsify-fork', '1.9.0.5'
39
- spec.add_runtime_dependency 'avromatic', '0.21.0.rc0' # TODO
39
+ spec.add_runtime_dependency 'avro_schema_registry-client'
40
40
  spec.add_runtime_dependency 'diffy'
41
41
  spec.add_runtime_dependency 'private_attr'
42
42
  spec.add_runtime_dependency 'activesupport'
@@ -1,6 +1,7 @@
1
+ require 'avro-resolution_canonical_form'
1
2
  require 'private_attr'
2
3
  require 'diffy'
3
- require 'avromatic/schema_registry_patch'
4
+ require 'avro_schema_registry-client'
4
5
 
5
6
  module Avrolution
6
7
  class CompatibilityCheck
@@ -77,8 +78,8 @@ module Avrolution
77
78
  def report_incompatibility(json, schema, fullname, fingerprint)
78
79
  last_json = schema_registry.subject_version(fullname)['schema']
79
80
  last_schema = Avro::Schema.parse(last_json)
80
- backward = last_schema.read?(schema)
81
- forward = schema.read?(last_schema)
81
+ backward = schema.read?(last_schema)
82
+ forward = last_schema.read?(schema)
82
83
  compatibility_with_last = if backward && forward
83
84
  FULL
84
85
  elsif backward
@@ -101,8 +102,8 @@ module Avrolution
101
102
  end
102
103
 
103
104
  def build_schema_registry
104
- AvroTurf::ConfluentSchemaRegistry.new(Avrolution.compatibility_schema_registry_url,
105
- logger: Avrolution.logger)
105
+ AvroSchemaRegistry::Client.new(Avrolution.compatibility_schema_registry_url,
106
+ logger: Avrolution.logger)
106
107
  end
107
108
  end
108
109
  end
@@ -1,3 +1,3 @@
1
1
  module Avrolution
2
- VERSION = '0.1.0'.freeze
2
+ VERSION = '0.2.0'.freeze
3
3
  end
@@ -0,0 +1,11 @@
1
+ require 'rails/generators/base'
2
+
3
+ module Avrolution
4
+ class InstallGenerator < Rails::Generators::Base
5
+ source_paths << File.join(__dir__, 'templates')
6
+
7
+ def create_compatibility_breaks_file
8
+ copy_file('avro_compatibility_breaks.txt')
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,20 @@
1
+ # This file is used to declare compatibility breaks for Avro JSON schemas.
2
+ # It is consulted when running the avro:check_compatibility rake task
3
+ # and during the deployment of new schema versions.
4
+ #
5
+ # Entries in the file have the following format:
6
+ #
7
+ # name fingerprint [with_compatibility] [after_compatibility]
8
+ #
9
+ # name: The full name of the schema, including namespace.
10
+ #
11
+ # fingerprint: The SHA256 resolution fingerprint for the schema in hex.
12
+ #
13
+ # with_compatibility: The compatibility level to check against, and the level
14
+ # to use during deployment. Defaults to NONE.
15
+ #
16
+ # after_compatibility: Optional compatibility level to set after a new schema
17
+ # version is deployed.
18
+ #
19
+ # See https://github.com/salisfy/avrolution for more information.
20
+
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.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Salsify, Inc
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-04-05 00:00:00.000000000 Z
11
+ date: 2017-04-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -123,19 +123,19 @@ dependencies:
123
123
  - !ruby/object:Gem::Version
124
124
  version: 1.9.0.5
125
125
  - !ruby/object:Gem::Dependency
126
- name: avromatic
126
+ name: avro_schema_registry-client
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - '='
129
+ - - ">="
130
130
  - !ruby/object:Gem::Version
131
- version: 0.21.0.rc0
131
+ version: '0'
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - '='
136
+ - - ">="
137
137
  - !ruby/object:Gem::Version
138
- version: 0.21.0.rc0
138
+ version: '0'
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: diffy
141
141
  requirement: !ruby/object:Gem::Requirement
@@ -225,6 +225,8 @@ files:
225
225
  - lib/avrolution/rake/check_compatibility_task.rb
226
226
  - lib/avrolution/rake/rails_avrolution.rake
227
227
  - lib/avrolution/version.rb
228
+ - lib/generators/avrolution/install_generator.rb
229
+ - lib/generators/avrolution/templates/avro_compatibility_breaks.txt
228
230
  homepage: https://github.com/salsify/avrolution
229
231
  licenses:
230
232
  - MIT