tree_haver 4.0.2 → 4.0.4

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
  SHA256:
3
- metadata.gz: 81ceda8836df5d3f2c45886a8c056f1acbc65b8f221990f6e8e2cf7cf6c5334d
4
- data.tar.gz: 79e8c7110c85383f368ebd975ba435a3939c27efef30e9c955afb485d2054c14
3
+ metadata.gz: ccd582c370b8637334816c198f3db0a63bf88ad68bbdf2c801d3966547d0ec8a
4
+ data.tar.gz: 0e42adbd1e9502a8f9c8517b21688a65c4aa8f5320b49175bbf41c67a631c5a2
5
5
  SHA512:
6
- metadata.gz: cd8d8dc376fc4dad1acfd9a9ca8463311a07256af6c9ac27dd618e05bb5621e97d37f7d425cd5d4a5d40e6e2e918e8f71dce04562fdaef91c5f54196abd1e794
7
- data.tar.gz: '00197875637b14a40ecb252f5ea13a85bd03743108258d8c2779c9766b58f10b8d2b90d0c38de9502bb48eceecbd8f29df13caf062bbd0e36858fb0f2563f82a'
6
+ metadata.gz: 6ebd60f2b31c8ef09b5f3a12a3a77b58ca6a789b3d7b6d41ce8801aa7aa771cd8e02733206bee70cd41c0af78d213e4471f3cd5f28e3580db49ca37a08a31c00
7
+ data.tar.gz: 776084c8a3673c5ff1039ac1f384e6b6592b9e151a4e51d27b96002fc17e4e10107be85218365458ce9e0df283ae853d82d25c3a1b3c07ac60e3435c477485af
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -30,6 +30,40 @@ Please file a bug if you notice a violation of semantic versioning.
30
30
 
31
31
  ### Security
32
32
 
33
+ ## [4.0.4] - 2026-01-09
34
+
35
+ - TAG: [v4.0.4][4.0.4t]
36
+ - COVERAGE: 95.27% -- 2033/2134 lines in 28 files
37
+ - BRANCH COVERAGE: 84.07% -- 802/954 branches in 28 files
38
+ - 95.49% documented
39
+
40
+ ### Fixed
41
+
42
+ - **RSpec Dependency Tags**: Fixed blocked backend tests not being excluded on JRuby
43
+ - When `TREE_HAVER_BACKEND=ffi` is set, MRI backend is blocked to prevent conflicts
44
+ - Previously, this skipped BOTH the availability check AND the exclusion
45
+ - Now blocked backends are excluded without checking availability
46
+ - Tests tagged with `:mri_backend` now properly skip on JRuby when FFI is selected
47
+
48
+ ## [4.0.3] - 2026-01-08
49
+
50
+ - TAG: [v4.0.3][4.0.3t]
51
+ - COVERAGE: 95.27% -- 2033/2134 lines in 28 files
52
+ - BRANCH COVERAGE: 84.17% -- 803/954 branches in 28 files
53
+ - 95.49% documented
54
+
55
+ ### Changed
56
+
57
+ - **RSpec Dependency Tags**: Refactored FFI backend isolation to use standard `:ffi_backend` tag
58
+ - The `--tag ffi_backend` now triggers `isolated_test_mode` in `dependency_tags.rb`
59
+ - This prevents MRI backend from loading during availability checks
60
+ - Legacy `*_backend_only` tags are still supported for backwards compatibility
61
+ - Simplifies the testing pattern: one tag serves as both dependency tag and isolation trigger
62
+
63
+ ### Deprecated
64
+
65
+ - **`:ffi_backend_only` tag**: Use `:ffi_backend` instead. The `*_backend_only` tags are now redundant.
66
+
33
67
  ## [4.0.2] - 2026-01-08
34
68
 
35
69
  - TAG: [v4.0.2][4.0.2t]
@@ -990,7 +1024,11 @@ Despite the major version bump to 3.0.0 (following semver due to the breaking `L
990
1024
 
991
1025
  - Initial release
992
1026
 
993
- [Unreleased]: https://github.com/kettle-rb/tree_haver/compare/v4.0.2...HEAD
1027
+ [Unreleased]: https://github.com/kettle-rb/tree_haver/compare/v4.0.4...HEAD
1028
+ [4.0.4]: https://github.com/kettle-rb/tree_haver/compare/v4.0.3...v4.0.4
1029
+ [4.0.4t]: https://github.com/kettle-rb/tree_haver/releases/tag/v4.0.4
1030
+ [4.0.3]: https://github.com/kettle-rb/tree_haver/compare/v4.0.2...v4.0.3
1031
+ [4.0.3t]: https://github.com/kettle-rb/tree_haver/releases/tag/v4.0.3
994
1032
  [4.0.2]: https://github.com/kettle-rb/tree_haver/compare/v4.0.1...v4.0.2
995
1033
  [4.0.2t]: https://github.com/kettle-rb/tree_haver/releases/tag/v4.0.2
996
1034
  [4.0.1]: https://github.com/kettle-rb/tree_haver/compare/v4.0.0...v4.0.1
@@ -346,11 +346,13 @@ module TreeHaver
346
346
 
347
347
  # Check if FFI backend is available WITHOUT loading MRI first
348
348
  #
349
- # This is used for the :ffi_backend_only tag which runs FFI tests
350
- # in isolation before MRI can be loaded. Unlike ffi_available?,
351
- # this method does NOT check mri_backend_available?.
349
+ # This method is primarily for backwards compatibility with the legacy
350
+ # :ffi_backend_only tag. The preferred approach is to use the standard
351
+ # :ffi_backend tag, which now also triggers isolated_test_mode when
352
+ # used with --tag ffi_backend.
352
353
  #
353
354
  # @return [Boolean] true if FFI backend is usable in isolation
355
+ # @deprecated Use :ffi_backend tag instead of :ffi_backend_only
354
356
  def ffi_backend_only_available?
355
357
  # If TREE_HAVER_BACKEND explicitly selects a different native backend,
356
358
  # FFI is not available for testing
@@ -1044,14 +1046,25 @@ RSpec.configure do |config|
1044
1046
  end
1045
1047
  end
1046
1048
 
1049
+ # Check if we're running isolated backend tests using standard backend tags
1050
+ # When running with --tag ffi_backend (or other native backend tags), we need
1051
+ # to block conflicting backends to prevent them from loading first.
1052
+ # This replaces the old *_backend_only pattern with the standard *_backend tags.
1047
1053
  TreeHaver::Backends::BLOCKED_BY.each do |backend, blockers|
1048
- # Check if we're running this backend's isolated tests
1049
- isolated_tag = :"#{backend}_backend_only"
1050
- if inclusion_rules[isolated_tag]
1054
+ # Check if we're running this backend's tests using standard tag (e.g., :ffi_backend)
1055
+ standard_tag = :"#{backend}_backend"
1056
+ if inclusion_rules[standard_tag]
1051
1057
  isolated_test_mode = true
1052
1058
  # Add all backends that would block this one
1053
1059
  blockers.each { |blocker| blocked_backends << blocker }
1054
1060
  end
1061
+
1062
+ # Also support legacy *_backend_only tags for backwards compatibility
1063
+ legacy_tag = :"#{backend}_backend_only"
1064
+ if inclusion_rules[legacy_tag]
1065
+ isolated_test_mode = true
1066
+ blockers.each { |blocker| blocked_backends << blocker }
1067
+ end
1055
1068
  end
1056
1069
 
1057
1070
  # Store blocked_backends in a module variable so before(:suite) can access it
@@ -1060,11 +1073,17 @@ RSpec.configure do |config|
1060
1073
 
1061
1074
  # Now configure exclusions, skipping availability checks for blocked backends
1062
1075
  backend_tags.each do |backend, tag|
1063
- next if blocked_backends.include?(backend)
1064
-
1065
1076
  # FFI is handled specially with before(:each) hook above
1066
1077
  next if backend == :ffi
1067
1078
 
1079
+ # If this backend is in blocked_backends, we exclude its tests WITHOUT checking
1080
+ # availability. This prevents loading a conflicting backend while still ensuring
1081
+ # tests for unavailable backends are skipped.
1082
+ if blocked_backends.include?(backend)
1083
+ config.filter_run_excluding(tag => true)
1084
+ next
1085
+ end
1086
+
1068
1087
  availability_method = backend_availability_methods[backend]
1069
1088
  config.filter_run_excluding(tag => true) unless deps.public_send(availability_method)
1070
1089
  end
@@ -10,7 +10,7 @@ module TreeHaver
10
10
  # Current version of the tree_haver gem
11
11
  #
12
12
  # @return [String] the version string
13
- VERSION = "4.0.2"
13
+ VERSION = "4.0.4"
14
14
  end
15
15
 
16
16
  # Traditional location for VERSION constant
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tree_haver
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.2
4
+ version: 4.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter H. Boling
@@ -298,10 +298,10 @@ licenses:
298
298
  - MIT
299
299
  metadata:
300
300
  homepage_uri: https://tree-haver.galtzo.com/
301
- source_code_uri: https://github.com/kettle-rb/tree_haver/tree/v4.0.2
302
- changelog_uri: https://github.com/kettle-rb/tree_haver/blob/v4.0.2/CHANGELOG.md
301
+ source_code_uri: https://github.com/kettle-rb/tree_haver/tree/v4.0.4
302
+ changelog_uri: https://github.com/kettle-rb/tree_haver/blob/v4.0.4/CHANGELOG.md
303
303
  bug_tracker_uri: https://github.com/kettle-rb/tree_haver/issues
304
- documentation_uri: https://www.rubydoc.info/gems/tree_haver/4.0.2
304
+ documentation_uri: https://www.rubydoc.info/gems/tree_haver/4.0.4
305
305
  funding_uri: https://github.com/sponsors/pboling
306
306
  wiki_uri: https://github.com/kettle-rb/tree_haver/wiki
307
307
  news_uri: https://www.railsbling.com/tags/tree_haver
metadata.gz.sig CHANGED
Binary file