Skip to content

v5.0.0

Compare
Choose a tag to compare
@psrok1 psrok1 released this 27 Jul 10:02
· 44 commits to master since this release
3d8d3c9

This major release is focused mainly on fixing reliability and extensibility issues noticed during development of various Karton services. As always, we have tried not to make serious breaking changes, so 5.x.x Karton services are able to communicate with 4.x.x and you can do a rolling upgrade. If you want to perform an upgrade: it's recommended to start with upgrading karton-system to the latest version.

In this release we've also included few long-awaited features.

Breaking changes (more details):

  • Karton Core uses Boto3 S3 API client instead of Minio-Py. karton.ini should be changed to new configuration scheme ([s3] section). [minio] section is still supported but deprecated.

    - [minio]
    + [s3]
      access_key = karton-test-access
      secret_key = karton-test-key
    - address = localhost:9000
    + address = http://localhost:9000
      bucket = karton
    - secure = 0

    Thanks @mak for implementing the Boto3 support (#190)

  • Config uses plain dict internally instead of ConfigParser object and provides slightly different interface for configuration item access. (#176)

  • Consumer.process method must get task argument (currently processed task). Variant with no arguments is no longer supported. (dropped support as a part of #175)

  • Enforced correct Karton.main() invocation. Karton().main() will throw TypeError. (#182)

New features and improvements:

  • Support for filter wildcards and exclusions (#179)
  • Support for resources nested in lists and dicts (#186, thanks @mak for suggestions to the implementation #189)
  • Better support for configuration/CLI arguments extensions (#176)
  • LocalResource supports file-like object as contents source (#187)
  • Support for db/username arguments in Redis configuration (#184)
  • Task timeout can be set to recover from hang during task processing (#175)
  • Karton System GC timeouts are now configurable (#161, thanks @rakovskij-stanislav!)
  • Added configurable socket timeout for Redis connection to improve handling of network issues (#184)

Bugfixes:

  • Redis client name is no longer lost after reconnection, so count of Karton service replicas will be not affected after network issues (#173)
  • Prevented double logging in case of logging.basicConfig or construction of multiple Karton service objects (#172)
  • Fixed resource handling in test utils (#180)
  • Fixed SIGINT/SIGTERM handling (#181)
  • Fixed method name typo in Karton System (#162, thanks @MaitreRenard!)