Skip to content

v0.39.0

Compare
Choose a tag to compare
@github-actions github-actions released this 30 Jul 17:30
· 183 commits to main since this release
5eb1235

v0.39.0 (2024-07-27)

Highlights

  • The json module can now be used within stream maps

    stream_maps:
      animals:
        id: id
        data: "json.dumps({'description': description, 'verified': verified, 'views': views, 'created_at': created_at})"
        __else__: null
  • The crypto dependencies PyJWT and cryptography are now optional and can be installed by requesting the jwt extra, i.e. singer-sdk[jwt]. These are only currently required for JWT authentication, but if your package depends on any of these, make sure the dependency is explicit.

  • The pendulum and python-dateutil dependencies are no longer used by this library and will be removed in a future release. If your package relies on any of them, make sure the dependency is explicit.

  • We're working on supporting msgspec for more performant IO, so keep an eye out for that 😉.

✨ New

  • #2432 Developers can now customize the default logging configuration for their taps/targets by adding default_logging.yml to their package
  • #2531 The json module is now avaiable to stream maps -- Thanks @grigi!
  • #2529 Stream sync context is now available to all instances methods as a Stream.context attribute

🐛 Fixes

  • #2554 Use mapped stream aliases when handling ACTIVATE_VERSION messages in the base target class
  • #2526 Moved up the supported Python versions in the Markdown output of --about

⚙️ Under the Hood

  • #2564 Make SQLSink a generic with a SQLConnector type parameter
  • #2540 Implement abstract serialize_message for Singer writers
  • #2259 Centralize JSON SerDe into helper functions -- Thanks @BuzzCutNorman!
  • #2525 Make PyJWT and cryptography dependencies optional
  • #2528 Moved class-level attributes to the top in REST tap template
  • #2132 Limit internal usage of pendulum

📚 Documentation Improvements

  • #2557 Document that get_starting_timestamp requires setting a non-null replication_key
  • #2556 Reference state partitioning in stream partitioning page
  • #2536 Prepare for RTD addons migration
  • #2535 Added more intersphinx links to Python and Faker docs
  • #2530 Explained how the request URL is generated from url_base, path and the sync context
  • #2527 Updated the footer
  • #2506 Fixed a typo in the stream maps docs