verto 0.10.2 → 0.12.0

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.
data/djin.yml CHANGED
@@ -13,7 +13,7 @@ tasks:
13
13
 
14
14
  tag_up:
15
15
  docker:
16
- image: "catks/verto:0.10.0"
16
+ image: "catks/verto:0.10.1"
17
17
  run:
18
18
  commands:
19
19
  - "verto tag up {{args}}"
@@ -26,6 +26,19 @@ tasks:
26
26
  - set_verto_version
27
27
 
28
28
  release:
29
+ depends_on:
30
+ - 'release:gem'
31
+ - 'release:docker'
32
+
33
+ 'release:gem':
34
+ local:
35
+ run:
36
+ - bundle exec rake release
37
+ depends_on:
38
+ - set_verto_version
39
+ - tag_up
40
+
41
+ 'release:docker':
29
42
  local:
30
43
  run:
31
44
  - bundle exec rake release
data/exe/verto CHANGED
@@ -11,6 +11,8 @@ begin
11
11
 
12
12
  Verto::MainCommand.start(ARGV)
13
13
 
14
+ # TODO: Check why we can't handle this error on CliHelpers
15
+ rescue TTY::Reader::InputInterrupt
14
16
  # TODO: Improve error Message Handling
15
17
  rescue Verto::ExitError => e
16
18
  Verto.stderr.puts e.message
@@ -1,7 +1,19 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # rubocop:disable Metrics/ClassLength
3
4
  module Verto
4
5
  class TagCommand < BaseCommand
6
+ desc 'init', "Create's the first tag"
7
+
8
+ def init
9
+ load_config_hooks!
10
+
11
+ error_message = 'This repository already has tags'
12
+ raise Verto::ExitError, error_message if tag_repository.any?
13
+
14
+ create_git_tag('0.1.0')
15
+ end
16
+
5
17
  desc 'up', "Create's a new tag"
6
18
 
7
19
  option :major, type: :boolean, default: false
@@ -31,9 +43,7 @@ module Verto
31
43
 
32
44
  call_hooks(:before_tag_creation, with_attributes: { new_version: new_version })
33
45
 
34
- stderr.puts "Creating Tag #{version_prefix}#{new_version}..."
35
- tag_repository.create!("#{version_prefix}#{new_version}")
36
- stderr.puts "Tag #{version_prefix}#{new_version} Created!"
46
+ create_git_tag(new_version)
37
47
 
38
48
  call_hooks(:after_tag_up, with_attributes: { new_version: new_version })
39
49
  call_hooks(:after)
@@ -62,6 +72,12 @@ module Verto
62
72
  new_version
63
73
  end
64
74
 
75
+ def create_git_tag(version)
76
+ stderr.puts "Creating Tag #{version_prefix}#{version}..."
77
+ tag_repository.create!("#{version_prefix}#{version}")
78
+ stderr.puts "Tag #{version_prefix}#{version} Created!"
79
+ end
80
+
65
81
  def pre_release_configured?
66
82
  options[:pre_release] != 'pre_release'
67
83
  end
@@ -116,10 +132,22 @@ module Verto
116
132
  end
117
133
 
118
134
  def load_config_hooks!
119
- if Verto.config.git.pull_before_tag_creation
120
- Verto.config.hooks.prepend Verto::DSL::BuiltInHooks::GitPullCurrentBranch
121
- end
122
- Verto.config.hooks << Verto::DSL::BuiltInHooks::GitPushCurrentBranch if Verto.config.git.push_after_tag_creation
135
+ enabled_hooks = ->(_, v) { v }
136
+
137
+ config_hooks[:before].select(&enabled_hooks).each_key { |hook| Verto.config.hooks.prepend(hook) }
138
+ config_hooks[:after].select(&enabled_hooks).each_key { |hook| Verto.config.hooks << hook }
139
+ end
140
+
141
+ def config_hooks
142
+ @config_hooks ||= {
143
+ before: {
144
+ Verto::DSL::BuiltInHooks::GitPullCurrentBranch => Verto.config.git.pull_before_tag_creation,
145
+ Verto::DSL::BuiltInHooks::GitFetch => Verto.config.git.fetch_before_tag_creation
146
+ },
147
+ after: {
148
+ Verto::DSL::BuiltInHooks::GitPushCurrentBranch => Verto.config.git.push_after_tag_creation
149
+ }
150
+ }
123
151
  end
124
152
 
125
153
  def default_identifier
@@ -127,3 +155,4 @@ module Verto
127
155
  end
128
156
  end
129
157
  end
158
+ # rubocop:enable Metrics/ClassLength
@@ -7,6 +7,10 @@ module Verto
7
7
  git!("pull origin #{current_branch}")
8
8
  end
9
9
 
10
+ GitFetch = DSL::Hook.new(moment: :before) do
11
+ git!('fetch')
12
+ end
13
+
10
14
  GitPushTags = DSL::Hook.new(moment: :after) do
11
15
  git!('push --tags')
12
16
  end
@@ -102,6 +102,16 @@ module Verto
102
102
  Verto.config.hooks << Hook.new(moment: 'before_tag_creation', &block)
103
103
  end
104
104
 
105
+ # Start the flow to Update the CHANGELOG file
106
+ # @param :with [Symbol] The strategy to search commit messages
107
+ # Options include:
108
+ # :merged_pull_requests_with_bracketed_labels -> Uses all PR merged commits after the last tag if they have the [***] pattern
109
+ # :commits_with_bracketed_labels -> Uses all commits after the last tag if they have the [***] pattern (Exclude merge commits)
110
+ # :merged_pull_requests_messages -> Uses all merged commit after the last tag
111
+ # :commit_messages -> Uses all commits after the last tag (Exclude merge commits)
112
+ # @param :confirmation [Boolean] Adds a confirmation step before updating the CHANGELOG
113
+ # @param filename [String] The CHANGELOG filename
114
+ # @param message_pattern [Regexp] A regexp pattern to filter commit messages
105
115
  def update_changelog(with: :merged_pull_requests_with_bracketed_labels, confirmation: true, filename: 'CHANGELOG.md')
106
116
  permitted_moments = %w[before_tag_creation after_tag_up]
107
117
  unless permitted_moments.include? Verto.current_moment.to_s
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Verto
4
+ module DSL
5
+ class UpdateChangelog
6
+ module FilteredBy
7
+ def self.included(klass)
8
+ klass.extend(ClassMethods)
9
+ end
10
+
11
+ module ClassMethods
12
+ def filtered_by(filter)
13
+ Proxy.new(self, filter)
14
+ end
15
+ end
16
+
17
+ class Proxy
18
+ def initialize(filter_class, final_filter)
19
+ @filter_class = filter_class
20
+ @final_filter = final_filter
21
+ end
22
+
23
+ def new
24
+ filter_object
25
+
26
+ self
27
+ end
28
+
29
+ def call(*args)
30
+ filter_object
31
+ .call(*args)
32
+ .select { |message| @final_filter.match?(message) }
33
+ end
34
+
35
+ private
36
+
37
+ # Lazy evaluete object to load Verto dependencies only at the last
38
+ def filter_object
39
+ @filter_object ||= @filter_class.new
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Verto
4
+ module DSL
5
+ class UpdateChangelog
6
+ class WithCommitMessages
7
+ include Verto.import[executor: 'system_command_executor_without_output', tag_repository: 'tag_repository']
8
+ include FilteredBy
9
+
10
+ def call(message_pattern = /.+/)
11
+ executor.run(
12
+ "git log --no-merges --pretty=format:%s #{commit_range}"
13
+ ).output.split("\n").map(&:strip).select { |message| message_pattern.match? message }
14
+ end
15
+
16
+ private
17
+
18
+ def commit_range
19
+ return unless latest_tag
20
+
21
+ "HEAD ^#{latest_tag}"
22
+ end
23
+
24
+ def latest_tag
25
+ tag_repository.latest
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Verto
4
+ module DSL
5
+ class UpdateChangelog
6
+ class WithMergedPullRequests
7
+ include Verto.import[executor: 'system_command_executor_without_output']
8
+ include FilteredBy
9
+
10
+ def call(message_pattern = /.+/)
11
+ # FIXME: Format the command
12
+ executor.run(
13
+ %q(git log --oneline --decorate | grep -B 100 -m 1 "tag:" | grep "pull request" | awk '{print $1}' | xargs -r git show --format='%b' | grep -v Approved | grep -v "^$") # rubocop:disable Layout/LineLength
14
+ ).output.split("\n").map(&:strip).select { |pr_message| message_pattern.match? pr_message }
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -3,45 +3,64 @@
3
3
  module Verto
4
4
  module DSL
5
5
  class UpdateChangelog
6
- include Verto.import[:cli_helpers, :stdout,
7
- executor: 'system_command_executor_without_output', changelog_format: 'changelog.format']
6
+ include Verto.import[:cli_helpers, :stdout, changelog_format: 'changelog.format']
8
7
 
9
8
  InvalidChangelogSource = Class.new(Verto::ExitError)
10
9
 
10
+ BRACKETED_LABELS_REGEXP = /^[[:space:]]*\[.*\]/.freeze
11
+
11
12
  SOURCES = StrictHash.new(
12
13
  {
13
- merged_pull_requests_with_bracketed_labels: lambda do |executor|
14
- executor.run(
15
- %q(git log --oneline --decorate | grep -B 100 -m 1 "tag:" | grep "pull request" | awk '{print $1}' | xargs git show --format='%b' | grep -v Approved | grep -v "^$" | grep -E "^[[:space:]]*\[.*\]")
16
- ).output.split("\n").map(&:strip)
17
- end
14
+ merged_pull_requests_with_bracketed_labels: WithMergedPullRequests.filtered_by(BRACKETED_LABELS_REGEXP),
15
+ commits_with_bracketed_labels: WithCommitMessages.filtered_by(BRACKETED_LABELS_REGEXP),
16
+ merged_pull_requests_messages: WithMergedPullRequests,
17
+ commit_messages: WithCommitMessages
18
18
  },
19
19
  default_proc: ->(hash, _) { raise InvalidChangelogSource, "Invalid CHANGELOG Source, avaliable options: '#{hash.keys.join(',')}'" }
20
20
  )
21
21
 
22
- def call(new_version:, confirmation: true, filename: 'CHANGELOG.md', with: :merged_pull_requests_with_bracketed_labels)
22
+ def call(new_version:, confirmation: true, filename: 'CHANGELOG.md', with: :merged_pull_requests_with_bracketed_labels, message_pattern: nil)
23
23
  verify_file_presence!(filename)
24
24
 
25
- stdout.puts separator
26
- changelog_changes = format_changes(new_version, version_changes(with))
25
+ changelog_changes = format_changes(new_version, version_changes(with, message_pattern))
26
+
27
+ if confirmation
28
+ stdout.puts separator
29
+ stdout.puts changelog_changes
30
+ stdout.puts separator
31
+ changelog_changes = select_changelog_text(changelog_changes)
32
+ end
27
33
 
28
- exit if confirmation && !cli_helpers.confirm("Create new Release?\n" \
29
- "#{separator}\n" \
30
- "#{changelog_changes}" \
31
- "#{separator}\n")
32
34
  update_file(filename, changelog_changes)
33
35
  end
34
36
 
35
37
  private
36
38
 
39
+ # TODO: Refactor
40
+ def select_changelog_text(changelog_changes) # rubocop:disable Metrics/MethodLength
41
+ choices = [
42
+ { key: 'y', name: 'Create a new Release CHANGELOG', value: :yes },
43
+ { key: 'n', name: 'Cancel the Release CHANGELOG', value: :no },
44
+ { key: 'e', name: 'Edit the Release CHANGELOG before continuing', value: :edit }
45
+ ]
46
+ case cli_helpers.select_options('Create new Release?', choices)
47
+ when :no
48
+ exit
49
+ when :edit
50
+ cli_helpers.edit_text(changelog_changes)
51
+ else
52
+ changelog_changes
53
+ end
54
+ end
55
+
37
56
  def verify_file_presence!(filename)
38
57
  return if Verto.project_path.join(filename).exist?
39
58
 
40
59
  raise Verto::ExitError, "changelog file '#{filename}' doesnt exist"
41
60
  end
42
61
 
43
- def version_changes(with)
44
- SOURCES[with].call(executor)
62
+ def version_changes(with, message_pattern)
63
+ SOURCES[with.to_sym].new.call(*args_if_any(message_pattern))
45
64
  end
46
65
 
47
66
  def update_file(filename, changelog_changes)
@@ -49,12 +68,18 @@ module Verto
49
68
  end
50
69
 
51
70
  def format_changes(new_version, version_changes)
52
- Mustache.render(changelog_format, { new_version: new_version, version_changes: version_changes }) + "\n"
71
+ changes = Mustache.render(changelog_format,
72
+ { new_version: new_version, version_changes: version_changes })
73
+ "#{changes}\n"
53
74
  end
54
75
 
55
76
  def separator
56
77
  '---------------------------'
57
78
  end
79
+
80
+ def args_if_any(arg)
81
+ [arg].compact
82
+ end
58
83
  end
59
84
  end
60
85
  end
@@ -13,6 +13,10 @@ module Verto
13
13
  executor.run! "git tag #{tag}"
14
14
  end
15
15
 
16
+ def any?
17
+ all.any?
18
+ end
19
+
16
20
  def all(filter: nil)
17
21
  results = executor.run("git tag | grep -Eo '[0-9]+\.[0-9]+\.[0-9]+(-.+\.[0-9]+)*' | sed 's/\([0-9]\.[0-9]\.[0-9]$\)/\1-zzzzzzzzzz/' | sort -V | sed 's/-zzzzzzzzzz//' | cat").output.split
18
22
 
@@ -1,15 +1,37 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module CliHelpers
4
- class << self
5
- def confirm(text)
6
- shell_basic.yes?("#{text} (y/n)")
7
- end
3
+ module Verto
4
+ module CliHelpers
5
+ class << self
6
+ def confirm(text)
7
+ shell_basic.yes?("#{text} (y/n)")
8
+ end
9
+
10
+ def select_options(question, choices)
11
+ tty_prompt.expand(question, choices)
12
+ end
13
+
14
+ def edit_text(text)
15
+ tempfile = "/tmp/verto-changelog-edit-#{SecureRandom.hex}"
16
+
17
+ TTY::Editor.open(tempfile, text: text)
18
+
19
+ edited_text = File.read(tempfile)
20
+
21
+ File.delete(tempfile)
22
+
23
+ edited_text
24
+ end
25
+
26
+ private
8
27
 
9
- private
28
+ def shell_basic
29
+ @shell_basic ||= Thor::Shell::Basic.new
30
+ end
10
31
 
11
- def shell_basic
12
- @shell_basic ||= Thor::Shell::Basic.new
32
+ def tty_prompt
33
+ @tty_prompt = TTY::Prompt.new
34
+ end
13
35
  end
14
36
  end
15
37
  end
@@ -1,10 +1,11 @@
1
- verto_version '0.10.2'
1
+ verto_version '0.12.0'
2
2
 
3
3
  config {
4
4
  # version.prefix = 'v' # Adds a version_prefix
5
5
  # pre_release.initial_number = 0 # Configures pre_release initial number, defaults to 1
6
6
  # project.path = "#{project_path}" # Configures a custom project path
7
7
  # git.pull_before_tag_creation = true # Pull Changes before tag creation
8
+ # git.fetch_before_tag_creation = true # Fetch Branches and Tags before tag creation
8
9
  # git.push_after_tag_creation = true # Push changes after tag creation
9
10
 
10
11
  ## CHANGELOG FORMAT
data/lib/verto/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Verto
4
- VERSION = '0.10.2'
4
+ VERSION = '0.12.0'
5
5
  end
data/lib/verto.rb CHANGED
@@ -6,7 +6,10 @@ require 'dry-configurable'
6
6
  require 'dry-auto_inject'
7
7
  require 'vseries'
8
8
  require 'mustache'
9
+ require 'tty-prompt'
10
+ require 'tty-editor'
9
11
  require 'pathname'
12
+ require 'securerandom'
10
13
 
11
14
  require 'verto/version'
12
15
  require 'verto/utils/command_options'
@@ -38,16 +41,16 @@ module Verto
38
41
  setting :git do
39
42
  setting :pull_before_tag_creation, false
40
43
  setting :push_after_tag_creation, false
44
+ setting :fetch_before_tag_creation, false
41
45
  end
42
46
 
43
47
  setting :changelog do
44
- setting :format,
45
- <<~CHANGELOG
46
- ## {{new_version}} - #{Time.now.strftime('%d/%m/%Y')}
47
- {{#version_changes}}
48
- * {{.}}
49
- {{/version_changes}}
50
- CHANGELOG
48
+ setting :format, <<~CHANGELOG
49
+ ## {{new_version}} - #{Time.now.strftime('%d/%m/%Y')}
50
+ {{#version_changes}}
51
+ * {{.}}
52
+ {{/version_changes}}
53
+ CHANGELOG
51
54
  end
52
55
 
53
56
  setting :hooks, []
@@ -57,7 +60,7 @@ module Verto
57
60
  CommandError = Class.new(ExitError)
58
61
 
59
62
  def self.root_path
60
- Pathname.new File.expand_path(File.dirname(__FILE__) + '/..')
63
+ Pathname.new File.expand_path("#{File.dirname(__FILE__)}/..")
61
64
  end
62
65
 
63
66
  def self.project_path
@@ -116,20 +119,23 @@ module Verto
116
119
  end
117
120
  end
118
121
 
119
- require 'verto/utils/semantic_version.rb'
122
+ require 'verto/utils/semantic_version'
120
123
  require 'verto/utils/system_command_executor'
121
124
  require 'verto/utils/tag_filter'
122
125
  require 'verto/utils/template'
123
126
  require 'verto/utils/cli_helpers'
124
127
  require 'verto/utils/strict_hash'
128
+ require 'verto/repositories/tag_repository'
125
129
  require 'verto/dsl'
126
130
  require 'verto/dsl/syntax'
127
131
  require 'verto/dsl/interpreter'
128
132
  require 'verto/dsl/hook'
129
133
  require 'verto/dsl/file'
134
+ require 'verto/dsl/update_changelog/filtered_by'
135
+ require 'verto/dsl/update_changelog/with_merged_pull_requests'
136
+ require 'verto/dsl/update_changelog/with_commit_messages'
130
137
  require 'verto/dsl/update_changelog'
131
138
  require 'verto/dsl/built_in_hooks'
132
139
  require 'verto/commands/base_command'
133
140
  require 'verto/commands/tag_command'
134
141
  require 'verto/commands/main_command'
135
- require 'verto/repositories/tag_repository'
data/verto.gemspec CHANGED
@@ -28,15 +28,19 @@ Gem::Specification.new do |spec|
28
28
  spec.require_paths = ['lib']
29
29
  spec.required_ruby_version = '>= 2.5'
30
30
 
31
- spec.add_dependency 'dry-auto_inject', '~> 0.7'
32
- spec.add_dependency 'dry-configurable', '~> 0.8'
33
- spec.add_dependency 'dry-container', '~> 0.7'
31
+ spec.add_dependency 'dry-auto_inject', '~> 0.7.0'
32
+ spec.add_dependency 'dry-configurable', '~> 0.9.0'
33
+ spec.add_dependency 'dry-container', '~> 0.7.0'
34
+ spec.add_dependency 'dry-core', '~> 0.6.0'
34
35
  spec.add_dependency 'mustache', '~> 1.1.1'
35
36
  spec.add_dependency 'thor', '~> 1.0.1'
37
+ spec.add_dependency 'tty-editor', '~> 0.7.0'
38
+ spec.add_dependency 'tty-prompt', '~> 0.23.1'
36
39
  spec.add_dependency 'vseries', '~> 0.2'
37
40
 
38
41
  spec.add_development_dependency 'bundler', '~> 2.0'
39
42
  spec.add_development_dependency 'byebug'
43
+ spec.add_development_dependency 'pry-byebug', '~> 3.9.0'
40
44
  spec.add_development_dependency 'rake', '~> 13.0'
41
45
  spec.add_development_dependency 'rspec', '~> 3.0'
42
46
  spec.add_development_dependency 'rubocop'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: verto
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.2
4
+ version: 0.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carlos Atkinson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-02-23 00:00:00.000000000 Z
11
+ date: 2021-10-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-auto_inject
@@ -16,42 +16,56 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.7'
19
+ version: 0.7.0
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: '0.7'
26
+ version: 0.7.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: dry-configurable
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.8'
33
+ version: 0.9.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0.8'
40
+ version: 0.9.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: dry-container
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0.7'
47
+ version: 0.7.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0.7'
54
+ version: 0.7.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: dry-core
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 0.6.0
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 0.6.0
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: mustache
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -80,6 +94,34 @@ dependencies:
80
94
  - - "~>"
81
95
  - !ruby/object:Gem::Version
82
96
  version: 1.0.1
97
+ - !ruby/object:Gem::Dependency
98
+ name: tty-editor
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 0.7.0
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 0.7.0
111
+ - !ruby/object:Gem::Dependency
112
+ name: tty-prompt
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: 0.23.1
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: 0.23.1
83
125
  - !ruby/object:Gem::Dependency
84
126
  name: vseries
85
127
  requirement: !ruby/object:Gem::Requirement
@@ -122,6 +164,20 @@ dependencies:
122
164
  - - ">="
123
165
  - !ruby/object:Gem::Version
124
166
  version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: pry-byebug
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: 3.9.0
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: 3.9.0
125
181
  - !ruby/object:Gem::Dependency
126
182
  name: rake
127
183
  requirement: !ruby/object:Gem::Requirement
@@ -199,6 +255,7 @@ files:
199
255
  - LICENSE.txt
200
256
  - README.md
201
257
  - Rakefile
258
+ - VERTO_SYNTAX.md
202
259
  - Vertofile
203
260
  - bin/console
204
261
  - bin/setup
@@ -216,6 +273,9 @@ files:
216
273
  - lib/verto/dsl/interpreter.rb
217
274
  - lib/verto/dsl/syntax.rb
218
275
  - lib/verto/dsl/update_changelog.rb
276
+ - lib/verto/dsl/update_changelog/filtered_by.rb
277
+ - lib/verto/dsl/update_changelog/with_commit_messages.rb
278
+ - lib/verto/dsl/update_changelog/with_merged_pull_requests.rb
219
279
  - lib/verto/repositories/tag_repository.rb
220
280
  - lib/verto/utils/cli_helpers.rb
221
281
  - lib/verto/utils/command_options.rb