ast-merge 7.1.12 → 7.1.14
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
- checksums.yaml.gz.sig +0 -0
- data/lib/ast/merge/rspec/shared_examples/provider_conformance.rb +15 -0
- data/lib/ast/merge/version.rb +1 -1
- data/lib/ast/merge.rb +38 -1
- data/sig/ast/merge.rbs +7 -0
- data.tar.gz.sig +0 -0
- metadata +14 -14
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ad016b2d5303860cde60c63a4f3aa25f4bb35faa93e2924c862d37c04d7f6461
|
|
4
|
+
data.tar.gz: 4bf2a8995227c3d6b2642c34fcbffe160736ee203e874331c78a3597124551a5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: cbd41051a3938fbf0631bc28aef7fd86ae88aefbdb961e9af2f17b76f081e6683d821d134824d8fd84c9c581f5c8cb82584bf8aae13ece9cd805c6bed83cbd39
|
|
7
|
+
data.tar.gz: 865e8aea5653ba1a2f412933299d0310db9f2425c15b692ea85967694c909392289ebfbaf88a974926fc1fc125e43f26053e93ec70703cae5bb39b6c1e1af62e
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
|
@@ -2,6 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
# rubocop:disable Metrics/BlockLength -- complete executable provider contract is intentionally shared
|
|
4
4
|
RSpec.shared_examples 'Ast::Merge::ProviderConformance' do
|
|
5
|
+
def skip_for_tslp_backend
|
|
6
|
+
return unless %w[tslp kreuzberg-language-pack].include?(provider_conformance.fetch(:backend).to_s)
|
|
7
|
+
|
|
8
|
+
skip_for(
|
|
9
|
+
engine: 'ruby',
|
|
10
|
+
versions: 'head',
|
|
11
|
+
reason: 'Ruby head is permanently unsupported by ' \
|
|
12
|
+
"tree_sitter_language_pack's released-ABI-only native gem policy"
|
|
13
|
+
)
|
|
14
|
+
end
|
|
15
|
+
|
|
5
16
|
let(:provider_capabilities) { provider.capabilities }
|
|
6
17
|
let(:provider_selectors) do
|
|
7
18
|
{
|
|
@@ -31,6 +42,7 @@ RSpec.shared_examples 'Ast::Merge::ProviderConformance' do
|
|
|
31
42
|
end
|
|
32
43
|
|
|
33
44
|
it 'executes every advertised operation with its required source roles' do
|
|
45
|
+
skip_for_tslp_backend
|
|
34
46
|
provider_conformance.fetch(:requests).each do |operation, request|
|
|
35
47
|
result = Ast::Merge.dispatch_provider(operation, provider_selectors.merge(request))
|
|
36
48
|
|
|
@@ -53,6 +65,7 @@ RSpec.shared_examples 'Ast::Merge::ProviderConformance' do
|
|
|
53
65
|
end
|
|
54
66
|
|
|
55
67
|
it 'reports a source-role parse diagnostic' do
|
|
68
|
+
skip_for_tslp_backend if provider_conformance[:invalid_merge3]
|
|
56
69
|
if provider_conformance[:invalid_merge3]
|
|
57
70
|
invalid = provider_conformance.fetch(:invalid_merge3)
|
|
58
71
|
result = Ast::Merge.dispatch_provider(:merge3, provider_selectors.merge(invalid))
|
|
@@ -65,6 +78,7 @@ RSpec.shared_examples 'Ast::Merge::ProviderConformance' do
|
|
|
65
78
|
end
|
|
66
79
|
|
|
67
80
|
it 'uses the base in an adversarial merge3 that merge2 substitution gets wrong' do
|
|
81
|
+
skip_for_tslp_backend
|
|
68
82
|
adversarial = provider_conformance.fetch(:base_adversarial_merge3)
|
|
69
83
|
proof = Ast::Merge::RSpec::ProviderConformance.new(
|
|
70
84
|
provider: provider,
|
|
@@ -80,6 +94,7 @@ RSpec.shared_examples 'Ast::Merge::ProviderConformance' do
|
|
|
80
94
|
end
|
|
81
95
|
|
|
82
96
|
it 'reports source preservation, synthesis, reparsing, and semantic verification' do
|
|
97
|
+
skip_for_tslp_backend if provider_conformance[:synthesized_merge3]
|
|
83
98
|
if provider_conformance[:synthesized_merge3]
|
|
84
99
|
synthesis = provider_conformance.fetch(:synthesized_merge3)
|
|
85
100
|
result = Ast::Merge.dispatch_provider(:merge3, provider_selectors.merge(synthesis.fetch(:request)))
|
data/lib/ast/merge/version.rb
CHANGED
|
@@ -5,7 +5,7 @@ module Ast
|
|
|
5
5
|
# Version namespace for this gem.
|
|
6
6
|
module Version
|
|
7
7
|
# Current gem version.
|
|
8
|
-
VERSION = '7.1.
|
|
8
|
+
VERSION = '7.1.14'
|
|
9
9
|
end
|
|
10
10
|
# Current gem version exposed at the traditional constant location.
|
|
11
11
|
VERSION = Version::VERSION # Traditional Constant Location
|
data/lib/ast/merge.rb
CHANGED
|
@@ -15,7 +15,44 @@ module Ast
|
|
|
15
15
|
MERGE_ENGINE_ENVIRONMENT_VARIABLE = 'SMORG_MERGE_ENGINE'
|
|
16
16
|
TEMPLATE_TOKEN_CONFIG = Token::Resolver::Config.new(separators: ['|', ':']).freeze
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
# Base exception contract for concise user output and complete diagnostics.
|
|
19
|
+
# Ruby's exception cause chain remains the source of truth for wrapped failures.
|
|
20
|
+
class Error < StandardError
|
|
21
|
+
attr_reader :summary, :context
|
|
22
|
+
|
|
23
|
+
def initialize(message = nil, summary: nil, context: {})
|
|
24
|
+
super(summary || message)
|
|
25
|
+
@summary = (summary || message || self.class.name).to_s
|
|
26
|
+
@context = context.to_h.freeze
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# Raise this error class while preserving the original exception as Ruby's cause.
|
|
30
|
+
def self.raise_with_cause(summary, cause:, context: {})
|
|
31
|
+
raise new(summary, context: context), cause: cause
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# Structured exception and cause data for logs or verbose output.
|
|
35
|
+
def diagnostic_chain
|
|
36
|
+
exception = self
|
|
37
|
+
chain = []
|
|
38
|
+
while exception
|
|
39
|
+
chain << {
|
|
40
|
+
class: exception.class.name,
|
|
41
|
+
message: exception.message,
|
|
42
|
+
backtrace: exception.backtrace || []
|
|
43
|
+
}.freeze
|
|
44
|
+
exception = exception.cause
|
|
45
|
+
end
|
|
46
|
+
chain.freeze
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def render_diagnostic
|
|
50
|
+
diagnostic_chain.map do |entry|
|
|
51
|
+
lines = entry[:backtrace]
|
|
52
|
+
["#{entry[:class]}: #{entry[:message]}", *lines.map { |line| " from #{line}" }].join("\n")
|
|
53
|
+
end.join("\nCaused by: ")
|
|
54
|
+
end
|
|
55
|
+
end
|
|
19
56
|
|
|
20
57
|
class ParseError < Error
|
|
21
58
|
attr_reader :errors, :content
|
data/sig/ast/merge.rbs
CHANGED
|
@@ -16,6 +16,13 @@ module Ast
|
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
class Error < StandardError
|
|
19
|
+
attr_reader summary: String
|
|
20
|
+
attr_reader context: Hash[Symbol, untyped]
|
|
21
|
+
|
|
22
|
+
def initialize: (?String message, ?summary: String?, ?context: Hash[Symbol, untyped]) -> void
|
|
23
|
+
def self.raise_with_cause: (String summary, cause: Exception, ?context: Hash[Symbol, untyped]) -> bot
|
|
24
|
+
def diagnostic_chain: () -> Array[Hash[Symbol, untyped]]
|
|
25
|
+
def render_diagnostic: () -> String
|
|
19
26
|
end
|
|
20
27
|
|
|
21
28
|
module PortableBenchmarkContract
|
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ast-merge
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 7.1.
|
|
4
|
+
version: 7.1.14
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Peter H. Boling
|
|
@@ -77,14 +77,14 @@ dependencies:
|
|
|
77
77
|
requirements:
|
|
78
78
|
- - '='
|
|
79
79
|
- !ruby/object:Gem::Version
|
|
80
|
-
version: 7.1.
|
|
80
|
+
version: 7.1.14
|
|
81
81
|
type: :runtime
|
|
82
82
|
prerelease: false
|
|
83
83
|
version_requirements: !ruby/object:Gem::Requirement
|
|
84
84
|
requirements:
|
|
85
85
|
- - '='
|
|
86
86
|
- !ruby/object:Gem::Version
|
|
87
|
-
version: 7.1.
|
|
87
|
+
version: 7.1.14
|
|
88
88
|
- !ruby/object:Gem::Dependency
|
|
89
89
|
name: version_gem
|
|
90
90
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -114,7 +114,7 @@ dependencies:
|
|
|
114
114
|
version: '3.1'
|
|
115
115
|
- - ">="
|
|
116
116
|
- !ruby/object:Gem::Version
|
|
117
|
-
version: 3.1.
|
|
117
|
+
version: 3.1.18
|
|
118
118
|
type: :development
|
|
119
119
|
prerelease: false
|
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -124,7 +124,7 @@ dependencies:
|
|
|
124
124
|
version: '3.1'
|
|
125
125
|
- - ">="
|
|
126
126
|
- !ruby/object:Gem::Version
|
|
127
|
-
version: 3.1.
|
|
127
|
+
version: 3.1.18
|
|
128
128
|
- !ruby/object:Gem::Dependency
|
|
129
129
|
name: bundler-audit
|
|
130
130
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -222,7 +222,7 @@ dependencies:
|
|
|
222
222
|
version: '2.0'
|
|
223
223
|
- - ">="
|
|
224
224
|
- !ruby/object:Gem::Version
|
|
225
|
-
version: 2.0.
|
|
225
|
+
version: 2.0.27
|
|
226
226
|
type: :development
|
|
227
227
|
prerelease: false
|
|
228
228
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -232,27 +232,27 @@ dependencies:
|
|
|
232
232
|
version: '2.0'
|
|
233
233
|
- - ">="
|
|
234
234
|
- !ruby/object:Gem::Version
|
|
235
|
-
version: 2.0.
|
|
235
|
+
version: 2.0.27
|
|
236
236
|
- !ruby/object:Gem::Dependency
|
|
237
237
|
name: turbo_tests2
|
|
238
238
|
requirement: !ruby/object:Gem::Requirement
|
|
239
239
|
requirements:
|
|
240
240
|
- - "~>"
|
|
241
241
|
- !ruby/object:Gem::Version
|
|
242
|
-
version: '
|
|
242
|
+
version: '4.0'
|
|
243
243
|
- - ">="
|
|
244
244
|
- !ruby/object:Gem::Version
|
|
245
|
-
version:
|
|
245
|
+
version: 4.0.0
|
|
246
246
|
type: :development
|
|
247
247
|
prerelease: false
|
|
248
248
|
version_requirements: !ruby/object:Gem::Requirement
|
|
249
249
|
requirements:
|
|
250
250
|
- - "~>"
|
|
251
251
|
- !ruby/object:Gem::Version
|
|
252
|
-
version: '
|
|
252
|
+
version: '4.0'
|
|
253
253
|
- - ">="
|
|
254
254
|
- !ruby/object:Gem::Version
|
|
255
|
-
version:
|
|
255
|
+
version: 4.0.0
|
|
256
256
|
- !ruby/object:Gem::Dependency
|
|
257
257
|
name: ruby-progressbar
|
|
258
258
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -500,10 +500,10 @@ licenses:
|
|
|
500
500
|
- PolyForm-Small-Business-1.0.0
|
|
501
501
|
metadata:
|
|
502
502
|
homepage_uri: https://structuredmerge.org
|
|
503
|
-
source_code_uri: https://github.com/structuredmerge/structuredmerge-ruby/tree/v7.1.
|
|
504
|
-
changelog_uri: https://github.com/structuredmerge/structuredmerge-ruby/blob/v7.1.
|
|
503
|
+
source_code_uri: https://github.com/structuredmerge/structuredmerge-ruby/tree/v7.1.14
|
|
504
|
+
changelog_uri: https://github.com/structuredmerge/structuredmerge-ruby/blob/v7.1.14/CHANGELOG.md
|
|
505
505
|
bug_tracker_uri: https://github.com/structuredmerge/structuredmerge-ruby/issues
|
|
506
|
-
documentation_uri: https://www.rubydoc.info/gems/ast-merge/7.1.
|
|
506
|
+
documentation_uri: https://www.rubydoc.info/gems/ast-merge/7.1.14
|
|
507
507
|
funding_uri: https://github.com/sponsors/pboling
|
|
508
508
|
wiki_uri: https://github.com/structuredmerge/structuredmerge-ruby/wiki
|
|
509
509
|
news_uri: https://www.railsbling.com/tags/ast-merge
|
metadata.gz.sig
CHANGED
|
Binary file
|