GitHub Releases오픈소스 · 도구오늘의 주요

astral-sh/ruff

Ruff 0.17.0, 코드 서명과 새로운 규칙 기본값 적용

원제 astral-sh/ruff 0.17.0

0.17.0
Key Point

파이썬 기본 버전 변경과 기본 규칙 비활성화로 기존 프로젝트의 린트 결과가 달라질 수 있으며, conda-forge 설치 방식의 사용 방법이 변경되므로 ruff 사용자의 즉각적인 대응이 필요하다.

핵심 요약

  • macOS와 Windows 릴리스의 실행 파일이 코드 서명되었다. macOS는 Apple Developer ID 인증서로 서명·공증되었고, Windows는 Azure Artifact Signing으로 Authenticode 타임스탬프 서명을 받아 바이너리 무결성 검증과 퍼블리셔 기반 허용 목록을 지원한다.
  • Python 기본 버전이 변경되었다. 버전 미설정 시 3.10에서 3.11로, 문법 검사 시 3.14에서 3.15로 올라갔다.
  • 기본 활성화 규칙이 변경되었다. flake8-datetimez의 7개 규칙(DTZ001, DTZ005, DTZ006, DTZ007, DTZ011, DTZ012, DTZ901)은 더 이상 기본 활성화되지 않으며, F406(undefined-local-with-nested-import-star-usage)은 새로 기본 활성화된다.
  • JUnit 출력 형식이 업데이트되었다. quick-junit을 0.8.0으로 올려 요소의 disabled 속성을 skipped로 변경하고 루트 요소에 skipped 속성을 추가했다.
  • datetime 모듈의 관례적 별칭으로 dt가 추가되었으며, 언더스코어 접두사 유니코드 이름(예: _次)을 더미 변수로 인식한다.
  • Unicode 17 데이터를 사용하도록 업데이트되어 식별자 정규화와 명명 문자 이스케이프에 적용된다.
  • CLI에서 기본값으로 안전하지 않은 고정(unsafe fixes)과 수동 검토 필요 제안을 표시하도록 변경되었으나, 실제 적용에는 명시적 옵트인이 필요하다.
  • conda-forge 빌드가 Python 의존성을 제거했다. 대신 linux-riscv64, win-arm64, linux-ppc64le 플랫폼 지원이 추가되고 셸 자동완성이 포함되었으나, python -m ruff와 import ruff는 더 이상 작동하지 않으며 PATH에서 직접 실행해야 한다.
  • 레거시 언어 서버 ruff-lsp 지원이 제거되었다. Ruff VS Code 확장은 이제 항상 네이티브 언어 서버를 사용하며, ruff.nativeServer 설정은 더 이상 사용되지 않는다.
  • 3개 규칙이 안정화되었다. lazy-import-mismatch(TID254), lazy-import-immediately-resolved(TID255), os-path-commonprefix(RUF071)이 더 이상 미리보기 상태가 아니다.
  • 포매터, unsorted-imports(I001), line-too-long(E501), doc-line-too-long(W505)이 줄 길이 계산에서 후행 pragma 주석을 일관되게 무시하도록 안정화되어 기존 import 재포매팅을 야기할 수 있다.
  • flake8-bugbear의 B005 규칙이 메서드 이름과 더 정확한 범위를 보고하도록 개선되었고, FURB152는 안전하지 않음으로 표시되어 의심 범주로 이동했으며, RUF067은 strict 모드에서 docstring을 허용하도록 변경되었다.
AI 요약 안내

AI가 한국어로 정리한 내용입니다. 정확한 정보는 원문을 확인해 주세요.

요약 원칙 ↗