github dj-bolt/django-bolt v0.12.0

4 hours ago

What's Changed

  • Revert 338 fix/request affine django middleware by @FarhanAliRaza in #340
  • Fix Django middleware request affinity and dead database connections … by @FarhanAliRaza in #341
  • Fix release artifact smoke tests for free-threaded wheels by @FarhanAliRaza in #342
  • Drop EOL Django 4.2/5.0/5.1, derive CI matrix from classifiers by @jameswinegar in #344
  • test: cover recovery from dead database connections by @jameswinegar in #345
  • fix!: run async-only middleware on the loop, keep request.user on the request's thread by @jameswinegar in #343
  • test: drain the output pipes of runbolt servers while they run by @jameswinegar in #347
  • docs: note PGGSSENCMODE=disable for forked workers on macOS by @jameswinegar in #348
  • ci: skip build and test jobs on doc-only pull requests by @jameswinegar in #349
  • test: fix three races in the worker-loop dispatch probe test by @jameswinegar in #351
  • fix: valid JSON in 422 bodies; test clients send the encoded path by @jameswinegar in #353
  • test: make the TCP_NODELAY check robust to slow runners by @jameswinegar in #354
  • fix: convert and validate typed parameters by their wire name by @jameswinegar in #355
  • fix(auth): re-land #346 (JWT refresh-token hardening, dependency params) on master by @jameswinegar in #358
  • perf: bind each dependency at registration, not per request by @jameswinegar in #363
  • fix: decode + as a space in query strings by @jameswinegar in #362
  • test: make the explicit LOGGING test set explicit LOGGING by @jameswinegar in #360
  • chore(deps): bump pyjwt to 2.15.1 in uv.lock by @FarhanAliRaza in #367
  • fix: reject a bad typed WebSocket path or query value at the upgrade by @jameswinegar in #361
  • fix: convert and document rich parameter types; complete the OpenAPI type coverage by @jameswinegar in #359
  • chore: remove dead code found by vulture by @FarhanAliRaza in #356
  • Lower maturin version to 1.8.0 by @dmach in #366
  • feat(websocket): serve WebSocket connections from ASGI mounts by @huynguyengl99 in #335
  • Fix WebSocket routes showing twice in OpenAPI renderers by @FarhanAliRaza in #372
  • WebSocket subprotocol negotiation and handshake refactoring by @FarhanAliRaza in #371
  • fix: run thread-sensitive calls of plain async routes on the ORM pool by @FarhanAliRaza in #376
  • Remove DeepWiki badge from README by @FarhanAliRaza in #377
  • fix: drop the body of a 204 and validate the default status code only by @FarhanAliRaza in #393
  • fix(serializers): read cache_name so nested serializers work on Django 5.2 by @FarhanAliRaza in #395
  • fix(dev): runbolt --dev stops its worker on SIGTERM by @FarhanAliRaza in #403
  • fix(lane): give the lane of an async request back before the response leaves by @FarhanAliRaza in #401
  • fix(dev): reload for a file in a new or moved-in directory by @FarhanAliRaza in #399
  • ci: run Rust tests and clippy, run the brotli tests, make pytest strict by @jameswinegar in #379
  • feat(auth): add SessionAuthentication and remove OpenAPIConfig(django_auth) by @FarhanAliRaza in #394
  • fix(middleware): run process_view in the single DjangoMiddleware wrapper by @FarhanAliRaza in #406
  • ci: test the release wheel instead of building the extension in each job by @jameswinegar in #380
  • fix: reject wrongly typed or missing route metadata flags at registration by @jameswinegar in #388
  • fix(asgi): resolve a mount's client address with BOLT_TRUSTED_PROXIES by @bufke in #408
  • feat!: remove BasePermission; a guard is exactly AllowAny, IsAuthenticated or Requires by @FarhanAliRaza in #411
  • test: land the testing stack (#381–#391) on master by @FarhanAliRaza in #410
  • fix(dev): reload for a file written in a new directory before its watch by @FarhanAliRaza in #413
  • ci: measure the production request path with CodSpeed by @FarhanAliRaza in #412
  • perf: reduce production request and cookie overhead by @FarhanAliRaza in #414

New Contributors

Full Changelog: v0.11.1...v0.12.0

Don't miss a new django-bolt release

NewReleases is sending notifications on new releases.