reissue 0.4.11 → 0.4.13

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: 2716a8e3df4f6b34bcdaa93f2aeac3ad9ebbe46489c55181a2414bcbd2bc6e58
4
- data.tar.gz: 8c0090f0e3aef87175c72e4847193f3eb847e0d7307fe21ae89382561cf1ee66
3
+ metadata.gz: 9b4d46ca42d94ccf491e32974d657b0b799d1bc38dec50bfc422b324211c0dba
4
+ data.tar.gz: 0b9f9a2043e53cb0c534d1a2a96c9367a816fa44b49c6a6dce29586a6566ec8c
5
5
  SHA512:
6
- metadata.gz: 26336e98efff7be479a552d34fabb965109b23fc9e4acc92977ad090dc13813eca62759b7619e87871126164c5001903ba3c7ec85edb8e9fd794b498a7d8301c
7
- data.tar.gz: 43e043210fd8315c6f0cd6ff8c9c7e7e85025b452e00f9c9de316baa9f31a8f39151182dbc34d875061d79f6a4d7911382f4554f6ec99a9ea37f2f31aa7fa8b1
6
+ metadata.gz: 543483500981a91880361b000cf9864c4ace92183d283ad25f0d849f574a5176e2c59349789c7e9852963d7513b790561012e7c42ebab8d69d2d81520ef520c5
7
+ data.tar.gz: c3c8da6ffbbe90a734b74c49922ec4acec0b1d1d9597ed3f496aee88336f932cb5fe8d631830abc6d131cefd10eaec61903696421f04c4935ed3428b23e615c3
data/CHANGELOG.md CHANGED
@@ -5,23 +5,15 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](http://keepachangelog.com/)
6
6
  and this project adheres to [Semantic Versioning](http://semver.org/).
7
7
 
8
- ## [0.4.11] - 2026-02-06
8
+ ## [0.4.13] - 2026-02-10
9
9
 
10
10
  ### Added
11
11
 
12
- - reissue:initialize task to create changelog and show setup instructions (ad4ae54)
13
- - working_directory input for monorepo gem releases (55dea65)
14
- - Gem integration tests for checksums in updated_paths (16b801e)
12
+ - Hoe plugin for integrating Reissue into Hoe-based projects (f5dde22)
13
+ - Hoe plugin usage documentation in README and reissue:initialize task output (2bbd4ea)
15
14
 
16
- ### Changed
17
-
18
- - Replace rubygems/release-gem action with explicit release steps (55dea65)
15
+ ## [0.4.12] - 2026-02-09
19
16
 
20
- ### Fixed
21
-
22
- - Finalize task fails when changelog is already committed (307939e)
23
- - Checksums not staged during finalize task (307939e)
24
- - Stage updated_paths fails when files do not exist (16b801e)
25
- - Release workflow fails with working-directory command not found (9068f04)
17
+ ### Changed
26
18
 
27
- ## [0.4.10] - 2026-01-27
19
+ - reissue:bump now reads Version trailers regardless of whether the version file matches the last tag (98905d6)
data/README.md CHANGED
@@ -60,6 +60,28 @@ Additional tasks (usually run automatically):
60
60
  - `rake reissue:preview` - Preview changelog entries from fragments or git trailers
61
61
  - `rake reissue:clear_fragments` - Clear changelog fragments after release
62
62
 
63
+ ### Hoe Projects
64
+
65
+ If you use [Hoe](https://github.com/seattlerb/hoe) for project management:
66
+
67
+ ```ruby
68
+ Hoe.plugin :reissue
69
+
70
+ Hoe.spec "my_gem" do
71
+ developer "Jane Doe", "jane@example.com"
72
+
73
+ self.reissue_version_file = "lib/my_gem/version.rb"
74
+ self.reissue_fragment = :git
75
+ self.reissue_push_finalize = :branch
76
+ end
77
+ ```
78
+
79
+ This hooks into Hoe's release lifecycle:
80
+ - `prerelease` - Runs `reissue:bump` and `reissue:finalize` before release
81
+ - `postrelease` - Runs `reissue` to bump version for the next development cycle
82
+
83
+ All configuration options are available as `reissue_`-prefixed attributes (e.g., `reissue_version_file`, `reissue_changelog_file`). The version file defaults to `lib/#{name}/version.rb`.
84
+
63
85
  ### Non-Gem Projects
64
86
 
65
87
  For non-gem Ruby projects, add to your Rakefile:
@@ -0,0 +1,54 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "reissue/rake"
4
+
5
+ module Hoe::Reissue
6
+ attr_accessor :reissue_version_file, :reissue_changelog_file,
7
+ :reissue_version_limit, :reissue_version_redo_proc,
8
+ :reissue_fragment, :reissue_clear_fragments,
9
+ :reissue_retain_changelogs, :reissue_tag_pattern,
10
+ :reissue_commit, :reissue_commit_finalize,
11
+ :reissue_push_finalize, :reissue_push_reissue,
12
+ :reissue_updated_paths
13
+
14
+ def initialize_reissue
15
+ self.reissue_version_file = "lib/#{name}/version.rb"
16
+ self.reissue_changelog_file = "CHANGELOG.md"
17
+ self.reissue_version_limit = 2
18
+ self.reissue_version_redo_proc = nil
19
+ self.reissue_fragment = nil
20
+ self.reissue_clear_fragments = false
21
+ self.reissue_retain_changelogs = false
22
+ self.reissue_tag_pattern = nil
23
+ self.reissue_commit = true
24
+ self.reissue_commit_finalize = true
25
+ self.reissue_push_finalize = false
26
+ self.reissue_push_reissue = :branch
27
+ self.reissue_updated_paths = []
28
+ end
29
+
30
+ def define_reissue_tasks
31
+ config = {
32
+ version_file: reissue_version_file,
33
+ changelog_file: reissue_changelog_file,
34
+ version_limit: reissue_version_limit,
35
+ version_redo_proc: reissue_version_redo_proc,
36
+ fragment: reissue_fragment,
37
+ clear_fragments: reissue_clear_fragments,
38
+ retain_changelogs: reissue_retain_changelogs,
39
+ tag_pattern: reissue_tag_pattern,
40
+ commit: reissue_commit,
41
+ commit_finalize: reissue_commit_finalize,
42
+ push_finalize: reissue_push_finalize,
43
+ push_reissue: reissue_push_reissue,
44
+ updated_paths: reissue_updated_paths
45
+ }
46
+
47
+ Reissue::Task.create :reissue do
48
+ config.each { |attr, value| send(:"#{attr}=", value) }
49
+ end
50
+
51
+ Rake::Task.define_task(prerelease: ["reissue:bump", "reissue:finalize"])
52
+ Rake::Task.define_task(postrelease: ["reissue"])
53
+ end
54
+ end
data/lib/reissue/rake.rb CHANGED
@@ -366,26 +366,32 @@ module Reissue
366
366
  # Get version from last git tag
367
367
  tag_version = handler.last_tag_version
368
368
 
369
- # Only bump if current version matches tag version (hasn't been bumped yet)
370
- if tag_version && current_version == tag_version
371
- bump = handler.read_version_bump
369
+ bump = handler.read_version_bump
372
370
 
371
+ if tag_version && current_version == tag_version
373
372
  if bump
374
373
  updater = Reissue::VersionUpdater.new(version_file, version_redo_proc: version_redo_proc)
375
374
  updater.call(bump)
376
375
  puts "Version bumped (#{bump}) to #{updater.instance_variable_get(:@new_version)}"
377
376
  end
378
377
  elsif tag_version && current_version != tag_version
379
- puts "Version already bumped (#{tag_version} → #{current_version}), skipping"
380
- else
381
- # No tag exists, check for version trailers anyway
382
- bump = handler.read_version_bump
383
-
384
378
  if bump
385
379
  updater = Reissue::VersionUpdater.new(version_file, version_redo_proc: version_redo_proc)
386
- updater.call(bump)
387
- puts "Version bumped (#{bump}) to #{updater.instance_variable_get(:@new_version)}"
380
+ desired_version = updater.redo(tag_version, bump)
381
+
382
+ if desired_version > current_version
383
+ updater.call(bump)
384
+ puts "Version bumped (#{bump}) to #{updater.instance_variable_get(:@new_version)}"
385
+ else
386
+ puts "Version already bumped (#{tag_version} → #{current_version}), skipping"
387
+ end
388
+ else
389
+ puts "Version already bumped (#{tag_version} → #{current_version}), skipping"
388
390
  end
391
+ elsif bump
392
+ updater = Reissue::VersionUpdater.new(version_file, version_redo_proc: version_redo_proc)
393
+ updater.call(bump)
394
+ puts "Version bumped (#{bump}) to #{updater.instance_variable_get(:@new_version)}"
389
395
  end
390
396
  end
391
397
  end
@@ -460,6 +466,19 @@ namespace :reissue do
460
466
  puts "This automatically runs reissue:bump and reissue:finalize before `rake build`"
461
467
  puts "and runs reissue after `rake release`."
462
468
  puts
469
+ puts "For Hoe-based projects, use the Hoe plugin:"
470
+ puts
471
+ puts <<~HOE_USAGE
472
+ Hoe.plugin :reissue
473
+
474
+ Hoe.spec "your_gem" do
475
+ self.reissue_version_file = "lib/your_gem/version.rb"
476
+ self.reissue_fragment = :git
477
+ end
478
+ HOE_USAGE
479
+ puts
480
+ puts "This hooks into Hoe's prerelease and postrelease tasks."
481
+ puts
463
482
  puts "Run `rake -T reissue` to see all available tasks after configuration."
464
483
  end
465
484
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Reissue
4
- VERSION = "0.4.11"
4
+ VERSION = "0.4.13"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: reissue
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.11
4
+ version: 0.4.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jim Gay
@@ -34,6 +34,7 @@ files:
34
34
  - LICENSE.txt
35
35
  - README.md
36
36
  - Rakefile
37
+ - lib/hoe/reissue.rb
37
38
  - lib/reissue.rb
38
39
  - lib/reissue/changelog_updater.rb
39
40
  - lib/reissue/fragment_handler.rb