summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2022-01-10 10:01:29 +0100
committerFlorian Bruhin <me@the-compiler.org>2022-01-10 10:01:29 +0100
commit10267f70e3dbf5bf3d80b52bdc6702597d160cdf (patch)
treea5e8b8f4393c2bed0b4dfb255554e82a478b5e8f
parentd491da13ccd2976d6d50016ade8b24e25e2e2158 (diff)
downloadqutebrowser-10267f70e3dbf5bf3d80b52bdc6702597d160cdf.tar.gz
qutebrowser-10267f70e3dbf5bf3d80b52bdc6702597d160cdf.zip
scripts: Move changelog URLs to JSON
-rw-r--r--scripts/dev/changelog_urls.json162
-rw-r--r--scripts/dev/misc_checks.py2
-rw-r--r--scripts/dev/recompile_requirements.py165
3 files changed, 166 insertions, 163 deletions
diff --git a/scripts/dev/changelog_urls.json b/scripts/dev/changelog_urls.json
new file mode 100644
index 000000000..cf661a22c
--- /dev/null
+++ b/scripts/dev/changelog_urls.json
@@ -0,0 +1,162 @@
+{
+ "pyparsing": "https://github.com/pyparsing/pyparsing/blob/master/CHANGES",
+ "pylint": "https://pylint.pycqa.org/en/latest/whatsnew/changelog.html",
+ "isort": "https://pycqa.github.io/isort/CHANGELOG/",
+ "lazy-object-proxy": "https://github.com/ionelmc/python-lazy-object-proxy/blob/master/CHANGELOG.rst",
+ "mccabe": "https://github.com/PyCQA/mccabe#changes",
+ "pytest-cov": "https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst",
+ "pytest-xdist": "https://github.com/pytest-dev/pytest-xdist/blob/master/CHANGELOG.rst",
+ "pytest-forked": "https://github.com/pytest-dev/pytest-forked/blob/master/CHANGELOG.rst",
+ "pytest-xvfb": "https://github.com/The-Compiler/pytest-xvfb/blob/master/CHANGELOG.rst",
+ "EasyProcess": "https://github.com/ponty/EasyProcess/commits/master",
+ "PyVirtualDisplay": "https://github.com/ponty/PyVirtualDisplay/commits/master",
+ "execnet": "https://execnet.readthedocs.io/en/latest/changelog.html",
+ "pytest-rerunfailures": "https://github.com/pytest-dev/pytest-rerunfailures/blob/master/CHANGES.rst",
+ "pytest-repeat": "https://github.com/pytest-dev/pytest-repeat/blob/master/CHANGES.rst",
+ "requests": "https://github.com/psf/requests/blob/master/HISTORY.md",
+ "requests-file": "https://github.com/dashea/requests-file/blob/master/CHANGES.rst",
+ "Werkzeug": "https://werkzeug.palletsprojects.com/en/latest/changes/",
+ "click": "https://click.palletsprojects.com/en/latest/changes/",
+ "itsdangerous": "https://itsdangerous.palletsprojects.com/en/latest/changes/",
+ "parse-type": "https://github.com/jenisys/parse_type/blob/master/CHANGES.txt",
+ "sortedcontainers": "https://github.com/grantjenks/python-sortedcontainers/blob/master/HISTORY.rst",
+ "soupsieve": "https://facelessuser.github.io/soupsieve/about/changelog/",
+ "Flask": "https://flask.palletsprojects.com/en/latest/changes/",
+ "Mako": "https://docs.makotemplates.org/en/latest/changelog.html",
+ "glob2": "https://github.com/miracle2k/python-glob2/blob/master/CHANGES",
+ "hypothesis": "https://hypothesis.readthedocs.io/en/latest/changes.html",
+ "mypy": "https://mypy-lang.blogspot.com/",
+ "types-PyYAML": "https://github.com/python/typeshed/commits/master/stubs/PyYAML",
+ "types-dataclasses": "https://github.com/python/typeshed/commits/master/stubs/dataclasses",
+ "pytest": "https://docs.pytest.org/en/latest/changelog.html",
+ "iniconfig": "https://github.com/RonnyPfannschmidt/iniconfig/blob/master/CHANGELOG",
+ "tox": "https://tox.readthedocs.io/en/latest/changelog.html",
+ "PyYAML": "https://github.com/yaml/pyyaml/blob/master/CHANGES",
+ "pytest-bdd": "https://github.com/pytest-dev/pytest-bdd/blob/master/CHANGES.rst",
+ "snowballstemmer": "https://github.com/snowballstem/snowball/blob/master/NEWS",
+ "virtualenv": "https://github.com/pypa/virtualenv/blob/main/docs/changelog.rst",
+ "packaging": "https://packaging.pypa.io/en/latest/changelog.html",
+ "build": "https://github.com/pypa/build/blob/main/CHANGELOG.rst",
+ "attrs": "https://www.attrs.org/en/stable/changelog.html",
+ "Jinja2": "https://jinja.palletsprojects.com/en/latest/changes/",
+ "MarkupSafe": "https://markupsafe.palletsprojects.com/en/latest/changes/",
+ "flake8": "https://github.com/PyCQA/flake8/tree/main/docs/source/release-notes",
+ "flake8-docstrings": "https://pypi.org/project/flake8-docstrings/",
+ "flake8-debugger": "https://github.com/JBKahn/flake8-debugger/",
+ "flake8-builtins": "https://github.com/gforcada/flake8-builtins/blob/master/CHANGES.rst",
+ "flake8-bugbear": "https://github.com/PyCQA/flake8-bugbear#change-log",
+ "flake8-tidy-imports": "https://github.com/adamchainz/flake8-tidy-imports/blob/master/HISTORY.rst",
+ "flake8-tuple": "https://github.com/ar4s/flake8_tuple/blob/master/HISTORY.rst",
+ "flake8-comprehensions": "https://github.com/adamchainz/flake8-comprehensions/blob/master/HISTORY.rst",
+ "flake8-copyright": "https://github.com/savoirfairelinux/flake8-copyright/blob/master/CHANGELOG.rst",
+ "flake8-deprecated": "https://github.com/gforcada/flake8-deprecated/blob/master/CHANGES.rst",
+ "flake8-future-import": "https://github.com/xZise/flake8-future-import#changes",
+ "flake8-mock": "https://github.com/aleGpereira/flake8-mock#changes",
+ "flake8-polyfill": "https://gitlab.com/pycqa/flake8-polyfill/-/blob/master/CHANGELOG.rst",
+ "flake8-string-format": "https://github.com/xZise/flake8-string-format#changes",
+ "flake8-plugin-utils": "https://github.com/afonasev/flake8-plugin-utils#change-log",
+ "flake8-pytest-style": "https://github.com/m-burst/flake8-pytest-style#change-log",
+ "pep8-naming": "https://github.com/PyCQA/pep8-naming/blob/master/CHANGELOG.rst",
+ "pycodestyle": "https://github.com/PyCQA/pycodestyle/blob/master/CHANGES.txt",
+ "pyflakes": "https://github.com/PyCQA/pyflakes/blob/master/NEWS.rst",
+ "cffi": "https://github.com/python-cffi/release-doc/blob/master/doc/source/whatsnew.rst",
+ "astroid": "https://github.com/PyCQA/astroid/blob/main/ChangeLog",
+ "pytest-instafail": "https://github.com/pytest-dev/pytest-instafail/blob/master/CHANGES.rst",
+ "coverage": "https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst",
+ "colorama": "https://github.com/tartley/colorama/blob/master/CHANGELOG.rst",
+ "hunter": "https://github.com/ionelmc/python-hunter/blob/master/CHANGELOG.rst",
+ "uritemplate": "https://github.com/python-hyper/uritemplate/blob/master/HISTORY.rst",
+ "more-itertools": "https://github.com/erikrose/more-itertools/blob/master/docs/versions.rst",
+ "pydocstyle": "https://www.pydocstyle.org/en/latest/release_notes.html",
+ "Sphinx": "https://www.sphinx-doc.org/en/master/changes.html",
+ "Babel": "https://github.com/python-babel/babel/blob/master/CHANGES",
+ "alabaster": "https://alabaster.readthedocs.io/en/latest/changelog.html",
+ "imagesize": "https://github.com/shibukawa/imagesize_py/commits/master",
+ "pytz": "https://mm.icann.org/pipermail/tz-announce/",
+ "sphinxcontrib-applehelp": "https://www.sphinx-doc.org/en/master/changes.html",
+ "sphinxcontrib-devhelp": "https://www.sphinx-doc.org/en/master/changes.html",
+ "sphinxcontrib-htmlhelp": "https://www.sphinx-doc.org/en/master/changes.html",
+ "sphinxcontrib-jsmath": "https://www.sphinx-doc.org/en/master/changes.html",
+ "sphinxcontrib-qthelp": "https://www.sphinx-doc.org/en/master/changes.html",
+ "sphinxcontrib-serializinghtml": "https://www.sphinx-doc.org/en/master/changes.html",
+ "jaraco.functools": "https://github.com/jaraco/jaraco.functools/blob/master/CHANGES.rst",
+ "parse": "https://github.com/r1chardj0n3s/parse#potential-gotchas",
+ "py": "https://py.readthedocs.io/en/latest/changelog.html#changelog",
+ "Pympler": "https://github.com/pympler/pympler/blob/master/CHANGELOG.md",
+ "pytest-mock": "https://github.com/pytest-dev/pytest-mock/blob/master/CHANGELOG.rst",
+ "pytest-qt": "https://github.com/pytest-dev/pytest-qt/blob/master/CHANGELOG.rst",
+ "pyinstaller": "https://pyinstaller.readthedocs.io/en/stable/CHANGES.html",
+ "pyinstaller-hooks-contrib": "https://github.com/pyinstaller/pyinstaller-hooks-contrib/blob/master/CHANGELOG.rst",
+ "pytest-benchmark": "https://pytest-benchmark.readthedocs.io/en/stable/changelog.html",
+ "typed-ast": "https://github.com/python/typed_ast/commits/master",
+ "docutils": "https://docutils.sourceforge.io/RELEASE-NOTES.html",
+ "bump2version": "https://github.com/c4urself/bump2version/blob/master/CHANGELOG.md",
+ "six": "https://github.com/benjaminp/six/blob/master/CHANGES",
+ "altgraph": "https://github.com/ronaldoussoren/altgraph/blob/master/doc/changelog.rst",
+ "urllib3": "https://github.com/urllib3/urllib3/blob/master/CHANGES.rst",
+ "lxml": "https://github.com/lxml/lxml/blob/master/CHANGES.txt",
+ "jwcrypto": "https://github.com/latchset/jwcrypto/commits/master",
+ "wrapt": "https://github.com/GrahamDumpleton/wrapt/blob/develop/docs/changes.rst",
+ "pep517": "https://github.com/pypa/pep517/blob/master/doc/changelog.rst",
+ "cryptography": "https://cryptography.io/en/latest/changelog.html",
+ "toml": "https://github.com/uiri/toml/releases",
+ "tomli": "https://github.com/hukkin/tomli/blob/master/CHANGELOG.md",
+ "PyQt5": "https://www.riverbankcomputing.com/news",
+ "PyQt5-Qt5": "https://www.riverbankcomputing.com/news",
+ "PyQtWebEngine": "https://www.riverbankcomputing.com/news",
+ "PyQtWebEngine-Qt5": "https://www.riverbankcomputing.com/news",
+ "PyQt-builder": "https://www.riverbankcomputing.com/news",
+ "PyQt5-sip": "https://www.riverbankcomputing.com/news",
+ "PyQt5-stubs": "https://github.com/stlehmann/PyQt5-stubs/blob/master/CHANGELOG.md",
+ "sip": "https://www.riverbankcomputing.com/news",
+ "Pygments": "https://pygments.org/docs/changelog/",
+ "vulture": "https://github.com/jendrikseipp/vulture/blob/master/CHANGELOG.md",
+ "distlib": "https://github.com/pypa/distlib/blob/master/CHANGES.rst",
+ "py-cpuinfo": "https://github.com/workhorsy/py-cpuinfo/blob/master/ChangeLog",
+ "cheroot": "https://cheroot.cherrypy.dev/en/latest/history.html",
+ "certifi": "https://ccadb-public.secure.force.com/mozilla/IncludedCACertificateReport",
+ "chardet": "https://github.com/chardet/chardet/releases",
+ "charset-normalizer": "https://github.com/Ousret/charset_normalizer/blob/master/CHANGELOG.md",
+ "idna": "https://github.com/kjd/idna/blob/master/HISTORY.rst",
+ "tldextract": "https://github.com/john-kurkowski/tldextract/blob/master/CHANGELOG.md",
+ "typing_extensions": "https://github.com/python/typing/blob/master/typing_extensions/CHANGELOG",
+ "diff-cover": "https://github.com/Bachmann1234/diff_cover/blob/master/CHANGELOG",
+ "pytest-icdiff": "https://github.com/hjwp/pytest-icdiff/blob/master/HISTORY.rst",
+ "icdiff": "https://github.com/jeffkaufman/icdiff/blob/master/ChangeLog",
+ "pprintpp": "https://github.com/wolever/pprintpp/blob/master/CHANGELOG.txt",
+ "beautifulsoup4": "https://bazaar.launchpad.net/~leonardr/beautifulsoup/bs4/view/head:/CHANGELOG",
+ "check-manifest": "https://github.com/mgedmin/check-manifest/blob/master/CHANGES.rst",
+ "yamllint": "https://github.com/adrienverge/yamllint/blob/master/CHANGELOG.rst",
+ "pathspec": "https://github.com/cpburnz/python-path-specification/blob/master/CHANGES.rst",
+ "filelock": "https://github.com/tox-dev/py-filelock/blob/main/docs/changelog.rst",
+ "github3.py": "https://github3py.readthedocs.io/en/master/release-notes/index.html",
+ "manhole": "https://github.com/ionelmc/python-manhole/blob/master/CHANGELOG.rst",
+ "pycparser": "https://github.com/eliben/pycparser/blob/master/CHANGES",
+ "python-dateutil": "https://dateutil.readthedocs.io/en/stable/changelog.html",
+ "platformdirs": "https://github.com/platformdirs/platformdirs/blob/main/CHANGES.rst",
+ "pluggy": "https://github.com/pytest-dev/pluggy/blob/master/CHANGELOG.rst",
+ "mypy-extensions": "https://github.com/python/mypy_extensions/commits/master",
+ "pyroma": "https://github.com/regebro/pyroma/blob/master/HISTORY.txt",
+ "adblock": "https://github.com/ArniDagur/python-adblock/blob/master/CHANGELOG.md",
+ "importlib-resources": "https://importlib-resources.readthedocs.io/en/latest/history.html",
+ "importlib-metadata": "https://github.com/python/importlib_metadata/blob/main/CHANGES.rst",
+ "zipp": "https://github.com/jaraco/zipp/blob/main/CHANGES.rst",
+ "dataclasses": "https://github.com/ericvsmith/dataclasses#release-history",
+ "pip": "https://pip.pypa.io/en/stable/news/",
+ "wheel": "https://wheel.readthedocs.io/en/stable/news.html",
+ "setuptools": "https://setuptools.readthedocs.io/en/latest/history.html",
+ "future": "https://python-future.org/whatsnew.html",
+ "pefile": "https://github.com/erocarrera/pefile/commits/master",
+ "Deprecated": "https://github.com/tantale/deprecated/blob/master/CHANGELOG.rst",
+ "SecretStorage": "https://github.com/mitya57/secretstorage/blob/master/changelog",
+ "bleach": "https://github.com/mozilla/bleach/blob/main/CHANGES",
+ "jeepney": "https://gitlab.com/takluyver/jeepney/-/blob/master/docs/release-notes.rst",
+ "keyring": "https://github.com/jaraco/keyring/blob/main/CHANGES.rst",
+ "pkginfo": "https://bazaar.launchpad.net/~tseaver/pkginfo/trunk/view/head:/CHANGES.txt",
+ "readme-renderer": "https://github.com/pypa/readme_renderer/blob/main/CHANGES.rst",
+ "requests-toolbelt": "https://github.com/requests/toolbelt/blob/master/HISTORY.rst",
+ "rfc3986": "https://rfc3986.readthedocs.io/en/latest/release-notes/index.html",
+ "tqdm": "https://tqdm.github.io/releases/",
+ "twine": "https://twine.readthedocs.io/en/stable/changelog.html",
+ "webencodings": "https://github.com/gsnedders/python-webencodings/commits/master"
+}
diff --git a/scripts/dev/misc_checks.py b/scripts/dev/misc_checks.py
index bae51e372..400a7990e 100644
--- a/scripts/dev/misc_checks.py
+++ b/scripts/dev/misc_checks.py
@@ -111,7 +111,7 @@ def check_changelog_urls(_args: argparse.Namespace = None) -> bool:
utils.print_col(f"Extra changelog URLs: {req_str}", 'red')
if not ok:
- print("Hint: Changelog URLs are in scripts/dev/recompile_requirements.py")
+ print("Hint: Changelog URLs are in scripts/dev/changelog_urls.json")
return ok
diff --git a/scripts/dev/recompile_requirements.py b/scripts/dev/recompile_requirements.py
index 6d3287648..97740e126 100644
--- a/scripts/dev/recompile_requirements.py
+++ b/scripts/dev/recompile_requirements.py
@@ -24,6 +24,7 @@ import re
import sys
import os.path
import glob
+import json
import subprocess
import tempfile
import argparse
@@ -39,168 +40,8 @@ REPO_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)),
'..', '..') # /scripts/dev -> /scripts -> /
REQ_DIR = os.path.join(REPO_DIR, 'misc', 'requirements')
-CHANGELOG_URLS = {
- 'pyparsing': 'https://github.com/pyparsing/pyparsing/blob/master/CHANGES',
- 'pylint': 'https://pylint.pycqa.org/en/latest/whatsnew/changelog.html',
- 'isort': 'https://pycqa.github.io/isort/CHANGELOG/',
- 'lazy-object-proxy': 'https://github.com/ionelmc/python-lazy-object-proxy/blob/master/CHANGELOG.rst',
- 'mccabe': 'https://github.com/PyCQA/mccabe#changes',
- 'pytest-cov': 'https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst',
- 'pytest-xdist': 'https://github.com/pytest-dev/pytest-xdist/blob/master/CHANGELOG.rst',
- 'pytest-forked': 'https://github.com/pytest-dev/pytest-forked/blob/master/CHANGELOG.rst',
- 'pytest-xvfb': 'https://github.com/The-Compiler/pytest-xvfb/blob/master/CHANGELOG.rst',
- 'EasyProcess': 'https://github.com/ponty/EasyProcess/commits/master',
- 'PyVirtualDisplay': 'https://github.com/ponty/PyVirtualDisplay/commits/master',
- 'execnet': 'https://execnet.readthedocs.io/en/latest/changelog.html',
- 'pytest-rerunfailures': 'https://github.com/pytest-dev/pytest-rerunfailures/blob/master/CHANGES.rst',
- 'pytest-repeat': 'https://github.com/pytest-dev/pytest-repeat/blob/master/CHANGES.rst',
- 'requests': 'https://github.com/psf/requests/blob/master/HISTORY.md',
- 'requests-file': 'https://github.com/dashea/requests-file/blob/master/CHANGES.rst',
- 'Werkzeug': 'https://werkzeug.palletsprojects.com/en/latest/changes/',
- 'click': 'https://click.palletsprojects.com/en/latest/changes/',
- 'itsdangerous': 'https://itsdangerous.palletsprojects.com/en/latest/changes/',
- 'parse-type': 'https://github.com/jenisys/parse_type/blob/master/CHANGES.txt',
- 'sortedcontainers': 'https://github.com/grantjenks/python-sortedcontainers/blob/master/HISTORY.rst',
- 'soupsieve': 'https://facelessuser.github.io/soupsieve/about/changelog/',
- 'Flask': 'https://flask.palletsprojects.com/en/latest/changes/',
- 'Mako': 'https://docs.makotemplates.org/en/latest/changelog.html',
- 'glob2': 'https://github.com/miracle2k/python-glob2/blob/master/CHANGES',
- 'hypothesis': 'https://hypothesis.readthedocs.io/en/latest/changes.html',
- 'mypy': 'https://mypy-lang.blogspot.com/',
- 'types-PyYAML': 'https://github.com/python/typeshed/commits/master/stubs/PyYAML',
- 'types-dataclasses': 'https://github.com/python/typeshed/commits/master/stubs/dataclasses',
- 'pytest': 'https://docs.pytest.org/en/latest/changelog.html',
- 'iniconfig': 'https://github.com/RonnyPfannschmidt/iniconfig/blob/master/CHANGELOG',
- 'tox': 'https://tox.readthedocs.io/en/latest/changelog.html',
- 'PyYAML': 'https://github.com/yaml/pyyaml/blob/master/CHANGES',
- 'pytest-bdd': 'https://github.com/pytest-dev/pytest-bdd/blob/master/CHANGES.rst',
- 'snowballstemmer': 'https://github.com/snowballstem/snowball/blob/master/NEWS',
- 'virtualenv': 'https://github.com/pypa/virtualenv/blob/main/docs/changelog.rst',
- 'packaging': 'https://packaging.pypa.io/en/latest/changelog.html',
- 'build': 'https://github.com/pypa/build/blob/main/CHANGELOG.rst',
- 'attrs': 'https://www.attrs.org/en/stable/changelog.html',
- 'Jinja2': 'https://jinja.palletsprojects.com/en/latest/changes/',
- 'MarkupSafe': 'https://markupsafe.palletsprojects.com/en/latest/changes/',
- 'flake8': 'https://github.com/PyCQA/flake8/tree/main/docs/source/release-notes',
- 'flake8-docstrings': 'https://pypi.org/project/flake8-docstrings/',
- 'flake8-debugger': 'https://github.com/JBKahn/flake8-debugger/',
- 'flake8-builtins': 'https://github.com/gforcada/flake8-builtins/blob/master/CHANGES.rst',
- 'flake8-bugbear': 'https://github.com/PyCQA/flake8-bugbear#change-log',
- 'flake8-tidy-imports': 'https://github.com/adamchainz/flake8-tidy-imports/blob/master/HISTORY.rst',
- 'flake8-tuple': 'https://github.com/ar4s/flake8_tuple/blob/master/HISTORY.rst',
- 'flake8-comprehensions': 'https://github.com/adamchainz/flake8-comprehensions/blob/master/HISTORY.rst',
- 'flake8-copyright': 'https://github.com/savoirfairelinux/flake8-copyright/blob/master/CHANGELOG.rst',
- 'flake8-deprecated': 'https://github.com/gforcada/flake8-deprecated/blob/master/CHANGES.rst',
- 'flake8-future-import': 'https://github.com/xZise/flake8-future-import#changes',
- 'flake8-mock': 'https://github.com/aleGpereira/flake8-mock#changes',
- 'flake8-polyfill': 'https://gitlab.com/pycqa/flake8-polyfill/-/blob/master/CHANGELOG.rst',
- 'flake8-string-format': 'https://github.com/xZise/flake8-string-format#changes',
- 'flake8-plugin-utils': 'https://github.com/afonasev/flake8-plugin-utils#change-log',
- 'flake8-pytest-style': 'https://github.com/m-burst/flake8-pytest-style#change-log',
- 'pep8-naming': 'https://github.com/PyCQA/pep8-naming/blob/master/CHANGELOG.rst',
- 'pycodestyle': 'https://github.com/PyCQA/pycodestyle/blob/master/CHANGES.txt',
- 'pyflakes': 'https://github.com/PyCQA/pyflakes/blob/master/NEWS.rst',
- 'cffi': 'https://github.com/python-cffi/release-doc/blob/master/doc/source/whatsnew.rst',
- 'astroid': 'https://github.com/PyCQA/astroid/blob/main/ChangeLog',
- 'pytest-instafail': 'https://github.com/pytest-dev/pytest-instafail/blob/master/CHANGES.rst',
- 'coverage': 'https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst',
- 'colorama': 'https://github.com/tartley/colorama/blob/master/CHANGELOG.rst',
- 'hunter': 'https://github.com/ionelmc/python-hunter/blob/master/CHANGELOG.rst',
- 'uritemplate': 'https://github.com/python-hyper/uritemplate/blob/master/HISTORY.rst',
- 'more-itertools': 'https://github.com/erikrose/more-itertools/blob/master/docs/versions.rst',
- 'pydocstyle': 'https://www.pydocstyle.org/en/latest/release_notes.html',
- 'Sphinx': 'https://www.sphinx-doc.org/en/master/changes.html',
- 'Babel': 'https://github.com/python-babel/babel/blob/master/CHANGES',
- 'alabaster': 'https://alabaster.readthedocs.io/en/latest/changelog.html',
- 'imagesize': 'https://github.com/shibukawa/imagesize_py/commits/master',
- 'pytz': 'https://mm.icann.org/pipermail/tz-announce/',
- 'sphinxcontrib-applehelp': 'https://www.sphinx-doc.org/en/master/changes.html',
- 'sphinxcontrib-devhelp': 'https://www.sphinx-doc.org/en/master/changes.html',
- 'sphinxcontrib-htmlhelp': 'https://www.sphinx-doc.org/en/master/changes.html',
- 'sphinxcontrib-jsmath': 'https://www.sphinx-doc.org/en/master/changes.html',
- 'sphinxcontrib-qthelp': 'https://www.sphinx-doc.org/en/master/changes.html',
- 'sphinxcontrib-serializinghtml': 'https://www.sphinx-doc.org/en/master/changes.html',
- 'jaraco.functools': 'https://github.com/jaraco/jaraco.functools/blob/master/CHANGES.rst',
- 'parse': 'https://github.com/r1chardj0n3s/parse#potential-gotchas',
- 'py': 'https://py.readthedocs.io/en/latest/changelog.html#changelog',
- 'Pympler': 'https://github.com/pympler/pympler/blob/master/CHANGELOG.md',
- 'pytest-mock': 'https://github.com/pytest-dev/pytest-mock/blob/master/CHANGELOG.rst',
- 'pytest-qt': 'https://github.com/pytest-dev/pytest-qt/blob/master/CHANGELOG.rst',
- 'pyinstaller': 'https://pyinstaller.readthedocs.io/en/stable/CHANGES.html',
- 'pyinstaller-hooks-contrib': 'https://github.com/pyinstaller/pyinstaller-hooks-contrib/blob/master/CHANGELOG.rst',
- 'pytest-benchmark': 'https://pytest-benchmark.readthedocs.io/en/stable/changelog.html',
- 'typed-ast': 'https://github.com/python/typed_ast/commits/master',
- 'docutils': 'https://docutils.sourceforge.io/RELEASE-NOTES.html',
- 'bump2version': 'https://github.com/c4urself/bump2version/blob/master/CHANGELOG.md',
- 'six': 'https://github.com/benjaminp/six/blob/master/CHANGES',
- 'altgraph': 'https://github.com/ronaldoussoren/altgraph/blob/master/doc/changelog.rst',
- 'urllib3': 'https://github.com/urllib3/urllib3/blob/master/CHANGES.rst',
- 'lxml': 'https://github.com/lxml/lxml/blob/master/CHANGES.txt',
- 'jwcrypto': 'https://github.com/latchset/jwcrypto/commits/master',
- 'wrapt': 'https://github.com/GrahamDumpleton/wrapt/blob/develop/docs/changes.rst',
- 'pep517': 'https://github.com/pypa/pep517/blob/master/doc/changelog.rst',
- 'cryptography': 'https://cryptography.io/en/latest/changelog.html',
- 'toml': 'https://github.com/uiri/toml/releases',
- 'tomli': 'https://github.com/hukkin/tomli/blob/master/CHANGELOG.md',
- 'PyQt5': 'https://www.riverbankcomputing.com/news',
- 'PyQt5-Qt5': 'https://www.riverbankcomputing.com/news',
- 'PyQtWebEngine': 'https://www.riverbankcomputing.com/news',
- 'PyQtWebEngine-Qt5': 'https://www.riverbankcomputing.com/news',
- 'PyQt-builder': 'https://www.riverbankcomputing.com/news',
- 'PyQt5-sip': 'https://www.riverbankcomputing.com/news',
- 'PyQt5-stubs': 'https://github.com/stlehmann/PyQt5-stubs/blob/master/CHANGELOG.md',
- 'sip': 'https://www.riverbankcomputing.com/news',
- 'Pygments': 'https://pygments.org/docs/changelog/',
- 'vulture': 'https://github.com/jendrikseipp/vulture/blob/master/CHANGELOG.md',
- 'distlib': 'https://github.com/pypa/distlib/blob/master/CHANGES.rst',
- 'py-cpuinfo': 'https://github.com/workhorsy/py-cpuinfo/blob/master/ChangeLog',
- 'cheroot': 'https://cheroot.cherrypy.dev/en/latest/history.html',
- 'certifi': 'https://ccadb-public.secure.force.com/mozilla/IncludedCACertificateReport',
- 'chardet': 'https://github.com/chardet/chardet/releases',
- 'charset-normalizer': 'https://github.com/Ousret/charset_normalizer/blob/master/CHANGELOG.md',
- 'idna': 'https://github.com/kjd/idna/blob/master/HISTORY.rst',
- 'tldextract': 'https://github.com/john-kurkowski/tldextract/blob/master/CHANGELOG.md',
- 'typing_extensions': 'https://github.com/python/typing/blob/master/typing_extensions/CHANGELOG',
- 'diff-cover': 'https://github.com/Bachmann1234/diff_cover/blob/master/CHANGELOG',
- 'pytest-icdiff': 'https://github.com/hjwp/pytest-icdiff/blob/master/HISTORY.rst',
- 'icdiff': 'https://github.com/jeffkaufman/icdiff/blob/master/ChangeLog',
- 'pprintpp': 'https://github.com/wolever/pprintpp/blob/master/CHANGELOG.txt',
- 'beautifulsoup4': 'https://bazaar.launchpad.net/~leonardr/beautifulsoup/bs4/view/head:/CHANGELOG',
- 'check-manifest': 'https://github.com/mgedmin/check-manifest/blob/master/CHANGES.rst',
- 'yamllint': 'https://github.com/adrienverge/yamllint/blob/master/CHANGELOG.rst',
- 'pathspec': 'https://github.com/cpburnz/python-path-specification/blob/master/CHANGES.rst',
- 'filelock': 'https://github.com/tox-dev/py-filelock/blob/main/docs/changelog.rst',
- 'github3.py': 'https://github3py.readthedocs.io/en/master/release-notes/index.html',
- 'manhole': 'https://github.com/ionelmc/python-manhole/blob/master/CHANGELOG.rst',
- 'pycparser': 'https://github.com/eliben/pycparser/blob/master/CHANGES',
- 'python-dateutil': 'https://dateutil.readthedocs.io/en/stable/changelog.html',
- 'platformdirs': 'https://github.com/platformdirs/platformdirs/blob/main/CHANGES.rst',
- 'pluggy': 'https://github.com/pytest-dev/pluggy/blob/master/CHANGELOG.rst',
- 'mypy-extensions': 'https://github.com/python/mypy_extensions/commits/master',
- 'pyroma': 'https://github.com/regebro/pyroma/blob/master/HISTORY.txt',
- 'adblock': 'https://github.com/ArniDagur/python-adblock/blob/master/CHANGELOG.md',
- 'importlib-resources': 'https://importlib-resources.readthedocs.io/en/latest/history.html',
- 'importlib-metadata': 'https://github.com/python/importlib_metadata/blob/main/CHANGES.rst',
- 'zipp': 'https://github.com/jaraco/zipp/blob/main/CHANGES.rst',
- 'dataclasses': 'https://github.com/ericvsmith/dataclasses#release-history',
- 'pip': 'https://pip.pypa.io/en/stable/news/',
- 'wheel': 'https://wheel.readthedocs.io/en/stable/news.html',
- 'setuptools': 'https://setuptools.readthedocs.io/en/latest/history.html',
- 'future': 'https://python-future.org/whatsnew.html',
- 'pefile': 'https://github.com/erocarrera/pefile/commits/master',
- 'Deprecated': 'https://github.com/tantale/deprecated/blob/master/CHANGELOG.rst',
- 'SecretStorage': 'https://github.com/mitya57/secretstorage/blob/master/changelog',
- 'bleach': 'https://github.com/mozilla/bleach/blob/main/CHANGES',
- 'jeepney': 'https://gitlab.com/takluyver/jeepney/-/blob/master/docs/release-notes.rst',
- 'keyring': 'https://github.com/jaraco/keyring/blob/main/CHANGES.rst',
- 'pkginfo': 'https://bazaar.launchpad.net/~tseaver/pkginfo/trunk/view/head:/CHANGES.txt',
- 'readme-renderer': 'https://github.com/pypa/readme_renderer/blob/main/CHANGES.rst',
- 'requests-toolbelt': 'https://github.com/requests/toolbelt/blob/master/HISTORY.rst',
- 'rfc3986': 'https://rfc3986.readthedocs.io/en/latest/release-notes/index.html',
- 'tqdm': 'https://tqdm.github.io/releases/',
- 'twine': 'https://twine.readthedocs.io/en/stable/changelog.html',
- 'webencodings': 'https://github.com/gsnedders/python-webencodings/commits/master',
-}
+CHANGELOG_URLS_PATH = pathlib.Path(__file__).parent / "changelog_urls.json"
+CHANGELOG_URLS = json.loads(CHANGELOG_URLS_PATH.read_text())
def convert_line(line, comments):