avm 0.60.0 → 0.62.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/avm/scms/auto_commit/file_resource_name.rb +1 -1
- data/lib/avm/scms/base/commits.rb +7 -0
- data/lib/avm/scms/commit_info.rb +13 -0
- data/lib/avm/scms/null/commit.rb +15 -0
- data/lib/avm/scms/null.rb +7 -0
- data/lib/avm/sources/auto_commit/for_file.rb +31 -0
- data/lib/avm/sources/auto_commit.rb +11 -0
- data/lib/avm/sources/base/configuration.rb +12 -6
- data/lib/avm/sources/base/locale.rb +7 -0
- data/lib/avm/sources/base/organizational.rb +32 -0
- data/lib/avm/sources/base/subs.rb +5 -0
- data/lib/avm/sources/base/update.rb +43 -0
- data/lib/avm/sources/base/update_sub.rb +57 -0
- data/lib/avm/sources/base/version_bump.rb +29 -0
- data/lib/avm/sources/base.rb +1 -1
- data/lib/avm/version.rb +1 -1
- metadata +11 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dbbec67d9fc5bb02ab4df825b7ab2d7a41d8f8beceb6d9615e4d24e60f6add09
|
4
|
+
data.tar.gz: 7201af31fe31837eb6723183b610f846f2e315226e5a3d3ccf5766f52519a0f6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dbacefed0fe370148ac0e51e4d268fe135c1011c2645923acce1eec543140deec81933d1fb6b3464d62edc17349b0069e3dc14a023b3f141e620122a91b1d349
|
7
|
+
data.tar.gz: d9fce3973197919cc053f1b30cf26d1b98a407d43e290c2f0b3ac852ffab57359b9570839c188d73587a8721ae48b561a7fa5f43a2ba53eb3dc822c5ff1de2da
|
@@ -16,6 +16,13 @@ module Avm
|
|
16
16
|
raise_abstract_method __method__
|
17
17
|
end
|
18
18
|
|
19
|
+
# @param commit_to_reset [Avm::Scms::Commit]
|
20
|
+
# @param commit_info [Avm::Scms::CommitInfo]
|
21
|
+
# @return [Avm::Scms::Commit]
|
22
|
+
def reset_and_commit(_commit_to_reset, _commit_info)
|
23
|
+
raise_abstract_method __method__
|
24
|
+
end
|
25
|
+
|
19
26
|
# @param commit_info [Avm::Scms::CommitInfo]
|
20
27
|
# @return [Avm::Scms::Commit]
|
21
28
|
def run_commit(_commit_info)
|
data/lib/avm/scms/commit_info.rb
CHANGED
@@ -5,6 +5,19 @@ require 'eac_ruby_utils/core_ext'
|
|
5
5
|
module Avm
|
6
6
|
module Scms
|
7
7
|
class CommitInfo
|
8
|
+
class << self
|
9
|
+
# @param source [Avm::Scms::CommitInfo, String]
|
10
|
+
# @return [Avm::Scms::CommitInfo]
|
11
|
+
def assert(source)
|
12
|
+
return source if source.is_a?(self)
|
13
|
+
return new if source.nil?
|
14
|
+
return new.message(source) if source.is_a?(::String)
|
15
|
+
return assert(source.call) if source.is_a?(::Proc)
|
16
|
+
|
17
|
+
raise "Unmapped assertion for #{source.to_debug}"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
8
21
|
enable_immutable
|
9
22
|
|
10
23
|
immutable_accessor :fixup, :message
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/scms/base'
|
4
|
+
require 'avm/scms/commit'
|
5
|
+
require 'eac_ruby_utils/core_ext'
|
6
|
+
|
7
|
+
module Avm
|
8
|
+
module Scms
|
9
|
+
class Null < ::Avm::Scms::Base
|
10
|
+
class Commit < ::Avm::Scms::Commit
|
11
|
+
common_constructor :scm
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
data/lib/avm/scms/null.rb
CHANGED
@@ -6,6 +6,13 @@ require 'eac_ruby_utils/core_ext'
|
|
6
6
|
module Avm
|
7
7
|
module Scms
|
8
8
|
class Null < ::Avm::Scms::Base
|
9
|
+
require_sub __FILE__
|
10
|
+
|
11
|
+
# @return [Avm::Scms::Null::Commit]
|
12
|
+
def head_commit
|
13
|
+
@head_commit ||= Avm::Scms::Null::Commit.new(self)
|
14
|
+
end
|
15
|
+
|
9
16
|
def update
|
10
17
|
# Do nothing
|
11
18
|
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module Sources
|
7
|
+
module AutoCommit
|
8
|
+
class ForFile
|
9
|
+
common_constructor :source, :path, :rules
|
10
|
+
|
11
|
+
delegate :run, to: :scm_auto_commit
|
12
|
+
|
13
|
+
# @return [Pathname]
|
14
|
+
def path_for_auto_commit
|
15
|
+
path.relative_path_from(source_for_auto_commit.path)
|
16
|
+
end
|
17
|
+
|
18
|
+
# @return [Avm::Scms::AutoCommit::ForFile]
|
19
|
+
def scm_auto_commit
|
20
|
+
::Avm::Scms::AutoCommit::ForFile.new(source_for_auto_commit.scm, path_for_auto_commit,
|
21
|
+
rules)
|
22
|
+
end
|
23
|
+
|
24
|
+
# @return [Avm::Sources::Base]
|
25
|
+
def source_for_auto_commit
|
26
|
+
source.sub_for_path(path) || source
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -22,6 +22,13 @@ module Avm
|
|
22
22
|
configuration.entry(*entry_args)
|
23
23
|
end
|
24
24
|
|
25
|
+
# The possible absolute paths for configuration files.
|
26
|
+
#
|
27
|
+
# @return [Array<Pathname>]
|
28
|
+
def configuration_paths
|
29
|
+
CONFIGURATION_FILENAMES.map { |filename| path.join(filename) }
|
30
|
+
end
|
31
|
+
|
25
32
|
# @return [EacRubyUtils::Envs::Command, nil]
|
26
33
|
def configuration_value_to_env_command(value)
|
27
34
|
return value if value.is_a?(::EacRubyUtils::Envs::Command)
|
@@ -51,10 +58,10 @@ module Avm
|
|
51
58
|
|
52
59
|
# @return [EacConfig::YamlFileNode]
|
53
60
|
def configuration_uncached
|
54
|
-
|
55
|
-
configuration_with_filename(
|
61
|
+
configuration_paths.each do |config_path|
|
62
|
+
configuration_with_filename(config_path, true)
|
56
63
|
end
|
57
|
-
configuration_with_filename(
|
64
|
+
configuration_with_filename(configuration_paths.first, false)
|
58
65
|
end
|
59
66
|
|
60
67
|
# @return [String]
|
@@ -68,9 +75,8 @@ module Avm
|
|
68
75
|
end
|
69
76
|
|
70
77
|
# @return [EacConfig::YamlFileNode, nil]
|
71
|
-
def configuration_with_filename(
|
72
|
-
|
73
|
-
return ::EacConfig::YamlFileNode.new(file_path) if !needs_exist || file_path.exist?
|
78
|
+
def configuration_with_filename(config_path, needs_exist)
|
79
|
+
return ::EacConfig::YamlFileNode.new(config_path) if !needs_exist || config_path.exist?
|
74
80
|
|
75
81
|
nil
|
76
82
|
end
|
@@ -20,6 +20,13 @@ module Avm
|
|
20
20
|
def default_locale
|
21
21
|
::I18n.default_locale
|
22
22
|
end
|
23
|
+
|
24
|
+
# @param entry_suffix [String]
|
25
|
+
# @param values [Hash]
|
26
|
+
# @return [String]
|
27
|
+
def i18n_translate(entry_suffix, values = {})
|
28
|
+
self.class.i18n_translate(entry_suffix, values.merge(__locale: locale))
|
29
|
+
end
|
23
30
|
end
|
24
31
|
end
|
25
32
|
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module Sources
|
7
|
+
class Base
|
8
|
+
module Organizational
|
9
|
+
DEFAULT_ORGANIZATIONAL = false
|
10
|
+
ORGANIZATIONAL_KEY = 'organizational'
|
11
|
+
|
12
|
+
# @return [Boolean]
|
13
|
+
def organizational?
|
14
|
+
if organizational_entry.found?
|
15
|
+
organizational_entry.value.to_bool
|
16
|
+
else
|
17
|
+
default_organizational
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def organizational_entry
|
22
|
+
configuration.entry(ORGANIZATIONAL_KEY)
|
23
|
+
end
|
24
|
+
|
25
|
+
# @return [Boolean]
|
26
|
+
def default_organizational
|
27
|
+
DEFAULT_ORGANIZATIONAL
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -12,6 +12,11 @@ module Avm
|
|
12
12
|
SUBS_EXCLUDE_PATHS_DEFAULT = [].freeze
|
13
13
|
SUBS_INCLUDE_PATHS_DEFAULT = ['sub/*'].freeze
|
14
14
|
|
15
|
+
# @return [Avm::Sources::Base, nil]
|
16
|
+
def sub_for_path(path)
|
17
|
+
subs.lazy.map { |sub| path.expand_path.child_of?(sub.path) ? sub : nil }.find(&:present?)
|
18
|
+
end
|
19
|
+
|
15
20
|
# @return [Enumerable<Avm::Sources::Base>]
|
16
21
|
def subs
|
17
22
|
subs_paths_to_search
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module Sources
|
7
|
+
class Base
|
8
|
+
module Update
|
9
|
+
# To override in subclasses.
|
10
|
+
def on_sub_updated
|
11
|
+
# Do nothing
|
12
|
+
end
|
13
|
+
|
14
|
+
def update
|
15
|
+
update_self
|
16
|
+
update_subs
|
17
|
+
end
|
18
|
+
|
19
|
+
def update_self
|
20
|
+
scm.commit_if_change(-> { update_self_commit_message }) do
|
21
|
+
update_self_content
|
22
|
+
parent.if_present(&:on_sub_updated)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
# Update source self content.
|
27
|
+
#
|
28
|
+
# To override in subclasses.
|
29
|
+
def update_self_content
|
30
|
+
# Do nothing
|
31
|
+
end
|
32
|
+
|
33
|
+
def update_self_commit_message
|
34
|
+
i18n_translate(__method__)
|
35
|
+
end
|
36
|
+
|
37
|
+
def update_subs
|
38
|
+
subs.each { |sub| update_sub(sub) }
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module Sources
|
7
|
+
class Base
|
8
|
+
class UpdateSub
|
9
|
+
enable_method_class
|
10
|
+
|
11
|
+
common_constructor :source, :sub
|
12
|
+
|
13
|
+
def result
|
14
|
+
update_version
|
15
|
+
return unless sub.organizational?
|
16
|
+
|
17
|
+
sub.update
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def update_version
|
23
|
+
base_commit = source.scm.head_commit
|
24
|
+
sub.scm.update
|
25
|
+
on_update_version_commit_change(base_commit) unless base_commit == source.scm.head_commit
|
26
|
+
end
|
27
|
+
|
28
|
+
def on_update_version_commit_change(base_commit)
|
29
|
+
source.on_sub_updated if no_scm_updated?
|
30
|
+
source.scm.reset_and_commit(base_commit, update_version_commit_info)
|
31
|
+
end
|
32
|
+
|
33
|
+
def no_scm_updated?
|
34
|
+
source.scm.head_commit.no_scm_changed_files.any?
|
35
|
+
end
|
36
|
+
|
37
|
+
# @param commit_info [Avm::Scms::CommitInfo]
|
38
|
+
def update_version_commit_info
|
39
|
+
Avm::Scms::CommitInfo.new.message(
|
40
|
+
no_scm_updated? ? update_version_no_scm_message : update_version_scm_message
|
41
|
+
)
|
42
|
+
end
|
43
|
+
|
44
|
+
# @return [String]
|
45
|
+
def update_version_no_scm_message
|
46
|
+
source.i18n_translate(__method__, application_id: sub.application_id,
|
47
|
+
path: sub.relative_path, version: sub.version)
|
48
|
+
end
|
49
|
+
|
50
|
+
# @return [String]
|
51
|
+
def update_version_scm_message
|
52
|
+
sub.scm.i18n_translate(__method__)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/sources/base'
|
4
|
+
require 'eac_ruby_utils/core_ext'
|
5
|
+
|
6
|
+
module Avm
|
7
|
+
module Sources
|
8
|
+
class Base
|
9
|
+
module VersionBump
|
10
|
+
# @return [Avm::Scms::Commit, nil]
|
11
|
+
def version_bump(target_version)
|
12
|
+
scm.commit_if_change(version_bump_commit_message(target_version)) do
|
13
|
+
version_bump_do_changes(target_version)
|
14
|
+
parent.if_present(&:on_sub_updated)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
# @return [String]
|
19
|
+
def version_bump_commit_message(target_version)
|
20
|
+
i18n_translate(__method__, version: target_version, __locale: locale)
|
21
|
+
end
|
22
|
+
|
23
|
+
def version_bump_do_changes(_target_version)
|
24
|
+
raise_abstract_method(__METHOD__)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
data/lib/avm/sources/base.rb
CHANGED
data/lib/avm/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: avm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.62.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eduardo H. Bogoni
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-01-
|
11
|
+
date: 2023-01-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aranha-parsers
|
@@ -106,20 +106,14 @@ dependencies:
|
|
106
106
|
requirements:
|
107
107
|
- - "~>"
|
108
108
|
- !ruby/object:Gem::Version
|
109
|
-
version: '0.
|
110
|
-
- - ">="
|
111
|
-
- !ruby/object:Gem::Version
|
112
|
-
version: 0.110.1
|
109
|
+
version: '0.111'
|
113
110
|
type: :runtime
|
114
111
|
prerelease: false
|
115
112
|
version_requirements: !ruby/object:Gem::Requirement
|
116
113
|
requirements:
|
117
114
|
- - "~>"
|
118
115
|
- !ruby/object:Gem::Version
|
119
|
-
version: '0.
|
120
|
-
- - ">="
|
121
|
-
- !ruby/object:Gem::Version
|
122
|
-
version: 0.110.1
|
116
|
+
version: '0.111'
|
123
117
|
- !ruby/object:Gem::Dependency
|
124
118
|
name: eac_templates
|
125
119
|
requirement: !ruby/object:Gem::Requirement
|
@@ -396,6 +390,7 @@ files:
|
|
396
390
|
- lib/avm/scms/inflector.rb
|
397
391
|
- lib/avm/scms/interval.rb
|
398
392
|
- lib/avm/scms/null.rb
|
393
|
+
- lib/avm/scms/null/commit.rb
|
399
394
|
- lib/avm/self/docker_image.rb
|
400
395
|
- lib/avm/self/instance.rb
|
401
396
|
- lib/avm/self/instance/entry_keys.rb
|
@@ -405,16 +400,22 @@ files:
|
|
405
400
|
- lib/avm/source_generators/option_list.rb
|
406
401
|
- lib/avm/source_generators/runner.rb
|
407
402
|
- lib/avm/sources.rb
|
403
|
+
- lib/avm/sources/auto_commit.rb
|
404
|
+
- lib/avm/sources/auto_commit/for_file.rb
|
408
405
|
- lib/avm/sources/base.rb
|
409
406
|
- lib/avm/sources/base/application.rb
|
410
407
|
- lib/avm/sources/base/configuration.rb
|
411
408
|
- lib/avm/sources/base/instance.rb
|
412
409
|
- lib/avm/sources/base/locale.rb
|
410
|
+
- lib/avm/sources/base/organizational.rb
|
413
411
|
- lib/avm/sources/base/parent.rb
|
414
412
|
- lib/avm/sources/base/stereotype.rb
|
415
413
|
- lib/avm/sources/base/subs.rb
|
416
414
|
- lib/avm/sources/base/subs_paths.rb
|
417
415
|
- lib/avm/sources/base/testing.rb
|
416
|
+
- lib/avm/sources/base/update.rb
|
417
|
+
- lib/avm/sources/base/update_sub.rb
|
418
|
+
- lib/avm/sources/base/version_bump.rb
|
418
419
|
- lib/avm/sources/configuration.rb
|
419
420
|
- lib/avm/sources/configuration/rubocop.rb
|
420
421
|
- lib/avm/sources/runner.rb
|