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 の 263 行目(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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions