-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAppraisals
More file actions
110 lines (96 loc) · 4.04 KB
/
Appraisals
File metadata and controls
110 lines (96 loc) · 4.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# frozen_string_literal: true
# kettle-jem:freeze
# To retain chunks of comments & code during prism-merge templating:
# Wrap custom sections with freeze markers (e.g., as above and below this comment chunk).
# prism-merge will then preserve content between those markers across template runs.
# kettle-jem:unfreeze
# HOW TO UPDATE APPRAISALS (will run rubocop_gradual's autocorrect afterward):
# bin/rake appraisal:update
# Lock/Unlock Deps Pattern
#
# Two often conflicting goals resolved!
#
# - unlocked_deps.yml
# - All runtime & dev dependencies, but does not have a `gemfiles/*.gemfile.lock` committed
# - Uses an Appraisal2 "unlocked_deps" gemfile, and the current MRI Ruby release
# - Know when new dependency releases will break local dev with unlocked dependencies
# - Broken workflow indicates that new releases of dependencies may not work
#
# - locked_deps.yml
# - All runtime & dev dependencies, and has a `Gemfile.lock` committed
# - Uses the project's main Gemfile, and the current MRI Ruby release
# - Matches what contributors and maintainers use locally for development
# - Broken workflow indicates that a new contributor will have a bad time
#
appraise "unlocked_deps" do
# Seems to be an undeclared dependency of yard.
# /opt/hostedtoolcache/Ruby/4.0.0/x64/lib/ruby/gems/4.0.0/gems/yard-0.9.38/lib/yard/parser/ruby/legacy/irb/slex.rb:13: warning: irb/notifier is found in irb, which is not part of the default gems since Ruby 4.0.0.
# You can add irb to your Gemfile or gemspec to fix this error.
# rake aborted!
# LoadError: cannot load such file -- irb/notifier (LoadError)
# /opt/hostedtoolcache/Ruby/4.0.0/x64/bin/bundle:25:in '<main>'
# But it won't install on TruffleRuby, so it can't be part of modular gemfiles used there:
# An error occurred while installing psych (5.3.1), and Bundler cannot continue.
#
# In ruby_3_2.gemfile:
# irb was resolved to 1.16.0, which depends on
# rdoc was resolved to 7.0.3, which depends on
# psych
gem "irb", "~> 1.17" # ruby >= 2.7
eval_gemfile "modular/coverage.gemfile"
eval_gemfile "modular/documentation.gemfile"
eval_gemfile "modular/optional.gemfile"
eval_gemfile "modular/rspec.gemfile"
eval_gemfile "modular/style.gemfile"
eval_gemfile "modular/x_std_libs.gemfile"
end
# Used for head (nightly) releases of ruby, truffleruby, and jruby.
# Split into discrete appraisals if one of them needs a dependency locked discretely.
appraise "head" do
# Why is gem "cgi" here? See: https://github.com/vcr/vcr/issues/1057
# gem "cgi", ">= 0.5"
eval_gemfile "modular/rspec.gemfile"
eval_gemfile "modular/x_std_libs.gemfile"
end
# Used for current releases of ruby, truffleruby, and jruby.
# Split into discrete appraisals if one of them needs a dependency locked discretely.
appraise "current" do
eval_gemfile "modular/rspec.gemfile"
eval_gemfile "modular/x_std_libs.gemfile"
end
# Test current Rubies against head versions of runtime dependencies
appraise "dep-heads" do
eval_gemfile "modular/rspec.gemfile"
eval_gemfile "modular/runtime_heads.gemfile"
end
appraise "ruby-3-2" do
eval_gemfile "modular/rspec.gemfile"
eval_gemfile "modular/x_std_libs/r3/libs.gemfile"
end
appraise "ruby-3-3" do
eval_gemfile "modular/rspec.gemfile"
eval_gemfile "modular/x_std_libs/r3/libs.gemfile"
end
appraise "ruby-3-4" do
eval_gemfile "modular/x_std_libs/r3/libs.gemfile"
end
# Only run security audit on the latest version of Ruby
appraise "audit" do
eval_gemfile "modular/x_std_libs.gemfile"
end
# Only run coverage on the latest version of Ruby
appraise "coverage" do
eval_gemfile "modular/coverage.gemfile"
eval_gemfile "modular/optional.gemfile"
eval_gemfile "modular/rspec.gemfile"
eval_gemfile "modular/x_std_libs.gemfile"
end
# Only run linter on the latest version of Ruby (but, in support of oldest supported Ruby version)
appraise "style" do
eval_gemfile "modular/style.gemfile"
eval_gemfile "modular/x_std_libs.gemfile"
end
appraise "templating" do
eval_gemfile "modular/templating.gemfile"
eval_gemfile "modular/x_std_libs.gemfile"
end