**Show HN:Git Bayesect — 非決定的バグのためのベイズ型 Git バイセクション**

2026/03/29 5:32

**Show HN:Git Bayesect — 非決定的バグのためのベイズ型 Git バイセクション**

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

Git_bayesect は、Git の二分探索にベイズ推論を適用するコマンドラインユーティリティであり、開発者がフラッキーなテストやその他のイベント失敗の確率を変化させるコミットを隔離できるようにします。
ツールは各コミットを仮説として扱い、未知の失敗率を処理するためにベータ-ベルヌーイモデルと期待エントロピー(ベータ-ベルヌーイ共役)の貪欲最小化を使用します。

インストール:

uv tool install git_bayesect
(または pip で)。
二分探索の開始:
git bayesect start --old $COMMIT [--new $COMMIT]
.
観測の記録: 成功の場合は
git bayesect pass
、失敗の場合は
git bayesect fail
/
record failure
pass
コマンドは特定のコミットハッシュとともに実行することもできます(
git bayesect pass --commit $COMMIT
)。
ステータスと制御:
git bayesect status
,
git bayesect reset
,
git bayesect undo
.
事前分布の設定: コミットごとの事前分布は
git bayesect prior --commit $COMMIT --weight 10
、大量の事前分布は
priors_from_filenames
priors_from_text
のようなコールバックで設定します。
自動化とログ: 観測収集を自動化するには
git bayesect run <command>
を使用し、コマンドログを見るには
git bayesect log
.
最終化: 最も確率の高い原因コミットにチェックアウトするには
git bayesect checkout
.

デモリポジトリ(

fake_repo
)は合成履歴を生成し、フラッキーなスクリプトを実行し、ベイズ二分探索を適用して失敗確率を変化させたコミットを特定する方法を示します。

これらのコマンドを QA ワークフローに統合することで、開発者は問題のあるコミットをより迅速に特定し、リリースの信頼性を向上できます。

本文

Git Bayesect – ベイズ的 Git バイセクション


概要

git-bayesect
はベイズ推論を用いて、テストのフラッキー化やその他観測可能な振る舞いの変化をもたらしたコミットを特定します。期待エントロピーを貪欲に最小化し、Beta‑Bernoulli の共役性を利用して後方分布を計算します。

詳細は以下をご覧ください: https://hauntsaninja.github.io/git_bayesect.html


インストール

# pip でインストール
pip install git-bayesect  

# uv を使う場合
uv tool install git_bayesect

基本的な使い方

コマンド説明
git bayesect start --old <COMMIT>
指定した古いコミットからベイズバイセクションを開始します。
git bayesect pass --commit <COMMIT>
与えられたコミット(省略時は現在の HEAD)で成功観測を記録します。
git bayesect fail --commit <COMMIT>
与えられたコミットで失敗観測を記録します。
git bayesect status
バイセクション全体の進捗と後方推定値を表示します。
git bayesect reset
現在のバイセクションセッションをリセットします。

高度な機能

事前分布の設定

  • コミット単位の事前

    git bayesect prior --commit <COMMIT> --weight 10
    
  • ファイル名から一括で設定

    git bayesect priors_from_filenames \
        --filenames-callback "return 10 if any('suspicious' in f for f in filenames) else 1"
    
  • コミットメッセージ+diff から一括で設定

    git bayesect priors_from_text \
        --text-callback "return 10 if 'timeout' in text.lower() else 1"
    

ログと取り消し

  • git bayesect log
    – セッション中に実行された全コマンドの再現可能なログを出力します。
  • git bayesect undo
    – 最後の観測結果を元に戻します。

自動観測

git bayesect run <command>

各候補コミットで

<command>
を実行し、パス/フェイルを自動で記録して後方分布を更新します。


デモワークフロー

  1. 疑似リポジトリを作成

    python scripts/generate_fake_repo.py
    cd fake_repo
    
  2. フラッキーなテストスクリプトを実行

    python flaky.py
    git log --oneline
    
  3. バイセクション開始

    OLD_COMMIT=$(git rev-list HEAD --reverse | head -n 2 | tail -n 1)
    git bayesect start --new main --old $OLD_COMMIT
    
  4. 自動観測で変更点を探す

    git bayesect run python flaky.py
    
  5. 進捗確認と最良コミットへチェックアウト

    git bayesect status
    git bayesect checkout-best
    

ハッピー・ハンティング!

同じ日のほかのニュース

一覧に戻る →

2026/04/02 8:35

新しいC++バックエンド for `ocamlc`

## 日本語訳: 新しいC++バックエンドが `ocamlc` に追加され、インクリメントされていない C ランタイムと外部関数インタフェースを置き換えました。著者は、ユーザーが指定した上限まで素数を生成するプログラムでその使用例を示しています。このプログラムは OCaml の List モジュールの一部を純粋に関数型スタイルで再実装しています。プログラムは `primes.cpp` という慣用的な C++ コードへ翻訳され、`Cons`、`I`、`ifthenelse` などのテンプレートメタプログラミング構造を含みます。`g++ -Dlimit=100 primes.cpp` でコンパイルすると、`print` が型ではないためにコンパイラー風エラーが発生し、出力形式は古い C プリプロセッサのエラー(OCaml の `::` の代わりにネストされた `Cons<hd, tl>`)を模倣します。生成されたコードはデフォルトテンプレート深度を増やす (`-ftemplate-depth=999999`) ことでのみ大きな上限を扱うことができます。著者のマシンでは、`limit = 10000` を実行すると約 30 秒で 10000 以下のすべての素数が出力され、約 11 GiB のメモリを使用します。clang++ は遅く、セグフォールトする可能性があります。アルゴリズム自体は非効率的です——コンテナライブラリからの優先度付きキュー/レフトヒープに基づく改良された純粋関数型素数生成器は、同じ上限で実行時間を約 8 秒、メモリ使用量を約 3.1 GiB に削減します。今後の作業では、このアプローチを他言語へ拡張することが目標です;Rust は部分的な実装特殊化がサポートされれば OCaml プログラムを実行できるようになります。 この改訂された要約は、すべての主要ポイントを反映し、不当な推測を避け、明確な主旨を提示し、あいまいまたは混乱を招く表現を排除しています。

2026/04/02 2:11

NASAの「アーテミス II」クルーが月へ発進します

## Japanese Translation: > **Artemis II 発射成功:** オリオンのソーラーアレイ翼が午後6時59分に完全展開し、各翼は約15,000セルを含み、およそ63フィート(19メートル)にわたります。 > > **主要推進マイルストーン:** 固体ロケットブースターが午後6時37分に分離;SLSコアステージの主エンジンカットオフは午後6時43分に発生;その後、コアステージ分離が午後6時59分に行われ、最初の推進フェーズが終了しました。 > > **打ち上げタイミング:** 打ち上げウィンドウは午後6時24分(EDT)で開き、ロケットコンプレックス-39Bからの離陸は午後6時35分に実施されました。 > > **事前準備:** 最終天気ブリーフィング(約80%が許可)、クルー服チェック、ハッチ閉鎖、打ち上げ中止システム検証をカウントダウン前に完了しました。コアステージとICPSのタンク作業はLH₂/LOX のスロー・フィル→ファスト・フィル→リペンリッシュ段階で行われました。 > > **離陸後の計画マヌーバー:** オリオンは低軌道上昇マヌーバー(PRM)を実施し、その後遠地点上昇バーナー(ARB)で深宇宙軌道を形成します。 > > **クルーと運用:** 乗員の4名は司令官レイド・ウィズマン、パイロットビクター・グローバー、クリスティーナ・コッホ、およびCSA宇宙飛行士ジェレミー・ハンセンです。NASAはケネディ宇宙センターで午後9時に打ち上げ後の記者会見を開催し、その後クルーは中間液体推進ステージを使用した近接操作デモンストレーションの準備に取り組みます。

2026/04/02 6:36

DRAM の価格がホビイスト向けのSBC市場を潰しつつあります。

## Japanese Translation: ### 改訂要約 ホビイスト向けのシングルボードコンピュータ(SBC)市場は、DRAM価格が急騰したため圧迫を受けています。Raspberry Pi は LPDDR4 RAM を搭載したすべての Pi モデルの価格を引き上げ、新しい 3 GB‑RAM の Pi 4 を $83.75 に設定し、16 GB の Pi 5 を $299.99 にしました。これらの値上げは主に LPDDR チップのコスト増によるもので、現在ボードコストの大部分を占めています。その結果、4 GB 以上の RAM を搭載したボードは多くのホビイストにとって手が届かないものとなっています。以前はお得だったミニ PC は 8 GB バリアントで $250 を超え、同様に使用済み PC も 4 GB 超で $250 を上回る価格になっています。Radxa は昨年新しいボードをリリースし続けましたが、ほかのベンダーは発売を減速または停止しています。Raspberry Pi の創設者 Eben Upton は「メモリ価格は現在の非常に高い水準で永続するわけではない」と述べており、その期間は不確実です。著者自身のプロジェクトは学習コストを下げ、破損リスクを減らすために $100 未満の部品を対象としています。DRAM 価格が高止まりする場合、ホビイストは古い SBC やマイクロコントローラへ戻る可能性が高く、手頃な選択肢が狭まり、小規模ベンダーは事業停止のリスクに直面します。Raspberry Pi の強力なマイクロコントローラエコシステムと産業基盤はある程度のレジリエンスを提供しますが、ホビイストセグメント全体での多様性は減少する可能性があります。

**Show HN:Git Bayesect — 非決定的バグのためのベイズ型 Git バイセクション** | そっか~ニュース