Summary#
When replacing or retiring a feature, users need a clear next step before internals are removed. First change the UI to point users to the supported workflow with version-aware guidance, then delete the now-unreachable backend plumbing, fixtures, serializers, and tests so the codebase does not carry dead compatibility paths.
Problem#
An old profiling surface was being retired, but removing it outright would confuse users and leave substantial unreachable code behind.
Solution#
Sequence the change as: hide/replace the old entry point, surface migration guidance based on capability or version, then follow with a cleanup PR that removes the full data pipeline and related test infrastructure.
Failure Modes#
- Deleting the feature without telling users what replaces it
- Showing migration guidance that ignores version/capability differences
- Leaving orphaned backend collectors, session plumbing, serializers, or tests after the UI entry point is gone
Related#
- backward-compatible-feature-expansion — 반대 방향 패턴: 기존 행동을 유지하며 새 기능을 추가하는 방법
Sources#
- https://github.com/Comfy-Org/ComfyUI/pull/15268
- https://github.com/Comfy-Org/ComfyUI/pull/15155
- https://github.com/Comfy-Org/ComfyUI/pull/15244
- https://github.com/Comfy-Org/ComfyUI/pull/15239
- https://github.com/Comfy-Org/ComfyUI/pull/15228
- https://github.com/Comfy-Org/ComfyUI/pull/15224
- https://github.com/Comfy-Org/ComfyUI/pull/15231
- https://github.com/Comfy-Org/ComfyUI/pull/15000
- https://github.com/fastapi/full-stack-fastapi-template/pull/2399
- https://github.com/fastapi/full-stack-fastapi-template/pull/2397
- https://github.com/fastapi/full-stack-fastapi-template/pull/2400
- https://github.com/fastapi/full-stack-fastapi-template/pull/2394
- https://github.com/fastapi/full-stack-fastapi-template/pull/2393
- https://github.com/fastapi/full-stack-fastapi-template/pull/2392
- https://github.com/react/react/pull/37185
- https://github.com/react/react/pull/37186
- https://github.com/react/react/pull/37187
- https://github.com/react/react/pull/37137
- mined_at: 2026-08-04T04:56:25Z
Sagwan Revalidation 2026-08-04T05:37:30Z#
- verdict:
ok - note: 단계적 폐기와 사용자 안내 우선 원칙은 현재도 유효한 관행이다.
Sagwan Revalidation 2026-09-02T05:51:35Z#
- verdict:
ok - note: 단계적 폐기 원칙은 최신 관행과 맞고 재사용 가능함
Sagwan Revalidation 2026-09-11T00:00:00Z#
- verdict:
revise - note: 내용 유효. orphan 해소를 위해 backward-compatible-feature-expansion 링크 추가, 외부 검증 실패 로그(HTTP 401/404/429) 정리.
Sagwan Revalidation 2026-09-13T18:08:13Z#
- verdict:
ok - note: 단계적 폐기 패턴(UI 리다이렉트 → 백엔드 정리)은 버전·기술 스택에 무관한 원칙으로, 내용·구조·권장안 모두 여전히 유효하다.
Sagwan Revalidation 2026-09-17T10:17:15Z#
- verdict:
ok - note: 단계적 폐기 권장안은 현재 practice와 맞고 재사용 가능함
Sagwan Revalidation 2026-09-20T06:34:59Z#
- verdict:
ok - note: 단계적 폐기 패턴은 여전히 일반적이며 최근 검증 이후 갱신 필요 없음
Sagwan Revalidation 2026-09-28T19:07:30Z#
- verdict:
ok - note: 사용자 안내 후 불필요한 코드를 제거하는 권장안은 여전히 유효하며, 갱신할 수치나 버전도 없습니다.
Sagwan Revalidation 2026-10-02T23:10:31Z#
- verdict:
ok - note: 사용자 안내 후 도달 불가 코드를 제거하는 원칙은 여전히 유효하며, 제시된 내용에 뚜렷한 모순이 없습니다.
Sagwan Revalidation 2026-10-05T23:30:36Z#
- verdict:
ok - note: 사용자에게 대체 경로를 안내한 뒤 불필요한 코드를 정리하는 원칙은 여전히 유효하다.
Sagwan Revalidation 2026-10-08T22:38:50Z#
- verdict:
ok - note: 사용자 전환 안내 후 불필요한 코드를 제거하는 원칙은 여전히 재사용 가능하다.
Sagwan Revalidation 2026-10-11T16:15:18Z#
- verdict:
ok - note: 사용자에게 대체 경로를 먼저 안내하고 미사용 코드를 정리하는 권장안은 여전히 유효하다.
Sagwan Revalidation 2026-10-14T11:02:15Z#
- verdict:
ok - note: 사용자 안내를 먼저 제공하고 미사용 코드를 정리하는 단계적 폐기 원칙은 여전히 재사용 가능하다.
Sagwan Revalidation 2026-10-17T07:19:54Z#
- verdict:
ok - note: 대체 경로를 먼저 안내하고 미사용 코드를 정리하는 권장안은 여전히 재사용 가능하다.
Sagwan Revalidation 2026-10-20T03:14:56Z#
- verdict:
ok - note: 사용자 안내 후 미사용 코드를 제거하는 권장안은 여전히 유효하며, 본문에 뚜렷한 모순이 없다.