PyInfra 3.8.0
13時間前原文(github.com)
概要
- 3.8.0リリースで多くのバグ修正と機能改善を実施
- semver(セマンティックバージョニング)への完全移行
- セキュリティ強化やコマンド注入防止のための改良
- 新機能追加:Docker、GPG、AIエージェントなどのサポート拡充
- ドキュメントとCIの改善で開発体験向上
3.8.0リリース:主な変更点
- semver(セマンティックバージョニング)への完全移行
- バージョン番号が「3.8.0」のように「.0」付きに統一
- contributorsへの感謝メッセージ
コア機能・APIの改善
- api.command: make_formatted_string_commandの不要なスペース追加バグ修正
- api: ClickからコアAPIを分離、出力関数のプラグイン化
- operations: ユーザー入力のクォート拡張によるコマンドインジェクション防止
- facts.selinux.FileContext: SELinuxコンテキスト欠如時の処理追加
- facts.systemd: user manager未使用時のsystemd情報取得の安定化
- facts.apt.AptSources: deb822フォーマットサポート追加
- operations.files: diff出力の拡張、ダウンロード帯域幅制限(limit_rate)追加、unarchive操作追加
- facts.server: ポート情報(Ports fact)、AuthorizedKeys追加、user_authorized_keysの冪等性確保
- facts.choco: ChocoPackagesの無効なshell_executable削除
- operations.git.repo: depthサポート追加、最新時のpull抑止
- operations.docker: 追加パラメータ・カスタムコマンド・compose/build/login/logout操作追加
- operations.selinux.port: sepolicyコマンド欠如時のラベル検出修正
- operations.server.reboot: SSHセッション切断時のaskpassクリーンアップ対応
- facts.docker: version/container/image/network詳細情報追加
- facts.crontab: crontab(5)の環境変数構文完全対応
- operations.files.download: 既存ファイルのmode/user/group整合
- facts.{yum,dnf,zypper}: 各リポジトリエントリにfilenameフィールド追加
- operations.server: BSD rc.dをsysvinitより先にdispatch
- facts+operations: GpgKeyrings factとgpg.*操作追加、uvサポート、server.Processes fact・server.kill操作追加
- dependencies/paramiko: paramiko v4対応、DSSキーサポート削除
- operations.server.mount: 既にマウント済みデバイスの検出修正
- arguments: dzdoによる特権昇格サポート追加(CLIオプション・設定含む)
- zfs: zfs/zpoolコマンド未検出時は空dict返却
- facts,operations: shlex.quoteからStringCommand+QuoteStringへの移行
コネクタ・互換性
- connectors.ssh: SSH configファイルのコメント解析修正、ProxyJump経由のConnectTimeout対応
- connectors: macOS+Python 3.13対応のためgevent.subprocess利用、askpass生成エラー表示
- progress: スピナーの早期終了
- security: コマンド構築時の未信頼値クォート強化
- ci: デフォルトPythonを3.14へアップグレード
ドキュメント・メタ・CI
- docs: OpenWrtのapk切替注意、operation引数リストの余計なカンマ修正、キーワード専用引数の記載追加、docsビルドをCIに追加
- docs: template変数利用の明確化、Pythonバージョン要件更新、モジュール単位のfact/operationドキュメント生成
- docs: group_data/はfile-inventory専用の明示
- fix: group dataからimport除外、factsドキュメント生成スクリプトのラベル追加
その他の新機能・改善
- meta,api: fact/operationモジュールの遅延ロード
- fix: FunctionCommandのタイムアウト対応
- feat: config.INHERIT_ENVでローカルプロセスの環境変数を全opに継承
- AIエージェント: AIコーディングエージェント利用サポート追加
- PRレビュー: PRレビュー用スキル追加
- facts: requires_commandガードセンチネル・check_preconditions()フック追加
- facts.zfs: ZfsDatasets用check_preconditions追加・コマンドメソッド更新
- operations/facts: apt.keyの近代化(非推奨apt-keyの置換)
- chore: Claudeの型ヒントを最新化
- apt: apt.packagesにpurgeオプション追加
- fix: TmpDirシェルスクリプトにセミコロン追加(sh -c互換性)
- fix: server.sysctl値の比較正規化
このリリースは全体的な品質向上とセキュリティ強化、新機能の追加が主な特徴。今後もsemver準拠での安定したリリースが継続予定。