Skip to content

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

1.2.0 - 2026-09-12

Changed

  • Raised the minimum Scrapy version to 2.7 (async downloader middlewares, get_retry_request) and set sensible lower bounds for itemadapter and twisted
  • Dropped the unused direct jmespath and w3lib dependencies (both still come in transitively via Scrapy)
  • Removed the obsolete v0/ source tree (pre-1.0 setup.py package)
  • Updated pre-commit-hooks (v4 → v6) and the CI actionlint version
  • Migrated pyproject.toml to the standard PEP 621 [project] table (requires poetry-core >= 2.0)
  • Bumped the Development Status classifier to Production/Stable

Added

  • Test suite covering all modules (100% coverage)

Fixed

  • AuthHeaderMiddleware is now importable from the top-level scrapy_extensions package (it was added in 1.1.0 but only reachable via its full module path)
  • BlurHashPipeline.from_crawler now actually checks that the optional blurhash extra is installed before enabling the pipeline (the previous find_spec call was a no-op and never detected missing libraries)
  • DelayedRetryMiddleware and NicerAutoThrottle now correctly raise NotConfigured / fall back when *_HTTP_CODES contain non-numeric values (the ValueError guard was previously dead code due to a lazy generator)

1.1.0 - 2025-10-16

Changed

  • Added support for Py3.14; dropped Py3.9
  • Rewrite DelayedRetryMiddleware to use async instead of Twisted Deferred

Added

1.0.2 - 2024-11-18

Fixed

  • Better imports

1.0.1 - 2024-11-17

Fixed

  • Fixed a bug in DelayedRetryMiddleware which resulted in problems with the Twisted reactor

1.0.0 - 2024-11-17

Added

  • Initial release as v1. Ported over the following classes:
  • BlurHashPipeline
  • DelayedRetryMiddleware
  • LoopingExtension
  • NicerAutoThrottle
  • QuietLogFormatter