hanami-cli 2.3.1 → 2.3.3

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: 806878ad7896274b4d9fc0d7d49816c6a71d1c0a2c35c31bc1c40d0b0b738e8a
4
+ data.tar.gz: 518332d1486b84f60716004ea5fee01804ab0828f51967da783a44f4be363297
5
5
  SHA512:
6
- metadata.gz: 5f7d591b5fbf9dd4bcaf1cbc3bf942fa93bb1f90526d05e72c5f21251ec402c9f536059184aab555ee5c80c6d51504f9c61b5a44d119fcc13e48f41149161276
7
- data.tar.gz: becdd694c75f85bca07452647a67241cd9ca03a8d1095b23dd8e6202f41de41ec693332de1c1b7ea2ee434e7b3e4d9291bcb434adfea84b5d58db7f37b3d7ff0
6
+ metadata.gz: 44f1b5b63f5d9afed777d97126928a085b2f64903ce322b228231e74c7467164570353daca6fb4e0cf46becd06498b7f7a31e45caa9fecd124f05644208337c3
7
+ data.tar.gz: 53e52f84c1a58e33002a4ee159075c84735047d0c812bf235770976f59fc7b5a2db178fa9ad3e4e71bb076acbcb1dd70db5eac92e16a3095447cfa498d587206
data/CHANGELOG.md CHANGED
@@ -4,6 +4,17 @@ Hanami Command Line Interface
4
4
 
5
5
  ## Unreleased
6
6
 
7
+ ## v2.3.3 - 2025-12-04
8
+
9
+ - Support the newly released Bundler v4 by removing the upper version bound from our dependency. (@timriley in #373)
10
+
11
+ ## v2.3.2 - 2025-11-16
12
+
13
+ ### Fixed
14
+
15
+ - Fix potential deadlocks with `db structure dump` for large structure files. (@timriley in #370, report from @pat in #369)
16
+ - 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)
17
+
7
18
  ## v2.3.1 - 2025-11-14
8
19
 
9
20
  ### Fixed
data/hanami-cli.gemspec CHANGED
@@ -30,7 +30,7 @@ Gem::Specification.new do |spec|
30
30
  spec.metadata["rubygems_mfa_required"] = "true"
31
31
  spec.required_ruby_version = ">= 3.2"
32
32
 
33
- spec.add_dependency "bundler", "~> 2.1"
33
+ spec.add_dependency "bundler", ">= 2.1"
34
34
  spec.add_dependency "dry-cli", "~> 1.0", ">= 1.1.0"
35
35
  spec.add_dependency "dry-files", "~> 1.0", ">= 1.0.2", "< 2"
36
36
  spec.add_dependency "dry-inflector", "~> 1.0", "< 2"
@@ -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.3"
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.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hanakai team
@@ -13,14 +13,14 @@ dependencies:
13
13
  name: bundler
14
14
  requirement: !ruby/object:Gem::Requirement
15
15
  requirements:
16
- - - "~>"
16
+ - - ">="
17
17
  - !ruby/object:Gem::Version
18
18
  version: '2.1'
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
- - - "~>"
23
+ - - ">="
24
24
  - !ruby/object:Gem::Version
25
25
  version: '2.1'
26
26
  - !ruby/object:Gem::Dependency