ndr_dev_support 6.0.1 → 6.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
- data/CHANGELOG.md +13 -1
- data/code_safety.yml +15 -7
- data/gemfiles/Gemfile.rails70 +4 -0
- data/lib/ndr_dev_support/tasks.rb +1 -0
- data/lib/ndr_dev_support/version.rb +1 -1
- data/lib/tasks/audit_bundle.rake +171 -0
- data/ndr_dev_support.gemspec +1 -1
- metadata +6 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c974533f2670deb4a3c97be7fcc5e979441873e779dd30db443b1e3813aee8eb
|
4
|
+
data.tar.gz: 62927ddd9ce5a70f3870543aa6e15734489bca3449eccf5d8b18e3e145c79fae
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b0960ae0595c55f024ec201113772e225087398cb24f30b63728d08712cbd2d80570a161b60b20f91f45de5948b977ed5bd647b6af783bcbb3d791390743ab40
|
7
|
+
data.tar.gz: 1e6a5753db64d820f8499170662a0677065ee3222257cc959bb688efeb5508d34c351c686be8272938b093ba3ac9a7423704732a3b347e0f83c4c385687dae57
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,17 @@
|
|
1
1
|
## [Unreleased]
|
2
|
-
*no unreleased changes
|
2
|
+
* no unreleased changes
|
3
|
+
|
4
|
+
## 6.0.4 / 2022-03-14
|
5
|
+
### Fixed
|
6
|
+
* bundle:update should commit code_safety.yml changes.
|
7
|
+
|
8
|
+
## 6.0.3 / 2022-03-14
|
9
|
+
### Added
|
10
|
+
* Add `bundle:update` rake task to update bundled gem files
|
11
|
+
|
12
|
+
## 6.0.2 / 2022-01-14
|
13
|
+
### Fixed
|
14
|
+
* Support Rails 7, Ruby 3.1
|
3
15
|
|
4
16
|
## 6.0.1 / 2021-07-09
|
5
17
|
### Fixed
|
data/code_safety.yml
CHANGED
@@ -10,8 +10,8 @@ file safety:
|
|
10
10
|
safe_revision: 0ce43640c417e174054f903fd82043948ebe8ccb
|
11
11
|
".github/workflows/test.yml":
|
12
12
|
comments:
|
13
|
-
reviewed_by:
|
14
|
-
safe_revision:
|
13
|
+
reviewed_by: brian.shand
|
14
|
+
safe_revision: 65d59fe9bba9dc7d404f92b54a115b14e6697af9
|
15
15
|
".gitignore":
|
16
16
|
comments:
|
17
17
|
reviewed_by: josh.pencheon
|
@@ -27,7 +27,7 @@ file safety:
|
|
27
27
|
CHANGELOG.md:
|
28
28
|
comments:
|
29
29
|
reviewed_by: brian.shand
|
30
|
-
safe_revision:
|
30
|
+
safe_revision: 25fcab1b2df9476bfa294085a46073b218785c19
|
31
31
|
CODE_OF_CONDUCT.md:
|
32
32
|
comments:
|
33
33
|
reviewed_by: timgentry
|
@@ -72,6 +72,10 @@ file safety:
|
|
72
72
|
comments:
|
73
73
|
reviewed_by: joshpencheon
|
74
74
|
safe_revision: f25001ef74c44ab727eef5cb29cef9a54525d36f
|
75
|
+
gemfiles/Gemfile.rails70:
|
76
|
+
comments:
|
77
|
+
reviewed_by: brian.shand
|
78
|
+
safe_revision: 65d59fe9bba9dc7d404f92b54a115b14e6697af9
|
75
79
|
lib/minitest/rake_ci.rb:
|
76
80
|
comments:
|
77
81
|
reviewed_by: josh.pencheon
|
@@ -222,12 +226,16 @@ file safety:
|
|
222
226
|
safe_revision: ad38e92c6e56b9d81fdab10681d8f2924eeadf5a
|
223
227
|
lib/ndr_dev_support/tasks.rb:
|
224
228
|
comments:
|
225
|
-
reviewed_by:
|
226
|
-
safe_revision:
|
229
|
+
reviewed_by: brian.shand
|
230
|
+
safe_revision: 93f9ed210c6a19eee4884ea8a906067c65ee67f6
|
227
231
|
lib/ndr_dev_support/version.rb:
|
228
232
|
comments:
|
229
233
|
reviewed_by: brian.shand
|
230
|
-
safe_revision:
|
234
|
+
safe_revision: 25fcab1b2df9476bfa294085a46073b218785c19
|
235
|
+
lib/tasks/audit_bundle.rake:
|
236
|
+
comments:
|
237
|
+
reviewed_by: brian.shand
|
238
|
+
safe_revision: 9682c3eb39a98d5a5256732af647a8bd7750826b
|
231
239
|
lib/tasks/audit_code.rake:
|
232
240
|
comments: Identical to the version reviewed by josh.pencheon when contained within
|
233
241
|
ndr_support
|
@@ -300,7 +308,7 @@ file safety:
|
|
300
308
|
ndr_dev_support.gemspec:
|
301
309
|
comments:
|
302
310
|
reviewed_by: brian.shand
|
303
|
-
safe_revision:
|
311
|
+
safe_revision: 65d59fe9bba9dc7d404f92b54a115b14e6697af9
|
304
312
|
test/daemon/ci_server_test.rb:
|
305
313
|
comments:
|
306
314
|
reviewed_by: josh.pencheon
|
@@ -0,0 +1,171 @@
|
|
1
|
+
# A rake task to update the bundled version of a gem
|
2
|
+
|
3
|
+
# Assumes constant SAFETY_FILE and function repository_type are defined in another rake task.
|
4
|
+
|
5
|
+
namespace :bundle do
|
6
|
+
desc <<~USAGE
|
7
|
+
Update to a later version of a gem interactively.
|
8
|
+
|
9
|
+
Usage: bundle:update gem=rails [version=6.0.4.7]
|
10
|
+
|
11
|
+
Updates the bundled gem (e.g. rails) version to e.g. 6.0.4.7
|
12
|
+
and provides instructions for committing changes.
|
13
|
+
It will attempt to modify a hardcoded version in the Gemfile if necessary.
|
14
|
+
USAGE
|
15
|
+
task(:update) do
|
16
|
+
unless %w[git git-svn].include?(repository_type)
|
17
|
+
warn 'Error: Requires a git working copy. Aborting.'
|
18
|
+
exit 1
|
19
|
+
end
|
20
|
+
|
21
|
+
gem = ENV['gem']
|
22
|
+
if gem.blank? || gem !~ /\A[a-zA-Z0-9_.-]+\z/
|
23
|
+
warn "Error: missing or invalid required 'gem' parameter. Aborting.\n\n"
|
24
|
+
system('rake -D bundle:update')
|
25
|
+
exit 1
|
26
|
+
end
|
27
|
+
|
28
|
+
gem_list = Bundler.with_unbundled_env { `bundle exec gem list ^#{gem}$` }
|
29
|
+
# Needs to match e.g. "nokogiri (1.12.5 x86_64-darwin)"
|
30
|
+
old_gem_version = gem_list.match(/ \(([0-9.]+)( [a-z0-9_-]*)?\)$/).to_a[1]
|
31
|
+
unless old_gem_version
|
32
|
+
warn <<~MSG.chomp
|
33
|
+
Cannot determine gem version for gem=#{gem}. Aborting. Output from bundle exec gem list:
|
34
|
+
#{gem_list}
|
35
|
+
MSG
|
36
|
+
exit 1
|
37
|
+
end
|
38
|
+
puts "Old #{gem} version from bundle: #{old_gem_version}"
|
39
|
+
|
40
|
+
new_gem_version = ENV['version'].presence
|
41
|
+
if new_gem_version && new_gem_version !~ /\A[0-9.a-zA-Z-]+\z/
|
42
|
+
warn "Error: invalid 'version' parameter. Aborting.\n\n"
|
43
|
+
system('rake -D bundle:update')
|
44
|
+
exit 1
|
45
|
+
end
|
46
|
+
|
47
|
+
unless Bundler.with_unbundled_env { system('bundle check 2> /dev/null') }
|
48
|
+
warn('Error: bundle check fails before doing anything.')
|
49
|
+
warn('Please clean up the Gemfile before running this. Aborting.')
|
50
|
+
exit 1
|
51
|
+
end
|
52
|
+
|
53
|
+
if gem == 'rails'
|
54
|
+
# If updating Rails and using activemodel-caution, prompt to put
|
55
|
+
# activemodel-caution gem in place, unless it's already installed for this rails version.
|
56
|
+
activemodel_caution = Bundler.
|
57
|
+
with_unbundled_env { `bundle exec gem list activemodel-caution` }.
|
58
|
+
match?(/^activemodel-caution \([0-9.]+\)$/)
|
59
|
+
if activemodel_caution && new_gem_version
|
60
|
+
file_pattern = "activemodel-caution-#{new_gem_version}*.gem"
|
61
|
+
unless Dir.glob("vendor/cache/#{file_pattern}").any? ||
|
62
|
+
Bundler.with_unbundled_env do
|
63
|
+
`gem list ^activemodel-caution$ -i -v #{new_gem_version}`
|
64
|
+
end.match?(/^true$/)
|
65
|
+
warn("Error: missing #{file_pattern} file in vendor/cache")
|
66
|
+
warn('Copy this file to vendor/cache, then run this command again.')
|
67
|
+
exit 1
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
related_gems = if gem == 'rails'
|
73
|
+
gem_list2 = Bundler.with_unbundled_env do
|
74
|
+
`bundle exec gem list`
|
75
|
+
end
|
76
|
+
gem_list2.split("\n").
|
77
|
+
grep(/[ (]#{old_gem_version}(.0)*[,)]/).
|
78
|
+
collect { |row| row.split.first }
|
79
|
+
else
|
80
|
+
[gem]
|
81
|
+
end
|
82
|
+
puts "Gems to update: #{related_gems.join(' ')}"
|
83
|
+
|
84
|
+
if new_gem_version
|
85
|
+
puts 'Tweaking Gemfile for new gem version'
|
86
|
+
cmd = ['sed', '-i', '.bak', '-E']
|
87
|
+
related_gems.each do |rgem|
|
88
|
+
cmd += ['-e', "s/(gem '(#{rgem})', '(~> )?)#{old_gem_version}(')/\\1#{new_gem_version}\\4/"]
|
89
|
+
end
|
90
|
+
cmd += %w[Gemfile]
|
91
|
+
system(*cmd)
|
92
|
+
File.delete('Gemfile.bak')
|
93
|
+
|
94
|
+
system('git diff Gemfile')
|
95
|
+
end
|
96
|
+
|
97
|
+
cmd = "bundle update --conservative --minor #{related_gems.join(' ')}"
|
98
|
+
puts "Running: #{cmd}"
|
99
|
+
Bundler.with_unbundled_env do
|
100
|
+
system(cmd)
|
101
|
+
end
|
102
|
+
|
103
|
+
unless Bundler.with_unbundled_env { system('bundle check 2> /dev/null') }
|
104
|
+
warn <<~MSG
|
105
|
+
Error: bundle check fails after trying to update Rails version. Aborting.
|
106
|
+
You will need to check your working copy, especially Gemfile, Gemfile.lock, vendor/cache
|
107
|
+
MSG
|
108
|
+
exit 1
|
109
|
+
end
|
110
|
+
|
111
|
+
if File.exist?(SAFETY_FILE)
|
112
|
+
# Remove references to unused files in code_safety.yml
|
113
|
+
system('rake audit:tidy_code_safety_file')
|
114
|
+
end
|
115
|
+
|
116
|
+
gem_list = Bundler.with_unbundled_env { `bundle exec gem list ^#{gem}$` }
|
117
|
+
new_gem_version2 = gem_list.match(/ \(([0-9.]+)( [a-z0-9_-]*)?\)$/).to_a[1]
|
118
|
+
|
119
|
+
if new_gem_version && new_gem_version != new_gem_version2
|
120
|
+
puts <<~MSG
|
121
|
+
Error: Tried to update gem #{gem} to version #{new_gem_version} but ended up at version #{new_gem_version2}. Aborting.
|
122
|
+
You will need to check your working copy, especially Gemfile, Gemfile.lock, vendor/cache
|
123
|
+
Try running:
|
124
|
+
bundle exec rake bundle:update gem=#{gem} version=#{new_gem_version2}
|
125
|
+
MSG
|
126
|
+
exit 1
|
127
|
+
end
|
128
|
+
|
129
|
+
# At this point, we have successfully updated all the local files.
|
130
|
+
# All that remains is to set up a branch, if necessary, and inform the user what to commit.
|
131
|
+
|
132
|
+
puts "Looking for changed files using git status\n\n"
|
133
|
+
files_to_git_rm = `git status vendor/cache/|grep 'deleted: ' | \
|
134
|
+
grep -o ': .*' | sed -e 's/^: *//'`.split("\n")
|
135
|
+
files_to_git_add = `git status Gemfile Gemfile.lock code_safety.yml config/code_safety.yml| \
|
136
|
+
grep 'modified: ' | \
|
137
|
+
grep -o ': .*' | sed -e 's/^: *//'`.split("\n")
|
138
|
+
files_to_git_add += `git status vendor/cache|expand|grep '^\s*vendor/cache' | \
|
139
|
+
sed -e 's/^ *//'`.split("\n")
|
140
|
+
|
141
|
+
if files_to_git_rm.empty? && files_to_git_add.empty?
|
142
|
+
puts <<~MSG
|
143
|
+
No changes were made. Please manually update the Gemfile, run
|
144
|
+
bundle update --conservative --minor #{related_gems.join(' ')}
|
145
|
+
MSG
|
146
|
+
puts ' rake audit:tidy_code_safety_file' if File.exist?(SAFETY_FILE)
|
147
|
+
puts <<~MSG
|
148
|
+
then run tests and git rm / git add any changes
|
149
|
+
including vendor/cache Gemfile Gemfile.lock code_safety.yml
|
150
|
+
then git commit
|
151
|
+
MSG
|
152
|
+
exit
|
153
|
+
end
|
154
|
+
|
155
|
+
if repository_type == 'git'
|
156
|
+
# Check out a fresh branch, if a git working copy (but not git-svn)
|
157
|
+
branch_name = "#{gem}_#{new_gem_version2.gsub('.', '_')}"
|
158
|
+
system('git', 'checkout', '-b', branch_name) # Create a new git branch
|
159
|
+
end
|
160
|
+
|
161
|
+
puts <<~MSG
|
162
|
+
Gemfile updated. Please use "git status" and "git diff" to check the local changes,
|
163
|
+
manually add any additional platform-specific gems required (e.g. for nokogiri),
|
164
|
+
re-run tests locally, then run the following to commit the changes:
|
165
|
+
|
166
|
+
$ git rm #{files_to_git_rm.join(' ')}
|
167
|
+
$ git add #{files_to_git_add.join(' ')}
|
168
|
+
$ git commit -m '# Bump #{gem} to #{new_gem_version2}'
|
169
|
+
MSG
|
170
|
+
end
|
171
|
+
end
|
data/ndr_dev_support.gemspec
CHANGED
@@ -42,7 +42,7 @@ Gem::Specification.new do |spec|
|
|
42
42
|
spec.add_dependency 'webdrivers', '>= 3.9'
|
43
43
|
|
44
44
|
# CI server dependencies:
|
45
|
-
spec.add_dependency 'activesupport', '< 7'
|
45
|
+
spec.add_dependency 'activesupport', '< 7.1'
|
46
46
|
spec.add_dependency 'brakeman', '>= 4.7.1'
|
47
47
|
spec.add_dependency 'bundler-audit'
|
48
48
|
spec.add_dependency 'github-linguist'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ndr_dev_support
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.0.
|
4
|
+
version: 6.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- NCRS Development Team
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-03-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pry
|
@@ -226,14 +226,14 @@ dependencies:
|
|
226
226
|
requirements:
|
227
227
|
- - "<"
|
228
228
|
- !ruby/object:Gem::Version
|
229
|
-
version: '7'
|
229
|
+
version: '7.1'
|
230
230
|
type: :runtime
|
231
231
|
prerelease: false
|
232
232
|
version_requirements: !ruby/object:Gem::Requirement
|
233
233
|
requirements:
|
234
234
|
- - "<"
|
235
235
|
- !ruby/object:Gem::Version
|
236
|
-
version: '7'
|
236
|
+
version: '7.1'
|
237
237
|
- !ruby/object:Gem::Dependency
|
238
238
|
name: brakeman
|
239
239
|
requirement: !ruby/object:Gem::Requirement
|
@@ -410,6 +410,7 @@ files:
|
|
410
410
|
- gemfiles/Gemfile.rails52
|
411
411
|
- gemfiles/Gemfile.rails60
|
412
412
|
- gemfiles/Gemfile.rails61
|
413
|
+
- gemfiles/Gemfile.rails70
|
413
414
|
- lib/minitest/rake_ci.rb
|
414
415
|
- lib/minitest/rake_ci_plugin.rb
|
415
416
|
- lib/ndr_dev_support.rb
|
@@ -449,6 +450,7 @@ files:
|
|
449
450
|
- lib/ndr_dev_support/slack_message_publisher.rb
|
450
451
|
- lib/ndr_dev_support/tasks.rb
|
451
452
|
- lib/ndr_dev_support/version.rb
|
453
|
+
- lib/tasks/audit_bundle.rake
|
452
454
|
- lib/tasks/audit_code.rake
|
453
455
|
- lib/tasks/ci/brakeman.rake
|
454
456
|
- lib/tasks/ci/bundle_audit.rake
|