origen 0.55.5 → 0.58.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/config/rubocop/strict_enabled.yml +1 -1
- data/config/version.rb +2 -2
- data/lib/origen.rb +3 -0
- data/lib/origen/application/lsf_manager.rb +8 -8
- data/lib/origen/application/workspace_manager.rb +1 -1
- data/lib/origen/core_ext/numeric.rb +11 -11
- data/lib/origen/generator/pattern.rb +16 -2
- data/lib/origen/generator/pattern_sequence.rb +49 -5
- data/lib/origen/generator/pattern_sequencer.rb +19 -0
- data/lib/origen/generator/pattern_thread.rb +3 -1
- data/lib/origen/log.rb +5 -2
- data/lib/origen/pins/pin.rb +18 -0
- data/lib/origen/regression_manager.rb +15 -8
- data/lib/origen/revision_control/git.rb +1 -0
- data/origen_app_generators/origen_app_generators.gemspec +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4e328347b1a702ec37c86bbf6dbc0d65c9bf9376479fca31e4adc5208043f749
|
4
|
+
data.tar.gz: c72f5d3bbddbe4d4374450a828db82b14c3af5ea1177366e3cb62b2051037115
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 441978473ed06d1df7f8ba36cd6734e5057de398846b7be6856c14e1d8a4973cc8d896958ab70dc69dccb44dea85012264006069afb50ec5406324c016841554
|
7
|
+
data.tar.gz: 21a81041aa01df9774cb94303e016460b070c7c9f296a5297148018c9d314a995ade0aa3432b959232bb70c524fe4249eb7912ecdf7798f273f46cfe3f493a4f
|
@@ -240,7 +240,7 @@ Style/InfiniteLoop:
|
|
240
240
|
Style/Lambda:
|
241
241
|
Description: 'Use the new lambda literal syntax for single-line blocks.'
|
242
242
|
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#lambda-multi-line'
|
243
|
-
Enabled:
|
243
|
+
Enabled: false
|
244
244
|
|
245
245
|
Style/LambdaCall:
|
246
246
|
Description: 'Use lambda.call(...) instead of lambda.(...).'
|
data/config/version.rb
CHANGED
data/lib/origen.rb
CHANGED
@@ -252,8 +252,9 @@ module Origen
|
|
252
252
|
end
|
253
253
|
|
254
254
|
# Build the log file from the completed jobs
|
255
|
-
def build_log(
|
256
|
-
|
255
|
+
def build_log(options = {})
|
256
|
+
log_method = options[:log_file] ? options[:log_file] : :info
|
257
|
+
Origen.log.send(log_method, '*' * 70)
|
257
258
|
completed_jobs.each do |job|
|
258
259
|
File.open(log_file(job[:id])) do |f|
|
259
260
|
last_line_blank = false
|
@@ -291,12 +292,12 @@ module Origen
|
|
291
292
|
stats.failed_files += Regexp.last_match[1].to_i
|
292
293
|
elsif line =~ /ERROR!/
|
293
294
|
stats.errors += 1
|
294
|
-
Origen.log.send :relog, line
|
295
|
+
Origen.log.send :relog, line, options
|
295
296
|
else
|
296
297
|
# Compress multiple blank lines
|
297
298
|
if line =~ /^\s*$/ || line =~ /.*\|\|\s*$/
|
298
299
|
unless last_line_blank
|
299
|
-
Origen.log.
|
300
|
+
Origen.log.send(log_method, nil)
|
300
301
|
last_line_blank = true
|
301
302
|
end
|
302
303
|
else
|
@@ -305,8 +306,7 @@ module Origen
|
|
305
306
|
line =~ /Insecure world writable dir/ ||
|
306
307
|
line =~ /To save all of/
|
307
308
|
line.strip!
|
308
|
-
|
309
|
-
Origen.log.send :relog, line
|
309
|
+
Origen.log.send :relog, line, options
|
310
310
|
last_line_blank = false
|
311
311
|
end
|
312
312
|
end
|
@@ -319,7 +319,7 @@ module Origen
|
|
319
319
|
end
|
320
320
|
end
|
321
321
|
end
|
322
|
-
Origen.log.
|
322
|
+
Origen.log.send(log_method, '*' * 70)
|
323
323
|
stats.print_summary
|
324
324
|
end
|
325
325
|
|
@@ -409,7 +409,7 @@ module Origen
|
|
409
409
|
end
|
410
410
|
|
411
411
|
str = "#{action} #{cmd}".strip
|
412
|
-
str.sub('origen ', '') if str =~ /^origen /
|
412
|
+
str.sub!('origen ', '') if str =~ /^origen /
|
413
413
|
|
414
414
|
# Append the --exec_remote switch to all Origen commands, this allows command
|
415
415
|
# processing to be altered based on whether it is running locally or
|
@@ -114,7 +114,7 @@ module Origen
|
|
114
114
|
fail "Sorry but #{path} already exists!"
|
115
115
|
end
|
116
116
|
FileUtils.rm_rf(path.to_s) if File.exist?(path.to_s)
|
117
|
-
rc = RevisionControl.new remote: options[:rc_url], local: path.to_s
|
117
|
+
rc = RevisionControl.new options.merge(remote: options[:rc_url], local: path.to_s)
|
118
118
|
rc.build
|
119
119
|
end
|
120
120
|
|
@@ -54,27 +54,27 @@ class Numeric
|
|
54
54
|
end
|
55
55
|
|
56
56
|
def as_units(units)
|
57
|
-
if
|
57
|
+
if abs >= 1_000_000_000_000_000
|
58
58
|
"#{self / 1_000_000_000_000_000.0}P#{units}"
|
59
|
-
elsif
|
59
|
+
elsif abs >= 1_000_000_000_000
|
60
60
|
"#{self / 1_000_000_000_000.0}T#{units}"
|
61
|
-
elsif
|
61
|
+
elsif abs >= 1_000_000_000
|
62
62
|
"#{self / 1_000_000_000.0}G#{units}"
|
63
|
-
elsif
|
63
|
+
elsif abs >= 1_000_000
|
64
64
|
"#{self / 1_000_000.0}M#{units}"
|
65
|
-
elsif
|
65
|
+
elsif abs >= 1_000
|
66
66
|
"#{self / 1_000.0}k#{units}"
|
67
|
-
elsif
|
67
|
+
elsif abs >= 1
|
68
68
|
"#{self}#{units}"
|
69
|
-
elsif
|
69
|
+
elsif abs >= 1e-3
|
70
70
|
"#{self * 1_000}m#{units}"
|
71
|
-
elsif
|
71
|
+
elsif abs >= 1e-6
|
72
72
|
"#{self * 1_000_000}u#{units}"
|
73
|
-
elsif
|
73
|
+
elsif abs >= 1e-9
|
74
74
|
"#{self * 1_000_000_000}n#{units}"
|
75
|
-
elsif
|
75
|
+
elsif abs >= 1e-12
|
76
76
|
"#{self * 1_000_000_000_000}p#{units}"
|
77
|
-
elsif
|
77
|
+
elsif abs >= 1e-15
|
78
78
|
"#{self * 1_000_000_000_000_000}a#{units}"
|
79
79
|
else
|
80
80
|
"%.3e#{units}" % self
|
@@ -91,9 +91,23 @@ module Origen
|
|
91
91
|
# end
|
92
92
|
|
93
93
|
@pattern_sequence = true
|
94
|
-
|
94
|
+
|
95
|
+
# The startup callbacks need to be skipped for now until the main thread is open for business
|
96
|
+
pattern_wrapper([], [], options.merge(call_startup_callbacks: false)) do
|
97
|
+
# The startup callbacks, if required, need to be wrapped up in a closure for calling
|
98
|
+
# later by the main thread
|
99
|
+
if (options.key?(:call_startup_callbacks) && !options[:call_startup_callbacks]) || options[:skip_startup]
|
100
|
+
pre_block = nil
|
101
|
+
else
|
102
|
+
pre_block = proc do
|
103
|
+
# Call startup callbacks
|
104
|
+
Origen.app.listeners_for(:startup).each do |listener|
|
105
|
+
listener.startup(options)
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
95
109
|
PatternSequencer.send(:active=, true)
|
96
|
-
@pattern_sequence = PatternSequence.new(job.output_pattern_filename, block)
|
110
|
+
@pattern_sequence = PatternSequence.new(job.output_pattern_filename, block, pre_block)
|
97
111
|
@pattern_sequence.send(:execute)
|
98
112
|
PatternSequencer.send(:active=, false)
|
99
113
|
end
|
@@ -5,15 +5,17 @@ module Origen
|
|
5
5
|
# Manages a single pattern sequence, i.e. an instance of PatternSequence is
|
6
6
|
# created for every Pattern.sequence do ... end block
|
7
7
|
class PatternSequence
|
8
|
-
def initialize(name, block)
|
8
|
+
def initialize(name, block, pre_block = nil)
|
9
9
|
@number_of_threads = 1
|
10
10
|
@name = name
|
11
11
|
@running_thread_ids = { main: true }
|
12
12
|
# The contents of the main Pattern.sequence block will be executed as a thread and treated
|
13
13
|
# like any other parallel block
|
14
|
-
thread = PatternThread.new(:main, self, block, true)
|
14
|
+
thread = PatternThread.new(:main, self, block, true, pre_block)
|
15
15
|
threads << thread
|
16
16
|
active_threads << thread
|
17
|
+
PatSeq.send(:current_sequence=, self)
|
18
|
+
@sync_ups = {}
|
17
19
|
end
|
18
20
|
|
19
21
|
# Execute the given pattern
|
@@ -45,7 +47,7 @@ module Origen
|
|
45
47
|
end
|
46
48
|
alias_method :in_parallel, :thread
|
47
49
|
|
48
|
-
def
|
50
|
+
def wait_for_threads_to_complete(*ids)
|
49
51
|
completed = false
|
50
52
|
blocked = false
|
51
53
|
ids = ids.map(&:to_sym)
|
@@ -71,10 +73,48 @@ module Origen
|
|
71
73
|
end
|
72
74
|
end
|
73
75
|
end
|
74
|
-
alias_method :wait_for_thread, :
|
76
|
+
alias_method :wait_for_thread, :wait_for_threads_to_complete
|
77
|
+
alias_method :wait_for_threads, :wait_for_threads_to_complete
|
78
|
+
alias_method :wait_for_thread_to_complete, :wait_for_threads_to_complete
|
75
79
|
|
76
80
|
private
|
77
81
|
|
82
|
+
def sync_up(location, *ids)
|
83
|
+
options = ids.pop if ids.last.is_a?(Hash)
|
84
|
+
options ||= {}
|
85
|
+
ids = ids.map(&:to_sym)
|
86
|
+
if ids.empty? || ids.include?(:all)
|
87
|
+
ids = @running_thread_ids.keys
|
88
|
+
ids.delete(:main) unless options[:include_main]
|
89
|
+
end
|
90
|
+
# Just continue if this thread is not in the list
|
91
|
+
return unless ids.include?(current_thread.id)
|
92
|
+
# If we have entered the same sync up point after having previously completed it,
|
93
|
+
# then clear it and start again
|
94
|
+
if @sync_ups[location] && @sync_ups[location][:completed]
|
95
|
+
@sync_ups[location] = nil
|
96
|
+
end
|
97
|
+
# Don't need to worry about race conditions here as Origen only allows 1 thread
|
98
|
+
# to be active at a time
|
99
|
+
if @sync_ups[location]
|
100
|
+
@sync_ups[location][:arrived] << current_thread.id
|
101
|
+
else
|
102
|
+
@sync_ups[location] = { required: Set.new, arrived: Set.new, completed: false }
|
103
|
+
ids.each { |id| @sync_ups[location][:required] << id }
|
104
|
+
@sync_ups[location][:arrived] << current_thread.id
|
105
|
+
end
|
106
|
+
if @sync_ups[location][:required] == @sync_ups[location][:arrived]
|
107
|
+
@sync_ups[location][:completed] = true
|
108
|
+
end
|
109
|
+
blocked = false
|
110
|
+
until @sync_ups[location][:completed]
|
111
|
+
current_thread.waiting_for_thread(blocked)
|
112
|
+
blocked = true
|
113
|
+
Origen.log.debug "Waiting for sync_up: #{@sync_ups}"
|
114
|
+
end
|
115
|
+
current_thread.record_active if blocked
|
116
|
+
end
|
117
|
+
|
78
118
|
def thread_running?(id)
|
79
119
|
@running_thread_ids[id]
|
80
120
|
end
|
@@ -86,7 +126,11 @@ module Origen
|
|
86
126
|
def log_execution_profile
|
87
127
|
if threads.size > 1
|
88
128
|
thread_id_size = threads.map { |t| t.id.to_s.size }.max
|
89
|
-
|
129
|
+
begin
|
130
|
+
line_size = IO.console.winsize[1] - 35 - thread_id_size
|
131
|
+
rescue
|
132
|
+
line_size = 150
|
133
|
+
end
|
90
134
|
line_size -= 16 if tester.try(:sim?)
|
91
135
|
cycles_per_tick = (@cycle_count_stop / (line_size * 1.0)).ceil
|
92
136
|
if tester.try(:sim?)
|
@@ -81,8 +81,27 @@ module Origen
|
|
81
81
|
str
|
82
82
|
end
|
83
83
|
|
84
|
+
# Wait for the given threads to complete. If no IDs given it will wait for all currently running
|
85
|
+
# threads (except for the one who called this) to complete.
|
86
|
+
def wait_for_threads_to_complete(*ids)
|
87
|
+
@current_sequence.wait_for_threads_to_complete(*ids)
|
88
|
+
end
|
89
|
+
alias_method :wait_for_thread, :wait_for_threads_to_complete
|
90
|
+
alias_method :wait_for_threads, :wait_for_threads_to_complete
|
91
|
+
alias_method :wait_for_thread_to_complete, :wait_for_threads_to_complete
|
92
|
+
|
93
|
+
def sync_up(*ids)
|
94
|
+
if @current_sequence
|
95
|
+
@current_sequence.send(:sync_up, caller[0], *ids)
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
84
99
|
private
|
85
100
|
|
101
|
+
def current_sequence=(seq)
|
102
|
+
@current_sequence = seq
|
103
|
+
end
|
104
|
+
|
86
105
|
def active=(val)
|
87
106
|
@active = val
|
88
107
|
end
|
@@ -14,7 +14,7 @@ module Origen
|
|
14
14
|
# A record of when the thread is active to construct the execution profile
|
15
15
|
attr_reader :events
|
16
16
|
|
17
|
-
def initialize(id, sequence, block, primary = false)
|
17
|
+
def initialize(id, sequence, block, primary = false, pre_block = nil)
|
18
18
|
if primary
|
19
19
|
@cycle_count_start = 0
|
20
20
|
else
|
@@ -24,6 +24,7 @@ module Origen
|
|
24
24
|
@id = id.to_sym
|
25
25
|
@sequence = sequence
|
26
26
|
@block = block
|
27
|
+
@pre_block = pre_block
|
27
28
|
@primary = primary
|
28
29
|
@running = Concurrent::Event.new
|
29
30
|
@waiting = Concurrent::Event.new
|
@@ -46,6 +47,7 @@ module Origen
|
|
46
47
|
@thread = Thread.new do
|
47
48
|
PatSeq.send(:thread=, self)
|
48
49
|
wait
|
50
|
+
@pre_block.call if @pre_block
|
49
51
|
@block.call(sequence)
|
50
52
|
sequence.send(:thread_completed, self)
|
51
53
|
record_cycle_count_stop
|
data/lib/origen/log.rb
CHANGED
@@ -274,6 +274,7 @@ module Origen
|
|
274
274
|
else
|
275
275
|
msg = format_msg(method.to_s.upcase, msg)
|
276
276
|
end
|
277
|
+
console.info msg if options[:verbose]
|
277
278
|
@custom_logs[method.to_sym].info(msg)
|
278
279
|
end
|
279
280
|
|
@@ -364,8 +365,10 @@ module Origen
|
|
364
365
|
end
|
365
366
|
end
|
366
367
|
|
367
|
-
def relog(msg)
|
368
|
-
if
|
368
|
+
def relog(msg, options = {})
|
369
|
+
if options[:log_file]
|
370
|
+
send options[:log_file], msg.sub(/.*\|\|\s*/, ''), options
|
371
|
+
elsif msg =~ /^\[(\w+)\] .*/
|
369
372
|
method = Regexp.last_match(1).downcase
|
370
373
|
if respond_to?(method)
|
371
374
|
send method, msg.sub(/.*\|\|\s*/, '')
|
data/lib/origen/pins/pin.rb
CHANGED
@@ -443,6 +443,24 @@ module Origen
|
|
443
443
|
end
|
444
444
|
alias_method :add_locn, :add_location
|
445
445
|
|
446
|
+
# Add a way to update packages for the pins after the pins have been added.
|
447
|
+
#
|
448
|
+
# @example Updating a package after the pin has been added
|
449
|
+
# dut.add_pin :p1
|
450
|
+
# dut.add_package: package1
|
451
|
+
# dut.add_package: package2
|
452
|
+
# dut.pin(:p1).packages # => {}
|
453
|
+
# dut.pin(:p1).update_packages :packages # => [:package1, :package2]
|
454
|
+
# dut.pin(:p1).packages # => {:package1=>{}, :package2=>{}}
|
455
|
+
def update_packages(options = {})
|
456
|
+
packages = resolve_packages(options)
|
457
|
+
packages.each do |package_id|
|
458
|
+
package_id = package_id.respond_to?(:id) ? package_id.id : package_id
|
459
|
+
myself.packages[package_id] ||= {}
|
460
|
+
end
|
461
|
+
end
|
462
|
+
alias_method :update_package, :update_packages
|
463
|
+
|
446
464
|
# Add a Device Interface Board (e.g. probecard at wafer probe or loadboard at final package test)
|
447
465
|
# assignment to the pin. Some refer to this as a channel but API name is meant to be generic.
|
448
466
|
def add_dib_assignment(str, options = {})
|
@@ -27,6 +27,7 @@ module Origen
|
|
27
27
|
# @param [Hash] options Options to customize the run instance
|
28
28
|
# @option options [Array] :target String Array of target names on which to run regression
|
29
29
|
# @option options [Boolean] :build_reference (true) Build reference workspace automatically
|
30
|
+
# @option options [Symbol] :build_method (:init) whether to use a git init or git clone method to build the workspace
|
30
31
|
# @option options [Boolean] :send_email (false) Send results email when regression complete
|
31
32
|
# @option options [Boolean] :email_all_developers (false) If sending email, whether to email all developers or just user
|
32
33
|
# @option options [Boolean] :report_results (false) Whether to report results inline to console
|
@@ -35,6 +36,7 @@ module Origen
|
|
35
36
|
def run(options = {})
|
36
37
|
options = {
|
37
38
|
build_reference: true,
|
39
|
+
build_method: :init,
|
38
40
|
send_email: false,
|
39
41
|
email_all_developers: false,
|
40
42
|
report_results: false,
|
@@ -46,7 +48,7 @@ module Origen
|
|
46
48
|
Origen.lsf.clear_all
|
47
49
|
yield options
|
48
50
|
wait_for_completion(options) if options[:uses_lsf]
|
49
|
-
save_and_delete_output
|
51
|
+
save_and_delete_output(options)
|
50
52
|
else
|
51
53
|
if options[:build_reference]
|
52
54
|
@reference_tag = version_to_tag(options[:version] || get_version(options))
|
@@ -58,7 +60,8 @@ module Origen
|
|
58
60
|
disable_origen_version_check do
|
59
61
|
Dir.chdir reference_origen_root do
|
60
62
|
Bundler.with_clean_env do
|
61
|
-
|
63
|
+
# Origen 0.40.0 started using origen-owned binstubs
|
64
|
+
system 'rm -rf lbin' if Gem::Version.new(Origen.version) < Gem::Version.new('0.40.0')
|
62
65
|
# If regression is run using a service account, we need to setup the path/bundler manually
|
63
66
|
# The regression manager needs to be passed a --service_account option when initiated.
|
64
67
|
if options[:service_account]
|
@@ -125,7 +128,7 @@ module Origen
|
|
125
128
|
end
|
126
129
|
|
127
130
|
def summarize_results(options = {})
|
128
|
-
Origen.lsf.build_log
|
131
|
+
Origen.lsf.build_log(options)
|
129
132
|
stats = Origen.app.stats
|
130
133
|
if options[:report_results]
|
131
134
|
puts "Regression results: \n"
|
@@ -144,12 +147,16 @@ module Origen
|
|
144
147
|
|
145
148
|
# Saves all generated output (to the reference dir) and then
|
146
149
|
# deletes the output directory to save space
|
147
|
-
def save_and_delete_output
|
148
|
-
Origen.lsf.build_log
|
150
|
+
def save_and_delete_output(options = {})
|
151
|
+
Origen.lsf.build_log(options)
|
149
152
|
Origen.log.flush
|
150
153
|
Dir.chdir reference_origen_root do
|
151
154
|
Bundler.with_clean_env do
|
152
|
-
|
155
|
+
if options[:log_file]
|
156
|
+
system "bundle exec origen save all -f log/#{options[:log_file]}.txt"
|
157
|
+
else
|
158
|
+
system 'bundle exec origen save all'
|
159
|
+
end
|
153
160
|
end
|
154
161
|
end
|
155
162
|
FileUtils.rm_rf "#{reference_origen_root}/output"
|
@@ -214,7 +221,7 @@ module Origen
|
|
214
221
|
# Build the new reference workspace now.
|
215
222
|
unless File.exist?(@reference_workspace)
|
216
223
|
highlight { Origen.log.info 'Building reference workspace...' }
|
217
|
-
ws.build(@reference_workspace)
|
224
|
+
ws.build(@reference_workspace, options)
|
218
225
|
end
|
219
226
|
ws.set_reference_workspace(@reference_workspace)
|
220
227
|
else
|
@@ -229,7 +236,7 @@ module Origen
|
|
229
236
|
end
|
230
237
|
unless File.exist?(@reference_workspace)
|
231
238
|
highlight { Origen.log.info 'Building reference workspace...' }
|
232
|
-
ws.build(@reference_workspace)
|
239
|
+
ws.build(@reference_workspace, options)
|
233
240
|
end
|
234
241
|
ws.set_reference_workspace(@reference_workspace)
|
235
242
|
end
|
@@ -8,7 +8,7 @@ Gem::Specification.new do |s|
|
|
8
8
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.8.11".freeze) if s.respond_to? :required_rubygems_version=
|
9
9
|
s.require_paths = ["lib".freeze]
|
10
10
|
s.authors = ["Stephen McGinty".freeze]
|
11
|
-
s.date = "2020-
|
11
|
+
s.date = "2020-09-01"
|
12
12
|
s.email = ["stephen.f.mcginty@gmail.com".freeze]
|
13
13
|
s.files = ["bin/boot.rb".freeze, "config/application.rb".freeze, "config/boot.rb".freeze, "config/commands.rb".freeze, "config/shared_commands.rb".freeze, "config/version.rb".freeze, "lib/origen_app_generators.rb".freeze, "lib/origen_app_generators/application.rb".freeze, "lib/origen_app_generators/base.rb".freeze, "lib/origen_app_generators/empty_application.rb".freeze, "lib/origen_app_generators/empty_plugin.rb".freeze, "lib/origen_app_generators/new.rb".freeze, "lib/origen_app_generators/new_app_tests.rb".freeze, "lib/origen_app_generators/origen_infrastructure/app_generator_plugin.rb".freeze, "lib/origen_app_generators/plugin.rb".freeze, "lib/origen_app_generators/test_engineering/common.rb".freeze, "lib/origen_app_generators/test_engineering/stand_alone_application.rb".freeze, "lib/origen_app_generators/test_engineering/test_block.rb".freeze, "templates/app_generators".freeze, "templates/app_generators/application".freeze, "templates/app_generators/application/.gitignore".freeze, "templates/app_generators/application/.irbrc".freeze, "templates/app_generators/application/.rspec".freeze, "templates/app_generators/application/.travis.yml".freeze, "templates/app_generators/application/Gemfile".freeze, "templates/app_generators/application/Rakefile".freeze, "templates/app_generators/application/app".freeze, "templates/app_generators/application/app/blocks".freeze, "templates/app_generators/application/app/blocks/top_level.rb".freeze, "templates/app_generators/application/app/lib".freeze, "templates/app_generators/application/app/lib/module.rb".freeze, "templates/app_generators/application/app/templates".freeze, "templates/app_generators/application/app/templates/web".freeze, "templates/app_generators/application/app/templates/web/index.md.erb".freeze, "templates/app_generators/application/app/templates/web/layouts".freeze, "templates/app_generators/application/app/templates/web/layouts/_basic.html.erb".freeze, "templates/app_generators/application/app/templates/web/partials".freeze, "templates/app_generators/application/app/templates/web/partials/_navbar.html.erb".freeze, "templates/app_generators/application/app/templates/web/release_notes.md.erb".freeze, "templates/app_generators/application/config".freeze, "templates/app_generators/application/config/application.rb".freeze, "templates/app_generators/application/config/boot.rb".freeze, "templates/app_generators/application/config/commands.rb".freeze, "templates/app_generators/application/config/maillist_dev.txt".freeze, "templates/app_generators/application/config/maillist_prod.txt".freeze, "templates/app_generators/application/config/version.rb".freeze, "templates/app_generators/application/doc".freeze, "templates/app_generators/application/doc/history".freeze, "templates/app_generators/application/dot_keep".freeze, "templates/app_generators/application/origen_core_session".freeze, "templates/app_generators/application/spec".freeze, "templates/app_generators/application/spec/spec_helper.rb".freeze, "templates/app_generators/application/target".freeze, "templates/app_generators/application/target/debug.rb".freeze, "templates/app_generators/application/target/default.rb".freeze, "templates/app_generators/application/target/production.rb".freeze, "templates/app_generators/new".freeze, "templates/app_generators/new/generator.rb".freeze, "templates/app_generators/new/info.md.erb".freeze, "templates/app_generators/origen_infrastructure".freeze, "templates/app_generators/origen_infrastructure/app_generator_plugin".freeze, "templates/app_generators/origen_infrastructure/app_generator_plugin/app".freeze, "templates/app_generators/origen_infrastructure/app_generator_plugin/app/lib".freeze, "templates/app_generators/origen_infrastructure/app_generator_plugin/app/lib/application.rb".freeze, "templates/app_generators/origen_infrastructure/app_generator_plugin/app/lib/base.rb".freeze, "templates/app_generators/origen_infrastructure/app_generator_plugin/app/lib/module.rb".freeze, "templates/app_generators/origen_infrastructure/app_generator_plugin/app/lib/plugin.rb".freeze, "templates/app_generators/origen_infrastructure/app_generator_plugin/config".freeze, "templates/app_generators/origen_infrastructure/app_generator_plugin/config/load_generators.rb".freeze, "templates/app_generators/plugin".freeze, "templates/app_generators/plugin/Gemfile".freeze, "templates/app_generators/plugin/Rakefile".freeze, "templates/app_generators/plugin/app".freeze, "templates/app_generators/plugin/app/templates".freeze, "templates/app_generators/plugin/app/templates/web".freeze, "templates/app_generators/plugin/app/templates/web/index.md.erb".freeze, "templates/app_generators/plugin/app/templates/web/partials".freeze, "templates/app_generators/plugin/app/templates/web/partials/_navbar_external.html.erb".freeze, "templates/app_generators/plugin/app/templates/web/partials/_navbar_internal.html.erb".freeze, "templates/app_generators/plugin/config".freeze, "templates/app_generators/plugin/config/boot.rb".freeze, "templates/app_generators/plugin/gemspec.rb".freeze, "templates/app_generators/test_engineering".freeze, "templates/app_generators/test_engineering/environment".freeze, "templates/app_generators/test_engineering/environment/j750.rb".freeze, "templates/app_generators/test_engineering/environment/uflex.rb".freeze, "templates/app_generators/test_engineering/environment/v93k.rb".freeze, "templates/app_generators/test_engineering/stand_alone_application".freeze, "templates/app_generators/test_engineering/stand_alone_application/.keep".freeze, "templates/app_generators/test_engineering/test_block".freeze, "templates/app_generators/test_engineering/test_block/.keep".freeze]
|
14
14
|
s.homepage = "http://origen-sdk.org/origen_app_generators".freeze
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: origen
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.58.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stephen McGinty
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-09-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|