build 2.1.0 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: aacb41a16bc0e414fd04e7aecfb8d3647e2b8c5925c35ba44991cee5f7108022
4
- data.tar.gz: 3d81a66f4f9d669d1040c3a0677e78fef4af0aae522540b3c2c023dab8efcd56
3
+ metadata.gz: 1cf5613f93850130355cc50e62df0c8dddc93f4c297d71170f57a45cb37519ff
4
+ data.tar.gz: 14521dbf2a1231e8fa6e9837c22b0560284b1ce2de00d0b03c0650c1d848ac4d
5
5
  SHA512:
6
- metadata.gz: 182f4ee1649e5f69cc60f6af4f32e11e4f8960bf14feb9cc096aef136a12c3b49efd92f42ca1991b24afbed51e81509c502cff4b295c77a4da876691987c5686
7
- data.tar.gz: 509fc310c4be7c16281753748b1625d8fde8085babc4f8bf71840da9867bf50dddd313e848be8c4e99e3c9312a4c853466c7bfeef418d660415228317ecb886c
6
+ metadata.gz: c708de2260aa75d700ab9a7d55a137cd327055f6d477949d70f1f8647eade97d3be64ca3ec2cd0ebb42f34a9072105d96fbfa97dbe35211b0b23077f3233bf34
7
+ data.tar.gz: 5adfdde18fddfb66ceb987b7969a40b6a7ee0fdc144a6f61653c22c88eaa949958625528388f799e4e958e1c4da9cfc8fdb05943e1350f40e73c923affbb35dc
data/build.gemspec CHANGED
@@ -17,7 +17,7 @@ Gem::Specification.new do |spec|
17
17
 
18
18
  spec.required_ruby_version = '>= 2.0'
19
19
 
20
- spec.add_dependency "build-graph", "~> 1.0"
20
+ spec.add_dependency "build-graph", "~> 1.2"
21
21
  spec.add_dependency "build-environment", "~> 1.3"
22
22
  spec.add_dependency "build-dependency", "~> 1.4"
23
23
  spec.add_dependency "build-makefile", "~> 1.0"
@@ -76,21 +76,19 @@ module Build
76
76
  # logger.debug("Local Environment: #{local_environment}")
77
77
 
78
78
  task_class = Rulebook.for(local_environment).with(Task, environment: local_environment)
79
-
80
79
  task = task_class.new(scope.walker, self, scope.group, logger: scope.logger)
81
80
 
82
81
  output_environment = nil
83
82
 
84
- scope.walker.with(task_class: task_class) do
85
- task.visit do
86
- output_environment = Build::Environment.new(local_environment, name: dependency.name)
87
-
88
- provisions.each do |provision|
89
- output_environment.construct!(task, *@arguments, &provision.value)
90
- end
91
-
92
- public_environments << output_environment.dup(parent: nil, name: dependency.name)
83
+ task.visit do
84
+ output_environment = Build::Environment.new(local_environment, name: dependency.name)
85
+
86
+ provisions.each do |provision|
87
+ # When executing the environment build steps, we create new build nodes. But those build nodes are not capturing the right task class.
88
+ output_environment.construct!(task, *@arguments, &provision.value)
93
89
  end
90
+
91
+ public_environments << output_environment.dup(parent: nil, name: dependency.name)
94
92
  end
95
93
  end
96
94
 
@@ -60,7 +60,8 @@ module Build
60
60
  attr :nodes
61
61
  attr :walker
62
62
 
63
- private def step(walker, node, task_class:)
63
+ private def step(walker, node, parent_task = nil)
64
+ task_class = parent_task&.class || Task
64
65
  task = task_class.new(walker, node, @group, logger: @logger)
65
66
 
66
67
  task.visit do
@@ -81,7 +82,7 @@ module Build
81
82
  @nodes.each do |node|
82
83
  # We wait for all processes to complete within each node. The result is that we don't execute top level nodes concurrently, but we do execute within each node concurrently where possible. Ideally, some node could be executed concurrently, but right now expressing non-file dependencies between nodes is not possible.
83
84
  @group.wait do
84
- @walker.call(node, task_class: node.task_class)
85
+ @walker.call(node)
85
86
  end
86
87
  end
87
88
  end
data/lib/build/task.rb CHANGED
@@ -49,12 +49,10 @@ module Build
49
49
  def initialize(walker, node, group, logger: nil)
50
50
  super(walker, node)
51
51
 
52
- @environment = environment
53
52
  @group = group
54
53
  @logger = logger
55
54
  end
56
55
 
57
- attr :environment
58
56
  attr :group
59
57
  attr :logger
60
58
 
data/lib/build/version.rb CHANGED
@@ -19,5 +19,5 @@
19
19
  # THE SOFTWARE.
20
20
 
21
21
  module Build
22
- VERSION = "2.1.0"
22
+ VERSION = "2.2.0"
23
23
  end
@@ -78,6 +78,7 @@ RSpec.describe Build::Controller do
78
78
  output :destination
79
79
 
80
80
  apply do |parameters|
81
+ run! 'sleep 0.1'
81
82
  touch parameters[:destination]
82
83
  end
83
84
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: build
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-02-15 00:00:00.000000000 Z
11
+ date: 2019-03-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: build-graph
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.0'
19
+ version: '1.2'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.0'
26
+ version: '1.2'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: build-environment
29
29
  requirement: !ruby/object:Gem::Requirement