Summary
This release continues to focus on addressing suboptimal experiences (a.k.a papercuts).
But first... big thanks to our first time contributors @am1ru1, @houbie - thank you for helping us improve everyone's experience!
Major improvements you should know
- Fully mypy compliant. After a multi-month task addressing over 600 issues, Mypy users can accurately use all 14 utilities typing annotations - thanks @mploski for getting us to the finishing line!
- New specialized Event Handler Resolvers. When using
ApiGatewayResolver
to access event properties, customers didn't have full IntelliSense support from their IDEs. This release introducesAPIGatewayRestResolver
,APIGatewayHttpResolver
, andALBResolver
to accurately provide self-documented access to all properties available - big thanks to @michaelbrewer. - Testing your code docs. We've updated Parameters & Event Handler GraphQL docs to be more realistic on how you can unit test your code - thanks to @cakepietoast
Roadmap changes
We're going to fully turn our attention to our list of papercuts. Due to new features and other bugs, we let it slip a couple of times, one being as old as ~7 months. We also learned that a central roadmap didn't work well for us. It made planning harder due to the split view (2x repos to look at) situation despite its best intentions.
With GitHub's new Beta projects, we're confident we can migrate the roadmap back to each repository and give the visibility customers have been asking us. That is work we're currently doing, themes that need further research, areas we'd love contributions, and ideas we'd love to execute but lack bandwidth.
Once this is complete, we will start a draft RFC of what a modularized Powertools v2 could look like. We will take everyone's input as much as possible to help shape what breaking changes are necessary, how we might facilitate new utilities like Testing, and what an early beta as well as migration guide should look like.
Changes
πNew features and non-breaking changes
- feat(event-handler): new resolvers to fix current_event typing (#978) by @michaelbrewer
- feat(logger): log_event support event data classes (e.g. S3Event) (#984) by @michaelbrewer
- feat(mypy): complete mypy support for the entire codebase (#943) by @mploski
π Documentation updates
- docs: fix syntax errors and line highlights (#1004) by @michaelbrewer
- docs(parameters): add testing your code section (#1017) by @cakepietoast
- docs(theme): upgrade mkdocs-material to 8.x (#1002) by @heitorlessa
- docs(event-handler): improve testing section for graphql (#996) by @cakepietoast
- docs(tutorial): fix broken internal links (#1000) by @heitorlessa
- feat(event-handler): new resolvers to fix current_event typing (#978) by @michaelbrewer
- fix(docs): indentation in tutorial snippets (#988) by @am1ru1
- fix(apigateway): remove indentation in debug_mode (#987) by @heitorlessa
π Bug and hot fixes
- fix(batch): delete >10 messages in legacy sqs processor (#818) by @whardier
- fix(logger): exclude source_logger in copy_config_to_registered_loggers (#1001) by @houbie
- feat(event-handler): new resolvers to fix current_event typing (#978) by @michaelbrewer
- fix(logger): test generates logfile (#971) by @michaelbrewer
- fix(docs): indentation in tutorial snippets (#988) by @am1ru1
- fix(apigateway): remove indentation in debug_mode (#987) by @heitorlessa
π§ Maintenance
- chore(metrics): fix tests when warnings are disabled (#994) by @michaelbrewer
- docs(theme): upgrade mkdocs-material to 8.x (#1002) by @heitorlessa
- feat(mypy): complete mypy support for the entire codebase (#943) by @mploski
- chore(deps-dev): bump flake8-bugbear from 21.11.29 to 22.1.11 (#955) by @dependabot
This release was made possible by the following contributors:
@am1ru1, @cakepietoast, @dependabot, @dependabot[bot], @heitorlessa, @houbie, @mergify[bot], @michaelbrewer, @mploski and @whardier