pronto-rails_migrations_annotated 0.0.5 → 0.0.6
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/Gemfile.lock +23 -22
- data/lib/pronto/rails_migrations_annotated/version.rb +1 -1
- data/lib/pronto/rails_migrations_annotated.rb +19 -2
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 89475a6adfbe75efa5ddedde4bf3a3903fa0af08a785d87a879e41f1cee58736
|
|
4
|
+
data.tar.gz: 19a2822864b7098ea985950b20a25980fc8ef4139d82172a6734eea1041941fc
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5a945a8d9e39a13b05826b34766efbdd634ce3529f7e937987e78933152d3fa1e9752df40debc0f82d83664a703c389df33975617009c9bb601c11bbb5e4eb50
|
|
7
|
+
data.tar.gz: 123f8d704e85d0748e1abea9d2bcc491fd2d2d788a4f18fddbe6e7a0a68fe1fc30212c13725e3fa0b5936d6b428657e92871990f92f767a40802ff4e4b96d5ac
|
data/Gemfile.lock
CHANGED
|
@@ -1,45 +1,45 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
pronto-rails_migrations_annotated (0.0.
|
|
4
|
+
pronto-rails_migrations_annotated (0.0.6)
|
|
5
5
|
pronto (~> 0.11)
|
|
6
6
|
|
|
7
7
|
GEM
|
|
8
8
|
remote: https://rubygems.org/
|
|
9
9
|
specs:
|
|
10
|
-
addressable (2.8.
|
|
10
|
+
addressable (2.8.6)
|
|
11
11
|
public_suffix (>= 2.0.2, < 6.0)
|
|
12
12
|
ast (2.4.2)
|
|
13
13
|
diff-lcs (1.4.4)
|
|
14
|
-
faraday (2.
|
|
15
|
-
faraday-net_http (>= 2.0, < 3.
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
faraday (2.9.0)
|
|
15
|
+
faraday-net_http (>= 2.0, < 3.2)
|
|
16
|
+
faraday-net_http (3.1.0)
|
|
17
|
+
net-http
|
|
18
18
|
gitlab (4.19.0)
|
|
19
19
|
httparty (~> 0.20)
|
|
20
20
|
terminal-table (>= 1.5.1)
|
|
21
|
-
httparty (0.
|
|
22
|
-
|
|
21
|
+
httparty (0.21.0)
|
|
22
|
+
mini_mime (>= 1.0.0)
|
|
23
23
|
multi_xml (>= 0.5.2)
|
|
24
|
-
|
|
25
|
-
mime-types-data (~> 3.2015)
|
|
26
|
-
mime-types-data (3.2022.0105)
|
|
24
|
+
mini_mime (1.1.5)
|
|
27
25
|
multi_xml (0.6.0)
|
|
28
|
-
|
|
26
|
+
net-http (0.4.1)
|
|
27
|
+
uri
|
|
28
|
+
octokit (7.2.0)
|
|
29
29
|
faraday (>= 1, < 3)
|
|
30
30
|
sawyer (~> 0.9)
|
|
31
31
|
parallel (1.21.0)
|
|
32
32
|
parser (3.0.2.0)
|
|
33
33
|
ast (~> 2.4.1)
|
|
34
|
-
pronto (0.11.
|
|
35
|
-
gitlab (
|
|
36
|
-
httparty (>= 0.13.7)
|
|
37
|
-
octokit (
|
|
34
|
+
pronto (0.11.2)
|
|
35
|
+
gitlab (>= 4.4.0, < 5.0)
|
|
36
|
+
httparty (>= 0.13.7, < 1.0)
|
|
37
|
+
octokit (>= 4.7.0, < 8.0)
|
|
38
38
|
rainbow (>= 2.2, < 4.0)
|
|
39
|
-
rexml (
|
|
40
|
-
rugged (>= 0.23.0, <
|
|
39
|
+
rexml (>= 3.2.5, < 4.0)
|
|
40
|
+
rugged (>= 0.23.0, < 2.0)
|
|
41
41
|
thor (>= 0.20.3, < 2.0)
|
|
42
|
-
public_suffix (5.0.
|
|
42
|
+
public_suffix (5.0.4)
|
|
43
43
|
rainbow (3.0.0)
|
|
44
44
|
rake (13.0.6)
|
|
45
45
|
regexp_parser (2.1.1)
|
|
@@ -76,17 +76,18 @@ GEM
|
|
|
76
76
|
rubocop-rspec (2.6.0)
|
|
77
77
|
rubocop (~> 1.19)
|
|
78
78
|
ruby-progressbar (1.11.0)
|
|
79
|
-
|
|
80
|
-
rugged (1.0.1)
|
|
79
|
+
rugged (1.7.1)
|
|
81
80
|
sawyer (0.9.2)
|
|
82
81
|
addressable (>= 2.3.5)
|
|
83
82
|
faraday (>= 0.17.3, < 3)
|
|
84
83
|
terminal-table (3.0.2)
|
|
85
84
|
unicode-display_width (>= 1.1.1, < 3)
|
|
86
|
-
thor (1.
|
|
85
|
+
thor (1.3.0)
|
|
87
86
|
unicode-display_width (1.8.0)
|
|
87
|
+
uri (0.13.0)
|
|
88
88
|
|
|
89
89
|
PLATFORMS
|
|
90
|
+
arm64-darwin-22
|
|
90
91
|
x86_64-darwin-21
|
|
91
92
|
|
|
92
93
|
DEPENDENCIES
|
|
@@ -25,7 +25,9 @@ module Pronto
|
|
|
25
25
|
private
|
|
26
26
|
|
|
27
27
|
def add_message_at_patch(patches, message, level = :warning, line: :first)
|
|
28
|
-
patches = [patches] unless patches.is_a?(Array)
|
|
28
|
+
patches = [patches].compact unless patches.is_a?(Array)
|
|
29
|
+
raise "Patch not found for message (#{message.inspect})" if patches.empty?
|
|
30
|
+
|
|
29
31
|
patches.each do |patch|
|
|
30
32
|
target_line = case line
|
|
31
33
|
when :first then patch.added_lines.first || patch.lines.first
|
|
@@ -122,7 +124,7 @@ module Pronto
|
|
|
122
124
|
"Migration #{wrong_version} is missing from structure.sql", :error)
|
|
123
125
|
end
|
|
124
126
|
|
|
125
|
-
return if structure_patches.any? || found_missing_migration
|
|
127
|
+
return if structure_patches.any? || found_missing_migration || migration_patches.none?
|
|
126
128
|
|
|
127
129
|
add_message_at_patch(migration_patches, "Migration file detected, but no changes in structure.sql")
|
|
128
130
|
end
|
|
@@ -150,8 +152,23 @@ module Pronto
|
|
|
150
152
|
|
|
151
153
|
def check_structure_versions_sorted(versions_from_schema)
|
|
152
154
|
return if versions_from_schema == versions_from_schema.sort
|
|
155
|
+
return if versions_from_schema == versions_from_schema.sort.reverse
|
|
156
|
+
|
|
157
|
+
# guess sort order by lower offending migrations count
|
|
158
|
+
offending = [
|
|
159
|
+
versions_from_schema.each_cons(2).select { |(a, b)| a > b }, # if ascending
|
|
160
|
+
versions_from_schema.each_cons(2).select { |(a, b)| a < b } # if sort is desc
|
|
161
|
+
].min_by(&:size).flat_map { |pair| pair.map { |line| line.gsub(/[^0-9]+/, "") } }
|
|
162
|
+
|
|
163
|
+
if structure_patches.none?
|
|
164
|
+
puts "WARNING: structure.sql migrations are not sorted (not in changes, offending #{offending.join(', ')})"
|
|
165
|
+
return
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
offending_regex = Regexp.union(offending)
|
|
153
169
|
|
|
154
170
|
add_message_at_patch(
|
|
171
|
+
structure_patches.first { |patch| patch.lines.any? { |line| line.content.match?(offending_regex) } } ||
|
|
155
172
|
structure_patches.first { |patch| patch.lines.any? { |line| line.content.match?(migration_line_regex) } },
|
|
156
173
|
"Migration versions must be sorted and have correct syntax"
|
|
157
174
|
)
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: pronto-rails_migrations_annotated
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.6
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Vasily Fedoseyev
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2024-02-05 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: pronto
|
|
@@ -64,7 +64,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
64
64
|
- !ruby/object:Gem::Version
|
|
65
65
|
version: '0'
|
|
66
66
|
requirements: []
|
|
67
|
-
rubygems_version: 3.
|
|
67
|
+
rubygems_version: 3.4.10
|
|
68
68
|
signing_key:
|
|
69
69
|
specification_version: 4
|
|
70
70
|
summary: Pronto runner to check rails migrations to be separate from other code, but
|