ndr_dev_support 6.0.1 → 6.0.4
Sign up to get free protection for your applications and to get access to all the features.
- 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
|