v2.0.0
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
andmax_overflow
configurables are now parsed by the SQLAlchemyengine_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
. Usebaseplate-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 namedrequest.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 withbaseplate-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.