toys-release 0.5.0 → 0.5.1

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: 760890033dfab6a454ca2364d28dc335c787576328b7899f11ce7886129bc820
4
- data.tar.gz: 5c1c8178fd9313d1359c7c4044240c6be7cc0cc76911d2750eb1420b66bea185
3
+ metadata.gz: a7293946a297f770d016721fc0c23d6af64847c830496dc173ac133a25a95a0e
4
+ data.tar.gz: f288f26ec61f1748a9ab6079fdbabe48ade23c249d824b9cc851ac86c5a6ef96
5
5
  SHA512:
6
- metadata.gz: b06f2e581a8474075ed3ea105935644c47a500ad7d0aadf0cd88f82ecf1464939cc5f4136c90fb30d8bfb5e7439dc4857fee1c2fc92296ab66e5b77b68079dda
7
- data.tar.gz: d672e7c98230a13e14c33d9781b433f7f6cd12bf9e9ea6bc2fd55ce163401ed6a098ac6839cda3d8bebb7a79b60aa2a9532e75c401433337fb688b4492b2663d
6
+ metadata.gz: 55cff29c6532c9c50e5676e9caed891bd1c6e6b6725254a53fbdc46af9db823104dd867da7e9893f216903d22d2c42afddb00f9a345203480c46e08de99b20af
7
+ data.tar.gz: a0507b33a1293001d011206b0f499784c87d43cb0d58d6bc8e401a4c94481e264c61aa97d8384a0ad29e3f6038b1de6c817967a537278458609dc56f89cc8965
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Release History
2
2
 
3
+ ### v0.5.1 / 2026-01-27
4
+
5
+ * FIXED: Fixed additional cases of releases attempting to release components whose names are substrings of other components
6
+ * FIXED: Fixed several issues with the retry tool
7
+ * DOCS: Document the touch-component and no-touch-component tags
8
+
3
9
  ### v0.5.0 / 2026-01-27
4
10
 
5
11
  * BREAKING CHANGE: Disabled GitHub check validation by default, because GitHub started adding hidden checks we can't account for
data/docs/guide.md CHANGED
@@ -514,6 +514,24 @@ and affect the behavior of that and other commits.
514
514
  can even include multiple revert-commit tags if the commit reverts more than
515
515
  one previous commit.
516
516
 
517
+ * **touch-component:** This tag indicates that the commit should be treated
518
+ as if it touches a specified component, even if it does not actually modify
519
+ that component's files. For example:
520
+
521
+ ```
522
+ fix: Fix the build
523
+ touch-component: my_gem
524
+ ```
525
+
526
+ * **no-touch-component:** This tag indicates that the commit should be
527
+ treated as if it does *not* touch a specified component, even if it
528
+ modifies that component's files. For example:
529
+
530
+ ```
531
+ fix: Fix the build
532
+ no-touch-component: my_gem
533
+ ```
534
+
517
535
  ### Running on the command line
518
536
 
519
537
  The implementation of Toys-Release is done via Toys (i.e. command line) tools.
@@ -6,6 +6,6 @@ module Toys
6
6
  # Current version of the Toys release system.
7
7
  # @return [String]
8
8
  #
9
- VERSION = "0.5.0"
9
+ VERSION = "0.5.1"
10
10
  end
11
11
  end
@@ -293,7 +293,9 @@ module Toys
293
293
  dir = settings.directory
294
294
  dir = "#{dir}/" unless dir.end_with?("/")
295
295
 
296
- return true if dir == "./" || /(^|\n)touch-component: #{name}(\s|$)/i.match?(commit.message)
296
+ escaped_name = ::Regexp.escape(name)
297
+ return true if dir == "./" || /(^|\n)touch-component:\s+#{escaped_name}(\s|$)/i.match?(commit.message)
298
+ return false if /(^|\n)no-touch-component:\s+#{escaped_name}(\s|$)/i.match?(commit.message)
297
299
  commit.modified_paths.any? do |file|
298
300
  (file.start_with?(dir) || settings.include_globs.any? { |pattern| ::File.fnmatch?(pattern, file) }) &&
299
301
  settings.exclude_globs.none? { |pattern| ::File.fnmatch?(pattern, file) }
@@ -680,6 +680,7 @@ module Toys
680
680
  files = output.split("\n")
681
681
  components = all_components.find_all do |component|
682
682
  dir = component.directory
683
+ dir = "#{dir}/" unless dir.end_with?("/")
683
684
  files.any? { |file| file.start_with?(dir) }
684
685
  end
685
686
  components.each_with_object({}) do |component, result|
data/toys/retry.rb CHANGED
@@ -71,7 +71,9 @@ def run
71
71
  verify_release_pr
72
72
  setup_params
73
73
  release_sha = setup_git
74
- perform_pending_releases(release_sha)
74
+ @repository.at_sha(release_sha) do
75
+ perform_pending_releases(release_sha)
76
+ end
75
77
  end
76
78
 
77
79
  def setup_objects
@@ -112,13 +114,11 @@ def setup_params
112
114
  end
113
115
  set(:dry_run, /^t/i.match?(::ENV["TOYS_RELEASE_DRY_RUN"].to_s)) if dry_run.nil?
114
116
  ::ENV["GEM_HOST_API_KEY"] = rubygems_api_key if rubygems_api_key
115
- set(:release_ref, @pull_request.merge_commit_sha) unless release_ref
116
117
  end
117
118
 
118
119
  def setup_git
119
- exec(["git", "fetch", "--depth=2", "origin", "+#{release_ref}:refs/heads/release/current"], e: true)
120
- exec(["git", "switch", "release/current"], e: true)
121
- @repository.current_sha
120
+ @repository.git_prepare_branch(git_remote, branch: @pull_request.base_ref)
121
+ @repository.current_sha(release_ref || @pull_request.merge_commit_sha)
122
122
  end
123
123
 
124
124
  def create_performer(release_sha)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: toys-release
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Azuma
@@ -82,10 +82,10 @@ homepage: https://github.com/dazuma/toys
82
82
  licenses:
83
83
  - MIT
84
84
  metadata:
85
- changelog_uri: https://dazuma.github.io/toys/gems/toys-release/v0.5.0/file.CHANGELOG.html
85
+ changelog_uri: https://dazuma.github.io/toys/gems/toys-release/v0.5.1/file.CHANGELOG.html
86
86
  source_code_uri: https://github.com/dazuma/toys/tree/main/toys-release
87
87
  bug_tracker_uri: https://github.com/dazuma/toys/issues
88
- documentation_uri: https://dazuma.github.io/toys/gems/toys-release/v0.5.0
88
+ documentation_uri: https://dazuma.github.io/toys/gems/toys-release/v0.5.1
89
89
  rdoc_options: []
90
90
  require_paths:
91
91
  - lib