hanami-cli 2.3.1 → 2.3.2

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: 6939575ae1e35a1e103d2d439b73080cb033f837ece81f4652e539dd7cf413fc
4
- data.tar.gz: 9d94856acc062c3bdc0924a4c7dcfbf4badcd862b7d428a7e0e68e52aac8d46e
3
+ metadata.gz: 18df4c9818297413281e7b30d10542d2e73ad589ad04bb46c85d7ed91bb6e4c1
4
+ data.tar.gz: 9952a97ba448f0be44e7671793e1ec3303a0af29073bbd7e3203fc0f39feb28e
5
5
  SHA512:
6
- metadata.gz: 5f7d591b5fbf9dd4bcaf1cbc3bf942fa93bb1f90526d05e72c5f21251ec402c9f536059184aab555ee5c80c6d51504f9c61b5a44d119fcc13e48f41149161276
7
- data.tar.gz: becdd694c75f85bca07452647a67241cd9ca03a8d1095b23dd8e6202f41de41ec693332de1c1b7ea2ee434e7b3e4d9291bcb434adfea84b5d58db7f37b3d7ff0
6
+ metadata.gz: 8b9835e00aa1afeb93e83c9dcff1505e68acec33a11cb311f741b8df45011bd0aa241cc6ab98c120040124e8b1e84cf4daa5b2dd6f8cd70b24e9ddff276480a3
7
+ data.tar.gz: aa4ed60caa2e0c08728fa6e692a9b5718ee01070874454f2b1e67269573ad5422c6a4da60e34f02c42b08bce56b7f33145a1d212f94144721a3a663b0fe06049
data/CHANGELOG.md CHANGED
@@ -4,6 +4,13 @@ Hanami Command Line Interface
4
4
 
5
5
  ## Unreleased
6
6
 
7
+ ## v2.3.2 - 2025-11-16
8
+
9
+ ### Fixed
10
+
11
+ - Fix potential deadlocks with `db structure dump` for large structure files. (@timriley in #370, report from @pat in #369)
12
+ - Decouple the hanami-assets npm package version from the current Hanami version in generated `package.json`, using the stable minor version (e.g. `^2.3.0`) instead of the exact version (e.g. `^2.3.1`). This allows Hanami patch releases without requiring a corresponding hanami-assets npm package release. (@timriley in #270)
13
+
7
14
  ## v2.3.1 - 2025-11-14
8
15
 
9
16
  ### Fixed
@@ -3,31 +3,23 @@
3
3
  module Hanami
4
4
  module CLI
5
5
  module Generators
6
- # @since 2.0.0
7
6
  # @api private
8
7
  module Version
9
- # @since 2.0.0
10
- # @api private
11
8
  def self.version
12
9
  return Hanami::VERSION if Hanami.const_defined?(:VERSION)
13
10
 
14
11
  Hanami::CLI::VERSION
15
12
  end
16
13
 
17
- # @since 2.0.0
18
- # @api private
19
14
  def self.gem_requirement
20
- result = if prerelease?
21
- prerelease_version
22
- else
23
- stable_version
24
- end
15
+ result = prerelease? ? prerelease_version : stable_version
25
16
 
26
17
  "~> #{result}"
27
18
  end
28
19
 
29
20
  def self.npm_package_requirement
30
- result = version
21
+ result = prerelease? ? prerelease_version : stable_version
22
+
31
23
  # Change "2.1.0.beta2.1" to "2.1.0-beta.2" (the only format tolerable by `npm install`)
32
24
  if prerelease?
33
25
  result = result
@@ -38,7 +30,6 @@ module Hanami
38
30
  "^#{result}"
39
31
  end
40
32
 
41
- # @api private
42
33
  def self.prerelease?
43
34
  version.match?(/alpha|beta|rc/)
44
35
  end
@@ -46,8 +37,6 @@ module Hanami
46
37
  # @example
47
38
  # Hanami::VERSION # => 2.3.1
48
39
  # Hanami::CLI::Generators::Version.stable_version # => "2.3.0"
49
- #
50
- # @api private
51
40
  def self.stable_version
52
41
  major_minor = version.scan(/\A\d{1,2}\.\d{1,2}/).first
53
42
  "#{major_minor}.0"
@@ -56,8 +45,6 @@ module Hanami
56
45
  # @example
57
46
  # Hanami::VERSION # => 2.0.0.alpha8.1
58
47
  # Hanami::CLI::Generators::Version.prerelease_version # => "2.0.0.alpha"
59
- #
60
- # @api private
61
48
  def self.prerelease_version
62
49
  version.sub(/[[[:digit:]].]*\Z/, "")
63
50
  end
@@ -86,7 +86,7 @@ module Hanami
86
86
  # @since 2.0.0
87
87
  # @api public
88
88
  def call(cmd, *args, env: {})
89
- exitstatus = nil
89
+ exit_code = nil
90
90
  out = nil
91
91
  err = nil
92
92
 
@@ -96,13 +96,17 @@ module Hanami
96
96
 
97
97
  stdin.close
98
98
 
99
- exitstatus = wait_thr&.value&.exitstatus
99
+ # Read output before waiting on the process, to prevent deadlock. If we wait on the
100
+ # process first, and the process writes enough data to fill the limited OS pipe buffers,
101
+ # then the process will block waiting for us to read, while _we're_ blocked waiting for
102
+ # it to finish. Reading first allows us to drain the buffers as output arrives.
100
103
  out = Thread.new { stdout.read }.value.strip
101
104
  err = Thread.new { stderr.read }.value.strip
105
+ exit_code = wait_thr&.value&.exitstatus
102
106
  end
103
107
  end
104
108
 
105
- Result.new(exit_code: exitstatus, out: out, err: err)
109
+ Result.new(exit_code:, out:, err:)
106
110
  end
107
111
 
108
112
  # @since 2.1.0
@@ -6,6 +6,6 @@ module Hanami
6
6
  #
7
7
  # @api public
8
8
  # @since 2.0.0
9
- VERSION = "2.3.1"
9
+ VERSION = "2.3.2"
10
10
  end
11
11
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hanami-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.1
4
+ version: 2.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hanakai team