https://github.com/basecamp/kamal
Integration tests now build Docker images only once and use fuse‑overlayfs, cutting runtime without changing behavior.
フレークテストの原因を排除し、例外抑制・Docker ヘルス依存・再試行ロジックで統合テストの安定性を向上させた改修。
`--lock-wait` オプションでロック取得をポーリング待機できるようにし、CI 環境でのデプロイ競合を緩和した新機能。
Kamal::Secrets の `secrets_path` にデフォルト `.kamal/secrets` を設定し、v2.9.0 で発生した必須キーワードエラーを解消。設定の一貫性と後方互換性を保ちつつテストで検証。
AWS Secrets Manager の非文字列シークレットを JSON.dump で文字列化し、`kamal secrets extract` の `#chomp` エラーを防止。型ガード導入でバッチ取得時のクラッシュを根本解決し、CLI の安定性を向上させました。
Kamal のデプロイロック生成で UTF‑8 Git ユーザー名が原因のエンコードエラーを、`Kamal::Git.user_name` に UTF‑8 強制を追加することで解消し、ASCII‑only のシェルコマンドと非 ASCII ロック詳細の安全な保持を実現した。
AWS Secrets Manager のテストスタブを実際の CLI 挙動に合わせ、リクエストとレスポンスが一致するよう修正し、テスト信頼性を向上させた。
Kamal のキャッシュ再利用時に `git gc --auto --quiet` を実行し、パックファイルの無制限増大を防ぐシンプルな修正です。既存フローに最小限の侵襲でディスク容量リスクを解消します。
リモートビルダーとローカルレジストリの組み合わせで、レジストリコンテナ起動が無視されていた問題を、責務分離と条件分岐の見直しで解消し、デプロイの信頼性を向上させました。
`kamal exec` 系コマンドに `--raw` オプションを追加し、出力を加工せずそのまま STDOUT に流すことでバイナリデータの破損を防止しました。実装はオプション追加、ログレベル抑制、出力メソッド拡張の三層で行われ、既存機能との互換性も保たれています。
Kamal の SSH 設定に forward_agent オプションが追加され、エージェント転送を無効化できるようになり、ジャンプホストやトンネル環境でも安全にデプロイ可能となった。
Kamal のサンプルフックスクリプトの shebang を `#!/usr/bin/env sh` に変更し、/bin/sh 不在の環境でも実行可能にしたポータビリティ向上の修正です。
デスティネーション時のシークレット検索順序と `.kamal/secrets` の取扱いをコメントで明示し、ドキュメント生成に `output` エントリを追加したドキュメント中心の改善です。
`kamal` に `stop_timeout` オプションを導入し、Docker 停止時のタイムアウトをロール単位・全体単位で設定可能にした。デフォルトは従来と同様で、混在環境でも安全に停止できる。
デフォルトの `--restart unless-stopped` を撤廃し、アクセサリとロールごとに任意の再起動ポリシーを設定できるようにしたリバートとバリデーション強化です。
テストヘルパーの余計なスタブ生成を削除し、Passbolt アダプターのテストで `stub_ticks_with` を正しく使用するよう修正。テストの信頼性と可読性が向上しました。
`--container-id` が出力しなかったログ取得問題を、echo をシェルで実行する `shell` ラッパーで解決し、正しく Docker ログが取得できるようになった。
Passbolt アダプタに `--column password` オプションを追加し、`passbolt list resources` の出力にパスワードを含められるようにした修正です。最小限のコード変更でシークレット取得機能を拡張し、既存ロジックを維持しました。
Proxy::Run に値比較メソッドを追加し、run_config が同一でもオブジェクトの同一性で誤検出していた衝突チェックを正確化しました。テストで等価性とハッシュ一致を確認し、同一ホスト上のロール合成でのエラーが解消されます。
テスト環境のポート衝突と Docker Hub レートリミットを、プルスルーキャッシュとワークツリー固有の Compose プロジェクト名で根本的に解消し、安定した並列実行を実現した。