szpp-dev-team / szpp-judge

4 stars 1 forks source link

chore(proto)!: remove optional from `status` field #113

Closed h-takeyeah closed 1 year ago

h-takeyeah commented 1 year ago

多分 CI 落ちる

BREAKING CHANGE: status field become non-optional. It violates FIELD_SAME_TYPE rule.

For detail https://buf.build/docs/breaking/rules#field_same_type

h-takeyeah commented 1 year ago

この変更を入れる理由

この部分↓のコメントに「ジャッジ中は null」とあったがジャッジ中は judge.v1.JudgeStatus.WJ が入るらしく,null は入らないそう.なので optional である必要もないことになる. https://github.com/szpp-dev-team/szpp-judge/blob/1768659adfead8bdd7655f5c54f7c235e5b56b62/proto/backend/v1/judge_resources.proto#L24

message SubmissionDetail {
  // ...
  optional judge.v1.JudgeStatus status = 10; // ジャッジ中はnull
}
h-takeyeah commented 1 year ago

このようなビルドエラーが出るのを 2d99523 で修正したつもりだが,私が go に明るくなくかつ早く proto の変更分だけマージしたかったため,c62e9ab で revert した.

usecases/judge/submits.go:147:29: cannot use lo.ToPtr(judgev1.JudgeStatus(judgev1.JudgeStatus_value[submit.Status])) (value of type judgev1.JudgeStatus) as judgev1.JudgeStatus value in assignment (compile)

https://github.com/szpp-dev-team/szpp-judge/actions/runs/6448020779/job/17504868438

ここのハンドリングはバックエンドチームに任せることにする.