summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/dependabot.yml6
-rw-r--r--.github/workflows/ci.yml15
-rw-r--r--misc/qutebrowser.spec7
-rw-r--r--scripts/dev/ci/problemmatchers.py19
-rw-r--r--scripts/dev/recompile_requirements.py86
-rw-r--r--tox.ini2
6 files changed, 122 insertions, 13 deletions
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 000000000..123014908
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,6 @@
+version: 2
+updates:
+ - package-ecosystem: "github-actions"
+ directory: "/"
+ schedule:
+ interval: "daily"
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 6b507c3db..da3436aa1 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -191,12 +191,23 @@ jobs:
needs: [linters, tests, tests-docker, codeql]
if: always()
steps:
- - name: Send IRC notification
+ - name: Send success IRC notification
uses: Gottox/irc-message-action@v1
+ if: "needs.linters.result == 'success' && needs.tests.result == 'success' && needs.tests-docker.result == 'success' && needs.codeql.result == 'success'"
with:
server: chat.freenode.net
channel: '#qutebrowser-dev'
nickname: qutebrowser-bot
message: |-
- [${{ github.workflow }}] ${{ github.ref }} https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} triggered by ${{ github.actor }}
+ [${{ github.workflow }}] Success: ${{ github.ref }} https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} triggered by ${{ github.actor }}
+ linters: ${{ needs.linters.result }}, tests: ${{ needs.tests.result }}, tests-docker: ${{ needs.tests-docker.result }}, codeql: ${{ needs.codeql.result }}
+ - name: Send non-success IRC notification
+ uses: Gottox/irc-message-action@v1
+ if: "needs.linters.result != 'success' || needs.tests.result != 'success' || needs.tests-docker.result != 'success' || needs.codeql.result != 'success'"
+ with:
+ server: chat.freenode.net
+ channel: '#qutebrowser-dev'
+ nickname: qutebrowser-bot
+ message: |-
+ [${{ github.workflow }}] FAIL: ${{ github.ref }} https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} triggered by ${{ github.actor }}
linters: ${{ needs.linters.result }}, tests: ${{ needs.tests.result }}, tests-docker: ${{ needs.tests-docker.result }}, codeql: ${{ needs.codeql.result }}
diff --git a/misc/qutebrowser.spec b/misc/qutebrowser.spec
index 43a18b6b5..ffb17d371 100644
--- a/misc/qutebrowser.spec
+++ b/misc/qutebrowser.spec
@@ -47,6 +47,9 @@ else:
icon = None
+DEBUG = os.environ.get('PYINSTALLER_DEBUG', '').lower() in ['1', 'true']
+
+
a = Analysis(['../qutebrowser/__main__.py'],
pathex=['misc'],
binaries=None,
@@ -65,10 +68,10 @@ exe = EXE(pyz,
exclude_binaries=True,
name='qutebrowser',
icon=icon,
- debug=False,
+ debug=DEBUG,
strip=False,
upx=False,
- console=False,
+ console=DEBUG,
version='../misc/file_version_info.txt')
coll = COLLECT(exe,
a.binaries,
diff --git a/scripts/dev/ci/problemmatchers.py b/scripts/dev/ci/problemmatchers.py
index 0f8ce8d1f..e492c714b 100644
--- a/scripts/dev/ci/problemmatchers.py
+++ b/scripts/dev/ci/problemmatchers.py
@@ -157,10 +157,25 @@ MATCHERS = {
"severity": "error",
"pattern": [
{
- "regexp": r'^\033\[1m\033\[31m([^\033]*)\033\[0m:(\d+): ?(.*)',
+ "regexp": r'^\033\[1m\033\[31m([^\033]*)\033\[0m:(\d+): .*',
"file": 1,
"line": 2,
- "message": 3,
+ },
+ {
+ "regexp": r'^\033\[1m\033\[31mE\s+([^\033]*)\033\[0m$',
+ "message": 1,
+ }
+ ],
+ },
+ {
+ # pytest error lines
+ # E end2end.fixtures.testprocess.WaitForTimeout: Timed out
+ # after 15000ms waiting for [...]
+ "severity": "error",
+ "pattern": [
+ {
+ "regexp": r'^\033\[1m\033\[31mE\s+([^\033]*)\033\[0m$',
+ "message": 1,
}
],
},
diff --git a/scripts/dev/recompile_requirements.py b/scripts/dev/recompile_requirements.py
index ab8be5c0f..33f2c4b41 100644
--- a/scripts/dev/recompile_requirements.py
+++ b/scripts/dev/recompile_requirements.py
@@ -37,6 +37,73 @@ 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',
+ 'cherrypy': 'https://github.com/cherrypy/cherrypy/blob/master/CHANGES.rst',
+ 'pylint': 'http://pylint.pycqa.org/en/latest/whatsnew/changelog.html',
+ 'setuptools': 'https://github.com/pypa/setuptools/blob/master/CHANGES.rst',
+ 'pytest-cov': 'https://github.com/pytest-dev/pytest-cov',
+ 'requests': 'https://github.com/psf/requests/blob/master/HISTORY.md',
+ 'werkzeug': 'https://github.com/pallets/werkzeug/blob/master/CHANGES.rst',
+ 'hypothesis': 'https://hypothesis.readthedocs.io/en/latest/changes.html',
+ 'mypy': 'https://mypy-lang.blogspot.com/',
+ 'pytest': 'https://docs.pytest.org/en/latest/changelog.html',
+ '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://virtualenv.pypa.io/en/latest/changelog.html',
+ 'pip': 'https://pip.pypa.io/en/stable/news/',
+ 'packaging': 'https://pypi.org/project/packaging/',
+ 'flake8-docstrings': 'https://pypi.org/project/flake8-docstrings/',
+ 'attrs': 'http://www.attrs.org/en/stable/changelog.html',
+ 'jinja2': 'https://github.com/pallets/jinja/blob/master/CHANGES.rst',
+ 'flake8': 'https://gitlab.com/pycqa/flake8/tree/master/docs/source/release-notes',
+ 'cffi': 'https://cffi.readthedocs.io/en/latest/whatsnew.html',
+ 'flake8-debugger': 'https://github.com/JBKahn/flake8-debugger/',
+ 'astroid': 'https://github.com/PyCQA/astroid/blob/2.4/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://pypi.org/project/uritemplate/',
+ 'flake8-builtins': 'https://github.com/gforcada/flake8-builtins/blob/master/CHANGES.rst',
+ 'flake8-bugbear': 'https://github.com/PyCQA/flake8-bugbear',
+ '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',
+ 'more-itertools': 'https://github.com/erikrose/more-itertools/blob/master/docs/versions.rst',
+ 'pydocstyle': 'http://www.pydocstyle.org/en/latest/release_notes.html',
+ 'sphinx': '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',
+ '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',
+ 'wcwidth': 'https://github.com/jquast/wcwidth#history',
+ 'pyinstaller': 'https://pyinstaller.readthedocs.io/en/stable/CHANGES.html',
+ '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',
+ 'flake8-comprehensions': 'https://github.com/adamchainz/flake8-comprehensions/blob/master/HISTORY.rst',
+ 'altgraph': 'https://github.com/ronaldoussoren/altgraph/blob/master/doc/changelog.rst',
+ 'urllib3': 'https://github.com/urllib3/urllib3/blob/master/CHANGES.rst',
+ 'wheel': 'https://github.com/pypa/wheel/blob/master/docs/news.rst',
+ 'mako': 'https://docs.makotemplates.org/en/latest/changelog.html',
+ 'lxml': 'https://lxml.de/4.5/changes-4.5.0.html',
+ 'jwcrypto': 'https://github.com/latchset/jwcrypto/commits/master',
+ 'tox-pip-version': 'https://github.com/pglass/tox-pip-version/commits/master',
+ 'wrapt': 'https://github.com/GrahamDumpleton/wrapt/blob/develop/docs/changes.rst',
+ 'pep517': 'https://github.com/pypa/pep517/commits/master',
+ 'cryptography': 'https://cryptography.io/en/latest/changelog/',
+ 'toml': 'https://github.com/uiri/toml/releases',
+ 'pyqt': 'https://www.riverbankcomputing.com/',
+ 'vulture': 'https://github.com/jendrikseipp/vulture/blob/master/CHANGELOG.md',
+ 'distlib': 'https://bitbucket.org/pypa/distlib/src/master/CHANGES.rst',
+ 'py-cpuinfo': 'https://github.com/workhorsy/py-cpuinfo/blob/master/ChangeLog',
+}
+
# PyQt versions which need SIP v4
OLD_PYQT = {'pyqt-5.7', 'pyqt-5.9', 'pyqt-5.10', 'pyqt-5.11'}
@@ -186,23 +253,30 @@ class Change:
self.name = name
self.old = None
self.new = None
+ if name.lower() in CHANGELOG_URLS:
+ self.url = CHANGELOG_URLS[name.lower()]
+ self.link = '[{}]({})'.format(self.name, self.url)
+ else:
+ self.url = '(no changelog)'
+ self.link = '{} (no changelog)'.format(self.name)
def __str__(self):
if self.old is None:
- return '- {} new: {}'.format(self.name, self.new)
+ return '- {} new: {} {}'.format(self.name, self.new, self.url)
elif self.new is None:
- return '- {} removed: {}'.format(self.name, self.old)
+ return '- {} removed: {} {}'.format(self.name, self.old, self.url)
else:
- return '- {} {} -> {}'.format(self.name, self.old, self.new)
+ return '- {} {} -> {} {}'.format(self.name, self.old, self.new,
+ self.url)
def table_str(self):
"""Generate a markdown table."""
if self.old is None:
- return '| {} | -- | {} |'.format(self.name, self.new)
+ return '| {} | -- | {} |'.format(self.link, self.new)
elif self.new is None:
- return '| {} | {} | -- |'.format(self.name, self.old)
+ return '| {} | {} | -- |'.format(self.link, self.old)
else:
- return '| {} | {} | {} |'.format(self.name, self.old, self.new)
+ return '| {} | {} | {} |'.format(self.link, self.old, self.new)
def print_changed_files():
diff --git a/tox.ini b/tox.ini
index b1e1b80af..a4d393a7a 100644
--- a/tox.ini
+++ b/tox.ini
@@ -161,7 +161,7 @@ commands =
[testenv:pyinstaller]
basepython = {env:PYTHON:python3}
pip_version = pip
-passenv = APPDATA HOME
+passenv = APPDATA HOME PYINSTALLER_DEBUG
deps =
-r{toxinidir}/requirements.txt
-r{toxinidir}/misc/requirements/requirements-pyinstaller.txt