Changelog
All notable changes to this project will be documented in this file.
2.7.1 (2025-07-24)
🐛 Bug Fixes
- Add back support for Python 3.9.
2.7.0 (2025-07-14)
🚀 Features
- Expose
logger
argument onActor.call
to control log redirection from started Actor run (#487) (aa6fa47) by @Pijukatel - crypto: Decrypt secret objects (#482) (ce9daf7) by @MFori
2.6.0 (2025-06-09)
🚀 Features
- Add
RemainingTime
option fortimeout
argument ofActor.call
andActor.start
(#473) (ba7f757) by @Pijukatel, closes #472
🐛 Bug Fixes
- Fix duplicate logs from apify logger in Scrapy integration (#457) (2745ee6) by @vdusek, closes #391
- Prefer proxy password from env var (#468) (1c4ad9b) by @stepskop
2.5.0 (2025-03-27)
🚀 Features
- Implement Scrapy HTTP cache backend (#403) (137e3c8) by @honzajavorek
🐛 Bug Fixes
- Fix calculation of CPU utilization from SystemInfo events (#447) (eb4c8e4) by @janbuchar
2.4.0 (2025-03-07)
🚀 Features
- Update to Crawlee v0.6 (#420) (9be4336) by @vdusek
- Add Actor
exit_process
option (#424) (994c832) by @vdusek, closes #396, #401 - Upgrade websockets to v14 to adapt to library API changes (#425) (5f49275) by @Mantisus, closes #325
- Add signing of public URL (#407) (a865461) by @danpoletaev
2.3.1 (2025-02-25)
🐛 Bug Fixes
- Allow None value in 'inputBodyLen' in ActorRunStats (#413) (1cf37f1) by @janbuchar
2.3.0 (2025-02-19)
🚀 Features
- Add
rate_limit_errors
property forApifyStorageClient
(#387) (89c230a) by @Mantisus, closes #318 - Unify Apify and Scrapy to use single event loop & remove
nest-asyncio
(#390) (96949be) by @vdusek, closes #148, #176, #392 - Support pay-per-event via
Actor.charge
(#393) (78888c4) by @janbuchar, closes #374
🐛 Bug Fixes
- Fix RQ usage in Scrapy scheduler (#385) (3363478) by @vdusek
- Make sure that Actor instances with non-default configurations are also accessible through the global Actor proxy after initialization (#402) (b956a02) by @janbuchar, closes #397
2.2.1 (2025-01-17)
🐛 Bug Fixes
- Better event listener type definitions (#354) (52a6dee) by @janbuchar, closes #344
2.2.0 (2025-01-10)
🚀 Features
- Add new config variables to
Actor.config
(#351) (7b6478c) by @fnesveda - Upgrade to Crawlee v0.5 (#355) (826f4db) by @vdusek
🐛 Bug Fixes
- Better error message when attempting to use force_cloud without an Apify token (#356) (33245ce) by @janbuchar
- Allow calling
Actor.reboot()
from migrating handler, align reboot behavior with JS SDK (#361) (7ba0221) by @fnesveda
2.1.0 (2024-12-03)
🚀 Features
- Handle request list user input (#326) (c14fb9a) by @Pijukatel, closes #310
🐛 Bug Fixes
2.0.2 (2024-11-12)
🐛 Bug Fixes
- Fix CPU usage calculation (#315) (0521d91) by @janbuchar
- Set version constraint of the
websockets
dependency to <14.0.0 (#322) (15ad055) by @Pijukatel - Fix Dataset.iter_items for apify_storage (#321) (2db1beb) by @Pijukatel, closes #320
2.0.1 (2024-10-25)
🚀 Features
- Add standby URL, change default standby port (#287) (8cd2f2c) by @jirimoravcik
- Add crawlee version to system info print (#304) (c28f38f) by @vdusek
🐛 Bug Fixes
- Adjust tests of scrapy user data (#284) (26ffb15) by @janbuchar
- Use HttpHeaders type in Scrapy integration (#289) (3e33e91) by @vdusek
- Allow empty timeout_at env variable (#303) (b67ec98) by @janbuchar, closes #596
2.0.0 (2024-09-10)
🚀 Features
- Better Actor API typing (#256) (abb87e7) by @janbuchar, closes #243
- Expose Request from Crawlee (#266) (1f01278) by @vdusek
- Automatically configure logging (#271) (1906bb2) by @janbuchar
🐛 Bug Fixes
- Make apify.log public again (#249) (22677f5) by @janbuchar
- Dataset list response handling (#257) (0ea57d7) by @janbuchar
- Ignore deprecated platform events (#258) (ed5ab3b) by @janbuchar
- Possible infinity loop in Apify-Scrapy proxy middleware (#259) (8647a94) by @vdusek
- Hotfix for batch_add_requests batch size limit (#261) (61d7a39) by @janbuchar
Refactor
- [breaking] Preparation for v2 release (#210) (2f9dcc5) by @janbuchar, closes #135, #137, #138, #147, #149, #237
Chore
- [breaking] Drop support for Python 3.8
1.7.2 - 2024-07-08
- Add Actor Standby port
1.7.1 - 2024-05-23
🐛 Bug Fixes
- Set a timeout for Actor cleanup
1.7.0 - 2024-03-12
🚀 Features
- Add a new way of generating the
uniqueKey
field of the request, aligning it with the Crawlee.
🐛 Bug Fixes
- Improve error handling for
to_apify_request
serialization failures - Scrapy's
Request.dont_filter
works.
1.6.0 - 2024-02-23
🐛 Bug Fixes
- Update of Scrapy integration, fixes in
ApifyScheduler
,to_apify_request
andapply_apify_settings
.
Chore
- Remove
ApifyRetryMiddleware
and stay with the Scrapy's default one
1.5.5 - 2024-02-01
🐛 Bug Fixes
- Fix conversion of
headers
fields in Apify <--> Scrapy request translation
1.5.4 - 2024-01-24
🐛 Bug Fixes
- Fix conversion of
userData
andheaders
fields in Apify <--> Scrapy request translation
1.5.3 - 2024-01-23
🚀 Features
- Add
apply_apify_settings
function to Scrapy subpackage
1.5.2 - 2024-01-19
🐛 Bug Fixes
- Add missing import check to
ApifyHttpProxyMiddleware
Chore
- Create a new subpackage for Scrapy pipelines
- Remove some noqas thanks to the new Ruff release
- Replace relative imports with absolute imports
- Replace asserts with custom checks in Scrapy subpackage
1.5.1 - 2024-01-10
Chore
- Allowed running integration tests from PRs from forks, after maintainer approval
- Do not close
nested_event_loop
in theScheduler.__del__
1.5.0 - 2024-01-03
🚀 Features
- Add
ApifyHttpProxyMiddleware
1.4.1 - 2023-12-21
🐛 Bug Fixes
- Resolve issue in
ApifyRetryMiddleware.process_exception()
, where requests were getting stuck in the request queue
Chore
- Fix type hint problems for resource clients
1.4.0 - 2023-12-05
Chore
- Migrate from Autopep8 and Flake8 to Ruff
1.3.0 - 2023-11-15
🚀 Features
- Add
scrapy
extra
1.2.0 - 2023-10-23
🚀 Features
- Add support for Python 3.12
Chore
- Fix lint error (E721) in unit tests (for instance checks use
isinstance()
)
1.1.5 - 2023-10-03
🚀 Features
- Update the Apify log formatter to contain an option for adding the logger name
Chore
- Rewrite documentation publication to use Docusaurus
- Remove PR Toolkit workflow
1.1.4 - 2023-09-06
🐛 Bug Fixes
- Resolve issue with querying request queue head multiple times in parallel
Chore
- Fix integration tests for Actor logger
- Remove
pytest-randomly
Pytest plugin - Unpin
apify-client
andapify-shared
to improve compatibility with their newer versions
1.1.3 - 2023-08-25
Chore
- Unify indentation in configuration files
- Update the
Actor.reboot
method to use the new reboot endpoint
1.1.2 - 2023-08-02
Chore
- Start importing general constants and utilities from the
apify-shared
library - Simplify code via
flake8-simplify
- Start using environment variables with prefix
ACTOR_
instead of some with prefixAPIFY_
- Pin
apify-client
andapify-shared
to prevent their implicit updates from breaking SDK
1.1.1 - 2023-05-23
🐛 Bug Fixes
- Relax dependency requirements to improve compatibility with other libraries
1.1.0 - 2023-05-23
🚀 Features
- Add option to add event handlers which accept no arguments
- Add support for
is_terminal
flag in status message update - Add option to set status message along with
Actor.exit()
🐛 Bug Fixes
- Start enforcing local storage to always use the UTF-8 encoding
- Fix saving key-value store values to local storage with the right extension for a given content type
Chore
- Switch from
setup.py
topyproject.toml
for specifying project setup
1.0.0 - 2023-03-13
🐛 Bug Fixes
- Fix
RequestQueue
not loading requests from an existing queue properly
Chore
- Update to
apify-client
1.0.0 - Start triggering base Docker image builds when releasing a new version
0.2.0 (2023-03-06)
🚀 Features
- Add chunking mechanism to push_data, cleanup TODOs (#67) (5f38d51) by @jirimoravcik
0.1.0 (2023-02-09)
🚀 Features
- Implement MemoryStorage and local storage clients (#15) (b7c9886) by @jirimoravcik
- Implement Dataset, KeyValueStore classes, create storage management logic (#21) (d1b357c) by @jirimoravcik
- Implement RequestQueue class (#25) (c6cad34) by @jirimoravcik
- Add test for get_env and is_at_home (#29) (cc45afb) by @drobnikj
- Updating pull request toolkit config [INTERNAL] (387143c) by @mtrunkat
- Add documentation for
StorageManager
andStorageClientManager
, open_* methods inActor
(#34) (3f6b942) by @jirimoravcik - Add tests for actor lifecycle (#35) (4674728) by @drobnikj
- Add docs for
Dataset
,KeyValueStore
, andRequestQueue
(#37) (174548e) by @jirimoravcik - Docs string for memory storage clients (#31) (8f55d46) by @drobnikj
- Add test for storage actor methods (#39) (b89bbcf) by @drobnikj
- Various fixes and improvements (#41) (5bae238) by @jirimoravcik
- Add the rest unit tests for actor (#40) (72d92ea) by @drobnikj
- Decrypt input secrets if there are some (#45) (6eb1630) by @drobnikj
- Add a few integration tests (#48) (1843f48) by @drobnikj
- Add integration tests for storages, proxy configuration (#49) (fd0566e) by @jirimoravcik
- Unify datetime handling, remove utcnow() (#52) (09dd8ac) by @jirimoravcik
- Separate ID and name params for
Actor.open_xxx
(#56) (a1e962e) by @jirimoravcik