dapp 0.10.2 → 0.10.3
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/lib/dapp.rb +0 -1
- data/lib/dapp/dimg/build/stage/base.rb +1 -1
- data/lib/dapp/dimg/build/stage/before_setup.rb +0 -2
- data/lib/dapp/dimg/build/stage/build_artifact.rb +0 -2
- data/lib/dapp/dimg/build/stage/install/install.rb +0 -1
- data/lib/dapp/dimg/build/stage/setup/setup.rb +0 -1
- data/lib/dapp/dimg/git_artifact.rb +23 -11
- data/lib/dapp/dimg/git_repo/base.rb +13 -1
- data/lib/dapp/dimg/git_repo/own.rb +9 -1
- data/lib/dapp/version.rb +2 -2
- metadata +2 -3
- data/lib/dapp/dimg/build/stage/mod/git_artifact_dependencies.rb +0 -23
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aec1102e5d09b9d7a2ff35bb28197754f04542ed
|
4
|
+
data.tar.gz: d109455833c5662a9acc3fb68cdc0486b90b393c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ae41e33d7e21d2fde9d8958005b7ec2e92c4e7a3aa73066d2c95721749fdf312fcdddb60d1efa5cb7778f593e59829f9694b9eef2022fa176867c3403fedffda
|
7
|
+
data.tar.gz: 8033a3e5a29f7e323c0ea59511645f96f7a4075d38a257c721c1c6e91f7897e342c5ceb3bd9acf276293d72486c1625cebf9df1106f7ea2910b6382a372bb7c6
|
data/lib/dapp.rb
CHANGED
@@ -64,7 +64,6 @@ require 'dapp/dimg/builder/shell'
|
|
64
64
|
require 'dapp/dimg/builder/none'
|
65
65
|
require 'dapp/dimg/build/stage/mod/logging'
|
66
66
|
require 'dapp/dimg/build/stage/mod/group'
|
67
|
-
require 'dapp/dimg/build/stage/mod/git_artifact_dependencies'
|
68
67
|
require 'dapp/dimg/build/stage/base'
|
69
68
|
require 'dapp/dimg/build/stage/ga_base'
|
70
69
|
require 'dapp/dimg/build/stage/ga_dependencies_base'
|
@@ -168,7 +168,7 @@ module Dapp
|
|
168
168
|
end
|
169
169
|
|
170
170
|
def default_git_artifacts_dependencies(git_artifacts)
|
171
|
-
git_artifacts.map { |git_artifact| git_artifact.
|
171
|
+
git_artifacts.map { |git_artifact| git_artifact.stage_dependencies_checksum(self) }
|
172
172
|
end
|
173
173
|
|
174
174
|
def dependencies
|
@@ -52,15 +52,27 @@ module Dapp
|
|
52
52
|
patch_command(stage.prev_g_a_stage.layer_commit(self), nil)
|
53
53
|
end
|
54
54
|
|
55
|
-
def
|
55
|
+
def stage_dependencies_checksum(stage)
|
56
56
|
return [] if (stage_dependencies = stages_dependencies[stage.name]).empty?
|
57
57
|
|
58
|
-
paths = include_paths(true) + base_paths(stage_dependencies, true)
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
58
|
+
paths = (include_paths(true) + base_paths(stage_dependencies, true)).uniq
|
59
|
+
|
60
|
+
to_commit = if repo.is_a? GitRepo::Own and repo.dimg.dev_mode?
|
61
|
+
nil
|
62
|
+
else
|
63
|
+
latest_commit
|
63
64
|
end
|
65
|
+
|
66
|
+
diff_patches(nil, to_commit, paths: paths)
|
67
|
+
.sort_by {|patch| patch.delta.new_file[:path]}
|
68
|
+
.reduce(nil) {|prev_hash, patch|
|
69
|
+
Digest::SHA256.hexdigest [
|
70
|
+
prev_hash,
|
71
|
+
patch.delta.new_file[:path],
|
72
|
+
patch.delta.new_file[:mode].to_s,
|
73
|
+
patch.to_s
|
74
|
+
].compact.join(':::')
|
75
|
+
}
|
64
76
|
end
|
65
77
|
|
66
78
|
def patch_size(from, to)
|
@@ -85,7 +97,7 @@ module Dapp
|
|
85
97
|
end
|
86
98
|
|
87
99
|
def latest_commit
|
88
|
-
@latest_commit ||= commit || repo.latest_commit(branch)
|
100
|
+
@latest_commit ||= (commit || repo.latest_commit(branch))
|
89
101
|
end
|
90
102
|
|
91
103
|
def paramshash
|
@@ -213,10 +225,10 @@ module Dapp
|
|
213
225
|
end
|
214
226
|
|
215
227
|
def diff_patches(from, to, paths: include_paths_or_cwd)
|
216
|
-
(@diff_patches ||= {})[[from, to, paths]]
|
217
|
-
|
218
|
-
|
219
|
-
|
228
|
+
(@diff_patches ||= {})[[from, to, paths]] ||= repo.patches(from, to,
|
229
|
+
paths: paths,
|
230
|
+
exclude_paths: exclude_paths(true),
|
231
|
+
force_text: true)
|
220
232
|
end
|
221
233
|
|
222
234
|
def include_paths_or_cwd
|
@@ -15,6 +15,16 @@ module Dapp
|
|
15
15
|
[]
|
16
16
|
end
|
17
17
|
|
18
|
+
# FIXME: Убрать логику исключения путей exclude_paths из данного класса,
|
19
|
+
# FIXME: т.к. большинство методов не поддерживают инвариант
|
20
|
+
# FIXME "всегда выдавать данные с исключенными путями".
|
21
|
+
# FIXME: Например, метод diff выдает данные без учета exclude_paths.
|
22
|
+
# FIXME: Лучше перенести фильтрацию в GitArtifact::diff_patches.
|
23
|
+
# FIXME: ИЛИ обеспечить этот инвариант, но это ограничит в возможностях
|
24
|
+
# FIXME: использование Rugged извне этого класса и это более сложный путь.
|
25
|
+
# FIXME: Лучше сейчас убрать фильтрацию, а добавить ее когда наберется достаточно
|
26
|
+
# FIXME: примеров использования.
|
27
|
+
|
18
28
|
def patches(from, to, exclude_paths: [], **kwargs)
|
19
29
|
diff(from, to, **kwargs).patches.select do |patch|
|
20
30
|
!exclude_paths.any? { |p| check_path?(patch.delta.new_file[:path], p) }
|
@@ -22,7 +32,9 @@ module Dapp
|
|
22
32
|
end
|
23
33
|
|
24
34
|
def diff(from, to, **kwargs)
|
25
|
-
if
|
35
|
+
if to.nil?
|
36
|
+
raise "Workdir diff not supported for #{self.class}"
|
37
|
+
elsif from.nil?
|
26
38
|
Rugged::Tree.diff(git, nil, to, **kwargs)
|
27
39
|
else
|
28
40
|
lookup_commit(from).diff(lookup_commit(to), **kwargs)
|
@@ -16,8 +16,16 @@ module Dapp
|
|
16
16
|
raise Error::Rugged, code: :local_git_repository_does_not_exist
|
17
17
|
end
|
18
18
|
|
19
|
+
# NOTICE: Параметры {from: nil, to: nil} можно указать только для Own repo.
|
20
|
+
# NOTICE: Для Remote repo такой вызов не имеет смысла и это ошибка пользователя класса Remote.
|
21
|
+
|
19
22
|
def diff(from, to, **kwargs)
|
20
|
-
if to.nil?
|
23
|
+
if from.nil? and to.nil?
|
24
|
+
mid_commit = latest_commit
|
25
|
+
diff_obj = super(nil, mid_commit, **kwargs)
|
26
|
+
diff_obj.merge! git.lookup(mid_commit).diff_workdir(**kwargs)
|
27
|
+
diff_obj
|
28
|
+
elsif to.nil?
|
21
29
|
git.lookup(from).diff_workdir(**kwargs)
|
22
30
|
else
|
23
31
|
super
|
data/lib/dapp/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dapp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.10.
|
4
|
+
version: 0.10.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dmitry Stolyarov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-04-
|
11
|
+
date: 2017-04-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mixlib-shellout
|
@@ -449,7 +449,6 @@ files:
|
|
449
449
|
- lib/dapp/dimg/build/stage/install/ga_pre_install_patch.rb
|
450
450
|
- lib/dapp/dimg/build/stage/install/ga_pre_install_patch_dependencies.rb
|
451
451
|
- lib/dapp/dimg/build/stage/install/install.rb
|
452
|
-
- lib/dapp/dimg/build/stage/mod/git_artifact_dependencies.rb
|
453
452
|
- lib/dapp/dimg/build/stage/mod/group.rb
|
454
453
|
- lib/dapp/dimg/build/stage/mod/logging.rb
|
455
454
|
- lib/dapp/dimg/build/stage/setup/ga_post_setup_patch.rb
|
@@ -1,23 +0,0 @@
|
|
1
|
-
module Dapp
|
2
|
-
module Dimg
|
3
|
-
module Build
|
4
|
-
module Stage
|
5
|
-
module Mod
|
6
|
-
module GitArtifactsDependencies
|
7
|
-
def local_git_artifacts_dependencies
|
8
|
-
dimg.local_git_artifacts.map do |git_artifact|
|
9
|
-
args = []
|
10
|
-
args << self
|
11
|
-
if dimg.dev_mode?
|
12
|
-
args << git_artifact.latest_commit
|
13
|
-
args << nil
|
14
|
-
end
|
15
|
-
git_artifact.stage_dependencies_checksums(*args)
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end # Mod
|
20
|
-
end # Stage
|
21
|
-
end # Build
|
22
|
-
end # Dimg
|
23
|
-
end # Dapp
|