일괄 업데이트 안정 릴리스 전환 + WP 플러그인 골라 업데이트 + 보고서/메일 + rx-cli - #3
Draft
eondcom wants to merge 2 commits into
Draft
Conversation
■ 전체 일괄 업데이트가 WordPress 를 nightly 로 덮던 버그 (2026-07-25 실사고) build_bulk_git_update 는 계정별 업데이트가 쓰는 SITE_UPDATE_STEP 을 쓰지 않고, .git 존재만 보고 무조건 fetch+reset --hard 하는 별도 코드였다. 그래서 origin 이 WordPress/WordPress 인 사이트 4곳(health.logicmaru.co.kr, dental.eond.com, dev.koreanhub24.com, koreanhub.oiii.kr)이 개발 trunk 로 덮였다. → 두 경로를 SITE_UPDATE_STEP 하나로 통일. WordPress 는 wp-load.php 로 먼저 걸러져 wp-cli 로만 처리된다. ■ master(개발 trunk) → 릴리스 태그 Rhymix·그누보드·XE 도 전부 master 를 당기고 있었다. STABLE_TAG_FN 을 추가해 ls-remote --tags 에서 x.y[.z] 형태의 최신 태그를 골라 그 태그로 reset 한다. 태그가 없는 저장소만 기존 브랜치 방식으로 폴백(로그에 명시). 비-git 오버레이도 --branch <태그> 로 클론. 실측: rhymix 2.1.35 · gnuboard5 v5.7.5 · xe-core 1.11.22 · WordPress 7.0.2 개발버전(alpha/beta/RC/-src)이 올라간 WordPress 는 api.wordpress.org 가 알려주는 안정 릴리스로 --force 되돌린다. WordPress 인데 .git 이 남아 있으면 재발 원인이라 경고한다. ■ WordPress 플러그인 골라서 일괄 업데이트 (신규) build_wp_plugin_bulk_update — 망보드처럼 여러 사이트에 공통으로 깔린 플러그인 하나만 서버 전체/계정 단위로 처리. dry=true 면 어디에 몇 버전이 깔렸는지 점검만 한다(읽기 전용이라 확인 모달 없이 실행). 설정 > 일괄 업데이트 탭에 카드 추가. 검증: 조립된 스크립트 bash -n 통과, 가짜 사이트 4개(플러그인 있음2/없음1/WP아님1)로 점검·업데이트 모드 실행 — 감지·카운터·제외 모두 의도대로. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WxEiSzFMdeAzvohAQ39nyJ
■ 결과 보고서 (REPORT_FOOTER) 일괄 업데이트 로그가 수백 줄이라 무엇이 바뀌고 무엇이 실패했는지 안 보였다. 사이트마다 결과를 한 줄로 모아(RES/CMSN/VFROM/VTO/NOTE) 끝에 요약 표를 찍는다. 사이트 방식 결과 버전 dental.eond.com wp OK 7.1-alpha → 7.0.2 ※ 개발버전→안정 되돌림 eond.com git-tag OK 9eb6931f80 → 2.1.35 pub.eond.com unknown SKIP CMS 를 판별하지 못함 방식 표기는 컬럼이 밀리지 않도록 ASCII 로 통일(wp/git-tag/git-branch/overlay/unknown). 전체 일괄 업데이트와 계정별 업데이트 양쪽에 적용. ■ 메일 발송 카드의 "결과 메일 받기" 에 주소를 넣으면 서버가 같은 보고서를 메일로 보낸다 (mail → sendmail 순, 둘 다 없으면 그 사실을 로그에 남기고 보고서는 그대로 출력). 비우면 발송하지 않는다. ■ rx-cli 배포 (build_rx_cli_install) 직접 만든 Rhymix CLI 를 서버 /usr/local/bin/rx 로 배포. 소스는 설정의 Rhymix 소스 경로 하위 modules/rxdashboard/bin/rx. 기존 파일 백업 → 설치 → php -l 문법검사 → 서버의 Rhymix 사이트에서 rx version 시험 실행까지 한다. 심볼릭 링크가 아니라 복사인 이유: 링크 대상 사이트를 지우면 rx 가 깨지고, rx 는 cwd 에서 위로 올라가며 루트를 찾으므로 복사본이어도 아무 사이트에서나 동작한다. ■ 문서 - docs/bulk-update.md — master 가 아닌 릴리스 태그를 쓰는 이유, 2026-07-25 사고 기록과 뒷정리(.git 잔존), 보고서 읽는 법, 플러그인 골라 업데이트 사용법 - docs/rx-cli.md — 소스 위치, 배포/수동설치, 명령 목록, --path 없음 등 주의점 - README 에서 세 문서 링크 검증: cargo test 29개 통과, 조립 스크립트 bash -n 통과, 보고서/메일 분기 실제 실행 확인, rx-cli 임베드 배포는 php -l 통과 + 원본과 바이트 동일 확인. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WxEiSzFMdeAzvohAQ39nyJ
This was referenced Jul 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
배경 — 일괄 업데이트가 WordPress 를 nightly 로 덮고 있었다
설정 > 일괄 업데이트버튼이 계정별 업데이트와 다른 코드를 돌리고 있었다..git만 있으면 origin 이 어디든 강제로 당겨서, origin 이WordPress/WordPress인 사이트 4곳이 개발 trunk(nightly)로 덮였다 — health.logicmaru.co.kr, dental.eond.com, dev.koreanhub24.com, koreanhub.oiii.kr.계정별 업데이트가 쓰던
SITE_UPDATE_STEP에는 원래wp-load.php를 먼저 보는 올바른 분기가 있었다. 같은 일을 하는 코드가 두 벌이라 한쪽만 고쳐져 있던 것이 원인이다.덤으로, Rhymix·그누보드·XE 도 전부
master(개발 trunk)를 당기고 있었다.변경
1. 안정 릴리스 기준으로 전환
SITE_UPDATE_STEP하나로 통일 → WordPress 는 wp-cli 로만 처리STABLE_TAG_FN추가:ls-remote --tags에서x.y[.z]형태의 최신 태그를 골라 그 태그로 reset.-rc1/-beta는 정규식에서 제외clone --branch <태그>--force되돌림 (버전 번호상 알파가 더 높아 그냥은 안 내려감).git이 남아 있으면 재발 원인이라 경고실측: rhymix
2.1.35· gnuboard5v5.7.5· xe-core1.11.22· WordPress7.0.2(API 응답과 일치)2. WordPress 플러그인 골라서 일괄 업데이트
build_wp_plugin_bulk_update— 망보드처럼 여러 사이트에 공통으로 깔린 플러그인 하나만 서버 전체/계정 단위로.dry=true면 어디에 몇 버전이 깔렸는지 점검만 한다(읽기 전용이라 확인 모달 없이 실행).3. 결과 보고서 + 메일
로그 수백 줄을 다 읽지 않아도 되도록 끝에 요약 표를 찍는다. "결과 메일 받기" 에 주소를 넣으면 서버가 같은 보고서를 메일로 보낸다(
mail→sendmail).4. rx-cli 배포
직접 만든 Rhymix CLI 를 서버
/usr/local/bin/rx로 배포. 백업 → 설치 →php -l→ Rhymix 사이트에서rx version시험 실행. 심볼릭 링크가 아니라 복사인 이유는 문서에 적었다.5. 문서
docs/bulk-update.md— 안정 릴리스 원칙, 사고 기록과 뒷정리, 보고서 읽는 법docs/rx-cli.md— 소스 위치, 배포, 명령 목록, 주의점검증
cargo test29개 통과,cargo build --release경고 없음bash -n통과php -l통과 + 배포본이 원본과 바이트 동일남은 뒷정리 (이 PR 밖)
nightly 로 덮였던 4개 사이트에
.git(origin=WordPress/WordPress)이 남아 있다. 사이트 정상 확인 후 제거 권장 — 업데이트를 돌리면 보고서에 표시된다.🤖 Generated with Claude Code
https://claude.ai/code/session_01WxEiSzFMdeAzvohAQ39nyJ