Skip to content

リリースのプランの verify が、メインディレクトリが本番ブランチにいると develop を fast-forward できずに止まる #2140

Open

Description

@takemi-ohama

何を見つけたか

supervise.py new release が書く verify ステップは、cwd を元のリポジトリ(メインディレクトリ)にして git pull -q --ff-only origin <ベースブランチ> && release-verification-steps.py verify-install ... を打つ。メインディレクトリが本番ブランチ(main)にいると、main には develop に無いマージコミットがあるため fast-forward できず、fatal: Not possible to fast-forward, aborting.(exit 128)で止まる。

  • スプリント m1914 の 7-release(開発版 10.22.0-dev.1)で発生。リリース PR Release: ndf v10.22.0-dev.1 #2137 は develop へマージ済みの後で止まり、判定は「履歴の書き換えにつながりうる」として stop を返した
  • verify-install に --root <リリースの worktree> を渡し、pull を外すと 3 ランタイムで通った
  • 本番(--channel prod)のプランも同じ形で、origin develop を pull しつつ --ref main を確かめる

どこで見つけたか

  • plugins/ndf/scripts/supervise_lib/release_templates.py の 307 行目(verify の cmd)
  • .ndf/tmp/sprint-m1914/7-release-state/06-verify.out

なぜこの変更の範囲外なのか

スプリント m1914 の受け入れ条件(#1914・#1529・#1630・#1593)はリリースの雛形の verify を対象にしない。雛形の verify の形(pull の要否・--root の渡し方)を変えるのは方針の変更を含むため、即時修正の条件 3 から外れる。根拠: 共通原則の「判断の範囲は目の前の変更・操作に限る」・C4(MVV 版 2)

直さないと何が起きるか

メインディレクトリを本番ブランチに置いている利用者では、開発版・本番の配布のたびに verify で止まり、手で --root 付きに書き換えて流し直す必要がある。判定が stop を返すため、pace: auto / fast でも人へ戻る。

起票者の推定

  • 直し方は「pull を外し --root に作業場所を渡す」でよい(推した出所: この会話で手で直して通ったこと)
  • メインディレクトリを main に置く運用は他の利用者にもある(推した出所: .ndf/worktree.json に follow_branch が無く、追従先が決まらないこと)

由来

PR #2133

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions