Skip to content

버전 관리 정책

Oxlint는 업그레이드 시 명확성과 예측 가능성을 제공하는 것을 목표로 하여, 세미버전 관리(세마버전)를 따릅니다.

다음은 파괴적(breaking) 변경 사항으로 간주됩니다:

  • 기존 워크플로우를 깨뜨릴 수 있는 명령줄 인터페이스의 변경.
  • 기존 설정을 깨뜨릴 수 있는 구성 파일(.oxlintrc.json)의 변경.
  • 규칙의 이름 변경 또는 제거.

다음은 비파괴적(non-breaking) 변경 사항으로 간주됩니다:

  • 새로운 린트 규칙 추가.
  • 규칙의 기본 구성 변경.
  • 규칙 설명 또는 진단 메시지 개선.
  • 기존 규칙에 새 구성 옵션 추가.
  • 원본 ESLint 규칙의 동작과 더 잘 일치하도록 규칙 동작을 수정하는 수정사항.
  • 구성 파일에 새 필드 추가.

세마버전 적용 대상이 아닌 기능들

아래 기능들은 실험적(experimental)이며, 세마버전 관리의 대상이 아닙니다. 이들 기능은 패치 버전이나 마이너 버전에서도 파괴적인 변경이 발생할 수 있습니다:

  • 자바스크립트 커스텀 플러그인 - 플러그인 API 및 동작이 예고 없이 변경될 수 있습니다.
  • 타입 인식 린트 - 타입 인식 규칙 및 그 동작은 이 기능의 발전에 따라 변경될 수 있습니다.

새로운 린트 에러가 파괴적 변경인가요?

Oxlint의 새 버전에서 코드에 더 많은 문제를 보고하는 것은 예상되는 일이며, 이는 프로젝트 내부에 문제가 생겼기 때문이 아니라, Oxlint 자체가 향상되었기 때문입니다. 새로운 에러는 강화된 분석을 반영한 것이지, 손상된 업그레이드를 의미하지 않습니다.

새 버전에서 기대할 수 있는 사항

  • 패치 버전(1.0.x): 버그 수정, 성능 향상, 내부 리팩터링. 이러한 변경은 항상 안전하게 업그레이드할 수 있습니다.
  • 마이너 버전(1.x.0): 새로운 규칙, 더 나은 진단 정보, 새로운 기능. 이러한 변경은 코드베이스에서 새 오류가 나타나더라도 파괴적인 변경으로 간주되지 않습니다.
  • 메이저 버전(x.0.0): 명령줄 또는 구성 형식에 대한 파괴적 변경을 위해 예약되어 있습니다.

Renovate 봇 사용 시

아래 스크립트를 사용하여 자동으로 Oxlint를 최신 상태로 유지하도록 설정하세요.

renovate.json
json
{
  "extends": ["config:recommended"],
  "packageRules": [
    {
      "matchPackageNames": ["oxlint"],
      "groupName": "oxlint",
      "automergeType": "branch",
      "stabilityDays": 1
    }
  ]
}

eslint-plugin-oxlint를 사용하는 경우, 호환성 문제를 피하기 위해 반드시 Oxlint과 함께 업데이트해야 합니다.

Dependabot 사용 시

아래 스크립트를 사용하여 자동으로 Oxlint를 최신 상태로 유지하도록 설정하세요.

yaml
version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/" # package.json 위치
    schedule:
      interval: "daily"
    groups: # 모든 Oxlint 업데이트를 하나의 그룹으로 묶기
      oxlint:
        patterns:
          - "oxlint"
    commit-message: # 변경 기록을 정리 유지
      prefix: "chore"
      include: "scope"
    ignore: # 선택 사항: 향후 메이저 업데이트 무시
      - dependency-name: "oxlint"
        update-types: ["version-update:semver-major"]
    open-pull-requests-limit: 1 # 한 번에 하나의 PR만 열기

eslint-plugin-oxlint를 사용하는 경우, 호환성 문제를 피하기 위해 반드시 Oxlint과 함께 업데이트해야 합니다.