Skip to content

v2.0.0

Compare
Choose a tag to compare
@spladug spladug released this 17 Mar 21:40
· 217 commits to develop since this release

v2.0 is a major release with a number of breaking changes, focused mostly on cleaning up deprecated parts of the API to reduce confusion. The library is ~9,000 lines slimmer, has fewer dependencies, should be less confusing, and will be easier to maintain.

Changes

  • BREAKING: The minimum Python version is now 3.7.
  • The pool_size and max_overflow configurables are now parsed by the SQLAlchemy engine_from_config helpers. (also in v1.5.1, #533)
  • BREAKING: A number of deprecated backwards compatibility APIs were removed. (#534)
  • BREAKING: The HVAC client has been removed. It did not appear anyone was using this and the version we supported was very out of date. (#534)
  • BREAKING Vestigial support for Pyramid's pshell. Use baseplate-shell instead. (#534)
  • Make UnixUser/UnixGroup fall back to IDs if name isn't found (also in v1.5.1, #535)
  • BREAKING: Remove deprecated observer configuration functions (#536)
  • BREAKING: The experiments framework is now in its own library, experiments.py. (#538)
  • Improved type hinting on baseplate.lib.cached_property to make mypy happy with inheritance. (#540)
  • BREAKING: The edge_context definitions are now in their own library, edgecontext, shared between Python and Go! (#540)
  • BREAKING: Switch from Raven to Sentry SDK (#545)
  • BREAKING: The request.trace attribute is now named request.span to make it clearer it's not just for tracing, but rather the core of the whole observability system in Baseplate. (#546)
  • Switch to TCompactProtocol by default (#547)
  • BREAKING: Runtime metrics now use tags instead of complicated metric names. (#548)
  • Improve error messaging around context object reuse and span use after completion (#550)
  • Upgrade python-json-logger dependency (#551)
  • Change package name for cqlmapper to its new name on PyPI (#552)
  • Allow maximum mqueue size to be configured in trace and event publisher sidecars (also in v1.5.3, #553)
  • BREAKING: Rework tagged metrics to ensure proper aggregations. If you're using tagged metrics right now you'll need to update metrics queries. (#556)
  • Make trace IDs strings to allow us to change their format in the future (#557)
  • Add optional bool field "retryable" to Error in thrift definition (#559)
  • Allow sidecars to be configured to not crash if metrics or trace collectors respond with errors (#576)

Bug fixes

  • Fix swapped queue size / message size limits in tracing sidecar (also in v1.5.2, #537)
  • baseplate-script now defers loading the application until logging is set up. This makes it more consistent with baseplate-serve and allows applications to control their logging better. (#543)

Known Issues

  • Returning an HTTPException subclass as a response in a Pyramid application may result in no body content being returned to the client. This bug was introduced in v1.5.0. See #575.

Upgrading

As always, use the baseplate.py-upgrader to get automatic upgrades and advice on things that need to be done manually.