appraisal2 3.1.0 → 3.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f60cf90f788c79484aa1f01d218259c1cbb9459afe960a368e3de03bd84b7088
4
- data.tar.gz: 8b96fc10c341d3c395e8e6c210ad4a3c98d36cc60d4e92c82ed13ce4cf774c72
3
+ metadata.gz: 3d481193174340b780721b42c394394bf59ec02b500763672941eb04b201ae7e
4
+ data.tar.gz: ad5c78564e102538e77bf3ba913488eff00617bc89cb8bf23e8bd13d2a3f6ad7
5
5
  SHA512:
6
- metadata.gz: 967d0442aafbbead64cb127c57eab72ecc48f85d9d820619f6eb142ff2aaf3c7d6510bddd32c2c8f6524ea072ebfb7e7fc593719276b2f80259948aba1396c5e
7
- data.tar.gz: 45bba8cce0a182a5eacb7614e0e239906d76f8905c9fe057ac8e91cdb013d17fe48e3ddd1c730b61c907c7c0f6ef1b10b42f1eab10063366a1dc72ff9cb47bbc
6
+ metadata.gz: acabfebc3adbd64a88022766260dd2684a0f12fbe3fc1f1b29f0f26d7754ffd16b7aa72ef718d3613601b67b3e37f0a10cc20c2063da9b37725066558e4aebbd
7
+ data.tar.gz: 1e715cd4474da8c8956fa1b6f6aeb542fe6c010c959f891f0bb85d62bc2bd6b757f27e6d4cfd0537062e4f563ee7111e53d8cb12fd2d48f2b9216ed770f1884c
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -30,6 +30,43 @@ Please file a bug if you notice a violation of semantic versioning.
30
30
 
31
31
  ### Security
32
32
 
33
+ ## [3.1.2] - 2026-06-11
34
+
35
+ - TAG: [v3.1.2][3.1.2t]
36
+ - COVERAGE: 90.21% -- 820/909 lines in 29 files
37
+ - BRANCH COVERAGE: 80.71% -- 159/197 branches in 29 files
38
+ - 42.25% documented
39
+
40
+ ### Added
41
+
42
+ - Support for Bundlers cooldown feature (#31)
43
+ - Added released `gem_mine` fixture-scaffold dependency wiring for acceptance
44
+ specs that need temporary throwaway gems.
45
+
46
+ ### Fixed
47
+
48
+ - Cleaned up per-process scaffold roots after acceptance spec runs so generated
49
+ dummy gem projects do not accumulate under `tmp/spec-process-*`.
50
+ - Isolated Git bare-repository config for acceptance specs so Bundler can use
51
+ its per-process local git cache on machines with stricter global Git config.
52
+ - Corrected the gemspec public author email to use `floss@galtzo.com`.
53
+
54
+ ## [3.1.1] - 2026-06-06
55
+
56
+ - TAG: [v3.1.1][3.1.1t]
57
+ - COVERAGE: 90.23% -- 822/911 lines in 29 files
58
+ - BRANCH COVERAGE: 80.51% -- 157/195 branches in 29 files
59
+ - 42.25% documented
60
+
61
+ ### Added
62
+
63
+ - Added the `plugin` Appraisals DSL for generator-only companion gems that
64
+ should be loaded while Appraisal2 generates gemfiles without being serialized
65
+ into generated appraisal gemfiles.
66
+ - Added the `generator_only` root Gemfile DSL for dependencies that Bundler
67
+ should install in the active generator bundle but Appraisal2 should not
68
+ serialize into generated appraisal gemfiles.
69
+
33
70
  ## [3.1.0] - 2026-06-06
34
71
 
35
72
  - TAG: [v3.1.0][3.1.0t]
@@ -338,14 +375,18 @@ Please file a bug if you notice a violation of semantic versioning.
338
375
  - Initial release as a hard fork of [appraisal v3.0.0.rc1](https://github.com/thoughtbot/appraisal/commit/602cdd9b5f8cb8f36992733422f69312b172f427) with many improvements - by @pboling
339
376
  - support for `eval_gemfile`
340
377
  - support for Ruby 1.8, 1.9, 2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6 (all removed, or planned-to-be, in thoughtbot's `appraisal`)
341
- - NOTE: The [setup-ruby GH Action](https://github.com/ruby/setup-ruby) only ships support for Ruby 2.3+, so older Rubies are no longer tested in CI. Compatibility is assumed thanks to [![Enforced Code Style Linter](https://img.shields.io/badge/code_style_%26_linting-rubocop--lts-34495e.svg?plastic&logo=ruby&logoColor=white)](https://github.com/rubocop-lts/rubocop-lts) enforcing the syntax for the oldest supported Ruby, which is Ruby v1.8. File a bug if you find something broken.
378
+ - NOTE: The [setup-ruby GH Action](https://github.com/ruby/setup-ruby) only ships support for Ruby 2.3+, so older Rubies are no longer tested in CI. Compatibility is assumed thanks to [![Enforced Code Style Linter](https://img.shields.io/badge/code_style_&_linting-rubocop--lts-34495e.svg?plastic&logo=ruby&logoColor=white)](https://github.com/rubocop-lts/rubocop-lts) enforcing the syntax for the oldest supported Ruby, which is Ruby v1.8. File a bug if you find something broken.
342
379
  - Support for JRuby 9.4+
343
380
  - updated and improved documentation
344
381
  - maintainability tracked with QLTY.sh and the reek gem
345
382
  - code coverage tracked with Coveralls, QLTY.sh, and the kettle-soup-cover gem
346
383
  - other minor fixes and improvements
347
384
 
348
- [Unreleased]: https://github.com/appraisal-rb/appraisal2/compare/v3.1.0...HEAD
385
+ [Unreleased]: https://github.com/appraisal-rb/appraisal2/compare/v3.1.2...HEAD
386
+ [3.1.2]: https://github.com/appraisal-rb/appraisal2/compare/v3.1.1...v3.1.2
387
+ [3.1.2t]: https://github.com/appraisal-rb/appraisal2/releases/tag/v3.1.2
388
+ [3.1.1]: https://github.com/appraisal-rb/appraisal2/compare/v3.1.0...v3.1.1
389
+ [3.1.1t]: https://github.com/appraisal-rb/appraisal2/releases/tag/v3.1.1
349
390
  [3.1.0]: https://github.com/appraisal-rb/appraisal2/compare/v3.0.9...v3.1.0
350
391
  [3.1.0t]: https://github.com/appraisal-rb/appraisal2/releases/tag/v3.1.0
351
392
  [3.0.9]: https://github.com/appraisal-rb/appraisal2/compare/v3.0.8...v3.0.9
data/LICENSE.md CHANGED
@@ -47,3 +47,4 @@ Choose the option that best fits your use case:
47
47
  - Copyright (c) 2024 Joe Sharp
48
48
  - Copyright (c) 2024 Sebastian Cohnen
49
49
  - Copyright (c) 2024 Yevhenii Ponomarenko
50
+ - Copyright (c) 2026 Richard Kramer
data/README.md CHANGED
@@ -62,7 +62,7 @@ Appraisal2 adds:
62
62
  | Works with MRI Ruby 4 | [![Ruby 4.0 Compat][💎ruby-4.0i]][🚎11-c-wf] [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf] [![Ruby HEAD Compat][💎ruby-headi]][🚎3-hd-wf]|
63
63
  | Works with MRI Ruby 3 | [![Ruby 3.0 Compat][💎ruby-3.0i]][🚎ruby-3.0-wf] [![Ruby 3.1 Compat][💎ruby-3.1i]][🚎ruby-3.1-wf] [![Ruby 3.2 Compat][💎ruby-3.2i]][🚎ruby-3.2-wf] [![Ruby 3.3 Compat][💎ruby-3.3i]][🚎ruby-3.3-wf] [![Ruby 3.4 Compat][💎ruby-3.4i]][🚎ruby-3.4-wf]|
64
64
  | Works with MRI Ruby 2 | ![Ruby 2.0 Compat][💎ruby-2.0i] ![Ruby 2.1 Compat][💎ruby-2.1i] ![Ruby 2.2 Compat][💎ruby-2.2i] ![Ruby 2.3 Compat][💎ruby-2.3i] <br/> [![Ruby 2.4 Compat][💎ruby-2.4i]][🚎ruby-2.4-wf] [![Ruby 2.5 Compat][💎ruby-2.5i]][🚎ruby-2.5-wf] [![Ruby 2.6 Compat][💎ruby-2.6i]][🚎ruby-2.6-wf] [![Ruby 2.7 Compat][💎ruby-2.7i]][🚎ruby-2.7-wf]|
65
- | Works with MRI Ruby 1 | ![Ruby 1.9 Compat][💎ruby-1.9i]|
65
+ | Works with MRI Ruby 1 | ![Ruby 1.8 Compat][💎ruby-1.8i] ![Ruby 1.9 Compat][💎ruby-1.9i]|
66
66
  | Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] |
67
67
  | Source | [![Source on GitLab.com][📜src-gl-img]][📜src-gl] [![Source on CodeBerg.org][📜src-cb-img]][📜src-cb] [![Source on Github.com][📜src-gh-img]][📜src-gh] [![The best SHA: dQw4w9WgXcQ!][🧮kloc-img]][🧮kloc] |
68
68
  | Documentation | [![Current release on RubyDoc.info][📜docs-cr-rd-img]][🚎yard-current] [![YARD on Galtzo.com][📜docs-head-rd-img]][🚎yard-head] [![Maintainer Blog][🚂maint-blog-img]][🚂maint-blog] [![GitLab Wiki][📜gl-wiki-img]][📜gl-wiki] [![GitHub Wiki][📜gh-wiki-img]][📜gh-wiki] |
@@ -178,6 +178,47 @@ This is intended for plugin gems that need deterministic generated output, such
178
178
  as style normalization of appraisal gemfiles, without monkey-patching Appraisal2
179
179
  internals.
180
180
 
181
+ ### Generator Plugins
182
+
183
+ Use `plugin` in `Appraisals` for companion gems that must be loaded while
184
+ Appraisal2 evaluates and generates appraisal gemfiles, but must not be written
185
+ as dependencies in the generated appraisal gemfiles.
186
+
187
+ ```ruby
188
+ plugin "appraisal2-rubocop",
189
+ :require => "appraisal2/rubocop",
190
+ :optional => true
191
+ ```
192
+
193
+ `plugin` requires the requested path in the active generator bundle. It does not
194
+ call `gem`, and it is not serialized into `gemfiles/*.gemfile`. This keeps
195
+ generator-only tooling out of appraisals that target older Rubies, while still
196
+ allowing modern generator workflows to load hooks such as
197
+ `Appraisal.transform_gemfile`.
198
+
199
+ Set `:optional => true` when some workflows evaluate `Appraisals` without the
200
+ plugin dependency installed. This is useful when a CI matrix uses one generator
201
+ bundle for old-Ruby appraisals and another modern workflow provides the plugin.
202
+
203
+ If the generator bundle needs dependencies that must not be copied into every
204
+ generated appraisal gemfile, wrap those root Gemfile declarations with
205
+ `generator_only` for Appraisal2 and leave the Bundler branch unchanged:
206
+
207
+ ```ruby
208
+ if respond_to?(:generator_only)
209
+ generator_only do
210
+ eval_gemfile "gemfiles/modular/style.gemfile"
211
+ end
212
+ else
213
+ eval_gemfile "gemfiles/modular/style.gemfile"
214
+ end
215
+ ```
216
+
217
+ Bundler evaluates the `else` branch while installing the active generator
218
+ bundle. Appraisal2 evaluates the `generator_only` branch while parsing the root
219
+ Gemfile, but intentionally does not serialize that block into generated
220
+ appraisal gemfiles.
221
+
181
222
  ## 🔧 Basic Usage
182
223
 
183
224
  Once you've configured the appraisals you want to use, you need to install the
@@ -533,6 +574,7 @@ See [LICENSE.md][📄license] for the official copyright notice.
533
574
  - Copyright (c) 2024 Joe Sharp
534
575
  - Copyright (c) 2024 Sebastian Cohnen
535
576
  - Copyright (c) 2024 Yevhenii Ponomarenko
577
+ - Copyright (c) 2026 Richard Kramer
536
578
 
537
579
  </details>
538
580
 
@@ -696,6 +738,7 @@ Thanks for RTFM. ☺️
696
738
  [🚎14-🔓️-wfi]: https://github.com/appraisal-rb/appraisal2/actions/workflows/unlocked_deps.yml/badge.svg
697
739
  [🚎15-🪪-wf]: https://github.com/appraisal-rb/appraisal2/actions/workflows/license-eye.yml
698
740
  [🚎15-🪪-wfi]: https://github.com/appraisal-rb/appraisal2/actions/workflows/license-eye.yml/badge.svg
741
+ [💎ruby-1.8i]: https://img.shields.io/badge/Ruby-1.8_(%F0%9F%9A%ABCI)-AABBCC?style=for-the-badge&logo=ruby&logoColor=white
699
742
  [💎ruby-1.9i]: https://img.shields.io/badge/Ruby-1.9_(%F0%9F%9A%ABCI)-AABBCC?style=for-the-badge&logo=ruby&logoColor=white
700
743
  [💎ruby-2.0i]: https://img.shields.io/badge/Ruby-2.0_(%F0%9F%9A%ABCI)-AABBCC?style=for-the-badge&logo=ruby&logoColor=white
701
744
  [💎ruby-2.1i]: https://img.shields.io/badge/Ruby-2.1_(%F0%9F%9A%ABCI)-AABBCC?style=for-the-badge&logo=ruby&logoColor=white
@@ -750,7 +793,7 @@ Thanks for RTFM. ☺️
750
793
  [📌gitmoji]: https://gitmoji.dev
751
794
  [📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
752
795
  [🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
753
- [🧮kloc-img]: https://img.shields.io/badge/KLOC-0.894-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
796
+ [🧮kloc-img]: https://img.shields.io/badge/KLOC-0.909-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
754
797
  [🔐security]: https://github.com/appraisal-rb/appraisal2/blob/main/SECURITY.md
755
798
  [🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
756
799
  [📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
@@ -758,7 +801,7 @@ Thanks for RTFM. ☺️
758
801
  [📄license-ref]: MIT.md
759
802
  [📄license-img]: https://img.shields.io/badge/License-MIT-259D6C.svg
760
803
  [📄license-compat]: https://www.apache.org/legal/resolved.html#category-a
761
- [📄license-compat-img]: https://img.shields.io/badge/Apache_Compatible:_Category_A-✓-259D6C.svg?style=flat&logo=Apache
804
+ [📄license-compat-img]: https://img.shields.io/badge/Apache_Compatible:_Category_A-%E2%9C%93-259D6C.svg?style=flat&logo=Apache
762
805
 
763
806
  [📄ilo-declaration]: https://www.ilo.org/declaration/lang--en/index.htm
764
807
  [📄ilo-declaration-img]: https://img.shields.io/badge/ILO_Fundamental_Principles-✓-259D6C.svg?style=flat
@@ -778,7 +821,7 @@ Thanks for RTFM. ☺️
778
821
  | Package | appraisal2 |
779
822
  | Description | 🔍️ Appraisal2 integrates with bundler and rake to test your library against different versions of dependencies in repeatable scenarios called "appraisals." |
780
823
  | Homepage | https://github.com/appraisal-rb/appraisal2 |
781
- | Source | https://github.com/appraisal-rb/appraisal2/tree/v3.1.0 |
824
+ | Source | https://github.com/appraisal-rb/appraisal2/tree/v3.1.1 |
782
825
  | License | `MIT` |
783
826
  | Funding | https://github.com/sponsors/pboling, https://issuehunt.io/u/pboling, https://ko-fi.com/pboling, https://liberapay.com/pboling/donate, https://opencollective.com/appraisal-rb, https://patreon.com/galtzo, https://polar.sh/pboling, https://thanks.dev/u/gh/pboling, https://tidelift.com/funding/github/rubygems/appraisal2, https://www.buymeacoffee.com/pboling |
784
827
  <!-- kettle-jem:metadata:end -->
@@ -41,6 +41,16 @@ module Appraisal
41
41
  Customize.new(args)
42
42
  end
43
43
 
44
+ def plugin(name, *args)
45
+ options = args.last.is_a?(Hash) ? args.last : {}
46
+ require_path = options.key?(:require) ? options[:require] : name
47
+ optional = options.key?(:optional) ? options[:optional] : false
48
+
49
+ require require_path if require_path
50
+ rescue LoadError
51
+ raise unless optional
52
+ end
53
+
44
54
  private
45
55
 
46
56
  def run(definitions)
@@ -44,6 +44,10 @@ module Appraisal
44
44
  @eval_gemfile << [path, contents]
45
45
  end
46
46
 
47
+ def generator_only(&_block)
48
+ nil
49
+ end
50
+
47
51
  def gem(name, *requirements)
48
52
  @dependencies.add(name, substitute_git_source(requirements))
49
53
  end
@@ -72,13 +76,13 @@ module Appraisal
72
76
 
73
77
  alias_method :platform, :platforms
74
78
 
75
- def source(source, &block)
79
+ def source(source, options = {}, &block)
76
80
  if block_given?
77
81
  @source_blocks[source] ||=
78
82
  Source.new(source).tap { |g| g.git_sources = @git_sources.dup }
79
83
  @source_blocks[source].run(&block)
80
84
  else
81
- @sources << source
85
+ @sources << [source, options]
82
86
  end
83
87
  end
84
88
 
@@ -127,7 +131,9 @@ module Appraisal
127
131
  alias_method :eval_gemfile_entry_for_dup, :eval_gemfile_entry
128
132
 
129
133
  def source_entry
130
- @sources.uniq.map { |source| "source #{source.inspect}" }.join("\n")
134
+ @sources.uniq.map do |(src, opts)|
135
+ opts.empty? ? "source #{src.inspect}" : "source #{src.inspect}, #{Utils.format_string(opts)}"
136
+ end.join("\n")
131
137
  end
132
138
 
133
139
  alias_method :source_entry_for_dup, :source_entry
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Appraisal
4
4
  module Version
5
- VERSION = "3.1.0"
5
+ VERSION = "3.1.2"
6
6
  end
7
7
  VERSION = Version::VERSION # Traditional constant location
8
8
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Appraisal2
4
4
  module Version
5
- VERSION = "3.1.0"
5
+ VERSION = "3.1.2"
6
6
  end
7
7
  VERSION = Version::VERSION # Traditional Constant Location
8
8
  end
data/lib/appraisal2.rb CHANGED
@@ -1,13 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "version_gem"
4
3
  require_relative "appraisal2/version"
5
4
 
6
5
  require "appraisal/version"
7
6
  require "appraisal/task"
8
7
 
9
8
  Appraisal::Task.new
10
-
11
- Appraisal2::Version.class_eval do
12
- extend VersionGem::Basic
13
- end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,12 +1,10 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appraisal2
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.0
4
+ version: 3.1.2
5
5
  platform: ruby
6
6
  authors:
7
- - Peter Boling
8
- - Joe Ferris
9
- - Prem Sichanugrist
7
+ - Peter H. Boling
10
8
  bindir: exe
11
9
  cert_chain:
12
10
  - |
@@ -81,46 +79,26 @@ dependencies:
81
79
  - - ">="
82
80
  - !ruby/object:Gem::Version
83
81
  version: '0.14'
84
- - !ruby/object:Gem::Dependency
85
- name: version_gem
86
- requirement: !ruby/object:Gem::Requirement
87
- requirements:
88
- - - "~>"
89
- - !ruby/object:Gem::Version
90
- version: '1.1'
91
- - - ">="
92
- - !ruby/object:Gem::Version
93
- version: 1.1.10
94
- type: :runtime
95
- prerelease: false
96
- version_requirements: !ruby/object:Gem::Requirement
97
- requirements:
98
- - - "~>"
99
- - !ruby/object:Gem::Version
100
- version: '1.1'
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: 1.1.10
104
82
  - !ruby/object:Gem::Dependency
105
83
  name: kettle-dev
106
84
  requirement: !ruby/object:Gem::Requirement
107
85
  requirements:
108
86
  - - "~>"
109
87
  - !ruby/object:Gem::Version
110
- version: '2.0'
88
+ version: '2.2'
111
89
  - - ">="
112
90
  - !ruby/object:Gem::Version
113
- version: 2.0.8
91
+ version: 2.2.3
114
92
  type: :development
115
93
  prerelease: false
116
94
  version_requirements: !ruby/object:Gem::Requirement
117
95
  requirements:
118
96
  - - "~>"
119
97
  - !ruby/object:Gem::Version
120
- version: '2.0'
98
+ version: '2.2'
121
99
  - - ">="
122
100
  - !ruby/object:Gem::Version
123
- version: 2.0.8
101
+ version: 2.2.3
124
102
  - !ruby/object:Gem::Dependency
125
103
  name: bundler-audit
126
104
  requirement: !ruby/object:Gem::Requirement
@@ -164,7 +142,7 @@ dependencies:
164
142
  version: '2.0'
165
143
  - - ">="
166
144
  - !ruby/object:Gem::Version
167
- version: 2.0.3
145
+ version: 2.0.5
168
146
  type: :development
169
147
  prerelease: false
170
148
  version_requirements: !ruby/object:Gem::Requirement
@@ -174,7 +152,7 @@ dependencies:
174
152
  version: '2.0'
175
153
  - - ">="
176
154
  - !ruby/object:Gem::Version
177
- version: 2.0.3
155
+ version: 2.0.5
178
156
  - !ruby/object:Gem::Dependency
179
157
  name: turbo_tests2
180
158
  requirement: !ruby/object:Gem::Requirement
@@ -184,7 +162,7 @@ dependencies:
184
162
  version: '3.1'
185
163
  - - ">="
186
164
  - !ruby/object:Gem::Version
187
- version: 3.1.1
165
+ version: 3.1.2
188
166
  type: :development
189
167
  prerelease: false
190
168
  version_requirements: !ruby/object:Gem::Requirement
@@ -194,7 +172,7 @@ dependencies:
194
172
  version: '3.1'
195
173
  - - ">="
196
174
  - !ruby/object:Gem::Version
197
- version: 3.1.1
175
+ version: 3.1.2
198
176
  - !ruby/object:Gem::Dependency
199
177
  name: ruby-progressbar
200
178
  requirement: !ruby/object:Gem::Requirement
@@ -375,7 +353,7 @@ description: "\U0001F50D️ Appraisal2 integrates with bundler and rake to test
375
353
  library against different versions of dependencies in repeatable scenarios called
376
354
  \"appraisals.\""
377
355
  email:
378
- - galtzo@floss.com
356
+ - floss@galtzo.com
379
357
  executables:
380
358
  - appraisal
381
359
  extensions: []
@@ -437,10 +415,10 @@ licenses:
437
415
  - MIT
438
416
  metadata:
439
417
  homepage_uri: https://appraisal2.galtzo.com
440
- source_code_uri: https://github.com/appraisal-rb/appraisal2/tree/v3.1.0
441
- changelog_uri: https://github.com/appraisal-rb/appraisal2/blob/v3.1.0/CHANGELOG.md
418
+ source_code_uri: https://github.com/appraisal-rb/appraisal2/tree/v3.1.2
419
+ changelog_uri: https://github.com/appraisal-rb/appraisal2/blob/v3.1.2/CHANGELOG.md
442
420
  bug_tracker_uri: https://github.com/appraisal-rb/appraisal2/issues
443
- documentation_uri: https://www.rubydoc.info/gems/appraisal2/3.1.0
421
+ documentation_uri: https://www.rubydoc.info/gems/appraisal2/3.1.2
444
422
  funding_uri: https://github.com/sponsors/pboling
445
423
  wiki_uri: https://github.com/appraisal-rb/appraisal2/wiki
446
424
  news_uri: https://www.railsbling.com/tags/appraisal2
metadata.gz.sig CHANGED
Binary file