Potentially breaking changes:
- Update minimum Flask and Django versions (#132) (2026-01-20)
Bug Fixes:
- Add Flask middleware tests and fix signal handler (#139) (2026-01-21)
Improvements:
- Add type hints to public API for better IDE and AI support (#136) (2026-01-20)
Internal changes:
- Migrate test infrastructure to pytest (#134) (2026-01-20)
- Use stable Python 3.14 instead of beta in CI (#133) (2026-01-20)
- Update GitHub Actions to latest versions (#130) (2026-01-20)
- Replace black and flake8 with ruff (#128) (2026-01-13)
Internal changes:
- Migrated build system from
setup.pytohatchlingbackend withpyproject.toml. - Removed legacy build files (
setup.py,MANIFEST,MANIFEST.in). - Updated CI workflow to use modern build commands.
- Updated
RELEASING.mddocumentation.
Bug Fixes:
- Improved
enforce_payload_size_limitfunctionality.
Breaking changes:
- Filter keys support wildcard matching. See README for details.
Features:
- Added
set_customdatatoRaygunSender.
Bug Fixes:
- Ensure
on_grouping_keyalways provides aRaygunMessageobject to the callback.
Internal changes:
- Fix static analysis errors and code formatting.
- GitHub CI setup.
Breaking changes:
- Support for Python 2.7 has been dropped
Bug Fixes:
- Removes largest local/global variables in crash payload to ensure payload size limit is not breached (optional)
- We now provide
enforce_payload_size_limitandlog_payload_size_limit_breachesas configuration options, both enabled by default - These control whether the provider will attempt to remove variables if there is an oversized payload and log which variables were removed
- We now provide
Features:
- Added
RaygunHandler.from_sender()factory to construct aRaygunHandlerinstance using an existingRaygunSender. This allows for additional configuration of the sender. - Added a
configparameter the to Flask and WSGI middleware provider constructors. This also allows for additional configuration of the sender. - The
RaygunHandlernow adds tags corresponding to the logging level, which now defaults tologging.ERROR. - Errors/exceptions sent via the
RaygunHandlernow have their message overriden by the logged message. Bug fixes: - The
RaygunHandlernow attempts to captureexc_infofrom therecord. This can be obtained iflogger.exception()is used or ifexc_info=Trueis set in the logger call.- If
exc_infocannot be obtained by theRaygunHandler, it no longer attempts to construct aRaygunErrorMessagewithNonevalues. Instead, it generates a fallback error message using information gathered from therecord. This is essentially an error with a single stack frame representing the call to the logger. Quality of life updates:
- If
- Updated
CONTRIBUTING.MD. - Got unit tests running again (
djangoupgrade). - Updated
python3/samples/sample.pyandpython3/samples/sampleWithLogging.py. - Cleaned up
python3/raygun4py/cli.py.
Features:
- Added a new config option,
transmit_environment_variables, to control sending any environment variables at all - Added support to
filter_keysconfig option for ignoring keys with a simple wildcard approach. See README for more information
Bugfixes
- Add request
rawDatato thebuild_wsgi_compliant_requestutilities to fix a bug whererawDatais set manually then overwritten by an empty object.
Bugfixes
- Fix
set_request_detailsbuilder method not returning self causing it to be unchainable
Bugfixes
Thanks to @brock for both of these changes
BugFixes
- Further improved WSGI request handling and fixes problems with forms and WSGI requests (#76)
Thanks @ericb-granular
Bugfix:
- Fix request building in WSGI middlewares that had not been updated to use the new improved WSGI request handling, thanks for noticing @ericb-granular (#73)
Breaking changes:
- Support for Python 2.6 has been dropped
Features:
- Improved WSGI request request handling, Thanks @ericb-granular (#70)