Skip to content

release: registry pointer 실패 조건을 release 문서에 고정한다#707

Open
Hyeonjun0527 wants to merge 2 commits into
mainfrom
followup/release-registry-pr-path
Open

release: registry pointer 실패 조건을 release 문서에 고정한다#707
Hyeonjun0527 wants to merge 2 commits into
mainfrom
followup/release-registry-pr-path

Conversation

@Hyeonjun0527
Copy link
Copy Markdown
Member

@Hyeonjun0527 Hyeonjun0527 commented May 26, 2026

작업 내용

  • backend dispatch shared contract에 registry pointer 실패 조건을 추가합니다.
  • metadata.previous_deploy_image가 registry pointer 해석 결과이며, release record는 audit trail이라는 역할 분리를 더 명확히 적습니다.

변경 이유

  • 이전 턴에서 관련 문서 변경이 main에 직접 반영된 잘못이 있었습니다.
  • frontend repository도 PR 경로에서 같은 release contract를 검토할 수 있도록 후속 PR을 만듭니다.

dev/QA 검증 evidence

  • git diff --check
  • frontend workflow runtime 동작 변경은 없어서 별도 build/typecheck는 수행하지 않았습니다.

production 영향

  • runtime behavior 변경은 없습니다.
  • backend dispatch / release record 운영 문서 해석이 더 명확해집니다.

release contract 영향

  • metadata.previous_deploy_image는 backend Jenkins가 registry latest-prod/prod 포인터를 해석해 채운다는 점을 유지합니다.
  • pointer 부재나 canonical digest 불일치 시 bootstrap 승인 또는 중단이 필요하다는 점을 명시합니다.

검증 방법

  • git diff --check

브랜치 정보

  • base: main
  • head: followup/release-registry-pr-path
  • 기준 range: origin/main..HEAD

롤백 계획

  • PR 미머지 상태에서는 영향 없음
  • 머지 후 문제 시 docs-only revert로 원복 가능합니다.

known risk / not-tested

  • runtime behavior change는 없지만, 이전 direct push commit은 main history에 이미 남아 있습니다. 이번 PR은 같은 계약을 PR 경로에서 다시 검토하기 위한 follow-up입니다.

Summary by CodeRabbit

Documentation

  • 백엔드 배포 시 레지스트리 포인터 부재 또는 캐노니컬 다이제스트 불일치 시 배포 중단 조건이 명시되었습니다.
  • 배포 이미지 메타데이터의 목적과 감사 추적 출처에 대한 설명이 보완되었습니다.

Review Change Stack

후속 PR 경로에서 backend previous_deploy_image를 registry pointer로 해석할 때,
pointer 부재나 canonical digest 불일치가 나면 bootstrap 승인 또는 중단이 필요하다는 점을
shared contract에 명시했다. release record와 registry의 역할도 더 분명히 적었다.

Constraint: backend/frontend 운영 문서는 pointer 기반 복구와 release record 역할을 함께 설명해야 한다
Rejected: backend repo 문구만 보강 | frontend shared contract에서도 실패 조건을 동일하게 봐야 한다
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: pointer 기반 복구 규칙이 바뀌면 backend dispatch 문서와 release contract를 함께 업데이트할 것
Tested: git diff --check
Not-tested: workflow runtime behavior change 없음
@Hyeonjun0527 Hyeonjun0527 added the release:patch Patch production release label May 26, 2026
@vercel
Copy link
Copy Markdown

vercel Bot commented May 26, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
study-platform-client-dev Ready Ready Preview, Comment May 26, 2026 7:38pm

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 26, 2026

Warning

Review limit reached

@Hyeonjun0527, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 56 minutes and 24 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 79b81c12-4ba4-4390-854c-b1a2814f5743

📥 Commits

Reviewing files that changed from the base of the PR and between ba2808a and 57bcc81.

📒 Files selected for processing (2)
  • ops/release-record-shared-contract.md
  • ops/version-management.md
📝 Walkthrough

개요

백엔드 배포 디스패치 및 릴리즈 레코드 계약 문서를 업데이트하여 metadata.previous_deploy_image 필드의 실패 조건과 의도된 용도를 명시합니다.

변경 사항

배포 계약 문서 명확화

계층 / 파일 요약
배포 이미지 레지스트리 포인터 규칙 및 의도 명시
ops/backend-release-dispatch.md, ops/release-record-shared-contract.md
백엔드 배포 디스패치 문서에 레지스트리 포인터 누락 또는 canonical digest 매칭 부재 시 배포 중단 규칙을 추가하고, 릴리즈 레코드 공유 계약 문서에서 metadata.previous_deploy_image의 용도를 이전 immutable 이미지 복구 보조 수단으로 명확히 합니다. 릴리즈 레코드가 감사 추적의 원천임을 강조합니다.

예상 코드 리뷰 노력

🎯 1 (간단함) | ⏱️ ~5분

관련된 가능성 있는 PR

  • code-zero-to-one/study-platform-client#620: 두 PR 모두 백엔드 배포 디스패치 및 릴리즈 레코드 공유 계약 문서(ops/backend-release-dispatch.md, ops/release-record-shared-contract.md)를 수정하며, 현재 PR은 특정 실패/검증 조건을 추가하고 관련 PR은 동일 계약 문서를 재구성/제거합니다.

축하 시

🐰 배포 계약을 명확히,
이미지 포인터의 뜻을 밝혀라,
digest 매칭으로 안전한 길을 열고,
감사 추적의 근원을 지키며,
배포 규칙이 반짝인다! ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 제목은 PR의 주요 변경사항인 registry pointer 실패 조건을 release 문서에 추가하는 내용을 명확하고 간결하게 요약하고 있습니다.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch followup/release-registry-pr-path

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@Hyeonjun0527 Hyeonjun0527 self-assigned this May 26, 2026
frontend 운영 문서와 shared release contract에 direct push 금지와
main 대상 PR + release label 전제를 명시했다.
backend dispatch와 release record가 어떤 입력을 정상 production release로 보는지 혼동을 줄인다.

Constraint: release record는 main 대상 PR과 release label이 있을 때만 정상 production 입력으로 해석돼야 한다
Rejected: contract 문서만 수정 | frontend 운영 가이드에서도 같은 금지 규칙을 보여줘야 한다
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: production release 입력 규칙이 바뀌면 ops/version-management.md와 shared contract를 함께 수정할 것
Tested: git diff --check
Not-tested: runtime behavior change 없음
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
ops/backend-release-dispatch.md (1)

108-108: ⚡ Quick win

문구를 더 명확하게 다듬을 수 있습니다.

"must stop or require"라는 표현이 OR 조건처럼 읽힐 수 있습니다. 의도는 "배포를 중단해야 하며, 진행하려면 명시적 bootstrap 승인이 필요하다"는 의미로 보입니다.

더 명확한 표현 제안:

  • "backend deployment must halt until explicit bootstrap approval is obtained"
  • 또는 "backend deployment must not proceed without explicit bootstrap approval"

다만 현재 표현도 의미 전달에 문제는 없으므로 선택적으로 고려하시면 됩니다.

📝 문구 개선 제안
-- When the registry pointer is missing or no canonical digest match exists, backend deployment must stop or require explicit bootstrap approval.
+- When the registry pointer is missing or no canonical digest match exists, backend deployment must halt until explicit bootstrap approval is obtained.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@ops/backend-release-dispatch.md` at line 108, The sentence "When the registry
pointer is missing or no canonical digest match exists, backend deployment must
stop or require explicit bootstrap approval." is ambiguous; update that sentence
to explicitly state that deployment must halt and only proceed with explicit
bootstrap approval — e.g., replace it with "Backend deployment must halt until
explicit bootstrap approval is obtained" or "Backend deployment must not proceed
without explicit bootstrap approval." Ensure the original sentence is replaced
verbatim with one of these clearer alternatives in the
ops/backend-release-dispatch.md content.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@ops/backend-release-dispatch.md`:
- Line 108: The sentence "When the registry pointer is missing or no canonical
digest match exists, backend deployment must stop or require explicit bootstrap
approval." is ambiguous; update that sentence to explicitly state that
deployment must halt and only proceed with explicit bootstrap approval — e.g.,
replace it with "Backend deployment must halt until explicit bootstrap approval
is obtained" or "Backend deployment must not proceed without explicit bootstrap
approval." Ensure the original sentence is replaced verbatim with one of these
clearer alternatives in the ops/backend-release-dispatch.md content.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 940c1e73-f0ac-4e08-b96d-d5d27177445f

📥 Commits

Reviewing files that changed from the base of the PR and between 96ab784 and ba2808a.

📒 Files selected for processing (2)
  • ops/backend-release-dispatch.md
  • ops/release-record-shared-contract.md

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

Labels

release:patch Patch production release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant