stone_checksums 1.0.2 → 1.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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +43 -5
- data/CITATION.cff +20 -0
- data/CONTRIBUTING.md +124 -46
- data/FUNDING.md +70 -0
- data/LICENSE.md +10 -0
- data/README.md +218 -193
- data/RUBOCOP.md +71 -0
- data/SECURITY.md +1 -1
- data/certs/pboling.pem +27 -0
- data/lib/gem_checksums.rb +99 -56
- data/lib/stone_checksums/version.rb +2 -5
- data/lib/stone_checksums.rb +2 -0
- data/sig/stone_checksums/version.rbs +6 -0
- data/sig/stone_checksums.rbs +0 -3
- data.tar.gz.sig +0 -0
- metadata +150 -18
- metadata.gz.sig +0 -0
- data/LICENSE.txt +0 -21
data/RUBOCOP.md
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# RuboCop Usage Guide
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
A tale of two RuboCop plugin gems.
|
|
6
|
+
|
|
7
|
+
### RuboCop Gradual
|
|
8
|
+
|
|
9
|
+
This project uses `rubocop_gradual` instead of vanilla RuboCop for code style checking. The `rubocop_gradual` tool allows for gradual adoption of RuboCop rules by tracking violations in a lock file.
|
|
10
|
+
|
|
11
|
+
### RuboCop LTS
|
|
12
|
+
|
|
13
|
+
This project uses `rubocop-lts` to ensure, on a best-effort basis, compatibility with Ruby >= 1.9.2.
|
|
14
|
+
RuboCop rules are meticulously configured by the `rubocop-lts` family of gems to ensure that a project is compatible with a specific version of Ruby. See: https://rubocop-lts.gitlab.io for more.
|
|
15
|
+
|
|
16
|
+
## Checking RuboCop Violations
|
|
17
|
+
|
|
18
|
+
To check for RuboCop violations in this project, always use:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
bundle exec rake rubocop_gradual:check
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
**Do not use** the standard RuboCop commands like:
|
|
25
|
+
- `bundle exec rubocop`
|
|
26
|
+
- `rubocop`
|
|
27
|
+
|
|
28
|
+
## Understanding the Lock File
|
|
29
|
+
|
|
30
|
+
The `.rubocop_gradual.lock` file tracks all current RuboCop violations in the project. This allows the team to:
|
|
31
|
+
|
|
32
|
+
1. Prevent new violations while gradually fixing existing ones
|
|
33
|
+
2. Track progress on code style improvements
|
|
34
|
+
3. Ensure CI builds don't fail due to pre-existing violations
|
|
35
|
+
|
|
36
|
+
## Common Commands
|
|
37
|
+
|
|
38
|
+
- **Check violations**
|
|
39
|
+
- `bundle exec rake rubocop_gradual`
|
|
40
|
+
- `bundle exec rake rubocop_gradual:check`
|
|
41
|
+
- **(Safe) Autocorrect violations, and update lockfile if no new violations**
|
|
42
|
+
- `bundle exec rake rubocop_gradual:autocorrect`
|
|
43
|
+
- **Force update the lock file (w/o autocorrect) to match violations present in code**
|
|
44
|
+
- `bundle exec rake rubocop_gradual:force_update`
|
|
45
|
+
|
|
46
|
+
## Workflow
|
|
47
|
+
|
|
48
|
+
1. Before submitting a PR, run `bundle exec rake rubocop_gradual:autocorrect`
|
|
49
|
+
a. or just the default `bundle exec rake`, as autocorrection is a pre-requisite of the default task.
|
|
50
|
+
2. If there are new violations, either:
|
|
51
|
+
- Fix them in your code
|
|
52
|
+
- Run `bundle exec rake rubocop_gradual:force_update` to update the lock file (only for violations you can't fix immediately)
|
|
53
|
+
3. Commit the updated `.rubocop_gradual.lock` file along with your changes
|
|
54
|
+
|
|
55
|
+
## Never add inline RuboCop disables
|
|
56
|
+
|
|
57
|
+
Do not add inline `rubocop:disable` / `rubocop:enable` comments anywhere in the codebase (including specs, except when following the few existing `rubocop:disable` patterns for a rule already being disabled elsewhere in the code). We handle exceptions in two supported ways:
|
|
58
|
+
|
|
59
|
+
- Permanent/structural exceptions: prefer adjusting the RuboCop configuration (e.g., in `.rubocop.yml`) to exclude a rule for a path or file pattern when it makes sense project-wide.
|
|
60
|
+
- Temporary exceptions while improving code: record the current violations in `.rubocop_gradual.lock` via the gradual workflow:
|
|
61
|
+
- `bundle exec rake rubocop_gradual:autocorrect` (preferred; will autocorrect what it can and update the lock only if no new violations were introduced)
|
|
62
|
+
- If needed, `bundle exec rake rubocop_gradual:force_update` (as a last resort when you cannot fix the newly reported violations immediately)
|
|
63
|
+
|
|
64
|
+
In general, treat the rules as guidance to follow; fix violations rather than ignore them. For example, RSpec conventions in this project expect `described_class` to be used in specs that target a specific class under test.
|
|
65
|
+
|
|
66
|
+
## Benefits of rubocop_gradual
|
|
67
|
+
|
|
68
|
+
- Allows incremental adoption of code style rules
|
|
69
|
+
- Prevents CI failures due to pre-existing violations
|
|
70
|
+
- Provides a clear record of code style debt
|
|
71
|
+
- Enables focused efforts on improving code quality over time
|
data/SECURITY.md
CHANGED
data/certs/pboling.pem
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
|
2
|
+
MIIEgDCCAuigAwIBAgIBATANBgkqhkiG9w0BAQsFADBDMRUwEwYDVQQDDAxwZXRl
|
|
3
|
+
ci5ib2xpbmcxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkW
|
|
4
|
+
A2NvbTAeFw0yNTA1MDQxNTMzMDlaFw00NTA0MjkxNTMzMDlaMEMxFTATBgNVBAMM
|
|
5
|
+
DHBldGVyLmJvbGluZzEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPy
|
|
6
|
+
LGQBGRYDY29tMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAruUoo0WA
|
|
7
|
+
uoNuq6puKWYeRYiZekz/nsDeK5x/0IEirzcCEvaHr3Bmz7rjo1I6On3gGKmiZs61
|
|
8
|
+
LRmQ3oxy77ydmkGTXBjruJB+pQEn7UfLSgQ0xa1/X3kdBZt6RmabFlBxnHkoaGY5
|
|
9
|
+
mZuZ5+Z7walmv6sFD9ajhzj+oIgwWfnEHkXYTR8I6VLN7MRRKGMPoZ/yvOmxb2DN
|
|
10
|
+
coEEHWKO9CvgYpW7asIihl/9GMpKiRkcYPm9dGQzZc6uTwom1COfW0+ZOFrDVBuV
|
|
11
|
+
FMQRPswZcY4Wlq0uEBLPU7hxnCL9nKK6Y9IhdDcz1mY6HZ91WImNslOSI0S8hRpj
|
|
12
|
+
yGOWxQIhBT3fqCBlRIqFQBudrnD9jSNpSGsFvbEijd5ns7Z9ZMehXkXDycpGAUj1
|
|
13
|
+
to/5cuTWWw1JqUWrKJYoifnVhtE1o1DZ+LkPtWxHtz5kjDG/zR3MG0Ula0UOavlD
|
|
14
|
+
qbnbcXPBnwXtTFeZ3C+yrWpE4pGnl3yGkZj9SMTlo9qnTMiPmuWKQDatAgMBAAGj
|
|
15
|
+
fzB9MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBQE8uWvNbPVNRXZ
|
|
16
|
+
HlgPbc2PCzC4bjAhBgNVHREEGjAYgRZwZXRlci5ib2xpbmdAZ21haWwuY29tMCEG
|
|
17
|
+
A1UdEgQaMBiBFnBldGVyLmJvbGluZ0BnbWFpbC5jb20wDQYJKoZIhvcNAQELBQAD
|
|
18
|
+
ggGBAJbnUwfJQFPkBgH9cL7hoBfRtmWiCvdqdjeTmi04u8zVNCUox0A4gT982DE9
|
|
19
|
+
wmuN12LpdajxZONqbXuzZvc+nb0StFwmFYZG6iDwaf4BPywm2e/Vmq0YG45vZXGR
|
|
20
|
+
L8yMDSK1cQXjmA+ZBKOHKWavxP6Vp7lWvjAhz8RFwqF9GuNIdhv9NpnCAWcMZtpm
|
|
21
|
+
GUPyIWw/Cw/2wZp74QzZj6Npx+LdXoLTF1HMSJXZ7/pkxLCsB8m4EFVdb/IrW/0k
|
|
22
|
+
kNSfjtAfBHO8nLGuqQZVH9IBD1i9K6aSs7pT6TW8itXUIlkIUI2tg5YzW6OFfPzq
|
|
23
|
+
QekSkX3lZfY+HTSp/o+YvKkqWLUV7PQ7xh1ZYDtocpaHwgxe/j3bBqHE+CUPH2vA
|
|
24
|
+
0V/FwdTRWcwsjVoOJTrYcff8pBZ8r2MvtAc54xfnnhGFzeRHfcltobgFxkAXdE6p
|
|
25
|
+
DVjBtqT23eugOqQ73umLcYDZkc36vnqGxUBSsXrzY9pzV5gGr2I8YUxMqf6ATrZt
|
|
26
|
+
L9nRqA==
|
|
27
|
+
-----END CERTIFICATE-----
|
data/lib/gem_checksums.rb
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
# Std lib
|
|
4
4
|
require "digest/sha2"
|
|
5
5
|
require "fileutils"
|
|
6
|
+
require "rubygems/package"
|
|
6
7
|
|
|
7
8
|
# external gems
|
|
8
9
|
require "version_gem"
|
|
@@ -25,31 +26,31 @@ module GemChecksums
|
|
|
25
26
|
GIT_DRY_RUN_ENV = ENV.fetch("GEM_CHECKSUMS_GIT_DRY_RUN", "false").casecmp("true") == 0
|
|
26
27
|
CHECKSUMS_DIR = ENV.fetch("GEM_CHECKSUMS_CHECKSUMS_DIR", "checksums")
|
|
27
28
|
PACKAGE_DIR = ENV.fetch("GEM_CHECKSUMS_PACKAGE_DIR", "pkg")
|
|
28
|
-
BUILD_TIME_WARNING =
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
29
|
+
BUILD_TIME_WARNING = <<-BUILD_TIME_WARNING
|
|
30
|
+
WARNING: Build time not provided via environment variable SOURCE_DATE_EPOCH.
|
|
31
|
+
When using Bundler < 2.7.0, you must set SOURCE_DATE_EPOCH *before* building
|
|
32
|
+
the gem to ensure consistent SHA-256 & SHA-512 checksums.
|
|
33
|
+
|
|
34
|
+
PREFERRED: Upgrade to Bundler >= 2.7.0, which uses a constant timestamp for gem builds,
|
|
35
|
+
making SOURCE_DATE_EPOCH unnecessary for reproducible checksums.
|
|
36
|
+
|
|
37
|
+
IMPORTANT: If you choose to set the build time via SOURCE_DATE_EPOCH,
|
|
38
|
+
you must re-build the gem, i.e. `bundle exec rake build` or `gem build`.
|
|
39
|
+
|
|
40
|
+
How to set the build time (only needed for Bundler < 2.7.0):
|
|
41
|
+
|
|
42
|
+
In zsh shell:
|
|
43
|
+
- export SOURCE_DATE_EPOCH=$EPOCHSECONDS && echo $SOURCE_DATE_EPOCH
|
|
44
|
+
- If the echo above has no output, then it didn't work.
|
|
45
|
+
- Note that you'll need the `zsh/datetime` module enabled.
|
|
46
|
+
|
|
47
|
+
In fish shell:
|
|
48
|
+
- set -x SOURCE_DATE_EPOCH (date +%s)
|
|
49
|
+
- echo $SOURCE_DATE_EPOCH
|
|
50
|
+
|
|
51
|
+
In bash shell:
|
|
52
|
+
- export SOURCE_DATE_EPOCH=$(date +%s) && echo $SOURCE_DATE_EPOCH
|
|
53
|
+
|
|
53
54
|
BUILD_TIME_WARNING
|
|
54
55
|
|
|
55
56
|
# Make this gem's rake tasks available in your Rakefile:
|
|
@@ -93,7 +94,7 @@ module GemChecksums
|
|
|
93
94
|
# Header: identify the gem and version being run
|
|
94
95
|
begin
|
|
95
96
|
puts "[ stone_checksums #{::StoneChecksums::Version::VERSION} ]"
|
|
96
|
-
rescue
|
|
97
|
+
rescue
|
|
97
98
|
# If for any reason the version constant isn't available, skip header gracefully
|
|
98
99
|
end
|
|
99
100
|
|
|
@@ -108,11 +109,11 @@ module GemChecksums
|
|
|
108
109
|
|
|
109
110
|
unless proceed
|
|
110
111
|
# Non-interactive prompt: advise and abort
|
|
111
|
-
prompt_msg =
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
112
|
+
prompt_msg = <<-PROMPT
|
|
113
|
+
Detected Bundler #{bundler_ver || "(unknown)"} which is older than 2.7.0.
|
|
114
|
+
For reproducible builds without SOURCE_DATE_EPOCH, please update Bundler to >= 2.7.0.
|
|
115
|
+
If you still want to proceed with this older Bundler, you must set SOURCE_DATE_EPOCH and re-run.
|
|
116
|
+
Tip: set GEM_CHECKSUMS_ASSUME_YES=true to proceed non-interactively (still requires SOURCE_DATE_EPOCH).
|
|
116
117
|
PROMPT
|
|
117
118
|
warn(prompt_msg)
|
|
118
119
|
# Continue to enforce SOURCE_DATE_EPOCH below; if not set, this will raise.
|
|
@@ -153,12 +154,14 @@ module GemChecksums
|
|
|
153
154
|
# Sort by newest last
|
|
154
155
|
# [ "my_gem-2.3.9.gem", "my_gem-2.3.11.pre.alpha.4.gem", "my_gem-2.3.15.gem", ... ]
|
|
155
156
|
gems.sort_by! { |gem| Gem::Version.new(gem[VERSION_REGEX]) }
|
|
156
|
-
gem_pkg = gems.last
|
|
157
|
+
gem_pkg = preferred_project_package(gems) || gems.last
|
|
157
158
|
gem_path_parts = gem_pkg.split("/")
|
|
158
159
|
gem_name = gem_path_parts.last
|
|
159
|
-
puts "Found: #{gems.length} gems;
|
|
160
|
+
puts "Found: #{gems.length} gems; selected #{gem_name}"
|
|
160
161
|
end
|
|
161
162
|
|
|
163
|
+
validate_project_package!(gem_pkg)
|
|
164
|
+
|
|
162
165
|
pkg_bits = File.read(gem_pkg)
|
|
163
166
|
|
|
164
167
|
# SHA-512 digest is 8 64-bit words
|
|
@@ -174,38 +177,38 @@ module GemChecksums
|
|
|
174
177
|
|
|
175
178
|
version = gem_name[VERSION_REGEX]
|
|
176
179
|
|
|
177
|
-
git_cmd =
|
|
178
|
-
|
|
179
|
-
|
|
180
|
+
git_cmd = <<-GIT_MSG.rstrip
|
|
181
|
+
git add #{CHECKSUMS_DIR}/* && \
|
|
182
|
+
git commit #{git_dry_run_flag} -m "🔒️ Checksums for v#{version}"
|
|
180
183
|
GIT_MSG
|
|
181
184
|
|
|
182
185
|
if git_dry_run_flag
|
|
183
|
-
git_cmd +=
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
186
|
+
git_cmd += <<-CLEANUP_MSG
|
|
187
|
+
&& \
|
|
188
|
+
echo "Cleaning up in dry run mode" && \
|
|
189
|
+
git reset #{digest512_64bit_path} && \
|
|
190
|
+
git reset #{digest256_32bit_path} && \
|
|
191
|
+
rm -f #{digest512_64bit_path} && \
|
|
192
|
+
rm -f #{digest256_32bit_path}
|
|
190
193
|
CLEANUP_MSG
|
|
191
194
|
end
|
|
192
195
|
|
|
193
|
-
puts
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
196
|
+
puts <<-RESULTS
|
|
197
|
+
[ GEM: #{gem_name} ]
|
|
198
|
+
[ VERSION: #{version} ]
|
|
199
|
+
[ GEM PKG LOCATION: #{gem_pkg} ]
|
|
200
|
+
[ CHECKSUM SHA-256: #{digest256_32bit} ]
|
|
201
|
+
[ CHECKSUM SHA-512: #{digest512_64bit} ]
|
|
202
|
+
[ CHECKSUM SHA-256 PATH: #{digest256_32bit_path} ]
|
|
203
|
+
[ CHECKSUM SHA-512 PATH: #{digest512_64bit_path} ]
|
|
204
|
+
|
|
205
|
+
... Running ...
|
|
206
|
+
|
|
207
|
+
#{git_cmd}
|
|
205
208
|
RESULTS
|
|
206
209
|
|
|
207
210
|
if git_dry_run_flag
|
|
208
|
-
|
|
211
|
+
`#{git_cmd}`
|
|
209
212
|
else
|
|
210
213
|
# `exec` will replace the current process with the git process, and exit.
|
|
211
214
|
# Within the generate method, Ruby code placed after the `exec` *will not be run*:
|
|
@@ -216,6 +219,46 @@ module GemChecksums
|
|
|
216
219
|
end
|
|
217
220
|
end
|
|
218
221
|
module_function :generate
|
|
222
|
+
|
|
223
|
+
def validate_project_package!(gem_pkg)
|
|
224
|
+
project_spec = current_project_spec
|
|
225
|
+
return unless project_spec
|
|
226
|
+
return unless validate_package_against_project?(gem_pkg, project_spec)
|
|
227
|
+
|
|
228
|
+
package_spec = Gem::Package.new(gem_pkg).spec
|
|
229
|
+
return if package_spec.name == project_spec.name && package_spec.version == project_spec.version
|
|
230
|
+
|
|
231
|
+
raise Error, [
|
|
232
|
+
"Built gem version mismatch for #{gem_pkg}.",
|
|
233
|
+
"Current gemspec resolves to #{project_spec.name} #{project_spec.version}, but selected package is #{package_spec.name} #{package_spec.version}.",
|
|
234
|
+
"Remove stale packages or pass the intended .gem path explicitly before generating checksums."
|
|
235
|
+
].join("\n")
|
|
236
|
+
rescue Gem::Package::Error => error
|
|
237
|
+
raise Error, "Unable to inspect built gem #{gem_pkg}: #{error.message}"
|
|
238
|
+
end
|
|
239
|
+
module_function :validate_project_package!
|
|
240
|
+
|
|
241
|
+
def current_project_spec
|
|
242
|
+
gemspecs = Dir["*.gemspec"]
|
|
243
|
+
return unless gemspecs.length == 1
|
|
244
|
+
|
|
245
|
+
Gem::Specification.load(gemspecs.first)
|
|
246
|
+
end
|
|
247
|
+
module_function :current_project_spec
|
|
248
|
+
|
|
249
|
+
def preferred_project_package(gems)
|
|
250
|
+
project_spec = current_project_spec
|
|
251
|
+
return unless project_spec
|
|
252
|
+
|
|
253
|
+
expected_name = "#{project_spec.name}-#{project_spec.version}.gem"
|
|
254
|
+
gems.find { |gem| File.basename(gem) == expected_name }
|
|
255
|
+
end
|
|
256
|
+
module_function :preferred_project_package
|
|
257
|
+
|
|
258
|
+
def validate_package_against_project?(gem_pkg, project_spec)
|
|
259
|
+
File.basename(File.expand_path(PACKAGE_DIR)) == "pkg" || File.basename(gem_pkg).start_with?("#{project_spec.name}-")
|
|
260
|
+
end
|
|
261
|
+
module_function :validate_package_against_project?
|
|
219
262
|
end
|
|
220
263
|
|
|
221
264
|
GemChecksums::Version.class_eval do
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# Semantic version for the StoneChecksums gem
|
|
4
3
|
module StoneChecksums
|
|
5
|
-
# Version-related constants for StoneChecksums
|
|
6
4
|
module Version
|
|
7
|
-
|
|
8
|
-
# @return [String]
|
|
9
|
-
VERSION = "1.0.2"
|
|
5
|
+
VERSION = "1.0.4"
|
|
10
6
|
end
|
|
7
|
+
VERSION = Version::VERSION # Traditional Constant Location
|
|
11
8
|
end
|
data/lib/stone_checksums.rb
CHANGED
data/sig/stone_checksums.rbs
CHANGED
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: stone_checksums
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
4
|
+
version: 1.0.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
|
-
-
|
|
7
|
+
- "|7eter l-|. l3oling"
|
|
8
8
|
bindir: exe
|
|
9
9
|
cert_chain:
|
|
10
10
|
- |
|
|
@@ -46,7 +46,7 @@ dependencies:
|
|
|
46
46
|
version: '1.1'
|
|
47
47
|
- - ">="
|
|
48
48
|
- !ruby/object:Gem::Version
|
|
49
|
-
version: 1.1.
|
|
49
|
+
version: 1.1.13
|
|
50
50
|
type: :runtime
|
|
51
51
|
prerelease: false
|
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -56,9 +56,57 @@ dependencies:
|
|
|
56
56
|
version: '1.1'
|
|
57
57
|
- - ">="
|
|
58
58
|
- !ruby/object:Gem::Version
|
|
59
|
-
version: 1.1.
|
|
59
|
+
version: 1.1.13
|
|
60
60
|
- !ruby/object:Gem::Dependency
|
|
61
61
|
name: kettle-dev
|
|
62
|
+
requirement: !ruby/object:Gem::Requirement
|
|
63
|
+
requirements:
|
|
64
|
+
- - "~>"
|
|
65
|
+
- !ruby/object:Gem::Version
|
|
66
|
+
version: '2.2'
|
|
67
|
+
- - ">="
|
|
68
|
+
- !ruby/object:Gem::Version
|
|
69
|
+
version: 2.2.15
|
|
70
|
+
type: :development
|
|
71
|
+
prerelease: false
|
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
73
|
+
requirements:
|
|
74
|
+
- - "~>"
|
|
75
|
+
- !ruby/object:Gem::Version
|
|
76
|
+
version: '2.2'
|
|
77
|
+
- - ">="
|
|
78
|
+
- !ruby/object:Gem::Version
|
|
79
|
+
version: 2.2.15
|
|
80
|
+
- !ruby/object:Gem::Dependency
|
|
81
|
+
name: bundler-audit
|
|
82
|
+
requirement: !ruby/object:Gem::Requirement
|
|
83
|
+
requirements:
|
|
84
|
+
- - "~>"
|
|
85
|
+
- !ruby/object:Gem::Version
|
|
86
|
+
version: 0.9.3
|
|
87
|
+
type: :development
|
|
88
|
+
prerelease: false
|
|
89
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
90
|
+
requirements:
|
|
91
|
+
- - "~>"
|
|
92
|
+
- !ruby/object:Gem::Version
|
|
93
|
+
version: 0.9.3
|
|
94
|
+
- !ruby/object:Gem::Dependency
|
|
95
|
+
name: rake
|
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
|
97
|
+
requirements:
|
|
98
|
+
- - "~>"
|
|
99
|
+
- !ruby/object:Gem::Version
|
|
100
|
+
version: '13.0'
|
|
101
|
+
type: :development
|
|
102
|
+
prerelease: false
|
|
103
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
104
|
+
requirements:
|
|
105
|
+
- - "~>"
|
|
106
|
+
- !ruby/object:Gem::Version
|
|
107
|
+
version: '13.0'
|
|
108
|
+
- !ruby/object:Gem::Dependency
|
|
109
|
+
name: require_bench
|
|
62
110
|
requirement: !ruby/object:Gem::Requirement
|
|
63
111
|
requirements:
|
|
64
112
|
- - "~>"
|
|
@@ -66,7 +114,7 @@ dependencies:
|
|
|
66
114
|
version: '1.0'
|
|
67
115
|
- - ">="
|
|
68
116
|
- !ruby/object:Gem::Version
|
|
69
|
-
version: 1.0.
|
|
117
|
+
version: 1.0.4
|
|
70
118
|
type: :development
|
|
71
119
|
prerelease: false
|
|
72
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -76,27 +124,101 @@ dependencies:
|
|
|
76
124
|
version: '1.0'
|
|
77
125
|
- - ">="
|
|
78
126
|
- !ruby/object:Gem::Version
|
|
79
|
-
version: 1.0.
|
|
127
|
+
version: 1.0.4
|
|
128
|
+
- !ruby/object:Gem::Dependency
|
|
129
|
+
name: appraisal2
|
|
130
|
+
requirement: !ruby/object:Gem::Requirement
|
|
131
|
+
requirements:
|
|
132
|
+
- - "~>"
|
|
133
|
+
- !ruby/object:Gem::Version
|
|
134
|
+
version: '3.1'
|
|
135
|
+
- - ">="
|
|
136
|
+
- !ruby/object:Gem::Version
|
|
137
|
+
version: 3.1.3
|
|
138
|
+
type: :development
|
|
139
|
+
prerelease: false
|
|
140
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
141
|
+
requirements:
|
|
142
|
+
- - "~>"
|
|
143
|
+
- !ruby/object:Gem::Version
|
|
144
|
+
version: '3.1'
|
|
145
|
+
- - ">="
|
|
146
|
+
- !ruby/object:Gem::Version
|
|
147
|
+
version: 3.1.3
|
|
148
|
+
- !ruby/object:Gem::Dependency
|
|
149
|
+
name: kettle-test
|
|
150
|
+
requirement: !ruby/object:Gem::Requirement
|
|
151
|
+
requirements:
|
|
152
|
+
- - "~>"
|
|
153
|
+
- !ruby/object:Gem::Version
|
|
154
|
+
version: '2.0'
|
|
155
|
+
- - ">="
|
|
156
|
+
- !ruby/object:Gem::Version
|
|
157
|
+
version: 2.0.6
|
|
158
|
+
type: :development
|
|
159
|
+
prerelease: false
|
|
160
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
161
|
+
requirements:
|
|
162
|
+
- - "~>"
|
|
163
|
+
- !ruby/object:Gem::Version
|
|
164
|
+
version: '2.0'
|
|
165
|
+
- - ">="
|
|
166
|
+
- !ruby/object:Gem::Version
|
|
167
|
+
version: 2.0.6
|
|
168
|
+
- !ruby/object:Gem::Dependency
|
|
169
|
+
name: turbo_tests2
|
|
170
|
+
requirement: !ruby/object:Gem::Requirement
|
|
171
|
+
requirements:
|
|
172
|
+
- - "~>"
|
|
173
|
+
- !ruby/object:Gem::Version
|
|
174
|
+
version: '3.1'
|
|
175
|
+
- - ">="
|
|
176
|
+
- !ruby/object:Gem::Version
|
|
177
|
+
version: 3.1.5
|
|
178
|
+
type: :development
|
|
179
|
+
prerelease: false
|
|
180
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
181
|
+
requirements:
|
|
182
|
+
- - "~>"
|
|
183
|
+
- !ruby/object:Gem::Version
|
|
184
|
+
version: '3.1'
|
|
185
|
+
- - ">="
|
|
186
|
+
- !ruby/object:Gem::Version
|
|
187
|
+
version: 3.1.5
|
|
188
|
+
- !ruby/object:Gem::Dependency
|
|
189
|
+
name: ruby-progressbar
|
|
190
|
+
requirement: !ruby/object:Gem::Requirement
|
|
191
|
+
requirements:
|
|
192
|
+
- - "~>"
|
|
193
|
+
- !ruby/object:Gem::Version
|
|
194
|
+
version: '1.13'
|
|
195
|
+
type: :development
|
|
196
|
+
prerelease: false
|
|
197
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
198
|
+
requirements:
|
|
199
|
+
- - "~>"
|
|
200
|
+
- !ruby/object:Gem::Version
|
|
201
|
+
version: '1.13'
|
|
80
202
|
- !ruby/object:Gem::Dependency
|
|
81
|
-
name:
|
|
203
|
+
name: gitmoji-regex
|
|
82
204
|
requirement: !ruby/object:Gem::Requirement
|
|
83
205
|
requirements:
|
|
84
206
|
- - "~>"
|
|
85
207
|
- !ruby/object:Gem::Version
|
|
86
|
-
version: '0
|
|
208
|
+
version: '2.0'
|
|
87
209
|
- - ">="
|
|
88
210
|
- !ruby/object:Gem::Version
|
|
89
|
-
version: 0.
|
|
211
|
+
version: 2.0.3
|
|
90
212
|
type: :development
|
|
91
213
|
prerelease: false
|
|
92
214
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
215
|
requirements:
|
|
94
216
|
- - "~>"
|
|
95
217
|
- !ruby/object:Gem::Version
|
|
96
|
-
version: '0
|
|
218
|
+
version: '2.0'
|
|
97
219
|
- - ">="
|
|
98
220
|
- !ruby/object:Gem::Version
|
|
99
|
-
version: 0.
|
|
221
|
+
version: 2.0.3
|
|
100
222
|
description: "\U0001F5FF Generate both SHA256 & SHA512 checksums into the checksums
|
|
101
223
|
directory, and git commit them.\n gem install stone_checksums\nThen, use the rake
|
|
102
224
|
task or the script:\n rake build:generate_checksums\n gem_checksums\nControl options
|
|
@@ -109,18 +231,25 @@ executables:
|
|
|
109
231
|
extensions: []
|
|
110
232
|
extra_rdoc_files:
|
|
111
233
|
- CHANGELOG.md
|
|
234
|
+
- CITATION.cff
|
|
112
235
|
- CODE_OF_CONDUCT.md
|
|
113
236
|
- CONTRIBUTING.md
|
|
114
|
-
-
|
|
237
|
+
- FUNDING.md
|
|
238
|
+
- LICENSE.md
|
|
115
239
|
- README.md
|
|
240
|
+
- RUBOCOP.md
|
|
116
241
|
- SECURITY.md
|
|
117
242
|
files:
|
|
118
243
|
- CHANGELOG.md
|
|
244
|
+
- CITATION.cff
|
|
119
245
|
- CODE_OF_CONDUCT.md
|
|
120
246
|
- CONTRIBUTING.md
|
|
121
|
-
-
|
|
247
|
+
- FUNDING.md
|
|
248
|
+
- LICENSE.md
|
|
122
249
|
- README.md
|
|
250
|
+
- RUBOCOP.md
|
|
123
251
|
- SECURITY.md
|
|
252
|
+
- certs/pboling.pem
|
|
124
253
|
- exe/gem_checksums
|
|
125
254
|
- lib/gem_checksums.rb
|
|
126
255
|
- lib/gem_checksums/rakelib/gem_checksums.rake
|
|
@@ -130,15 +259,16 @@ files:
|
|
|
130
259
|
- lib/stone_checksums/version.rb
|
|
131
260
|
- sig/gem_checksums.rbs
|
|
132
261
|
- sig/stone_checksums.rbs
|
|
262
|
+
- sig/stone_checksums/version.rbs
|
|
133
263
|
homepage: https://github.com/galtzo-floss/stone_checksums
|
|
134
264
|
licenses:
|
|
135
265
|
- MIT
|
|
136
266
|
metadata:
|
|
137
|
-
homepage_uri: https://stone-checksums.galtzo.com
|
|
138
|
-
source_code_uri: https://github.com/galtzo-floss/stone_checksums/tree/v1.0.
|
|
139
|
-
changelog_uri: https://github.com/galtzo-floss/stone_checksums/blob/v1.0.
|
|
267
|
+
homepage_uri: https://stone-checksums.galtzo.com
|
|
268
|
+
source_code_uri: https://github.com/galtzo-floss/stone_checksums/tree/v1.0.4
|
|
269
|
+
changelog_uri: https://github.com/galtzo-floss/stone_checksums/blob/v1.0.4/CHANGELOG.md
|
|
140
270
|
bug_tracker_uri: https://github.com/galtzo-floss/stone_checksums/issues
|
|
141
|
-
documentation_uri: https://www.rubydoc.info/gems/stone_checksums/1.0.
|
|
271
|
+
documentation_uri: https://www.rubydoc.info/gems/stone_checksums/1.0.4
|
|
142
272
|
funding_uri: https://github.com/sponsors/pboling
|
|
143
273
|
wiki_uri: https://github.com/galtzo-floss/stone_checksums/wiki
|
|
144
274
|
news_uri: https://www.railsbling.com/tags/stone_checksums
|
|
@@ -150,6 +280,8 @@ rdoc_options:
|
|
|
150
280
|
libraries"
|
|
151
281
|
- "--main"
|
|
152
282
|
- README.md
|
|
283
|
+
- "--exclude"
|
|
284
|
+
- "^sig/"
|
|
153
285
|
- "--line-numbers"
|
|
154
286
|
- "--inline-source"
|
|
155
287
|
- "--quiet"
|
|
@@ -166,7 +298,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
166
298
|
- !ruby/object:Gem::Version
|
|
167
299
|
version: '0'
|
|
168
300
|
requirements: []
|
|
169
|
-
rubygems_version:
|
|
301
|
+
rubygems_version: 4.0.10
|
|
170
302
|
specification_version: 4
|
|
171
303
|
summary: "\U0001F5FF Generate both SHA256 & SHA512 checksums of RubyGem libraries"
|
|
172
304
|
test_files: []
|
metadata.gz.sig
CHANGED
|
Binary file
|
data/LICENSE.txt
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
The MIT License (MIT)
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2022 - 2025 Peter Boling
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in
|
|
13
|
-
all copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
21
|
-
THE SOFTWARE.
|