Skip to content

eslint-plugin-boundaries: entry-point → dependencies 룰 마이그레이션 #135

@chanwoo7

Description

@chanwoo7

배경

eslint.config.mjs의 모듈 경계 강제 규칙이 deprecated된 boundaries/entry-point를 사용 중. CI 로그 및 PR #132에서 deprecation 경고가 출력됨:

[boundaries][warning]: Rule "boundaries/entry-point" is deprecated and will be removed in future versions.
  Please migrate to the "boundaries/dependencies" rule with appropriate selectors.

현재 버전 / 상태

  • eslint-plugin-boundaries: ^6.0.2
  • 사용 규칙: boundaries/entry-point (v6에서 deprecated, 미래 메이저에서 제거 예정, 현재는 정상 동작 + 경고만)
  • 현재 설정: default: 'disallow', target ['common','config','prisma','global'] → allow '**', target ['feature'] → allow 'index.ts' (= cross-feature는 feature의 index.ts로만 import)

목표

boundaries/entry-pointboundaries/dependencies (+ internalPath selector) 마이그레이션.

보류 사유

  • 1:1 매핑이 아님. boundaries/dependencies는 inverted logic(internalPath: '!index.ts' + disallow)이고, default: 'disallow'로 가면 element type 간 모든 허용 의존 엣지를 재열거해야 함. 잘못 옮기면 경계 강제가 조용히 약화될 위험(특히 index.ts 진입 제한 유실).
  • deprecated 규칙이 현재 정상 동작하고 제거는 미래 메이저라 긴급하지 않음.
  • 이득은 "경고 silence"뿐이라 위험 대비 효용이 낮음.

수행 조건

  • eslint-plugin-boundaries를 entry-point가 제거되는 메이저로 bump할 때, 또는 boundaries 설정을 어차피 손볼 때.
  • 검증 필수: 마이그레이션 후 일부러 cross-feature deep import(예: 다른 feature의 repositories/* 직접 import)를 넣어 lint가 error로 잡는지 확인 → 되돌린다. 경계 강제가 보존됨을 증명한 뒤 머지.

참고

Metadata

Metadata

Assignees

No one assigned

    Labels

    🧱 Tech Debt기술 부채 / 추후 마이그레이션 필요

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions