Unify style and fix some bugs

This commit is contained in:
josealberto4444 2017-10-05 14:05:26 +02:00
parent 30aab8ef79
commit d8e9d10c00
2 changed files with 41 additions and 42 deletions

View File

@ -44,10 +44,10 @@ Documentation
In addition to the topics mentioned in this README, the following documents are In addition to the topics mentioned in this README, the following documents are
available: available:
* A https://qutebrowser.org/img/cheatsheet-big.png[key binding cheatsheet]: + * https://qutebrowser.org/img/cheatsheet-big.png[Key binding cheatsheet]: +
image:https://qutebrowser.org/img/cheatsheet-small.png["qutebrowser key binding cheatsheet",link="https://qutebrowser.org/img/cheatsheet-big.png"] image:https://qutebrowser.org/img/cheatsheet-small.png["qutebrowser key binding cheatsheet",link="https://qutebrowser.org/img/cheatsheet-big.png"]
* link:doc/quickstart.asciidoc[Quick start guide] * link:doc/quickstart.asciidoc[Quick start guide]
* A https://www.shortcutfoo.com/app/dojos/qutebrowser[free training course] to remember those key bindings. * https://www.shortcutfoo.com/app/dojos/qutebrowser[Free training course] to remember those key bindings
* link:doc/faq.asciidoc[Frequently asked questions] * link:doc/faq.asciidoc[Frequently asked questions]
* link:doc/help/configuring.asciidoc[Configuring qutebrowser] * link:doc/help/configuring.asciidoc[Configuring qutebrowser]
* link:doc/contributing.asciidoc[Contributing to qutebrowser] * link:doc/contributing.asciidoc[Contributing to qutebrowser]
@ -107,9 +107,9 @@ The following software and libraries are required to run qutebrowser:
- QtWebEngine, or - QtWebEngine, or
- QtWebKit - only the - QtWebKit - only the
link:https://github.com/annulen/webkit/wiki[updated fork] (5.212) is link:https://github.com/annulen/webkit/wiki[updated fork] (5.212) is
supported. supported
* http://www.riverbankcomputing.com/software/pyqt/intro[PyQt] 5.7.0 or newer * http://www.riverbankcomputing.com/software/pyqt/intro[PyQt] 5.7.0 or newer
(5.9 recommended) for Python 3. (5.9 recommended) for Python 3
* https://pypi.python.org/pypi/setuptools/[pkg_resources/setuptools] * https://pypi.python.org/pypi/setuptools/[pkg_resources/setuptools]
* http://fdik.org/pyPEG/[pyPEG2] * http://fdik.org/pyPEG/[pyPEG2]
* http://jinja.pocoo.org/[jinja2] * http://jinja.pocoo.org/[jinja2]
@ -120,7 +120,7 @@ The following software and libraries are required to run qutebrowser:
The following libraries are optional: The following libraries are optional:
* http://cthedot.de/cssutils/[cssutils] (for an improved `:download --mhtml` * http://cthedot.de/cssutils/[cssutils] (for an improved `:download --mhtml`
with QtWebKit) with QtWebKit).
* On Windows, https://pypi.python.org/pypi/colorama/[colorama] for colored log * On Windows, https://pypi.python.org/pypi/colorama/[colorama] for colored log
output. output.
* http://asciidoc.org/[asciidoc] to generate the documentation for the `:help` * http://asciidoc.org/[asciidoc] to generate the documentation for the `:help`

View File

@ -98,23 +98,23 @@ Currently, the following tox environments are available:
* Tests using https://www.pytest.org[pytest]: * Tests using https://www.pytest.org[pytest]:
- `py35`, `py36`: Run pytest for python 3.5/3.6 with the system-wide PyQt. - `py35`, `py36`: Run pytest for python 3.5/3.6 with the system-wide PyQt.
- `py36-pyqt57`, ..., `py36-pyqt59`: Run pytest with the given PyQt version (`py35-*` also works) - `py36-pyqt57`, ..., `py36-pyqt59`: Run pytest with the given PyQt version (`py35-*` also works).
- `py36-pyqt59-cov`: Run with coverage support (other Python/PyQt versions work too) - `py36-pyqt59-cov`: Run with coverage support (other Python/PyQt versions work too).
* `flake8`: Run https://pypi.python.org/pypi/flake8[flake8] checks: * `flake8`: Run https://pypi.python.org/pypi/flake8[flake8] checks:
https://pypi.python.org/pypi/pyflakes[pyflakes], https://pypi.python.org/pypi/pyflakes[pyflakes],
https://pypi.python.org/pypi/pep8[pep8], https://pypi.python.org/pypi/pep8[pep8],
https://pypi.python.org/pypi/mccabe[mccabe] https://pypi.python.org/pypi/mccabe[mccabe].
* `vulture`: Run https://pypi.python.org/pypi/vulture[vulture] to find * `vulture`: Run https://pypi.python.org/pypi/vulture[vulture] to find
unused code portions. unused code portions.
* `pylint`: Run http://pylint.org/[pylint] static code analysis. * `pylint`: Run http://pylint.org/[pylint] static code analysis.
* `pydocstyle`: Check * `pydocstyle`: Check
https://www.python.org/dev/peps/pep-0257/[PEP257] compliance with https://www.python.org/dev/peps/pep-0257/[PEP257] compliance with
https://github.com/PyCQA/pydocstyle[pydocstyle] https://github.com/PyCQA/pydocstyle[pydocstyle].
* `pyroma`: Check packaging practices with * `pyroma`: Check packaging practices with
https://pypi.python.org/pypi/pyroma/[pyroma] https://pypi.python.org/pypi/pyroma/[pyroma].
* `eslint`: Run http://eslint.org/[ESLint] javascript checker. * `eslint`: Run http://eslint.org/[ESLint] javascript checker.
* `check-manifest`: Check MANIFEST.in completeness with * `check-manifest`: Check MANIFEST.in completeness with
https://github.com/mgedmin/check-manifest[check-manifest] https://github.com/mgedmin/check-manifest[check-manifest].
* `mkvenv`: Bootstrap a virtualenv for testing. * `mkvenv`: Bootstrap a virtualenv for testing.
* `misc`: Run `scripts/misc_checks.py` to check for: * `misc`: Run `scripts/misc_checks.py` to check for:
- untracked git files - untracked git files
@ -290,7 +290,7 @@ There are some exceptions to that:
* `QThread` is used instead of Python threads because it provides signals and * `QThread` is used instead of Python threads because it provides signals and
slots. slots.
* `QProcess` is used instead of Python's `subprocess` * `QProcess` is used instead of Python's `subprocess`.
* `QUrl` is used instead of storing URLs as string, see the * `QUrl` is used instead of storing URLs as string, see the
<<handling-urls,handling URLs>> section for details. <<handling-urls,handling URLs>> section for details.
@ -325,7 +325,7 @@ dictionaries which map object names to the actual long-living objects.
There are currently these object registries, also called 'scopes': There are currently these object registries, also called 'scopes':
* The `global` scope, with objects which are used globally (`config`, * The `global` scope, with objects which are used globally (`config`,
`cookie-jar`, etc.) `cookie-jar`, etc.).
* The `tab` scope with objects which are per-tab (`hintmanager`, `webview`, * The `tab` scope with objects which are per-tab (`hintmanager`, `webview`,
etc.). Passing this scope to `objreg.get()` selects the object in the currently etc.). Passing this scope to `objreg.get()` selects the object in the currently
focused tab by default. A tab can be explicitly selected by passing focused tab by default. A tab can be explicitly selected by passing
@ -434,11 +434,10 @@ def foo(bar: int, baz=True):
---- ----
Possible values: Possible values:
- A callable (`int`, `float`, etc.): Gets called to validate/convert the - A callable (`int`, `float`, etc.): Gets called to validate/convert the value.
value.
- A python enum type: All members of the enum are possible values. - A python enum type: All members of the enum are possible values.
- A `typing.Union` of multiple types above: Any of these types are valid - A `typing.Union` of multiple types above: Any of these types are valid
values, e.g., `typing.Union[str, int]` values, e.g., `typing.Union[str, int]`.
You can customize how an argument is handled using the `@cmdutils.argument` You can customize how an argument is handled using the `@cmdutils.argument`
decorator *after* `@cmdutils.register`. This can, for example, be used to decorator *after* `@cmdutils.register`. This can, for example, be used to
@ -468,9 +467,9 @@ For `typing.Union` types, the given `choices` are only checked if other types
The following arguments are supported for `@cmdutils.argument`: The following arguments are supported for `@cmdutils.argument`:
- `flag`: Customize the short flag (`-x`) the argument will get. - `flag`: Customize the short flag (`-x`) the argument will get.
- `win_id=True`: Mark the argument as special window ID argument - `win_id=True`: Mark the argument as special window ID argument.
- `count=True`: Mark the argument as special count argument - `count=True`: Mark the argument as special count argument.
- `hide=True`: Hide the argument from the documentation - `hide=True`: Hide the argument from the documentation.
- `completion`: A completion function (see `qutebrowser.completions.models.*`) - `completion`: A completion function (see `qutebrowser.completions.models.*`)
to use when completing arguments for the given command. to use when completing arguments for the given command.
- `choices`: The allowed string choices for the argument. - `choices`: The allowed string choices for the argument.
@ -535,11 +534,11 @@ Setting up a Windows Development Environment
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Install https://www.python.org/downloads/release/python-362/[Python 3.6]. * Install https://www.python.org/downloads/release/python-362/[Python 3.6].
* Install PyQt via `pip install PyQt5` * Install PyQt via `pip install PyQt5`.
* Create a file at `C:\Windows\system32\python3.bat` with the following content (adjust the path as necessary): * Create a file at `C:\Windows\system32\python3.bat` with the following content (adjust the path as necessary):
`@C:\Python36\python %*` `@C:\Python36\python %*`.
This will make the Python 3.6 interpreter available as `python3`, which is used by various development scripts. This will make the Python 3.6 interpreter available as `python3`, which is used by various development scripts.
* Install git from the https://git-scm.com/download/win[git-scm downloads page] * Install git from the https://git-scm.com/download/win[git-scm downloads page].
Try not to enable `core.autocrlf`, since that will cause `flake8` to complain a lot. Use an editor that can deal with plain line feeds instead. Try not to enable `core.autocrlf`, since that will cause `flake8` to complain a lot. Use an editor that can deal with plain line feeds instead.
* Clone your favourite qutebrowser repository. * Clone your favourite qutebrowser repository.
* To install tox, open an elevated cmd, enter your working directory and run `pip install -rmisc/requirements/requirements-tox.txt`. * To install tox, open an elevated cmd, enter your working directory and run `pip install -rmisc/requirements/requirements-tox.txt`.
@ -658,7 +657,7 @@ New Qt release
https://bugreports.qt.io/issues/?jql=reporter%20%3D%20%22The%20Compiler%22%20ORDER%20BY%20fixVersion%20ASC[Qt bugtracker] https://bugreports.qt.io/issues/?jql=reporter%20%3D%20%22The%20Compiler%22%20ORDER%20BY%20fixVersion%20ASC[Qt bugtracker]
and make sure all bugs marked as resolved are actually fixed. and make sure all bugs marked as resolved are actually fixed.
* Update own PKGBUILDs based on upstream Archlinux updates and rebuild. * Update own PKGBUILDs based on upstream Archlinux updates and rebuild.
* Update recommended Qt version in `README` * Update recommended Qt version in `README`.
* Grep for `WORKAROUND` in the code and test if fixed stuff works without the * Grep for `WORKAROUND` in the code and test if fixed stuff works without the
workaround. workaround.
* Check relevant * Check relevant
@ -668,38 +667,38 @@ bugs] and check if they're fixed.
New PyQt release New PyQt release
~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~
* See above * See above.
* Install new PyQt in Windows VM (32- and 64-bit) * Install new PyQt in Windows VM (32- and 64-bit).
* Download new installer and update PyQt installer path in `ci_install.py`. * Download new installer and update PyQt installer path in `ci_install.py`.
* Update `tox.ini`/`.travis.yml`/`.appveyor.yml` to test new versions * Update `tox.ini`/`.travis.yml`/`.appveyor.yml` to test new versions.
qutebrowser release qutebrowser release
~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~
* Make sure there are no unstaged changes and the tests are green. * Make sure there are no unstaged changes and the tests are green.
* Run `x=... y=...` to set the respective shell variables * Run `x=... y=...` to set the respective shell variables.
* Add newest config to `tests/unit/config/old_configs` and update `test_upgrade_version` * Add newest config to `tests/unit/config/old_configs` and update `test_upgrade_version`:
- `python -m qutebrowser --basedir conf :quit` - `python -m qutebrowser --basedir conf :quit`
- `sed '/^#/d' conf/config/qutebrowser.conf > tests/unit/config/old_configs/qutebrowser-v0.$x.$y.conf` - `sed '/^#/d' conf/config/qutebrowser.conf > tests/unit/config/old_configs/qutebrowser-v0.$x.$y.conf`
- `rm -r conf` - `rm -r conf`
- git add - git add
- commit - commit
* Adjust `__version_info__` in `qutebrowser/__init__.py`. * Adjust `__version_info__` in `qutebrowser/__init__.py`.
* Update changelog (remove *(unreleased)*) * Update changelog (remove *(unreleased)*).
* Run tests again * Run tests again.
* Commit * Commit.
* Create annotated git tag (`git tag -s "v0.$x.$y" -m "Release v0.$x.$y"`) * Create annotated git tag (`git tag -s "v0.$x.$y" -m "Release v0.$x.$y"`).
* `git push origin`; `git push origin v0.$x.$y` * `git push origin`; `git push origin v0.$x.$y`.
* If committing on minor branch, cherry-pick release commit to master. * If committing on minor branch, cherry-pick release commit to master.
* Create release on github * Create release on github.
* Mark the milestone at https://github.com/qutebrowser/qutebrowser/milestones * Mark the milestone at https://github.com/qutebrowser/qutebrowser/milestones
as closed. as closed.
* Linux: Run `python3 scripts/dev/build_release.py --upload v0.$x.$y` * Linux: Run `python3 scripts/dev/build_release.py --upload v0.$x.$y`.
* Windows: Run `C:\Python36-32\python scripts\dev\build_release.py --asciidoc C:\Python27\python C:\asciidoc-8.6.9\asciidoc.py --upload v0.X.Y` (replace X/Y by hand) * Windows: Run `C:\Python36-32\python scripts\dev\build_release.py --asciidoc C:\Python27\python C:\asciidoc-8.6.9\asciidoc.py --upload v0.X.Y` (replace X/Y by hand).
* macOS: Run `python3 scripts/dev/build_release.py --upload v0.X.Y` (replace X/Y by hand) * macOS: Run `python3 scripts/dev/build_release.py --upload v0.X.Y` (replace X/Y by hand).
* On server: Run `python3 scripts/dev/download_release.py v0.X.Y` (replace X/Y by hand) * On server: Run `python3 scripts/dev/download_release.py v0.X.Y` (replace X/Y by hand).
* Update `qutebrowser-git` PKGBUILD if dependencies/install changed * Update `qutebrowser-git` PKGBUILD if dependencies/install changed.
* Announce to qutebrowser and qutebrowser-announce mailinglist * Announce to qutebrowser and qutebrowser-announce mailinglist.