verto 0.10.2 → 0.12.0

Sign up to get free protection for your applications and to get access to all the features.
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