Debian Package Tracker
Register | Log in
Subscribe

ruff

Fast linter for Python, written in Rust

Choose email to subscribe with

general
  • source: ruff (main)
  • version: 0.0.291+dfsg1-4
  • maintainer: Debian Python Team (DMD)
  • uploaders: Jelmer Vernooij [DMD]
  • arch: all any
  • std-ver: 4.6.2.0
  • VCS: Git (Browse, QA)
versions [more versions can be listed by madison] [old versions available from snapshot.debian.org]
[pool directory]
  • unstable: 0.0.291+dfsg1-4
versioned links
  • 0.0.291+dfsg1-4: [.dsc, use dget on this link to retrieve source package] [changelog] [copyright] [rules] [control]
binaries
  • python3-ruff (1 bugs: 0, 0, 1, 0)
  • ruff (3 bugs: 1, 1, 1, 0)
action needed
The package has not entered testing even though the delay is over normal
The package has not entered testing even though the 5-day delay is over. Check why.
Created: 2025-05-10 Last update: 2025-10-04 09:00
version in VCS is newer than in repository, is it time to upload? normal
vcswatch reports that this package seems to have a new changelog entry (version 0.8.4-1, distribution UNRELEASED) and new commits in its VCS. You should consider whether it's time to make an upload.

Here are the relevant commit messages:
commit 48d6201f84d64525d963c7b6417988a4b84b038b
Author: Jelmer Vernooij <jelmer@jelmer.uk>
Date:   Fri Sep 26 14:34:01 2025 +0100

    Drop patches that no longer apply

commit f0ab0a668a7cca6614bcc09c5110dc450eff8baf
Merge: 065d9b26 90fb9382
Author: Jelmer Vernooij <jelmer@jelmer.uk>
Date:   Fri Sep 26 10:33:14 2025 +0100

    Merge branch 'debian/main' of https://salsa.debian.org/jelmer/ruff into debian/main

commit 90fb93820542ea510d246d9e885647be4ef85a3a
Author: Anton Gladky <gladk@debian.org>
Date:   Wed Jul 2 20:55:57 2025 +0200

    chore: Add salsa-ci.yml for Debian CI integration

commit f44163cba799d88deef40fe0e574f5fe2608df6c
Author: Andreas Tille <tille@debian.org>
Date:   Fri Apr 11 10:08:57 2025 +0200

    Add watch file

commit 065d9b260bee3aae4afd3a57219511387980e4bf
Merge: 7514a8e5 3bb0dac2
Author: Jelmer Vernooij <jelmer@jelmer.uk>
Date:   Wed Dec 25 23:15:51 2024 +0000

    Update to 0.8.4

commit 3bb0dac23569fb607e781ca8e401c6eba71b14dd
Author: Dhruv Manilawala <dhruvmanila@gmail.com>
Date:   Thu Dec 19 18:45:42 2024 +0530

    Bump version to 0.8.4 (#15064)

commit 40cba5dc8aa79fef488bcae366abf7efefb04faa
Author: Alex Waygood <Alex.Waygood@Gmail.com>
Date:   Thu Dec 19 13:03:41 2024 +0000

    [red-knot] Cleanup various `todo_type!()` messages (#15063)
    
    Co-authored-by: Micha Reiser <micha@reiser.io>

commit 596d80cc8e9b4e2380712597a881ec2ad3609b96
Author: Dylan <53534755+dylwil3@users.noreply.github.com>
Date:   Thu Dec 19 06:56:45 2024 -0600

    [`perflint`] Parenthesize walrus expressions in autofix for `manual-list-comprehension` (`PERF401`) (#15050)

commit d8b9a366c820750d52650ac42668771ef9fcebe1
Author: Alex Waygood <Alex.Waygood@Gmail.com>
Date:   Thu Dec 19 12:45:17 2024 +0000

    Disable actionlint hook by default when running pre-commit locally (#15061)

commit 85e71ba91ae5adc8fb3b764681c21c8959f71346
Author: Taras Matsyk <x@tar7k.com>
Date:   Thu Dec 19 13:26:40 2024 +0100

    [`flake8-bandit`] Check `S105` for annotated assignment (#15059)
    
    ## Summary
    
    A follow up PR on https://github.com/astral-sh/ruff/issues/14991
    Ruff ignores hardcoded passwords for typed variables. Add a rule to
    catch passwords in typed code bases
    
    ## Test Plan
    
    Includes 2 more test typed variables

commit 2802cbde29ea85ae6a01870aac34b5b788346fc0
Author: Douglas Creager <dcreager@dcreager.net>
Date:   Wed Dec 18 14:37:17 2024 -0500

    Don't special-case class instances in unary expression inference (#15045)
    
    We have a handy `to_meta_type` that does the right thing for class
    instances, and also works for all of the other types that are “instances
    of” something. Unless I'm missing something, this should let us get rid
    of the catch-all clause in one fell swoop.
    
    cf #14548

commit ed2bce6ebb56c84c5ecd22cbe8aac4a887c403ca
Author: InSync <insyncwithfoo@gmail.com>
Date:   Thu Dec 19 01:31:24 2024 +0700

    [red-knot] Report invalid exceptions (#15042)
    
    Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>

commit f0012df68653835752c32d47ebba06320c7e48cf
Author: InSync <insyncwithfoo@gmail.com>
Date:   Wed Dec 18 22:39:55 2024 +0700

    Fix typos in `RUF043.py` (#15044)
    
    (Accidentally introduced in #14966.)

commit 0fc4e8f795f2cc4ad0ea2b3c3d592ed50da29caf
Author: Micha Reiser <micha@reiser.io>
Date:   Wed Dec 18 13:22:33 2024 +0100

    Introduce `InferContext` (#14956)
    
    ## Summary
    
    I'm currently on the fence about landing the #14760 PR because it's
    unclear how we'd support tracking used and unused suppression comments
    in a performant way:
    * Salsa adds an "untracked" dependency to every query reading
    accumulated values. This has the effect that the query re-runs on every
    revision. For example, a possible future query
    `unused_suppression_comments(db, file)` would re-run on every
    incremental change and for every file. I don't expect the operation
    itself to be expensive, but it all adds up in a project with 100k+ files
    * Salsa collects the accumulated values by traversing the entire query
    dependency graph. It can skip over sub-graphs if it is known that they
    contain no accumulated values. This makes accumulators a great tool for
    when they are rare; diagnostics are a good example. Unfortunately,
    suppressions are more common, and they often appear in many different
    files, making the "skip over subgraphs" optimization less effective.
    
    Because of that, I want to wait to adopt salsa accumulators for type
    check diagnostics (we could start using them for other diagnostics)
    until we have very specific reasons that justify regressing incremental
    check performance.
    
    This PR does a "small" refactor that brings us closer to what I have in
    #14760 but without using accumulators. To emit a diagnostic, a method
    needs:
    
    * Access to the db
    * Access to the currently checked file
    
    This PR introduces a new `InferContext` that holds on to the db, the
    current file, and the reported diagnostics. It replaces the
    `TypeCheckDiagnosticsBuilder`. We pass the `InferContext` instead of the
    `db` to methods that *might* emit diagnostics. This simplifies some of
    the `Outcome` methods, which can now be called with a context instead of
    a `db` and the diagnostics builder. Having the `db` and the file on a
    single type like this would also be useful when using accumulators.
    
    This PR doesn't solve the issue that the `Outcome` types feel somewhat
    complicated nor that it can be annoying when you need to report a
    `Diagnostic,` but you don't have access to an `InferContext` (or the
    file). However, I also believe that accumulators won't solve these
    problems because:
    
    * Even with accumulators, it's necessary to have a reference to the file
    that's being checked. The struggle would be to get a reference to that
    file rather than getting a reference to `InferContext`.
    * Users of the `HasTy` trait (e.g., a linter) don't want to bother
    getting the `File` when calling `Type::return_ty` because they aren't
    interested in the created diagnostics. They just want to know what
    calling the current expression would return (and if it even is a
    callable). This is what the different methods of `Outcome` enable today.
    I can ask for the return type without needing extra data that's only
    relevant for emitting a diagnostic.
    
    A shortcoming of this approach is that it is now a bit confusing when to
    pass `db` and when an `InferContext`. An option is that we'd make the
    `file` on `InferContext` optional (it won't collect any diagnostics if
    `None`) and change all methods on `Type` to take `InferContext` as the
    first argument instead of a `db`. I'm interested in your opinion on
    this.
    
    Accumulators are definitely harder to use incorrectly because they
    remove the need to merge the diagnostics explicitly and there's no risk
    that we accidentally merge the diagnostics twice, resulting in
    duplicated diagnostics. I still value performance more over making our
    life slightly easier.

commit ac81c72bf3e5c8c8196adb82133cd3b53793fb48
Author: InSync <insyncwithfoo@gmail.com>
Date:   Wed Dec 18 18:53:48 2024 +0700

    [`ruff`] Ambiguous pattern passed to `pytest.raises()` (`RUF043`) (#14966)

commit c0b7c36d435441788b5a1f2330a66613656a3e47
Author: David Salvisberg <david.salvisberg@seantis.ch>
Date:   Wed Dec 18 08:50:49 2024 +0100

    [`ruff`] Avoid false positives for RUF027 for typing context bindings. (#15037)
    
    Closes #14000
    
    ## Summary
    
    For typing context bindings we know that they won't be available at
    runtime. We shouldn't recommend a fix, that will result in name errors
    at runtime.
    
    ## Test Plan
    
    `cargo nextest run`

commit e8e461da6a5156e7c0e62ef20f4bc7896a17ca9f
Author: Douglas Creager <dcreager@dcreager.net>
Date:   Tue Dec 17 16:58:23 2024 -0500

    Prioritize attribute in from/import statement (#15041)
    
    This tweaks the new semantics from #15026 a bit when a symbol could be
    interpreted both as an attribute and a submodule of a package. For
    `from...import`, we should actually prioritize the attribute, because of
    how the statement itself is implemented [1].
    
    > 1. check if the imported module has an attribute by that name
    > 2. if not, attempt to import a submodule with that name and then check
    the imported module again for that attribute
    
    [1] https://docs.python.org/3/reference/simple_stmts.html#the-import-statement

commit 91c9168dd764ba8fbc72da634f56e1375474bda0
Author: Douglas Creager <dcreager@dcreager.net>
Date:   Tue Dec 17 14:23:34 2024 -0500

    Handle nested imports correctly in `from ... import` (#15026)
    
    #14946 fixed our handling of nested imports with the `import` statement,
    but didn't touch `from...import` statements.
    
    cf
    https://github.com/astral-sh/ruff/issues/14826#issuecomment-2525344515

commit 80577a49f86808854ca933c409e4965d9f62fa26
Author: Micha Reiser <micha@reiser.io>
Date:   Tue Dec 17 18:01:58 2024 +0100

    Upgrade salsa in fuzzer script (#15040)

commit f463fa7b7c80a4e522672de8c03b7e6a4f8d088a
Author: cake-monotone <cake.monotone@gmail.com>
Date:   Wed Dec 18 01:37:07 2024 +0900

    [red-knot] Narrowing For Truthiness Checks (`if x` or `if not x`) (#14687)
    
    ## Summary
    
    Fixes #14550.
    
    Add `AlwaysTruthy` and `AlwaysFalsy` types, representing the set of objects whose `__bool__` method can only ever return `True` or `False`, respectively, and narrow `if x` and `if not x` accordingly.
    
    
    ## Test Plan
    
    - New Markdown test for truthiness narrowing `narrow/truthiness.md`
    - unit tests in `types.rs` and `builders.rs` (`cargo test --package
    red_knot_python_semantic --lib -- types`)

commit c3b6139f394a0e24cba0b5b1166daa80aba601a6
Author: Micha Reiser <micha@reiser.io>
Date:   Tue Dec 17 16:50:33 2024 +0100

    Upgrade salsa (#15039)
    
    The only code change is that Salsa now requires the `Db` to implement
    `Clone` to create "lightweight" snapshots.

commit c9fdb1f5e3a4d0d60b4537741f2c9c19e2426038
Author: InSync <insyncwithfoo@gmail.com>
Date:   Tue Dec 17 22:07:07 2024 +0700

    [`pylint`] Preserve original value format (`PLR6104`) (#14978)
    
    ## Summary
    
    Resolves #11672.
    
    ## Test Plan
    
    `cargo nextest run` and `cargo insta test`.
    
    ---------
    
    Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>

commit 463046ae0724c31ca98bc69ef5252c22cd2212c0
Author: Alex Waygood <Alex.Waygood@Gmail.com>
Date:   Tue Dec 17 12:55:50 2024 +0000

    [red-knot] Explicitly test diagnostics are emitted for unresolvable submodule imports (#15035)

commit dcb99cc8171aa579256f53ca3277a6ac524f5224
Author: Micha Reiser <micha@reiser.io>
Date:   Tue Dec 17 12:45:36 2024 +0100

    Fix stale File status in tests (#15030)
    
    ## Summary
    
    Fixes https://github.com/astral-sh/ruff/issues/15027
    
    The `MemoryFileSystem::write_file` API automatically creates
    non-existing ancestor directoryes
    but we failed to update the status of the now created ancestor
    directories in the `Files` data structure.
    
    
    ## Test Plan
    
    Tested that the case in https://github.com/astral-sh/ruff/issues/15027
    now passes regardless of whether the *Simple* case is commented out or
    not

commit 7c2e7cf25e2b04f7b52052ed4c0710a593ebe4a1
Author: InSync <insyncwithfoo@gmail.com>
Date:   Tue Dec 17 16:33:15 2024 +0700

    [red-knot] Basic support for other legacy `typing` aliases (#14998)
    
    ## Summary
    
    Resolves #14997.
    
    ## Test Plan
    
    Markdown tests.

commit 867a8f949705a41777fd1b8eb3dd4c4aae31dc17
Author: Wei Lee <weilee.rx@gmail.com>
Date:   Tue Dec 17 16:32:48 2024 +0900

    feat(AIR302): extend the following rules (#15015)
    
    
    ## Summary
    
    
    Airflow 3.0 removes various deprecated functions, members, modules, and
    other values. They have been deprecated in 2.x, but the removal causes
    incompatibilities that we want to detect. This PR deprecates the
    following names.
    
    * `airflow.api_connexion.security.requires_access_dataset` →
    `airflow.api_connexion.security.requires_access_asset`
    * `airflow.auth.managers.base_auth_manager.is_authorized_dataset` →
    `airflow.auth.managers.base_auth_manager.is_authorized_asset`
    * `airflow.auth.managers.models.resource_details.DatasetDetails` →
    `airflow.auth.managers.models.resource_details.AssetDetails`
    * `airflow.lineage.hook.DatasetLineageInfo` →
    `airflow.lineage.hook.AssetLineageInfo`
    * `airflow.security.permissions.RESOURCE_DATASET` →
    `airflow.security.permissions.RESOURCE_ASSET`
    * `airflow.www.auth.has_access_dataset` →
    `airflow.www.auth.has_access_dataset.has_access_asset`
    * remove `airflow.datasets.DatasetAliasEvent`
    * `airflow.datasets.Dataset` → `airflow.sdk.definitions.asset.Asset`
    * `airflow.Dataset` → `airflow.sdk.definitions.asset.Asset`
    * `airflow.datasets.DatasetAlias` →
    `airflow.sdk.definitions.asset.AssetAlias`
    * `airflow.datasets.DatasetAll` →
    `airflow.sdk.definitions.asset.AssetAll`
    * `airflow.datasets.DatasetAny` →
    `airflow.sdk.definitions.asset.AssetAny`
    * `airflow.datasets.metadata` → `airflow.sdk.definitions.asset.metadata`
    * `airflow.datasets.expand_alias_to_datasets` →
    `airflow.sdk.definitions.asset.expand_alias_to_assets`
    * `airflow.datasets.manager.dataset_manager` → `airflow.assets.manager`
    * `airflow.datasets.manager.resolve_dataset_manager` →
    `airflow.assets.resolve_asset_manager`
    * `airflow.datasets.manager.DatasetManager` →
    `airflow.assets.AssetManager`
    * `airflow.listeners.spec.dataset.on_dataset_created` →
    `airflow.listeners.spec.asset.on_asset_created`
    * `airflow.listeners.spec.dataset.on_dataset_changed` →
    `airflow.listeners.spec.asset.on_asset_changed`
    * `airflow.timetables.simple.DatasetTriggeredTimetable` →
    `airflow.timetables.simple.AssetTriggeredTimetable`
    * `airflow.timetables.datasets.DatasetOrTimeSchedule` →
    `airflow.timetables.assets.AssetOrTimeSchedule`
    *
    `airflow.providers.amazon.auth_manager.avp.entities.AvpEntities.DATASET`
    → `airflow.providers.amazon.auth_manager.avp.entities.AvpEntities.ASSET`
    * `airflow.providers.amazon.aws.datasets.s3.create_dataset` →
    `airflow.providers.amazon.aws.assets.s3.create_asset`
    *
    `airflow.providers.amazon.aws.datasets.s3.convert_dataset_to_openlineage`
    →
    `airflow.providers.amazon.aws.datasets.s3.convert_dataset_to_openlineage`
    * `airflow.providers.amazon.aws.datasets.s3.sanitize_uri` →
    `airflow.providers.amazon.aws.assets.s3.sanitize_uri`
    *
    `airflow.providers.common.io.datasets.file.convert_dataset_to_openlineage`
    → `airflow.providers.common.io.assets.file.convert_asset_to_openlineage`
    * `airflow.providers.common.io.datasets.file.sanitize_uri` →
    `airflow.providers.common.io.assets.file.sanitize_uri`
    * `airflow.providers.common.io.datasets.file.create_dataset` →
    `airflow.providers.common.io.assets.file.create_asset`
    * `airflow.providers.google.datasets.bigquery.sanitize_uri` →
    `airflow.providers.google.assets.bigquery.sanitize_uri`
    * `airflow.providers.google.datasets.gcs.create_dataset` →
    `airflow.providers.google.assets.gcs.create_asset`
    * `airflow.providers.google.datasets.gcs.sanitize_uri` →
    `airflow.providers.google.assets.gcs.sanitize_uri`
    * `airflow.providers.google.datasets.gcs.convert_dataset_to_openlineage`
    → `airflow.providers.google.assets.gcs.convert_asset_to_openlineage`
    *
    `airflow.providers.fab.auth_manager.fab_auth_manager.is_authorized_dataset`
    →
    `airflow.providers.fab.auth_manager.fab_auth_manager.is_authorized_asset`
    * `airflow.providers.openlineage.utils.utils.DatasetInfo` →
    `airflow.providers.openlineage.utils.utils.AssetInfo`
    * `airflow.providers.openlineage.utils.utils.translate_airflow_dataset`
    → `airflow.providers.openlineage.utils.utils.translate_airflow_asset`
    * `airflow.providers.postgres.datasets.postgres.sanitize_uri` →
    `airflow.providers.postgres.assets.postgres.sanitize_uri`
    * `airflow.providers.mysql.datasets.mysql.sanitize_uri` →
    `airflow.providers.mysql.assets.mysql.sanitize_uri`
    * `airflow.providers.trino.datasets.trino.sanitize_uri` →
    `airflow.providers.trino.assets.trino.sanitize_uri`
    
    In additional to the newly added rules above, the message for
    `airflow.contrib.*` and `airflow.subdag.*` has been extended,
    `airflow.sensors.external_task.ExternalTaskSensorLink` error has been
    fixed and the test fixture has been reorganized
    
    ## Test Plan
    
    A test fixture is included in the PR.

commit e22718f25f1e2ad53703b303511800b72be37763
Author: w0nder1ng <94079074+w0nder1ng@users.noreply.github.com>
Date:   Tue Dec 17 02:30:32 2024 -0500

    [`perflint`] Simplify finding the loop target in `PERF401` (#15025)
    
    Fixes #15012.
    
    ```python
    def f():
        # panics when the code can't find the loop variable
        values = [1, 2, 3]
        result = []
        for i in values:
            result.append(i + 1)
        del i
    ```
    
    I'm not sure exactly why this test case panics, but I suspect the `del
    i` removes the binding from the semantic model's symbols.
    
    I changed the code to search for the correct binding by directly
    iterating through the bindings. Since we know exactly which binding we
    want, this should find the loop variable without any complications.

commit dcdc6e7c64c66ac57fbdb8868b102ea0f20c695e
Author: Dhruv Manilawala <dhruvmanila@gmail.com>
Date:   Tue Dec 17 09:49:39 2024 +0530

    [red-knot] Avoid undeclared path when raising conflicting declarations (#14958)
    
    ## Summary
    
    This PR updates the logic when raising conflicting declarations
    diagnostic to avoid the undeclared path if present.
    
    The conflicting declaration diagnostics is added when there are two or
    more declarations in the control flow path of a definition whose type
    isn't equivalent to each other. This can be seen in the following
    example:
    
    ```py
    if flag:
            x: int
    x = 1  # conflicting-declarations: Unknown, int
    ```
    
    After this PR, we'd avoid considering "Unknown" as part of the
    conflicting declarations. This means we'd still flag it for the
    following case:
    
    ```py
    if flag:
            x: int
    else:
            x: str
    x = 1  # conflicting-declarations: int, str
    ```
    
    A solution that's local to the exception control flow was also explored
    which required updating the logic for merging the flow snapshot to avoid
    considering declarations using a flag. This is preserved here:
    https://github.com/astral-sh/ruff/compare/dhruv/control-flow-no-declarations?expand=1.
    
    The main motivation to avoid that is we don't really understand what the
    user experience is w.r.t. the Unknown type and the
    conflicting-declaration diagnostics. This makes us unsure on what the
    right semantics are as to whether that diagnostics should be raised or
    not and when to raise them. For now, we've decided to move forward with
    this PR and could decide to adopt another solution or remove the
    conflicting-declaration diagnostics in the future.
    
    Closes: #13966
    
    ## Test Plan
    
    Update the existing mdtest case. Add an additional case specific to
    exception control flow to verify that the diagnostic is not being raised
    now.

commit 4ddf9228f6b24db05c9de4a121b35a0892ea3792
Author: Douglas Creager <dcreager@dcreager.net>
Date:   Mon Dec 16 16:15:40 2024 -0500

    Bind top-most parent when importing nested module (#14946)
    
    When importing a nested module, we were correctly creating a binding for
    the top-most parent, but we were binding that to the nested module, not
    to that parent module. Moreover, we weren't treating those submodules as
    members of their containing parents. This PR addresses both issues, so
    that nested imports work as expected.
    
    As discussed in ~Slack~ whatever chat app I find myself in these days
    :smile:, this requires keeping track of which modules have been imported
    within the current file, so that when we resolve member access on a
    module reference, we can see if that member has been imported as a
    submodule. If so, we return the submodule reference immediately, instead
    of checking whether the parent module's definition defines the symbol.
    
    This is currently done in a flow insensitive manner. The `SemanticIndex`
    now tracks all of the modules that are imported (via `import`, not via
    `from...import`). The member access logic mentioned above currently only
    considers module imports in the file containing the attribute
    expression.
    
    ---------
    
    Co-authored-by: Carl Meyer <carl@astral.sh>

commit 6d72be2683a6fe835bb297f69609095fec96a9cd
Author: Alex Waygood <Alex.Waygood@Gmail.com>
Date:   Mon Dec 16 17:45:46 2024 +0000

    Bump zizmor pre-commit hook to the latest version and fix new warnings (#15022)

commit 712c88674930e0fd174d3730b25dbf827914cacd
Author: Alex Waygood <Alex.Waygood@Gmail.com>
Date:   Mon Dec 16 17:32:49 2024 +0000

    Add `actionlint` as a pre-commit hook (with shellcheck integration) (#15021)

commit 50739f91dc415ac3a8b56b2296a8e47f70ae663d
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Mon Dec 16 22:48:37 2024 +0530

    Update dependency mdformat-mkdocs to v4 (#15011)
    
    This PR contains the following updates:
    
    | Package | Change | Age | Adoption | Passing | Confidence |
    |---|---|---|---|---|---|
    |
    [mdformat-mkdocs](https://redirect.github.com/kyleking/mdformat-mkdocs)
    ([changelog](https://redirect.github.com/kyleking/mdformat-mkdocs/releases))
    | `==3.1.1` -> `==4.0.0` |
    [![age](https://developer.mend.io/api/mc/badges/age/pypi/mdformat-mkdocs/4.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
    |
    [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/mdformat-mkdocs/4.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
    |
    [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/mdformat-mkdocs/3.1.1/4.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
    |
    [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/mdformat-mkdocs/3.1.1/4.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
    |
    
    ---
    
    ### Release Notes
    
    <details>
    <summary>kyleking/mdformat-mkdocs (mdformat-mkdocs)</summary>
    
    ###
    [`v4.0.0`](https://redirect.github.com/KyleKing/mdformat-mkdocs/releases/tag/v4.0.0)
    
    [Compare
    Source](https://redirect.github.com/kyleking/mdformat-mkdocs/compare/v3.1.1...v4.0.0)
    
    #### What's Changed
    
    - fix!: add newline after title for consistency with MKDocs style by
    [@&#8203;KyleKing](https://redirect.github.com/KyleKing) in
    [https://github.com/KyleKing/mdformat-mkdocs/pull/44](https://redirect.github.com/KyleKing/mdformat-mkdocs/pull/44)
    
    **Full Changelog**:
    https://github.com/KyleKing/mdformat-mkdocs/compare/v3.1.1...v4.0.0
    
    </details>
    
    ---
    
    ### Configuration
    
    📅 **Schedule**: Branch creation - "before 4am on Monday" (UTC),
    Automerge - At any time (no schedule defined).
    
    🚦 **Automerge**: Disabled by config. Please merge this manually once you
    are satisfied.
    
    ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
    rebase/retry checkbox.
    
    🔕 **Ignore**: Close this PR and you won't be reminded about this update
    again.
    
    ---
    
    - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
    this box
    
    ---
    
    This PR was generated by [Mend Renovate](https://mend.io/renovate/).
    View the [repository job
    log](https://developer.mend.io/github/astral-sh/ruff).
    
    <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS41OC4xIiwidXBkYXRlZEluVmVyIjoiMzkuNTguMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW50ZXJuYWwiXX0=-->
    
    ---------
    
    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    Co-authored-by: Dhruv Manilawala <dhruvmanila@gmail.com>
    Co-authored-by: Kyle King <KyleKing@users.noreply.github.com>

commit 6a5eff60171a8b17158ee7b890ef36708e0e1f6a
Author: Dylan <53534755+dylwil3@users.noreply.github.com>
Date:   Mon Dec 16 09:09:27 2024 -0600

    [`pydocstyle`] Skip leading whitespace for `D403` (#14963)
    
    This PR introduces three changes to `D403`, which has to do with
    capitalizing the first word in a docstring.
    
    1. The diagnostic and fix now skip leading whitespace when determining
    what counts as "the first word".
    2. The name has been changed to `first-word-uncapitalized` from
    `first-line-capitalized`, for both clarity and compliance with our rule
    naming policy.
    3. The diagnostic message and documentation has been modified slightly
    to reflect this.
    
    Closes #14890

commit a623d8f7c44cd63897489cad0faed1538d4373c8
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Mon Dec 16 11:13:49 2024 +0000

    Update pre-commit dependencies (#15008)
    
    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>

commit aa429b413f8a7de9eeee14f8e54fdcb3b199b7b7
Author: Dhruv Manilawala <dhruvmanila@gmail.com>
Date:   Mon Dec 16 16:26:40 2024 +0530

    Check diagnostic refresh support from client capability (#15014)
    
    ## Summary
    
    Per the LSP spec, the property name is `workspace.diagnostics` with an
    `s` at the end but the `lsp-types` dependency uses
    `workspace.diagnostic` (without an `s`). Our fork contains this fix
    (https://github.com/astral-sh/lsp-types/commit/0f58d628799182647f688908ba752a33f854fb3a)
    so we should avoid the hardcoded value.
    
    The implication of this is that the client which doesn't support
    workspace refresh capability didn't support the [dynamic
    configuration](https://docs.astral.sh/ruff/editors/features/#dynamic-configuration)
    feature because the server would _always_ send the workspace refresh
    request but the client would ignore it. We have a fallback logic to
    publish the diagnostics instead:
    
    
    https://github.com/astral-sh/ruff/blob/5f6fc3988b5ce19790746921bd80cde9b646d690/crates/ruff_server/src/server/api/notifications/did_change_watched_files.rs#L28-L40
    
    fixes: #15013
    
    ## Test Plan
    
    ### VS Code
    
    
    https://github.com/user-attachments/assets/61ac8e6f-aa20-41cc-b398-998e1866b5bc
    
    ### Neovim
    
    
    
    https://github.com/user-attachments/assets/4131e13c-3fba-411c-9bb7-478d26eb8d56

commit 425c248232c017e8779ebc82f62dbe643839a700
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Mon Dec 16 08:48:51 2024 +0100

    Update Rust crate colored to v2.2.0 (#15010)
    
    This PR contains the following updates:
    
    | Package | Type | Update | Change |
    |---|---|---|---|
    | [colored](https://redirect.github.com/mackwic/colored) |
    workspace.dependencies | minor | `2.1.0` -> `2.2.0` |
    
    ---
    
    ### Release Notes
    
    <details>
    <summary>mackwic/colored (colored)</summary>
    
    ###
    [`v2.2.0`](https://redirect.github.com/mackwic/colored/compare/v2.1.0...v2.2.0)
    
    [Compare
    Source](https://redirect.github.com/mackwic/colored/compare/v2.1.0...v2.2.0)
    
    </details>
    
    ---
    
    ### Configuration
    
    📅 **Schedule**: Branch creation - "before 4am on Monday" (UTC),
    Automerge - At any time (no schedule defined).
    
    🚦 **Automerge**: Disabled by config. Please merge this manually once you
    are satisfied.
    
    ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
    rebase/retry checkbox.
    
    🔕 **Ignore**: Close this PR and you won't be reminded about this update
    again.
    
    ---
    
    - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
    this box
    
    ---
    
    This PR was generated by [Mend Renovate](https://mend.io/renovate/).
    View the [repository job
    log](https://developer.mend.io/github/astral-sh/ruff).
    
    <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS41OC4xIiwidXBkYXRlZEluVmVyIjoiMzkuNTguMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW50ZXJuYWwiXX0=-->
    
    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

commit bcd944347d972daa3a82ba38449778ebd56d70c0
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Sun Dec 15 20:26:21 2024 -0500

    Update dependency monaco-editor to v0.52.2 (#15006)

commit 86eff81c6ac127e9b79c88a0fc71cc851644e095
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Sun Dec 15 20:26:14 2024 -0500

    Update Rust crate thiserror to v2.0.7 (#15005)

commit 24ace6856050894e0379ea5d61a3ba55afb66006
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Sun Dec 15 20:26:08 2024 -0500

    Update Rust crate serde to v1.0.216 (#15004)

commit b664505d7bef35bb4e1ea4b690e8f7c9d3764d66
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Sun Dec 15 20:25:59 2024 -0500

    Update Rust crate libc to v0.2.168 (#15003)

commit aa575da1e7d6240f500b9ad31d2bc439c7596aee
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Sun Dec 15 20:25:52 2024 -0500

    Update Rust crate fern to v0.7.1 (#15002)

commit 921eb2acb3ea6767fd6cdd9bc4ef7fdb3c081cee
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Sun Dec 15 20:25:46 2024 -0500

    Update Rust crate chrono to v0.4.39 (#15001)

commit 8665d2dc95d5eb05ecef1c078977294ef69cdf2b
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Sun Dec 15 20:25:39 2024 -0500

    Update Rust crate bstr to v1.11.1 (#15000)

commit 1cc27c995c5d2c430e8b837a5c7c4536435b42a3
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Sun Dec 15 20:25:10 2024 -0500

    Update NPM Development dependencies (#14999)

commit a93bc2af6b169fec5586977e32bbff67df870d4e
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Sun Dec 15 20:25:04 2024 -0500

    Update dependency ruff to v0.8.3 (#15007)

commit d848182340079299f71cfdfb647e1ae2d00835b6
Author: Alex Waygood <Alex.Waygood@Gmail.com>
Date:   Sun Dec 15 19:37:45 2024 +0000

    Pin mdformat plugins in pre-commit (#14992)

commit 7173e6a20b3a26549fb695d77978476218244904
Author: InSync <insyncwithfoo@gmail.com>
Date:   Sun Dec 15 23:07:29 2024 +0700

    Use stripping block (`|-`) for page descriptions (#14980)
    
    ## Summary
    
    Resolves #14976.
    
    Currently, we uses this "[plain
    scalar](https://yaml.org/spec/1.2.2/#733-plain-style)" format:
    
    ```yaml
    description: Checks for `if key in dictionary: del dictionary[key]`.
    ```
    
    Plain scalar must not contain the sequence `: `, however, so the above
    is invalid.
    
    This PR changes that to:
    
    ```yaml
    description: |-
      Checks for `if key in dictionary: del dictionary[key]`.
    ```
    
    `|` denotes a "[block
    scalar](https://yaml.org/spec/1.2.2/#81-block-scalar-styles)", whereas
    [the `-` chomping
    indicator](https://yaml.org/spec/1.2.2/#8112-block-chomping-indicator)
    requires that a trailing newline, if any, must be stripped.
    
    ## Test Plan
    
    
    ![](https://github.com/user-attachments/assets/f00b606a-d6fe-46ac-a1c5-6a8665204ea3)

commit 4a7536dc941018fcfbeaecbf1464621b7ac1a5e2
Author: w0nder1ng <94079074+w0nder1ng@users.noreply.github.com>
Date:   Sun Dec 15 10:22:04 2024 -0500

    [`perflint`] Fix panic in `perf401` (#14971)
    
    Fixes #14969.
    
    The issue was that this line:
    
    ```rust
    let from_assign_to_loop = TextRange::new(binding_stmt.end(), for_stmt.start());
    ```
    
    was not safe if the binding was after the target. The only way (at least
    that I can think of) this can happen is if they are in different scopes,
    so it now checks for that before checking if there are usages between
    the two.

commit 2d15d7d1af96873a6a95f39118e8e4f4d308d696
Author: Dimitri Papadopoulos Orfanos <3234522+DimitriPapadopoulos@users.noreply.github.com>
Date:   Sun Dec 15 16:20:04 2024 +0100

    Improve the documentation of E201/E202 (#14983)
    
    ## Summary
    
    The summary is misleading, as well as the
    `whitespace-after-open-bracket` and `whitespace-before-close-bracket`
    names - it's not only brackets, but also parentheses and braces. Align
    the documentation with the actual behaviour.
    
    Don't change the names, but align the documentation with the behaviour.
    
    ## Test Plan
    
    No test (documentation).

commit 112e9d2d8258e72dcf5c21c7d811957f12325af1
Author: Rebecca Chen <rchen152@gmail.com>
Date:   Sun Dec 15 04:04:51 2024 -0800

    [ruff_python_ast] Add name and default functions to TypeParam. (#14964)
    
    ## Summary
    
    This change adds `name` and `default` functions to `TypeParam` to access
    the corresponding attributes more conveniently. I currently have these
    as helper functions in code built on top of ruff_python_ast, and they
    seemed like they might be generally useful.
    
    ## Test Plan
    
    Ran the checks listed in CONTRIBUTING.md#development.
    
    ---------
    
    Co-authored-by: Micha Reiser <micha@reiser.io>
    Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>

commit 1389cb8e593e3476c813ba931e4a9677b6863cdd
Author: Alex Waygood <Alex.Waygood@Gmail.com>
Date:   Sun Dec 15 02:00:52 2024 +0000

    [red-knot] Emit an error if a bare `Annotated` or `Literal` is used in a type expression (#14973)

commit fa46ba2306c62a2d6bb3c1abcd7ba0afb26d9421
Author: Alex Waygood <Alex.Waygood@Gmail.com>
Date:   Sun Dec 15 01:15:10 2024 +0000

    [red-knot] Fix bugs relating to assignability of dynamic `type[]` types (#14972)

commit 7514a8e508361a17de76b10eaa7fe7f959230436
Merge: 01db3604 2128ad8e
Author: Jelmer Vernooij <jelmer@jelmer.uk>
Date:   Fri Sep 27 12:39:16 2024 +0100

    New upstream release.

commit 2128ad8e3c6ee38d1634a44887fa7c0054f0e72c
Merge: 424ef042 ae39ce56
Author: Jelmer Vernooij <jelmer@jelmer.uk>
Date:   Fri Sep 27 11:14:14 2024 +0000

    Import upstream version 0.6.8

commit ae39ce56c0cc1f8ac15f980c0b457b16b67c1f2a
Author: Micha Reiser <micha@reiser.io>
Date:   Thu Sep 26 14:09:03 2024 +0200

    Bump version to 0.6.8 (#13522)

commit ff2d214e112e7c1183a818cccb8d66b014eee0e7
Author: Micha Reiser <micha@reiser.io>
Date:   Thu Sep 26 13:57:05 2024 +0200

    Don't skip over imports and other nodes containing nested statements in import collector (#13521)

commit 9442cd8fae338e869a0be92b3b17b8dda3562238
Author: Micha Reiser <micha@reiser.io>
Date:   Thu Sep 26 08:44:33 2024 +0200

    Parenthesize `match..case` `if` guards (#13513)

commit 8012707348aac296124542b5e5217b1ec833fb7b
Author: Micha Reiser <micha@reiser.io>
Date:   Thu Sep 26 08:35:22 2024 +0200

    Align formatting of patterns in match-cases with expression formatting in clause headers (#13510)

commit d7ffe460546164e57c66daee51f53bdcb811eeaf
Author: Charlie Marsh <charlie.r.marsh@gmail.com>
Date:   Wed Sep 25 19:58:35 2024 -0400

    Disable the `typeset` plugin (#13517)
    
    ## Summary
    
    There seems to be a bad interaction between enabling anchorlinks and the
    `typeset` plugin. I think the former is more important than the
    latter... so disabling the latter for now.
    
    ## Test Plan
    
    Before:
    
    ![Screenshot 2024-09-25 at 7 53
    21 PM](https://github.com/user-attachments/assets/bf7c70bb-19ab-4ece-9709-4c297f8ba67b)
    
    After:
    
    ![Screenshot 2024-09-25 at 7 53
    12 PM](https://github.com/user-attachments/assets/e767a575-1664-4288-aecb-82e8b1b1a7bd)

commit 7c83af419cc04b07e3bafaff8c233a5ffa447daf
Author: haarisr <122410226+haarisr@users.noreply.github.com>
Date:   Wed Sep 25 13:44:19 2024 -0700

    red-knot: Implement the `not` operator for all `Type` variants (#13432)
    
    Signed-off-by: haaris <haarisrahman@gmail.com>
    Co-authored-by: Carl Meyer <carl@oddbird.net>

commit bbb044ebda2890061dba6ec53d3d55e0932041ba
Author: Zanie Blue <contact@zanie.dev>
Date:   Wed Sep 25 10:03:25 2024 -0500

    Detect tuples bound to variadic positional arguments i.e. `*args` (#13512)
    
    In https://github.com/astral-sh/ruff/pull/13503, we added supported for
    detecting variadic keyword arguments as dictionaries, here we use the
    same strategy for detecting variadic positional arguments as tuples.

commit 481065238b7f90fe756aa6bd989cf9d3973d4654
Author: Zanie Blue <contact@zanie.dev>
Date:   Wed Sep 25 10:03:09 2024 -0500

    Avoid UP028 false negatives with non-reference shadowed bindings of loop variables (#13504)
    
    Closes https://github.com/astral-sh/ruff/issues/13266
    
    Avoids false negatives for shadowed bindings that aren't actually
    references to the loop variable. There are some shadowed bindings we
    need to support still, e.g., `del` requires the loop variable to exist.

commit 11f06e0d5524ada77ee6faa5304d25319031f115
Author: Zanie Blue <contact@zanie.dev>
Date:   Wed Sep 25 10:02:59 2024 -0500

    Detect SIM910 when using variadic keyword arguments, i.e., `**kwargs` (#13503)
    
    Closes https://github.com/astral-sh/ruff/issues/13493

commit f27a8b8c7abdd06c6b24b86791db31aa4295a6c7
Author: Dylan <53534755+dylwil3@users.noreply.github.com>
Date:   Wed Sep 25 09:58:57 2024 -0500

    [internal] `ComparableExpr` (f)strings and bytes made invariant under concatenation (#13301)

commit ca0ae0a484906dd29a55a97572df527667330507
Author: Vince van Noort <vince.vannoort@channable.com>
Date:   Wed Sep 25 11:14:12 2024 +0200

    [pylint] Implement `boolean-chained-comparison` (`R1716`) (#13435)
    
    Co-authored-by: Micha Reiser <micha@reiser.io>

commit be1d5e33680c3e2e71b452ad1ed651dcc6f37f55
Author: TomerBin <tomerbin98@gmail.com>
Date:   Wed Sep 25 03:02:26 2024 +0300

    [red-knot] Add `Type::bool` and boolean expression inference (#13449)

commit 03503f7f566be367f577c7077c717dd578249bca
Author: Simon Brugman <sbrugman@users.noreply.github.com>
Date:   Tue Sep 24 14:55:32 2024 +0200

    C401 message missing closing parenthesis (#13498)

commit ff4b6d11fa458ea6718cabd07b224442670df38f
Author: Charlie Marsh <charlie.r.marsh@gmail.com>
Date:   Mon Sep 23 18:09:00 2024 -0400

    Detect basic wildcard imports in ruff analyze graph (#13486)
    
    ## Summary
    
    I guess we can just ignore the `*` entirely for now? This will add the
    `__init__.py` for anything that's importing a package.

commit 96e7f3f96f21d0ab32a11ae10d90049f5547f3ef
Author: Charlie Marsh <charlie.r.marsh@gmail.com>
Date:   Mon Sep 23 09:48:43 2024 -0400

    Exit gracefully on broken pipe errors (#13485)
    
    ## Summary
    
    Closes https://github.com/astral-sh/ruff/issues/13483.
    
    Closes https://github.com/astral-sh/ruff/issues/13442.
    
    ## Test Plan
    
    ```
    ❯ cargo run analyze graph ../django | head -n 10
       Compiling ruff v0.6.7 (/Users/crmarsh/workspace/ruff/crates/ruff)
        Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.63s
         Running `target/debug/ruff analyze graph ../django`
    warning: `ruff analyze graph` is experimental and may change without warning
    {
      "/Users/crmarsh/workspace/django/django/__init__.py": [
        "/Users/crmarsh/workspace/django/django/apps/__init__.py",
        "/Users/crmarsh/workspace/django/django/conf/__init__.py",
        "/Users/crmarsh/workspace/django/django/urls/__init__.py",
        "/Users/crmarsh/workspace/django/django/utils/log.py",
        "/Users/crmarsh/workspace/django/django/utils/version.py"
      ],
      "/Users/crmarsh/workspace/django/django/__main__.py": [
        "/Users/crmarsh/workspace/django/django/core/management/__init__.py"
    ```

commit 90dc7438ee836f17add5067ecc2fe1e050a78c9b
Author: Charlie Marsh <charlie.r.marsh@gmail.com>
Date:   Mon Sep 23 09:43:09 2024 -0400

    Avoid panic when analyze graph hits broken pipe (#13484)
    
    ## Summary
    
    I think we should also make the change that @BurntSushi recommended in
    the linked issue, but this gets rid of the panic.
    
    See: https://github.com/astral-sh/ruff/issues/13483
    
    See: https://github.com/astral-sh/ruff/issues/13442
    
    ## Test Plan
    
    ```
    warning: `ruff analyze graph` is experimental and may change without warning
    {
      "/Users/crmarsh/workspace/django/django/__init__.py": [
        "/Users/crmarsh/workspace/django/django/apps/__init__.py",
        "/Users/crmarsh/workspace/django/django/conf/__init__.py",
        "/Users/crmarsh/workspace/django/django/urls/__init__.py",
        "/Users/crmarsh/workspace/django/django/utils/log.py",
        "/Users/crmarsh/workspace/django/django/utils/version.py"
      ],
      "/Users/crmarsh/workspace/django/django/__main__.py": [
        "/Users/crmarsh/workspace/django/django/core/management/__init__.py"
    ruff failed
      Cause: Broken pipe (os error 32)
    ```

commit 3e99ab141cef898ee6349355ce50628783f04e6f
Author: Micha Reiser <micha@reiser.io>
Date:   Mon Sep 23 14:04:04 2024 +0200

    Update Salsa (#13480)

commit 115745a8acfe0d2880e2af5d75b167daef5fc14f
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Mon Sep 23 09:55:12 2024 +0200

    Update dependency monaco-editor to ^0.52.0 (#13475)
    
    This PR contains the following updates:
    
    | Package | Change | Age | Adoption | Passing | Confidence |
    |---|---|---|---|---|---|
    | [monaco-editor](https://redirect.github.com/microsoft/monaco-editor) |
    [`^0.51.0` ->
    `^0.52.0`](https://renovatebot.com/diffs/npm/monaco-editor/0.51.0/0.52.0)
    |
    [![age](https://developer.mend.io/api/mc/badges/age/npm/monaco-editor/0.52.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
    |
    [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/monaco-editor/0.52.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
    |
    [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/monaco-editor/0.51.0/0.52.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
    |
    [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/monaco-editor/0.51.0/0.52.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
    |
    
    ---
    
    ### Release Notes
    
    <details>
    <summary>microsoft/monaco-editor (monaco-editor)</summary>
    
    ###
    [`v0.52.0`](https://redirect.github.com/microsoft/monaco-editor/blob/HEAD/CHANGELOG.md#0520)
    
    [Compare
    Source](https://redirect.github.com/microsoft/monaco-editor/compare/v0.51.0...v0.52.0)
    
    -   Comment added inside of `IModelContentChangedEvent`
    
    </details>
    
    ---
    
    ### Configuration
    
    📅 **Schedule**: Branch creation - "before 4am on Monday" (UTC),
    Automerge - At any time (no schedule defined).
    
    🚦 **Automerge**: Disabled by config. Please merge this manually once you
    are satisfied.
    
    ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
    rebase/retry checkbox.
    
    🔕 **Ignore**: Close this PR and you won't be reminded about this update
    again.
    
    ---
    
    - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
    this box
    
    ---
    
    This PR was generated by [Mend Renovate](https://mend.io/renovate/).
    View the [repository job
    log](https://developer.mend.io/github/astral-sh/ruff).
    
    <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC44MC4wIiwidXBkYXRlZEluVmVyIjoiMzguODAuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW50ZXJuYWwiXX0=-->
    
    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

commit 8bb59d7216f16ee7222f52dd1b609922e52486ea
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Mon Sep 23 09:54:44 2024 +0200

    Update Rust crate unicode_names2 to v1.3.0 (#13474)
    
    This PR contains the following updates:
    
    | Package | Type | Update | Change |
    |---|---|---|---|
    | [unicode_names2](https://redirect.github.com/progval/unicode_names2) |
    workspace.dependencies | minor | `1.2.2` -> `1.3.0` |
    
    ---
    
    ### Configuration
    
    📅 **Schedule**: Branch creation - "before 4am on Monday" (UTC),
    Automerge - At any time (no schedule defined).
    
    🚦 **Automerge**: Disabled by config. Please merge this manually once you
    are satisfied.
    
    ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
    rebase/retry checkbox.
    
    🔕 **Ignore**: Close this PR and you won't be reminded about this update
    again.
    
    ---
    
    - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
    this box
    
    ---
    
    This PR was generated by [Mend Renovate](https://mend.io/renovate/).
    View the [repository job
    log](https://developer.mend.io/github/astral-sh/ruff).
    
    <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC44MC4wIiwidXBkYXRlZEluVmVyIjoiMzguODAuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW50ZXJuYWwiXX0=-->
    
    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

commit 47aac060debf6c4183c8b044528092b73d428a37
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Mon Sep 23 09:40:02 2024 +0200

    Update Rust crate insta to v1.40.0 (#13472)
    
    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

commit 7c55330534641d207959a4f9ba6fa9cc8b5cdf2d
Author: Steve C <diceroll123@gmail.com>
Date:   Mon Sep 23 03:18:28 2024 -0400

    Fix formatting for analyze `direction` values (#13476)

commit 047d77c60bdca9bf2f121983ea9b85483a7c6df6
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Sun Sep 22 22:54:34 2024 -0400

    Update pre-commit dependencies (#13467)

commit 18fddd458a1fa9ba54a3d3f4b0ef771f7f24ae50
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Sun Sep 22 22:54:14 2024 -0400

    Update dependency eslint to v8.57.1 (#13465)

commit db7600052190b106935cd75909aeefa57fe89786
Author: Charlie Marsh <charlie.r.marsh@gmail.com>
Date:   Sun Sep 22 22:44:45 2024 -0400

    Use anchorlinks rather than permalinks (#13471)
    
    ## Summary
    
    See: https://github.com/astral-sh/uv/pull/7626

commit a2ed1e1cd1ee007a0912465e63a58a61f4eb637c
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Sun Sep 22 22:32:45 2024 -0400

    Update Rust crate thiserror to v1.0.64 (#13462)

commit 7457679582b23033d31c13579409f7c61e3a9c35
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Sun Sep 22 22:32:26 2024 -0400

    Update Rust crate dashmap to v6.1.0 (#13470)

commit 1d352872bafee550a11edef3543b40a59b5fc8e5
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Sun Sep 22 22:32:20 2024 -0400

    Update Rust crate codspeed-criterion-compat to v2.7.2 (#13469)

commit c8b905bc965ea41aedb73a3ccc67e14639d99cc7
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Sun Sep 22 22:32:11 2024 -0400

    Update NPM Development dependencies (#13468)

commit 5b593d0397fb28a3096a5bb26183c47c3c4bd8a0
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Sun Sep 22 22:32:02 2024 -0400

    Update dependency ruff to v0.6.7 (#13466)

commit c5c5acda230edcbfcf16a829d2fc212afe2386cb
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Sun Sep 22 22:31:53 2024 -0400

    Update Rust crate unicode-normalization to v0.1.24 (#13464)

commit 26747aae7539d1ce6469cbfc558fb249c2feb9e8
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Sun Sep 22 22:31:47 2024 -0400

    Update Rust crate unicode-ident to v1.0.13 (#13463)

commit 85b825a2a1bd271e0d1eb79feb8a25104fba1bc1
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Sun Sep 22 22:31:40 2024 -0400

    Update Rust crate syn to v2.0.77 (#13461)

commit 9e764ef6d0e3d102e57a6636db57e77f56960cbb
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Mon Sep 23 02:03:47 2024 +0000

    Update Rust crate serde_json to v1.0.128 (#13460)

commit 0e325a53efed3b6c824b75f968270194fb10f717
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Mon Sep 23 02:03:15 2024 +0000

    Update Rust crate serde to v1.0.210 (#13459)

commit 2a136cfb578954a42a40bc143b2c08823bcaca38
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Mon Sep 23 02:02:12 2024 +0000

    Update Rust crate pretty_assertions to v1.4.1 (#13458)

commit 7749164d4a02bc847ed4b564b9cf4f111855b829
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Mon Sep 23 02:01:44 2024 +0000

    Update Rust crate ordermap to v0.5.3 (#13457)

commit da50e14524c5424c368ea46379fc10e7ec74abad
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Mon Sep 23 02:00:23 2024 +0000

    Update Rust crate lsp-server to v0.7.7 (#13456)

commit 1886b731a5de82cdb01c2551dcc2dff58891d4e1
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Sun Sep 22 22:00:06 2024 -0400

    Update Rust crate ignore to v0.4.23 (#13455)

commit 364eddc95afb4cac68a0de79d9fbff96e2bcfe3e
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Sun Sep 22 22:00:01 2024 -0400

    Update Rust crate globset to v0.4.15 (#13454)

commit 48fb340e3b8aff3a6ace57036b815fd23b1a4fd4
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Sun Sep 22 21:59:50 2024 -0400

    Update Rust crate filetime to v0.2.25 (#13453)

commit 71bb4d3bdc38523b7b5dee34578aed18a584a17e
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Sun Sep 22 21:59:44 2024 -0400

    Update Rust crate clap to v4.5.18 (#13452)

commit 5c20f570d0a92d6a9c2d5f47876362b64d069a29
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date:   Mon Sep 23 01:58:14 2024 +0000

    Update Rust crate anyhow to v1.0.89 (#13451)

commit 7441da287fd8438c69d444a4df551f032167ebb2
Author: Charlie Marsh <charlie.r.marsh@gmail.com>
Date:   Sat Sep 21 16:47:30 2024 -0400

    Skip traversal for non-compound statements (#13441)
    
    ## Summary
    
    None of these can contain imports.

commit c2a5179d75d72fac9285353ad998e443a0a55e6d
Author: Charlie Marsh <charlie.r.marsh@gmail.com>
Date:   Sat Sep 21 16:14:32 2024 -0400

    Reuse `BTreeSets` in module resolver (#13440)
    
    ## Summary
    
    For dependencies, there's no reason to re-allocate here, since we know
    the paths are unique.

commit 17c4690b5ead2872ed8035d9a03a2af0cb0a1fa1
Author: Charlie Marsh <charlie.r.marsh@gmail.com>
Date:   Sat Sep 21 13:16:36 2024 -0400

    Bump version to v0.6.7 (#13439)
Created: 2024-09-30 Last update: 2025-09-26 14:30
lintian reports 3 warnings normal
Lintian reports 3 warnings about this package. You should make the package lintian clean getting rid of them.
Created: 2024-06-17 Last update: 2024-06-17 05:43
debian/patches: 33 patches to forward upstream low

Among the 33 debian patches available in version 0.0.291+dfsg1-4 of the package, we noticed the following issues:

  • 33 patches where the metadata indicates that the patch has not yet been forwarded upstream. You should either forward the patch upstream or update the metadata to document its real status.
Created: 2023-11-19 Last update: 2024-06-17 09:40
Standards version of the package is outdated. wishlist
The package should be updated to follow the last version of Debian Policy (Standards-Version 4.7.2 instead of 4.6.2.0).
Created: 2024-04-07 Last update: 2025-02-27 13:25
testing migrations
  • excuses:
    • Migration status for ruff (- to 0.0.291+dfsg1-4): BLOCKED: Rejected/violates migration policy/introduces a regression
    • Issues preventing migration:
    • ∙ ∙ Updating ruff would introduce bugs in testing: #1074734, #1108905
    • Additional info:
    • ∙ ∙ Piuparts tested OK - https://piuparts.debian.org/sid/source/r/ruff.html
    • ∙ ∙ 474 days old (needed 5 days)
    • Not considered
news
[rss feed]
  • [2025-05-11] ruff REMOVED from testing (Debian testing watch)
  • [2025-04-08] ruff 0.0.291+dfsg1-4 MIGRATED to testing (Debian testing watch)
  • [2024-08-17] ruff REMOVED from testing (Debian testing watch)
  • [2024-06-24] ruff 0.0.291+dfsg1-4 MIGRATED to testing (Debian testing watch)
  • [2024-06-16] Accepted ruff 0.0.291+dfsg1-4 (source) into unstable (James McCoy)
  • [2024-02-02] Accepted ruff 0.0.291+dfsg1-3 (source) into unstable (Jelmer Vernooij) (signed by: Jelmer Vernooij)
  • [2023-11-08] Accepted ruff 0.0.291+dfsg1-2 (source) into unstable (Jelmer Vernooij) (signed by: Jelmer Vernooij)
  • [2023-11-07] Accepted ruff 0.0.291+dfsg1-1 (source all amd64) into unstable (Debian FTP Masters) (signed by: Jelmer Vernooij)
bugs [bug history graph]
  • all: 6
  • RC: 2
  • I&N: 2
  • M&W: 2
  • F&P: 0
  • patch: 0
links
  • homepage
  • lintian (0, 3)
  • buildd: logs, cross
  • popcon
  • browse source code
  • edit tags
  • other distros
  • screenshots
  • debian patches

Debian Package Tracker — Copyright 2013-2025 The Distro Tracker Developers
Report problems to the tracker.debian.org pseudo-package in the Debian BTS.
Documentation — Bugs — Git Repository — Contributing