quality_gate 0.2.1 → 0.2.2
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/CHANGELOG.md +4 -0
- data/lib/quality_gate/installation.rb +0 -79
- data/lib/quality_gate/version.rb +1 -1
- metadata +15 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 75a0ad2a06f284a1e9985f522e837a43cb584a86c29640c7399f68cbf176a31c
|
|
4
|
+
data.tar.gz: 06101f90ff3e9f1b5221a682b35b1b6470be9eecad34a2fdb8f68fa0faeaacfa
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d89d8d0f2ec100c0f452d13ce6c6e14d8c38b6356f7475bc85978c3968e8575caf44848ad24c5eb550efdc7b29bcade260d9e75a04021ef2d9cdea37bd3faa7d
|
|
7
|
+
data.tar.gz: ecffaac50b0271211ba3cfadc132c3970d55be7c8355c582a41e42dbaf3584f64cdd0969b18338bda1e9eff87517b2711a435725769db68c1997976824afd384
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
## [0.2.2] - 2026-09-28
|
|
2
|
+
|
|
3
|
+
- Fiddle is now a runtime dependency, so the installer loads it with a plain `require` on Ruby 4.x under Bundler. This removes the runtime `Kernel#require` patch and the hand-built extension path that missed on hosts where RbConfig and RubyGems spell the platform differently (for example `arm64-darwin25` vs `arm64-darwin-25`).
|
|
4
|
+
|
|
1
5
|
## [0.2.1] - 2026-09-22
|
|
2
6
|
|
|
3
7
|
- Undercover reports stale coverage as an actionable `stale_coverage` finding with gate exit 1, telling operators to re-run the test suite before the coverage gate, instead of a parse failure with exit 2. Unknown validation reasons also fail closed and include their value; malformed output and CLI exit-status checks remain strict.
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
require "erb"
|
|
4
4
|
require "fileutils"
|
|
5
5
|
require "pathname"
|
|
6
|
-
require "rbconfig"
|
|
7
6
|
require "tempfile"
|
|
8
7
|
|
|
9
8
|
module QualityGate
|
|
@@ -63,7 +62,6 @@ module QualityGate
|
|
|
63
62
|
class Unsupported < StandardError; end
|
|
64
63
|
|
|
65
64
|
IMPORTER_MUTEX = Mutex.new
|
|
66
|
-
BUNDLED_REQUIRE_MUTEX = Mutex.new
|
|
67
65
|
LINK_FLAGS = 0
|
|
68
66
|
UNLINK_FLAGS = 0
|
|
69
67
|
O_DIRECTORY = File.const_defined?(:DIRECTORY) ? File::DIRECTORY : 0
|
|
@@ -169,87 +167,10 @@ module QualityGate
|
|
|
169
167
|
end
|
|
170
168
|
|
|
171
169
|
def load_fiddle_importer!
|
|
172
|
-
return if defined?(Fiddle::Importer)
|
|
173
|
-
return load_bundled_fiddle_importer! if ruby4_bundle_fiddle?
|
|
174
|
-
|
|
175
170
|
require "fiddle/import"
|
|
176
171
|
rescue LoadError => e
|
|
177
172
|
raise Unsupported, e.message
|
|
178
173
|
end
|
|
179
|
-
|
|
180
|
-
def ruby4_bundle_fiddle?
|
|
181
|
-
RUBY_VERSION.start_with?("4.") && defined?(Bundler)
|
|
182
|
-
end
|
|
183
|
-
|
|
184
|
-
def load_bundled_fiddle_importer!
|
|
185
|
-
with_bundled_fiddle_require { load(fiddle_feature_paths.fetch("fiddle/import")) }
|
|
186
|
-
end
|
|
187
|
-
|
|
188
|
-
def with_bundled_fiddle_require
|
|
189
|
-
BUNDLED_REQUIRE_MUTEX.synchronize do
|
|
190
|
-
original_require = Kernel.instance_method(:require)
|
|
191
|
-
original_verbose = $VERBOSE
|
|
192
|
-
feature_paths = fiddle_feature_paths
|
|
193
|
-
$VERBOSE = nil
|
|
194
|
-
Kernel.module_eval do
|
|
195
|
-
define_method(:require) do |feature|
|
|
196
|
-
path = feature_paths[feature]
|
|
197
|
-
if path
|
|
198
|
-
return false if $LOADED_FEATURES.include?(path)
|
|
199
|
-
|
|
200
|
-
loaded = path.end_with?(".rb") ? load(path) : original_require.bind_call(self, path)
|
|
201
|
-
$LOADED_FEATURES << path unless $LOADED_FEATURES.include?(path)
|
|
202
|
-
loaded || true
|
|
203
|
-
else
|
|
204
|
-
original_require.bind_call(self, feature)
|
|
205
|
-
end
|
|
206
|
-
end
|
|
207
|
-
end
|
|
208
|
-
yield
|
|
209
|
-
ensure
|
|
210
|
-
Kernel.module_eval { define_method(:require, original_require) } if original_require
|
|
211
|
-
$VERBOSE = original_verbose
|
|
212
|
-
end
|
|
213
|
-
end
|
|
214
|
-
|
|
215
|
-
def fiddle_feature_paths
|
|
216
|
-
root = bundled_fiddle_root
|
|
217
|
-
{
|
|
218
|
-
"fiddle" => File.join(root, "fiddle.rb"),
|
|
219
|
-
"fiddle.so" => File.join(bundled_fiddle_extension_root, "fiddle.#{RbConfig::CONFIG.fetch("DLEXT")}"),
|
|
220
|
-
"fiddle/closure" => File.join(root, "fiddle", "closure.rb"),
|
|
221
|
-
"fiddle/function" => File.join(root, "fiddle", "function.rb"),
|
|
222
|
-
"fiddle/version" => File.join(root, "fiddle", "version.rb"),
|
|
223
|
-
"fiddle/import" => File.join(root, "fiddle", "import.rb"),
|
|
224
|
-
"fiddle/struct" => File.join(root, "fiddle", "struct.rb"),
|
|
225
|
-
"fiddle/cparser" => File.join(root, "fiddle", "cparser.rb"),
|
|
226
|
-
"fiddle/types" => File.join(root, "fiddle", "types.rb"),
|
|
227
|
-
"fiddle/value" => File.join(root, "fiddle", "value.rb"),
|
|
228
|
-
"fiddle/pack" => File.join(root, "fiddle", "pack.rb")
|
|
229
|
-
}
|
|
230
|
-
end
|
|
231
|
-
|
|
232
|
-
def bundled_fiddle_root
|
|
233
|
-
Dir[File.join(RbConfig::CONFIG["prefix"], "lib/ruby/gems/**/gems/fiddle-*/lib")].max or
|
|
234
|
-
raise Unsupported, "fiddle support is unavailable"
|
|
235
|
-
end
|
|
236
|
-
|
|
237
|
-
def bundled_fiddle_extension_root
|
|
238
|
-
root = bundled_fiddle_root
|
|
239
|
-
extension = File.join(root, "fiddle.#{RbConfig::CONFIG.fetch("DLEXT")}")
|
|
240
|
-
return root if File.file?(extension)
|
|
241
|
-
|
|
242
|
-
gem_name = File.basename(File.dirname(root))
|
|
243
|
-
gem_home = File.expand_path("../../..", root)
|
|
244
|
-
extension_api = if defined?(Gem) && Gem.respond_to?(:extension_api_version)
|
|
245
|
-
Gem.extension_api_version
|
|
246
|
-
else
|
|
247
|
-
RbConfig::CONFIG.fetch("ruby_version")
|
|
248
|
-
end
|
|
249
|
-
pattern = File.join(gem_home, "extensions", RbConfig::CONFIG.fetch("arch"), extension_api, gem_name)
|
|
250
|
-
native_root = pattern if File.file?(File.join(pattern, "fiddle.#{RbConfig::CONFIG.fetch("DLEXT")}"))
|
|
251
|
-
native_root or raise Unsupported, "fiddle native extension is unavailable"
|
|
252
|
-
end
|
|
253
174
|
end
|
|
254
175
|
PreparedTempfile = Data.define(
|
|
255
176
|
:file,
|
data/lib/quality_gate/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: quality_gate
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Lucian Ghinda
|
|
@@ -51,6 +51,20 @@ dependencies:
|
|
|
51
51
|
- - "~>"
|
|
52
52
|
- !ruby/object:Gem::Version
|
|
53
53
|
version: 0.9.3
|
|
54
|
+
- !ruby/object:Gem::Dependency
|
|
55
|
+
name: fiddle
|
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
|
57
|
+
requirements:
|
|
58
|
+
- - "~>"
|
|
59
|
+
- !ruby/object:Gem::Version
|
|
60
|
+
version: '1.1'
|
|
61
|
+
type: :runtime
|
|
62
|
+
prerelease: false
|
|
63
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
64
|
+
requirements:
|
|
65
|
+
- - "~>"
|
|
66
|
+
- !ruby/object:Gem::Version
|
|
67
|
+
version: '1.1'
|
|
54
68
|
- !ruby/object:Gem::Dependency
|
|
55
69
|
name: reek
|
|
56
70
|
requirement: !ruby/object:Gem::Requirement
|