capistrano-ops 1.0.10 → 1.0.11

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c704ca49f84574a85d2c47a54a03973232d6186275e95d8058821b9576594f8b
4
- data.tar.gz: dd1da7bb882eed3d1d94c7d3e7207747a7ec882308d7c6d543eaddffaf2da615
3
+ metadata.gz: b8c94fd6b958f219478ce26ed0631cd216f3b145701d55cd4192819ab9afecc5
4
+ data.tar.gz: fc29a70471fdd88d40ab72f17a3b5f0fd4aac4e71d93215143bc971778d4c070
5
5
  SHA512:
6
- metadata.gz: '011919060f16a1ac77da503fb9fda693a46a77f62ecba22946fc38c02c3a93f89f88ac92439813c7e533af9219f8bd9d8bb62fad3fd70fea0c9e783443f108f6'
7
- data.tar.gz: a04fdf286d5cb8be105da2304d85011c063b3906d6d32d11923e678cd3433917e6da0db1a869048d97d26e1945530cc99e3435ba32520b686dfc9d25c59b5b5a
6
+ metadata.gz: c0d8bbebfdbe41493e8844f6dbca9561fa76e321d1c9024d76880d43aa1a001d941f556631df188c29958f28467f4deafd09bd999fb5c420be328e324adc1265
7
+ data.tar.gz: a8dbc8d0b748e510fa29ca51f56a6764b5daa0313503e011fd8e451e813105c83a2e844825b976521857f6378f7208d7102c4f263a2d5672030c73a554118e13
@@ -0,0 +1,25 @@
1
+ name: Release
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+
7
+ permissions:
8
+ contents: write
9
+ id-token: write
10
+
11
+ jobs:
12
+ publish:
13
+ name: Push gem to RubyGems.org
14
+ runs-on: ubuntu-latest
15
+
16
+ steps:
17
+ - uses: actions/checkout@v4
18
+
19
+ - name: Set up Ruby
20
+ uses: ruby/setup-ruby@v1
21
+ with:
22
+ ruby-version: '3.3'
23
+ bundler-cache: true
24
+
25
+ - uses: rubygems/release-gem@v1
data/.rubocop.yml CHANGED
@@ -1,28 +1,88 @@
1
- require:
2
- - rubocop-performance
3
- - rubocop-rails
1
+ # RuboCop configuration for ms-graph-mailer gem
2
+
4
3
  AllCops:
5
- NewCops: disable
6
- TargetRubyVersion: 2.7
7
- Layout/LineLength:
8
- Max: 160
9
- Metrics/MethodLength:
10
- Max: 50
11
- Metrics/ClassLength:
12
- Max: 750
4
+ NewCops: enable
5
+ TargetRubyVersion: 3.1
6
+ SuggestExtensions: false
7
+ Exclude:
8
+ - 'vendor/**/*'
9
+ - 'tmp/**/*'
10
+ - 'bin/**/*'
11
+
12
+ # Metrics
13
+
13
14
  Metrics/BlockLength:
14
15
  Max: 50
15
- Metrics/ParameterLists:
16
- Max: 6
16
+ Exclude:
17
+ - 'spec/**/*'
18
+ - '*.gemspec'
19
+
20
+ Metrics/ClassLength:
21
+ Max: 150
22
+
23
+ Metrics/MethodLength:
24
+ Max: 40
25
+ Exclude:
26
+ - 'spec/**/*'
27
+
17
28
  Metrics/AbcSize:
18
- Max: 60
29
+ Max: 65
30
+ Exclude:
31
+ - 'spec/**/*'
32
+
19
33
  Metrics/CyclomaticComplexity:
20
- Max: 25
34
+ Max: 10
35
+
21
36
  Metrics/PerceivedComplexity:
22
- Max: 25
37
+ Max: 10
38
+
39
+ # Style
40
+
23
41
  Style/Documentation:
24
42
  Enabled: false
25
- Rails/RakeEnvironment:
43
+
44
+ Style/StringLiterals:
45
+ EnforcedStyle: single_quotes
46
+
47
+ Style/StringLiteralsInInterpolation:
48
+ EnforcedStyle: single_quotes
49
+
50
+ Style/FrozenStringLiteralComment:
51
+ Enabled: true
52
+ EnforcedStyle: always
53
+
54
+ Style/TrailingCommaInArrayLiteral:
55
+ EnforcedStyleForMultiline: no_comma
56
+
57
+ Style/TrailingCommaInHashLiteral:
58
+ EnforcedStyleForMultiline: no_comma
59
+
60
+ Style/TrailingCommaInArguments:
61
+ EnforcedStyleForMultiline: no_comma
62
+
63
+ # Layout
64
+
65
+ Layout/LineLength:
66
+ Max: 150
67
+ AllowedPatterns:
68
+ - '\s+# '
69
+
70
+ Layout/EmptyLinesAroundAttributeAccessor:
71
+ Enabled: true
72
+
73
+ Layout/SpaceAroundMethodCallOperator:
74
+ Enabled: true
75
+
76
+ # Lint
77
+
78
+ Gemspec/DevelopmentDependencies:
26
79
  Enabled: false
27
- Rails/Output:
80
+
81
+ Gemspec/RequireMFA:
28
82
  Enabled: false
83
+
84
+ Lint/RaiseException:
85
+ Enabled: true
86
+
87
+ Lint/StructNewOverride:
88
+ Enabled: true
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.7.0
1
+ 3.1.4
data/CHANGELOG.md ADDED
@@ -0,0 +1,311 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ## [1.0.11] - 2025-12-22
11
+
12
+ ### Added
13
+
14
+ - Add GitHub Actions workflow for automated gem releases to RubyGems.org
15
+ - Add comprehensive CHANGELOG.md with complete version history
16
+ - Add version bump script (bump_version.rb) for automated version management
17
+ - Add RuboCop configuration for code style enforcement
18
+
19
+ ### Changed
20
+
21
+ - Update aws-sdk-s3 dependency to ~> 1.208
22
+ - Update Ruby version requirements to >= 3.1.4, < 3.4.0
23
+
24
+ ## [v1.0.10] - 2025-03-04
25
+
26
+ ### Changed
27
+
28
+ - Update required Ruby version to < 3.4.0
29
+
30
+ ## [v1.0.9] - 2024-12-20
31
+
32
+ ### Fixed
33
+
34
+ - Fix missing variables in S3 multipart upload
35
+ - Update chunk size calculation for S3 uploads
36
+
37
+ ## [v1.0.8] - 2024-12-16
38
+
39
+ ### Fixed
40
+
41
+ - Add retry logic to S3 uploads for improved reliability
42
+
43
+ ## [v1.0.7] - 2024-12-05
44
+
45
+ ### Fixed
46
+
47
+ - Minor version bump with typo fixes
48
+
49
+ ## [v1.0.6] - 2024-12-04
50
+
51
+ ### Fixed
52
+
53
+ - Fix inheritable_copy error
54
+
55
+ ## [v1.0.5] - 2024-12-04
56
+
57
+ ### Fixed
58
+
59
+ - Update S3 upload to allow streaming directly into tar.gz file
60
+
61
+ ## [v1.0.4] - 2024-08-14
62
+
63
+ ### Fixed
64
+
65
+ - Update configs helper to retain other stages locally when working with figaro_yml
66
+
67
+ ## [v1.0.3] - 2024-07-15
68
+
69
+ ### Added
70
+
71
+ - Enhance gem presence check with regex for better Gemfile validation
72
+
73
+ ## [v1.0.2] - 2024-07-15
74
+
75
+ ### Fixed
76
+
77
+ - Fix wkhtmltopdf broken functionality
78
+
79
+ ## [v1.0.1] - 2024-07-15
80
+
81
+ ### Fixed
82
+
83
+ - Fix wkhtmltopdf broken functionality (additional fixes)
84
+
85
+ ## [v1.0.0] - 2024-07-11
86
+
87
+ ### Changed
88
+
89
+ - Major version release - Prepare for v1 release
90
+ - Stable API and feature set
91
+
92
+ ## [v0.2.14] - 2024-06-29
93
+
94
+ ### Changed
95
+
96
+ - Cleanup figaro_yml tasks
97
+
98
+ ## [v0.2.13] - 2024-06-12
99
+
100
+ ### Added
101
+
102
+ - Add wkhtmltopdf support
103
+ - Add loader file for wkhtmltopdf Capistrano task
104
+ - Add wkhtmltopdf setup and permission checks for deployment tasks
105
+
106
+ ## [v0.2.12] - 2024-06-10
107
+
108
+ ### Added
109
+
110
+ - Implement comprehensive logrotate functionality
111
+
112
+ ## [v0.2.11] - 2024-04-16
113
+
114
+ ### Fixed
115
+
116
+ - Fix logical issue with KEEP_LOCAL_STORAGE_BACKUPS environment variable
117
+
118
+ ## [v0.2.10] - 2024-04-15
119
+
120
+ ### Added
121
+
122
+ - Add ENV option to remove local storage backups if external backups enabled
123
+ - Update README with new configuration options
124
+
125
+ ## [v0.2.9] - 2024-01-15
126
+
127
+ ### Added
128
+
129
+ - Add backup thinning functionality to manage backup retention
130
+
131
+ ## [v0.2.8] - 2023-09-07
132
+
133
+ ### Changed
134
+
135
+ - Update required Ruby version
136
+
137
+ ## [v0.2.7] - 2023-08-31
138
+
139
+ ### Fixed
140
+
141
+ - Fix missing download functionality in backup
142
+
143
+ ## [v0.2.6] - 2023-08-25
144
+
145
+ ### Fixed
146
+
147
+ - Fix configuration error
148
+
149
+ ## [v0.2.5] - 2023-08-14
150
+
151
+ ### Changed
152
+
153
+ - Optimize backups functionality
154
+
155
+ ## [v0.2.4] - 2023-08-13
156
+
157
+ ### Changed
158
+
159
+ - Update README documentation
160
+ - Add Faraday for HTTP requests
161
+ - Add/split Capistrano backup tasks
162
+ - Add deprecation warnings
163
+
164
+ ### Added
165
+
166
+ - Add .rubocop.yml for code style enforcement
167
+
168
+ ## [v0.2.3] - 2023-07-24
169
+
170
+ ### Added
171
+
172
+ - Add external backup provider support
173
+ - Add S3 object storage provider
174
+ - Update notification service
175
+
176
+ ### Changed
177
+
178
+ - Major refactoring of backup system
179
+
180
+ ### Known Issues
181
+
182
+ - Webhook notification service temporarily broken
183
+
184
+ ## [v0.2.2] - 2023-07-08
185
+
186
+ ### Changed
187
+
188
+ - Let bundler choose versions for better dependency management
189
+ - Only notify if update fails
190
+
191
+ ### Fixed
192
+
193
+ - Resolve dependency conflicts for Rails 7 compatibility
194
+
195
+ ## [v0.1.5] - 2023-03-15
196
+
197
+ ### Fixed
198
+
199
+ - Set dependencies by ruby_version
200
+
201
+ ## [v0.1.4] - 2023-03-13
202
+
203
+ ### Changed
204
+
205
+ - Optimize database dumps
206
+
207
+ ## [v0.1.3] - 2023-03-08
208
+
209
+ ### Fixed
210
+
211
+ - Fix bad class declaration in Railtie
212
+
213
+ ## [v0.1.2] - 2023-03-06
214
+
215
+ ### Added
216
+
217
+ - Add functionality to get application.yml from server
218
+
219
+ ### Changed
220
+
221
+ - Update README documentation
222
+
223
+ ## [v0.1.1] - 2023-03-06
224
+
225
+ ### Added
226
+
227
+ - Add get application yaml functionality
228
+
229
+ ## [v0.1.0] - 2023-03-06
230
+
231
+ ### Changed
232
+
233
+ - Rename gem to capistrano-ops
234
+ - Major version bump for initial stable release
235
+
236
+ ## [v0.0.7] - 2022-12-14
237
+
238
+ ### Added
239
+
240
+ - Add task to run rake task on server
241
+
242
+ ### Changed
243
+
244
+ - Update readme and refactor backup.rake
245
+
246
+ ## [v0.0.6] - 2022-12-08
247
+
248
+ ### Fixed
249
+
250
+ - Fix figaro_yml compare functionality
251
+
252
+ ## [v0.0.5] - 2022-12-07
253
+
254
+ ### Fixed
255
+
256
+ - Fix issue with stdin handling
257
+
258
+ ## [v0.0.4] - 2022-12-07
259
+
260
+ ### Fixed
261
+
262
+ - Fix issue with stdin handling (additional fixes)
263
+
264
+ ## [v0.0.3] - 2022-12-07
265
+
266
+ ### Fixed
267
+
268
+ - Fix PGPASSWORD export
269
+
270
+ ## Initial Release - 2022-12-07
271
+
272
+ ### Added
273
+
274
+ - Initial commit with core functionality
275
+ - Database backup capabilities
276
+ - Figaro YAML management
277
+ - Basic Capistrano integration
278
+
279
+ [Unreleased]: https://github.com/zauberware/capistrano-ops/compare/v1.0.11...HEAD
280
+ [1.0.11]: https://github.com/zauberware/capistrano-ops/releases/tag/v1.0.11
281
+ [v1.0.10]: https://github.com/zauberware/capistrano-ops/compare/v1.0.9...v1.0.10
282
+ [v1.0.9]: https://github.com/zauberware/capistrano-ops/compare/v1.0.8...v1.0.9
283
+ [v1.0.8]: https://github.com/zauberware/capistrano-ops/compare/v1.0.7...v1.0.8
284
+ [v1.0.7]: https://github.com/zauberware/capistrano-ops/compare/v1.0.6...v1.0.7
285
+ [v1.0.6]: https://github.com/zauberware/capistrano-ops/compare/v1.0.5...v1.0.6
286
+ [v1.0.5]: https://github.com/zauberware/capistrano-ops/compare/v1.0.4...v1.0.5
287
+ [v1.0.4]: https://github.com/zauberware/capistrano-ops/compare/v1.0.3...v1.0.4
288
+ [v1.0.3]: https://github.com/zauberware/capistrano-ops/compare/v1.0.2...v1.0.3
289
+ [v1.0.2]: https://github.com/zauberware/capistrano-ops/compare/v1.0.1...v1.0.2
290
+ [v1.0.1]: https://github.com/zauberware/capistrano-ops/compare/v1.0.0...v1.0.1
291
+ [v1.0.0]: https://github.com/zauberware/capistrano-ops/compare/v0.2.14...v1.0.0
292
+ [v0.2.14]: https://github.com/zauberware/capistrano-ops/compare/v0.2.13...v0.2.14
293
+ [v0.2.13]: https://github.com/zauberware/capistrano-ops/compare/v0.2.12...v0.2.13
294
+ [v0.2.12]: https://github.com/zauberware/capistrano-ops/compare/v0.2.11...v0.2.12
295
+ [v0.2.11]: https://github.com/zauberware/capistrano-ops/compare/v0.2.10...v0.2.11
296
+ [v0.2.10]: https://github.com/zauberware/capistrano-ops/compare/v0.2.9...v0.2.10
297
+ [v0.2.9]: https://github.com/zauberware/capistrano-ops/compare/v0.2.8...v0.2.9
298
+ [v0.2.8]: https://github.com/zauberware/capistrano-ops/compare/v0.2.7...v0.2.8
299
+ [v0.2.7]: https://github.com/zauberware/capistrano-ops/compare/v0.2.6...v0.2.7
300
+ [v0.2.6]: https://github.com/zauberware/capistrano-ops/compare/v0.2.5...v0.2.6
301
+ [v0.2.5]: https://github.com/zauberware/capistrano-ops/compare/v0.2.4...v0.2.5
302
+ [v0.2.4]: https://github.com/zauberware/capistrano-ops/compare/v0.2.3...v0.2.4
303
+ [v0.2.3]: https://github.com/zauberware/capistrano-ops/compare/v0.2.2...v0.2.3
304
+ [v0.2.2]: https://github.com/zauberware/capistrano-ops/compare/v0.1.5...v0.2.2
305
+ [v0.1.5]: https://github.com/zauberware/capistrano-ops/compare/v0.1.4...v0.1.5
306
+ [v0.1.4]: https://github.com/zauberware/capistrano-ops/compare/v0.1.3...v0.1.4
307
+ [v0.1.3]: https://github.com/zauberware/capistrano-ops/compare/v0.1.2...v0.1.3
308
+ [v0.1.2]: https://github.com/zauberware/capistrano-ops/compare/v0.1.1...v0.1.2
309
+ [v0.1.1]: https://github.com/zauberware/capistrano-ops/compare/v0.1.0...v0.1.1
310
+ [v0.1.0]: https://github.com/zauberware/capistrano-ops/compare/v0.0.7...v0.1.0
311
+ [v0.0.7]: https://github.com/zauberware/capistrano-ops/releases/tag/v0.0.7
data/Rakefile CHANGED
@@ -6,3 +6,20 @@ require 'rspec/core/rake_task'
6
6
  RSpec::Core::RakeTask.new(:spec)
7
7
 
8
8
  task default: :spec
9
+
10
+ namespace :version do
11
+ desc 'Bump patch version (0.1.0 -> 0.1.1)'
12
+ task :patch do
13
+ ruby 'scripts/bump_version.rb patch'
14
+ end
15
+
16
+ desc 'Bump minor version (0.1.0 -> 0.2.0)'
17
+ task :minor do
18
+ ruby 'scripts/bump_version.rb minor'
19
+ end
20
+
21
+ desc 'Bump major version (0.1.0 -> 1.0.0)'
22
+ task :major do
23
+ ruby 'scripts/bump_version.rb major'
24
+ end
25
+ end
@@ -15,17 +15,18 @@ Gem::Specification.new do |s|
15
15
  s.summary = 'devops tasks for rails applications'
16
16
  s.description = 'A collection of devops tasks for rails applications'
17
17
  s.files = `git ls-files`.split("\n")
18
- s.test_files = `git ls-files -- test/{functional,unit}/*`.split("\n")
19
18
  s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
20
19
  s.require_paths = ['lib']
21
20
 
22
- s.required_ruby_version = '>= 2.7.0', '< 3.4.0'
23
- s.add_dependency 'aws-sdk-s3', '~> 1.175'
21
+ s.required_ruby_version = '>= 3.1.4', '< 3.4.0'
22
+ s.add_dependency 'aws-sdk-s3', '~> 1.208'
24
23
  s.add_dependency 'faraday'
25
24
  s.add_dependency 'nokogiri'
26
25
  s.add_dependency 'rails'
27
- s.add_development_dependency 'bundler', '~> 2.4.12'
28
- s.add_development_dependency 'rake', '~> 12.3'
29
- s.add_development_dependency 'rubocop', '~> 1.56.2' # rubocop ruby
30
- s.add_development_dependency 'rubocop-performance', '~> 1.19.0' # speed up rubocop
26
+ s.add_development_dependency 'bundler', '~> 2.0'
27
+ s.add_development_dependency 'rake', '~> 13.0'
28
+ s.add_development_dependency 'rspec', '~> 3.0'
29
+ s.add_development_dependency 'rubocop', '~> 1.0'
30
+ s.add_development_dependency 'rubocop-rake', '~> 0.6'
31
+ s.add_development_dependency 'rubocop-rspec', '~> 2.0'
31
32
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Capistrano
4
4
  module Ops
5
- VERSION = '1.0.10'
5
+ VERSION = '1.0.11'
6
6
  end
7
7
  end
@@ -0,0 +1,172 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ # Version management script for Capistrano Ops Gem
5
+ # Usage: ruby scripts/bump_version.rb [patch|minor|major]
6
+
7
+ require 'fileutils'
8
+ require_relative '../lib/capistrano/ops/version'
9
+
10
+ class VersionBumper
11
+ VALID_TYPES = %w[patch minor major].freeze
12
+ VERSION_FILE = 'lib/capistrano/ops/version.rb'
13
+ CHANGELOG_FILE = 'CHANGELOG.md'
14
+
15
+ def initialize(bump_type)
16
+ @bump_type = bump_type.to_s.downcase
17
+ @current_version = Capistrano::Ops::VERSION
18
+ validate_bump_type!
19
+ end
20
+
21
+ def bump!
22
+ puts "Current version: #{@current_version}"
23
+
24
+ new_version = calculate_new_version
25
+ puts "New version: #{new_version}"
26
+
27
+ # Update version file
28
+ update_version_file(new_version)
29
+
30
+ # Update changelog
31
+ update_changelog(new_version)
32
+
33
+ # Create git commit
34
+ create_git_commit(new_version) if git_available?
35
+
36
+ puts 'Version bumped successfully!'
37
+ puts ''
38
+ puts '📋 Next steps:'
39
+ puts '1. Review the changes (git diff)'
40
+ puts '2. Fill in CHANGELOG.md with actual changes'
41
+ puts '3. Commit and tag:'
42
+ puts " git add #{VERSION_FILE} #{CHANGELOG_FILE}"
43
+ puts " git commit -m 'Release version #{new_version}'"
44
+ puts " git tag -a v#{new_version} -m 'Release version #{new_version}'"
45
+ puts '4. Push to GitHub:'
46
+ puts " git push origin main && git push origin v#{new_version}"
47
+ puts '5. Create GitHub Release:'
48
+ puts " gh release create v#{new_version} --title 'v#{new_version}' \\"
49
+ puts " --notes-file <(sed -n '/## \\[#{new_version}\\]/,/## \\[/p' CHANGELOG.md | sed '$d')"
50
+ puts ''
51
+ puts '→ GitHub Actions will automatically publish to RubyGems.org! 🚀'
52
+ end
53
+
54
+ private
55
+
56
+ def validate_bump_type!
57
+ return if VALID_TYPES.include?(@bump_type)
58
+
59
+ puts "Error: Invalid bump type '#{@bump_type}'"
60
+ puts "Valid types: #{VALID_TYPES.join(', ')}"
61
+ exit 1
62
+ end
63
+
64
+ def calculate_new_version
65
+ parts = @current_version.split('.').map(&:to_i)
66
+
67
+ case @bump_type
68
+ when 'patch'
69
+ parts[2] += 1
70
+ when 'minor'
71
+ parts[1] += 1
72
+ parts[2] = 0
73
+ when 'major'
74
+ parts[0] += 1
75
+ parts[1] = 0
76
+ parts[2] = 0
77
+ end
78
+
79
+ parts.join('.')
80
+ end
81
+
82
+ def update_version_file(new_version)
83
+ puts "Updating #{VERSION_FILE}..."
84
+
85
+ content = File.read(VERSION_FILE)
86
+ updated_content = content.gsub(
87
+ /VERSION = ['"][^'"]*['"]/,
88
+ "VERSION = '#{new_version}'"
89
+ )
90
+
91
+ File.write(VERSION_FILE, updated_content)
92
+ puts '✓ Version file updated'
93
+ end
94
+
95
+ def update_changelog(new_version)
96
+ return unless File.exist?(CHANGELOG_FILE)
97
+
98
+ puts "Updating #{CHANGELOG_FILE}..."
99
+
100
+ # Read existing changelog
101
+ content = File.read(CHANGELOG_FILE)
102
+
103
+ # Find the [Unreleased] section and replace it
104
+ lines = content.lines
105
+
106
+ today = Time.now.strftime('%Y-%m-%d')
107
+
108
+ # Replace [Unreleased] header with new version
109
+ unreleased_index = lines.find_index { |line| line.start_with?('## [Unreleased]') }
110
+
111
+ if unreleased_index
112
+ # Create new version entry
113
+ new_entry = [
114
+ "## [Unreleased]\n",
115
+ "\n",
116
+ "## [#{new_version}] - #{today}\n"
117
+ ]
118
+
119
+ # Replace [Unreleased] line
120
+ lines[unreleased_index] = new_entry.join
121
+
122
+ # Update comparison links at the bottom
123
+ # Find and update the [Unreleased] link
124
+ unreleased_link_index = lines.rindex { |line| line.start_with?('[Unreleased]:') }
125
+ if unreleased_link_index
126
+ # Update [Unreleased] to compare from new version to HEAD
127
+ lines[unreleased_link_index] = "[Unreleased]: https://github.com/zauberware/capistrano-ops/compare/v#{new_version}...HEAD\n"
128
+ # Add new version link
129
+ lines.insert(unreleased_link_index + 1, "[#{new_version}]: https://github.com/zauberware/capistrano-ops/releases/tag/v#{new_version}\n")
130
+ end
131
+ end
132
+
133
+ # Write back to file
134
+ File.write(CHANGELOG_FILE, lines.join)
135
+ puts '✓ Changelog updated (please fill in the release notes under the new version)'
136
+ end
137
+
138
+ def git_available?
139
+ system('git --version > /dev/null 2>&1')
140
+ end
141
+
142
+ def create_git_commit(new_version)
143
+ puts 'Creating git commit...'
144
+
145
+ # Add modified files
146
+ system("git add #{VERSION_FILE}")
147
+ system("git add #{CHANGELOG_FILE}") if File.exist?(CHANGELOG_FILE)
148
+
149
+ # Create commit
150
+ commit_message = "Bump version to #{new_version}"
151
+ if system("git commit -m '#{commit_message}'")
152
+ puts "✓ Git commit created: #{commit_message}"
153
+ else
154
+ puts '⚠ Failed to create git commit (you may need to commit manually)'
155
+ end
156
+ end
157
+ end
158
+
159
+ # Main execution
160
+ if ARGV.empty?
161
+ puts "Usage: #{$PROGRAM_NAME} [patch|minor|major]"
162
+ puts ''
163
+ puts 'Examples:'
164
+ puts " #{$PROGRAM_NAME} patch # 1.0.0 -> 1.0.1"
165
+ puts " #{$PROGRAM_NAME} minor # 1.0.0 -> 1.1.0"
166
+ puts " #{$PROGRAM_NAME} major # 1.0.0 -> 2.0.0"
167
+ exit 1
168
+ end
169
+
170
+ bump_type = ARGV[0]
171
+ bumper = VersionBumper.new(bump_type)
172
+ bumper.bump!
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano-ops
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.10
4
+ version: 1.0.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florian Crusius
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-03-04 00:00:00.000000000 Z
11
+ date: 2025-12-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-s3
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.175'
19
+ version: '1.208'
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.175'
26
+ version: '1.208'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: faraday
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -72,56 +72,84 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 2.4.12
75
+ version: '2.0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 2.4.12
82
+ version: '2.0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rake
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '12.3'
89
+ version: '13.0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '12.3'
96
+ version: '13.0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rspec
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '3.0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '3.0'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: rubocop
99
113
  requirement: !ruby/object:Gem::Requirement
100
114
  requirements:
101
115
  - - "~>"
102
116
  - !ruby/object:Gem::Version
103
- version: 1.56.2
117
+ version: '1.0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '1.0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: rubocop-rake
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '0.6'
104
132
  type: :development
105
133
  prerelease: false
106
134
  version_requirements: !ruby/object:Gem::Requirement
107
135
  requirements:
108
136
  - - "~>"
109
137
  - !ruby/object:Gem::Version
110
- version: 1.56.2
138
+ version: '0.6'
111
139
  - !ruby/object:Gem::Dependency
112
- name: rubocop-performance
140
+ name: rubocop-rspec
113
141
  requirement: !ruby/object:Gem::Requirement
114
142
  requirements:
115
143
  - - "~>"
116
144
  - !ruby/object:Gem::Version
117
- version: 1.19.0
145
+ version: '2.0'
118
146
  type: :development
119
147
  prerelease: false
120
148
  version_requirements: !ruby/object:Gem::Requirement
121
149
  requirements:
122
150
  - - "~>"
123
151
  - !ruby/object:Gem::Version
124
- version: 1.19.0
152
+ version: '2.0'
125
153
  description: A collection of devops tasks for rails applications
126
154
  email:
127
155
  - florian@zauberware.com
@@ -131,10 +159,12 @@ executables:
131
159
  extensions: []
132
160
  extra_rdoc_files: []
133
161
  files:
162
+ - ".github/workflows/release.yml"
134
163
  - ".gitignore"
135
164
  - ".rubocop.yml"
136
165
  - ".ruby-version"
137
166
  - ".travis.yml"
167
+ - CHANGELOG.md
138
168
  - Gemfile
139
169
  - LICENSE.txt
140
170
  - README.md
@@ -208,6 +238,7 @@ files:
208
238
  - lib/capistrano/ops/wkhtmltopdf.rb
209
239
  - lib/capistrano/ops/wkhtmltopdf/helpers.rb
210
240
  - lib/capistrano/ops/wkhtmltopdf/tasks/setup.rake
241
+ - scripts/bump_version.rb
211
242
  homepage: https://github.com/zauberware/capistrano-ops
212
243
  licenses:
213
244
  - MIT
@@ -220,7 +251,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
220
251
  requirements:
221
252
  - - ">="
222
253
  - !ruby/object:Gem::Version
223
- version: 2.7.0
254
+ version: 3.1.4
224
255
  - - "<"
225
256
  - !ruby/object:Gem::Version
226
257
  version: 3.4.0
@@ -230,7 +261,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
230
261
  - !ruby/object:Gem::Version
231
262
  version: '0'
232
263
  requirements: []
233
- rubygems_version: 3.4.22
264
+ rubygems_version: 3.5.22
234
265
  signing_key:
235
266
  specification_version: 4
236
267
  summary: devops tasks for rails applications