{ "info": { "author": "4teamwork AG", "author_email": "mailto:info@4teamwork.ch", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License (GPL)", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "sentry-regressions\n==================\n\n``sentry-regressions`` is a Sentry plugin that allows to better control\nregression handling with non-linear backport releases.\n\nIn particular, this plugin considers the release versions when determining\nwhether an event is a regression or not, whereas stock Sentry does not. This\nis of particular relevance if you're dealing with backport releases, where\na bugfix gets backported to a *lower* release that is more *recent* than the\none the issue was tagged as to be resolved in.\n\nConsider this example:\n\n- You release ``8.0``\n- You find a trivial bug, and fix it in ``master``\n- You release ``8.1``, containing that fix\n- You resolve the Sentry issue as \"resolved in 8.1\"\n- Now you backport a *different*, crucial fix from ``master`` back to an ``8.0.x`` LTS branch\n- You release ``8.0.1``, which contains the crucial fix, but not the trivial one\n\nSo in chronological order you created the following releases:\n\n- ``8.0``\n- ``8.1``\n- ``8.0.1``\n\nIf the trivial bug now occurs again in ``8.0.1``, stock Sentry will incorrectly\nflag it as a regression, and reopen the issue. It's not a regression however,\nbecause the trivial bug was never *supposed* to be fixed in ``8.0.1``, only\nin ``8.1``. But because stock Sentry stricly goes by chronological release\ndates, it considers the release ``8.0.1`` \"higher\" than ``8.1``.\n\nThis regression plugin will instead take actual **release versions** into\naccount when detecting regressions, by parsing version strings and comparing\nthem correctly (including natural sort order for numbers).\n\nFor parsing versions strings, the plugin will attempt to use the ``packaging``\nmodule (via `pkg_resources.parse_version() `_)\nif available to parse versions according to `Python's PEP440 `_.\n\nWhile this is certainly suited for versions used in Python packages, the\nversion specification outlined in PEP 440 is pretty universal in its core,\nand should be applicable to many other programming languages' versioning\nconventions, unless you're using a very exotic versioning scheme.\n\n\nInstallation\n============\n\nSimply install the plugin via ``pip``:\n\n.. code:: bash\n\n pip install sentry-regressions\n\nThe plugin then needs to be enabled on a per-project basis:\n\n- Go to a Sentry project\n- Settings\n- Integrations -> All Integrations\n- Enable the ``RegressionPlugin`` for the project\n\nCompatibility\n=============\n\nTested with:\n\n- Sentry 9.1\n- Sentry 8.22\n\n\nDevelopment\n===========\n\n- Create a virtualenv and activate it\n- Create a `Python Install of Sentry `_\n- ``git clone https://github.com/4teamwork/sentry-regressions.git``\n- ``cd sentry-regressions``\n- ``pip install -e .``\n\n\nLinks\n=====\n\n- Github: https://github.com/4teamwork/sentry-regressions\n- Issues: https://github.com/4teamwork/sentry-regressions/issues\n- Pypi: http://pypi.python.org/pypi/sentry-regressions\n\n\nCopyright\n=========\n\nThis package is copyright by `4teamwork `_.\n\n``sentry-regressions`` is licensed under GNU General Public License, version 2.\n\nChangelog\n=========\n\n\n1.0.0 (2019-05-20)\n------------------\n\n- Initial implementation.\n [lgraf]", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/4teamwork/sentry-regressions", "keywords": "Sentry Regressions Plugin", "license": "GPL2", "maintainer": "", "maintainer_email": "", "name": "sentry-regressions", "package_url": "https://pypi.org/project/sentry-regressions/", "platform": "", "project_url": "https://pypi.org/project/sentry-regressions/", "project_urls": { "Homepage": "https://github.com/4teamwork/sentry-regressions" }, "release_url": "https://pypi.org/project/sentry-regressions/1.0.0/", "requires_dist": null, "requires_python": "", "summary": "Sentry Plugin to better control regression handling", "version": "1.0.0" }, "last_serial": 5823410, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "39f1f1cb684abea1d938b78b771e3718", "sha256": "20ce576508e5ff2922d48f0b9b3571b587d384b80a1e6662b3caff01672b0001" }, "downloads": -1, "filename": "sentry-regressions-1.0.0.tar.gz", "has_sig": false, "md5_digest": "39f1f1cb684abea1d938b78b771e3718", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11988, "upload_time": "2019-05-20T11:36:55", "url": "https://files.pythonhosted.org/packages/e2/d5/d1cb0f5a41da99972a3d18c7e40231d1aba886e9f6f2783e6117ea03876c/sentry-regressions-1.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "39f1f1cb684abea1d938b78b771e3718", "sha256": "20ce576508e5ff2922d48f0b9b3571b587d384b80a1e6662b3caff01672b0001" }, "downloads": -1, "filename": "sentry-regressions-1.0.0.tar.gz", "has_sig": false, "md5_digest": "39f1f1cb684abea1d938b78b771e3718", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11988, "upload_time": "2019-05-20T11:36:55", "url": "https://files.pythonhosted.org/packages/e2/d5/d1cb0f5a41da99972a3d18c7e40231d1aba886e9f6f2783e6117ea03876c/sentry-regressions-1.0.0.tar.gz" } ] }