Skip to content

버전 정책

Oxlint는 의미적 버전 관리(semver)를 따르며, 업그레이드 시 예측 가능성을 목표로 합니다.

호환성 깨짐(브레이킹) 으로 보는 변경:

  • 기존 워크플로를 깨뜨리는 CLI 변경
  • 기존 설정을 깨뜨리는 설정 파일(.oxlintrc.json) 변경
  • 규칙 이름 변경 또는 규칙 제거

비브레이킹 으로 보는 변경:

  • 새 린트 규칙 추가
  • 규칙의 기본 설정 변경
  • 규칙 설명이나 진단 메시지 개선
  • 기존 규칙에 새 설정 옵션 추가
  • 원본 ESLint 규칙 동작에 더 맞추기 위한 규칙 동작 수정
  • 설정 파일에 새 필드 추가

Semver 적용 대상이 아닌 기능

다음 기능은 의미적 버전 관리 대상이 아닙니다. 패치·마이너에서도 예고 없이 호환성 깨짐이 들어올 수 있습니다:

  • JavaScript 사용자 정의 플러그인 — 플러그인 API와 동작이 통지 없이 바뀔 수 있음
  • 타입 인식 린팅 — 기능이 진화하면서 타입 인식 규칙과 동작이 바뀔 수 있음

새 린트 오류가 브레이킹인가?

Oxlint 새 버전이 코드에서 추가 이슈를 보고하는 것은 정상입니다. 이는 프로젝트가 깨졌다기보다 Oxlint 분석이 나아졌다는 뜻이며, 새 오류는 더 강한 분석을 반영합니다.

새 버전에서 기대할 수 있는 것

  • 패치(1.0.x): 버그 수정, 성능 개선, 내부 리팩터링. 항상 안전하게 올려도 됩니다.
  • 마이너(1.x.0): 새 규칙, 진단 개선, 새 기능. 코드베이스에 새 오류가 생겨도 브레이킹으로 보지 않습니다.
  • 메이저(x.0.0): CLI나 설정 형식의 브레이킹 변경용으로 예약합니다.

Renovate Bot 사용 시

아래 스니펫을 Renovate 설정에 넣으면 Oxlint를 자동으로 최신으로 유지할 수 있습니다.

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

eslint-plugin-oxlint를 쓰는 경우 Oxlint와 함께 올려 호환 문제를 피하세요.

Dependabot 사용 시

아래 스니펫을 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와 함께 올려 호환 문제를 피하세요.