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 .
Links
Copyright
This package is copyright by 4teamwork.
sentry-regressions is licensed under GNU General Public License, version 2.
Changelog
1.0.0 (2019-05-20)
Initial implementation. [lgraf]
Metadata
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)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| sentry-regressions-1.0.0.tar.gz | 12.0 kB | Without provenance | Details for sentry-regressions-1.0.0.tar.gz |
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
|
Security for sentry-regressions 1.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.