Skip to main content

sentry-regressions

sentry-regressions is a Sentry plugin that allows to better control regression handling with non-linear backport releases.

In particular, this plugin considers the release versions when determining whether an event is a regression or not, whereas stock Sentry does not. This is of particular relevance if you’re dealing with backport releases, where a bugfix gets backported to a lower release that is more recent than the one the issue was tagged as to be resolved in.

Consider this example:

  • You release 8.0

  • You find a trivial bug, and fix it in master

  • You release 8.1, containing that fix

  • You resolve the Sentry issue as “resolved in 8.1”

  • Now you backport a different, crucial fix from master back to an 8.0.x LTS branch

  • You release 8.0.1, which contains the crucial fix, but not the trivial one

So in chronological order you created the following releases:

  • 8.0

  • 8.1

  • 8.0.1

If the trivial bug now occurs again in 8.0.1, stock Sentry will incorrectly flag it as a regression, and reopen the issue. It’s not a regression however, because the trivial bug was never supposed to be fixed in 8.0.1, only in 8.1. But because stock Sentry stricly goes by chronological release dates, it considers the release 8.0.1 “higher” than 8.1.

This regression plugin will instead take actual release versions into account when detecting regressions, by parsing version strings and comparing them correctly (including natural sort order for numbers).

For parsing versions strings, the plugin will attempt to use the packaging module (via pkg_resources.parse_version()) if available to parse versions according to Python’s PEP440.

While this is certainly suited for versions used in Python packages, the version specification outlined in PEP 440 is pretty universal in its core, and should be applicable to many other programming languages’ versioning conventions, unless you’re using a very exotic versioning scheme.

Installation

Simply install the plugin via pip:

pip install sentry-regressions

The plugin then needs to be enabled on a per-project basis:

  • Go to a Sentry project

  • Settings

  • Integrations -> All Integrations

  • Enable the RegressionPlugin for the project

Compatibility

Tested with:

  • Sentry 9.1

  • Sentry 8.22

Development

  • Create a virtualenv and activate it

  • Create a Python Install of Sentry

  • git clone https://github.com/4teamwork/sentry-regressions.git

  • cd sentry-regressions

  • pip install -e .

Changelog

1.0.0 (2019-05-20)

  • Initial implementation. [lgraf]

Release files for sentry-regressions 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sentry-regressions 1.0.0
File Size Uploaded
sentry-regressions-1.0.0.tar.gz 12.0 kB Details

Release files / sentry-regressions-1.0.0.tar.gz

Download URL sentry-regressions-1.0.0.tar.gz
Size 12.0 kB
Tags Source
SHA-256 checksum
How to use checksums
20ce576508e5ff2922d48f0b9b3571b587d384b80a1e6662b3caff01672b0001
BLAKE2b-256 checksum
How to use checksums
e2d5d1cb0f5a41da99972a3d18c7e40231d1aba886e9f6f2783e6117ea03876c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.9.1 pkginfo/1.4.1 requests/2.18.4 setuptools/36.2.7 requests-toolbelt/0.8.0 tqdm/4.15.0 CPython/2.7.12

Release history Release notifications | RSS feed

This release

1.0.0 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page