Skip to content

Bump ruff from 0.15.21 to 0.16.2 in /django - #479

Open
dependabot[bot] wants to merge 3 commits into
mainfrom
dependabot/uv/django/ruff-0.16.2
Open

Bump ruff from 0.15.21 to 0.16.2 in /django#479
dependabot[bot] wants to merge 3 commits into
mainfrom
dependabot/uv/django/ruff-0.16.2

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Aug 13, 2026

Copy link
Copy Markdown
Contributor

Bumps ruff from 0.15.21 to 0.16.2.

Release notes

Sourced from ruff's releases.

0.16.2

Release Notes

Released on 2026-08-06.

Bug fixes

  • [flake8-pyi] Avoid false positives on singledispatch functions (PYI041) (#27335)

Server

  • Register formatting capabilities dynamically to exclude TOML files (#27332)

Contributors

Install ruff 0.16.2

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.16.2/ruff-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/ruff/releases/download/0.16.2/ruff-installer.ps1 | iex"

Download ruff 0.16.2

File Platform Checksum
ruff-aarch64-apple-darwin.tar.gz Apple Silicon macOS checksum
ruff-x86_64-apple-darwin.tar.gz Intel macOS checksum
ruff-aarch64-pc-windows-msvc.zip ARM64 Windows checksum
ruff-i686-pc-windows-msvc.zip x86 Windows checksum
ruff-x86_64-pc-windows-msvc.zip x64 Windows checksum
ruff-aarch64-unknown-linux-gnu.tar.gz ARM64 Linux checksum
ruff-i686-unknown-linux-gnu.tar.gz x86 Linux checksum
ruff-powerpc64-unknown-linux-gnu.tar.gz PPC64 Linux checksum
ruff-powerpc64le-unknown-linux-gnu.tar.gz PPC64LE Linux checksum
ruff-riscv64gc-unknown-linux-gnu.tar.gz RISCV Linux checksum
ruff-s390x-unknown-linux-gnu.tar.gz S390x Linux checksum

... (truncated)

Changelog

Sourced from ruff's changelog.

0.16.2

Released on 2026-08-06.

Bug fixes

  • [flake8-pyi] Avoid false positives on singledispatch functions (PYI041) (#27335)

Server

  • Register formatting capabilities dynamically to exclude TOML files (#27332)

Contributors

0.16.1

Released on 2026-07-30.

Preview features

  • Add an option to opt out of human-readable names (#27160)
  • [flake8-pytest-style] Make fixes safe by default and unsafe only when comments are present (PT018) (#27201)
  • [pyupgrade] Skip fix when a defaulted TypeVar precedes a non-defaulted one (UP040, UP046, UP047) (#27133)
  • [ruff] Fix false positive with unpacked arguments (RUF065) (#26959)

Bug fixes

  • Bump gen-lsp-types to gracefully handle unknown enumeration values in LSP messages (#27230)
  • [flake8-bugbear] Mark range as immutable (B008) (#27247)
  • [flake8-comprehensions] NFKC-normalize keyword names in C408 fix (#26813)
  • [flake8-return] Fix false positive when variable is read in finally clause (RET504) (#25441)
  • [pydocstyle] Skip section detection inside RST directive bodies (D214, D405, D413) (#23635)
  • [refurb] Parenthesize yield arguments in the FURB192 fix (#27192)

Rule changes

  • [flake8-pytest-style] Mark PT022 fixes as unsafe (#26440)
  • [refurb] Mark fixes that remove unknown separators as unsafe (FURB105) (#27200)

Server

  • Fix indexing of excluded nested Ruff workspaces (#27303)
  • Lint TOML files in the LSP (#26862)

... (truncated)

Commits
  • 5b48a04 Bump 0.16.2 (#27555)
  • 1b9e5fc Update Swatinem/rust-cache action to v2.9.2 (#27568)
  • c4e86fc [ty] Add helper extension methods for half-range and equality constraints (#2...
  • 17a00de [ty] Reuse primer commands in memory reports (#27553)
  • 6ea296b [ty] Normalize type labels in structured docstrings (#26923)
  • 2fc445f [ty] Diagnose invalid getattr calls (#27502)
  • 22c7823 [ty] Enable (but downrank) auto-import completion suggestions from stub-only ...
  • 05160d5 [ty] Diagnose invalid descriptor __get__ calls (#27400)
  • baea3d0 [ty] Expose strict analysis options in the playground (#27543)
  • c88946e [ty] Bump ecosystem-analyzer for strict project settings (#27542)
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python:uv Pull requests that update python:uv code labels Aug 13, 2026
@srozen
srozen force-pushed the dependabot/uv/django/ruff-0.16.2 branch 2 times, most recently from bf729dd to f48277c Compare August 20, 2026 08:25
Comment thread django/nside_wefa/audit/__init__.py
Comment thread django/nside_wefa/audit/__init__.py
Comment thread django/nside_wefa/audit/__init__.py
Comment thread django/nside_wefa/audit/__init__.py
Comment thread django/nside_wefa/audit/__init__.py
dependabot Bot and others added 2 commits August 20, 2026 10:31
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.15.21 to 0.16.2.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](astral-sh/ruff@0.15.21...0.16.2)

---
updated-dependencies:
- dependency-name: ruff
  dependency-version: 0.16.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Ruff 0.16 widened the rules enabled when no `select` is configured, and
also began formatting Python code blocks embedded in Markdown. This repo
has never carried a ruff config, so the bump surfaced 167 lint errors and
6 unformatted docs files. Rather than pin the old defaults, adapt the
code.

Automatic fixes (138):
- UP006/UP035/UP045: PEP 585/604 built-in generics — `List[x]` -> `list[x]`,
  `Optional[x]` -> `x | None`, and `Callable`/`Iterable`/`Mapping` moved
  from `typing` to `collections.abc`.
- UP017: `datetime.timezone.utc` -> `datetime.UTC`.
- I001: import-block ordering.
- RUF022/RUF100: `__all__` ordering and unused noqa directives.

Manual fixes (29):
- RUF012: annotated genuinely-shared class attributes with `ClassVar`
  (serializer `Meta` options, migration `dependencies`/`operations`, the
  `audited_models` registry and its test stubs).
  DRF views are the exception — `APIView` declares `permission_classes` as
  an *instance* variable, so `ClassVar` there fails mypy with "Cannot
  override instance variable with class variable". Those use an immutable
  tuple instead, which satisfies RUF012 without fighting the base class.
- SIM117/SIM102: collapsed nested `with` and `if` statements.
- B017: `assertRaises(Exception)` -> `assertRaises(IntegrityError)` in the
  two one-to-one uniqueness tests; verified that is what is actually raised.
- B018: dropped a no-op `WefaLogEntry.objects.all().__class__` statement.
- C408: `dict(...)` -> literal. FURB162: redundant zero-offset tz replace.
- DTZ005: docs `datetime.now()` -> `datetime.now(tz=UTC)`.
- BLE001: the blind catch around `django.setup()` in docs/source/conf.py is
  deliberate (docs must build without Django), so it carries an explicit
  `noqa: BLE001` with the reason; RUF100 will flag it if it stops applying.

Markdown reformatting normalises the doc snippets to double quotes,
matching the codebase. Inline comments are preserved, including the
`nside_wefa.common` app-ordering note.

Note for future work: the migration files are Django-generated, so a newly
generated migration will need the same `ClassVar` annotations (or a
per-file ignore) to pass lint.

Verified: ruff check, ruff format --check, mypy, bandit, pysentry,
`makemigrations --check`, and 325 passing tests.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@srozen
srozen force-pushed the dependabot/uv/django/ruff-0.16.2 branch from f48277c to 66a24f5 Compare August 20, 2026 08:32
@srozen

srozen commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Re: the five Explicit export is not defined findings in django/nside_wefa/audit/__init__.py — these are false positives and I've resolved them rather than changed the code.

The module is a deliberate PEP 562 lazy-import module: __getattr__ resolves all eight exported names on first access, specifically so that import nside_wefa.audit does not pull in auditlog before django.setup() runs (as the docstring and inline comment explain). The static analyzer doesn't model module-level __getattr__, so it sees the __all__ entries as undefined.

Verified at runtime — every name in __all__ resolves:

AuditAppConfigMixin      -> <class 'nside_wefa.audit.registration.AuditAppConfigMixin'>
AuditEventImmutableError -> <class 'nside_wefa.audit.immutability.AuditEventImmutableError'>
AuditWriteError          -> <class 'nside_wefa.audit.api.AuditWriteError'>
Outcome                  -> <enum 'Outcome'>
audited / log / register / set_actor -> <function ...>

Adopting the suggested fix (real module-level bindings) would force the eager imports this module exists to avoid.

Worth noting these findings are not introduced by this PR — my only change to the file is RUF022 sorting __all__ alphabetically, which re-triggered the analyzer on an unchanged pattern.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python:uv Pull requests that update python:uv code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant