Subject: CVS commit: pkgsrc/devel/py-ruff
From: Thomas Klausner
Date: 2024-11-24 11:52:40
Message id: 20241124105241.09332FC7D@cvs.NetBSD.org

Log Message:
py-ruff: update to 0.8.0.

Breaking changes

See also, the "Remapped rules" section which may result in disabled rules.

    Default to Python 3.9

    Ruff now defaults to Python 3.9 instead of 3.8 if no explicit Python version \ 
is configured using ruff.target-version or project.requires-python (#13896)

    Changed location of pydoclint diagnostics

    pydoclint diagnostics now point to the first-line of the problematic \ 
docstring. Previously, this was not the case.

    If you've opted into these preview rules but have them suppressed using
    noqa comments in
    some places, this change may mean that you need to move the noqa suppression
    comments. Most users should be unaffected by this change.

    Use XDG (i.e. ~/.local/bin) instead of the Cargo home directory in the \ 
standalone installer

    Previously, Ruff's installer used $CARGO_HOME or ~/.cargo/bin for its target \ 
install directory. Now, Ruff will be installed into $XDG_BIN_HOME, \ 
$XDG_DATA_HOME/../bin, or ~/.local/bin (in that order).

    This change is only relevant to users of the standalone Ruff installer \ 
(using the shell or PowerShell script). If you installed Ruff using uv or pip, \ 
you should be unaffected.

    Changes to the line width calculation

    Ruff now uses a new version of the unicode-width Rust crate to calculate the \ 
line width. In very rare cases, this may lead to lines containing Unicode \ 
characters being reformatted, or being considered too long when they were not \ 
before (E501).

Removed Rules

The following deprecated rules have been removed:

    missing-type-self (ANN101)
    missing-type-cls (ANN102)
    syntax-error (E999)
    pytest-missing-fixture-name-underscore (PT004)
    pytest-incorrect-fixture-name-underscore (PT005)
    unpacked-list-comprehension (UP027)

Remapped rules

The following rules have been remapped to new rule codes:

    flake8-type-checking: TCH to TC

Stabilization

The following rules have been stabilized and are no longer in preview:

    builtin-import-shadowing (A004)
    mutable-contextvar-default (B039)
    fast-api-redundant-response-model (FAST001)
    fast-api-non-annotated-dependency (FAST002)
    dict-index-missing-items (PLC0206)
    pep484-style-positional-only-parameter (PYI063)
    redundant-final-literal (PYI064)
    bad-version-info-order (PYI066)
    parenthesize-chained-operators (RUF021)
    unsorted-dunder-all (RUF022)
    unsorted-dunder-slots (RUF023)
    assert-with-print-message (RUF030)
    unnecessary-default-type-args (UP043)

The following behaviors have been stabilized:

    ambiguous-variable-name (E741): Violations in stub files are now ignored. \ 
Stub authors typically don't control variable names.
    printf-string-formatting (UP031): Report all printf-like usages even if no \ 
autofix is available

The following fixes have been stabilized:

    zip-instead-of-pairwise (RUF007)

Preview features

    [flake8-datetimez] Exempt min.time() and max.time() (DTZ901) (#14394)
    [flake8-pie] Mark fix as unsafe if the following statement is a string \ 
literal (PIE790) (#14393)
    [flake8-pyi] New rule redundant-none-literal (PYI061) (#14316)
    [flake8-pyi] Add autofix for redundant-numeric-union (PYI041) (#14273)
    [ruff] New rule map-int-version-parsing (RUF048) (#14373)
    [ruff] New rule redundant-bool-literal (RUF038) (#14319)
    [ruff] New rule unraw-re-pattern (RUF039) (#14446)
    [pycodestyle] Exempt pytest.importorskip() calls (E402) (#14474)
    [pylint] Autofix suggests using sets when possible (PLR1714) (#14372)

Rule changes

    invalid-pyproject-toml (RUF200): Updated to reflect the provisionally \ 
accepted PEP 639.
    [flake8-pyi] Avoid panic in unfixable case (PYI041) (#14402)
    [flake8-type-checking] Correctly handle quotes in subscript expression when \ 
generating an autofix (#14371)
    [pylint] Suggest correct autofix for __contains__ (PLC2801) (#14424)

Configuration

    Ruff now emits a warning instead of an error when a configuration ignores a \ 
rule that has been removed (#14435)
    Ruff now validates that lint.flake8-import-conventions.aliases only uses \ 
valid module names and aliases (#14477)

Files:
RevisionActionfile
1.47modifypkgsrc/devel/py-ruff/Makefile
1.42modifypkgsrc/devel/py-ruff/cargo-depends.mk
1.44modifypkgsrc/devel/py-ruff/distinfo