Webchanges

Latest version: v3.26.0

Safety actively analyzes 688931 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 8 of 9

3.2.6

Not secure
===================
2021-03-21

Changed
--------
* Tweaked colors (esp. green) of HTML reporter to work with Dark Mode
* Restored API documentation using Sphinx's autodoc (removed in 3.2.4 as it was not building correctly)

Internal
--------
* Replaced custom atomic_rename function with built-in `os.replace()
<https://docs.python.org/3/library/os.html#os.replace>`__ (new in Python 3.3) that does the same thing
* Added type hinting to the entire code
* Added new tests, increasing coverage to 61%
* GitHub Actions CI now runs faster as it's set to cache required packages from prior runs

Known issues
------------
* Discovered that upstream (legacy) *urlwatch* 2.22 code has the database growing to infinity; run ``webchanges
--clean-cache`` periodically to discard old snapshots until this is addressed in a future release
* ``url`` jobs with ``use_browser: true`` (i.e. using *Pyppeteer*) will at times display the below error message in
stdout (terminal console). This does not affect **webchanges** as all data is downloaded, and hopefully it will be
fixed in the future (see `Pyppeteer issue 225 <https://github.com/pyppeteer/pyppeteer/issues/225>`__):

``future: <Future finished exception=NetworkError('Protocol error Target.sendMessageToTarget: Target closed.')>``
``pyppeteer.errors.NetworkError: Protocol error Target.sendMessageToTarget: Target closed.``
``Future exception was never retrieved``

3.2

===================
2021-03-08

Added
-----
* Job directive ``note``: adds a freetext note appearing in the report after the job header
* Job directive ``wait_for_navigation`` for ``url`` jobs with ``use_browser: true`` (i.e. using *Pyppeteer*): wait for
navigation to reach a URL starting with the specified one before extracting content. Useful when the URL redirects
elsewhere before displaying content you're interested in and *Pyppeteer* would capture the intermediate page.
* command line argument ``--rollback-cache TIMESTAMP``: rollback the snapshot database to a previous time, useful when
you miss notifications; see `here <https://webchanges.readthedocs.io/en/stable/cli.html#rollback-cache>`__. Does not
work with database engine ``minidb`` or ``textfiles``.
* command line argument ``--cache-engine ENGINE``: specify ``minidb`` to continue using the database structure used
in prior versions and *urlwatch* 2. New default ``sqlite3`` creates a smaller database due to data compression with
`msgpack <https://msgpack.org/index.html>`__ and offers additional features; migration from old minidb database is
done automatically and the old database preserved for manual deletion.
* Job directive ``block_elements`` for ``url`` jobs with ``use_browser: true`` (i.e. using *Pyppeteer*) (⚠ ignored in
Python < 3.7) (experimental feature): specify `resource types
<https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webRequest/ResourceType>`__ (elements) to
skip requesting (downloading) in order to speed up retrieval of the content; only resource types `supported by
Chromium <https://developer.chrome.com/docs/extensions/reference/webRequest/#type-ResourceType>`__ are allowed
(typical list includes ``stylesheet``, ``font``, ``image``, and ``media``). ⚠ On certain sites it seems to totally
freeze execution; test before use.

Changes
-------
* A new, more efficient indexed database is used and only the most recent saved snapshot is migrated the first time you
run this version. This has no effect on the ordinary use of the program other than reducing the number of historical
results from ``--test-diffs`` util more snapshots are captured. To continue using the legacy database format, launch
with ``database-engine minidb`` and ensure that the package ``minidb`` is installed.
* If any jobs have ``use_browser: true`` (i.e. are using *Pyppeteer*), the maximum number of concurrent threads is set
to the number of available CPUs instead of the `default
<https://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.ThreadPoolExecutor>`__ to avoid
instability due to *Pyppeteer*'s high usage of CPU
* Default configuration now specifies the use of Chromium revisions equivalent to Chrome 89.0.4389.72
for ``url`` jobs with ``use_browser: true`` (i.e. using *Pyppeteer*) to increase stability. Note: if you already have
a configuration file and want to upgrade to this version, see `here
<https://webchanges.readthedocs.io/en/stable/advanced.html#using-a-chromium-revision-matching-a-google-chrome-chromium-release>`__.
The Chromium revisions used now are 'linux': 843831, 'win64': 843846, 'win32': 843832, and 'mac': 843846.
* Temporarily removed code autodoc from the documentation as it was not building correctly

Fixed
-----
* Specifying ``chromium_revision`` had no effect (bug introduced in version 3.1.0)
* Improved the text of the error message when ``jobs.yaml`` has a mistake in the job parameters

Internals
---------
* Removed dependency on ``minidb`` package and are now directly using Python's built-in ``sqlite3``, allowing for better
control and increased functionality
* Database is now smaller due to data compression with `msgpack <https://msgpack.org/index.html>`__
* Migration from an old schema database is automatic and the last snapshot for each job will be migrated to the new one,
preserving the old database file for manual deletion
* No longer backing up database to \*.bak now that it can be rolled back
* New command line argument ``--database-engine`` allows selecting engine and accepts ``sqlite3`` (default),
``minidb`` (legacy compatibility, requires package by the same name) and ``textfiles`` (creates a text file of the
latest snapshot for each job)
* When running in Python 3.7 or higher, jobs with ``use_browser: true`` (i.e. using *Pyppeteer*) are a bit more reliable
as they are now launched using ``asyncio.run()``, and therefore Python takes care of managing the asyncio event loop,
finalizing asynchronous generators, and closing the threadpool, tasks that previously were handled by custom code
* 11 percentage point increase in code testing coverage, now also testing jobs that retrieve content from the internet
and (for Python 3.7 and up) use *Pyppeteer*

Known issues
------------
* ``url`` jobs with ``use_browser: true`` (i.e. using *Pyppeteer*) will at times display the below error message in
stdout (terminal console). This does not affect **webchanges** as all data is downloaded, and hopefully it will be
fixed in the future (see `Pyppeteer issue 225 <https://github.com/pyppeteer/pyppeteer/issues/225>`__):

``future: <Future finished exception=NetworkError('Protocol error Target.sendMessageToTarget: Target closed.')>``
``pyppeteer.errors.NetworkError: Protocol error Target.sendMessageToTarget: Target closed.``
``Future exception was never retrieved``

3.1.1

Not secure
=================
2021-02-08

Fixed
-----
* Documentation was failing to build at https://webchanges.readthedocs.io/

3.1

=================
2021-02-07

Added
-----
* Can specify different values of ``chromium_revision`` (used in jobs with ``use_browser" true``, i.e. using
*Pyppeteer*) based on OS by specifying keys ``linux``, ``mac``, ``win32`` and/or ``win64``
* If ``shellpipe`` filter returns an error it now shows the error text
* Show deprecation warning if running on the lowest Python version supported (mentioning the 3 years support from the
release date of the next major version)

Fixed
-----
* ``telegram`` reporter's ``chat_id`` can be numeric (fixes `610 <https://github.com/thp/urlwatch/issues/610>`__
upstream by `ramelito <https://github.com/ramelito>`__)

Internals
---------
* First PyPI release with new continuous integration (CI) and continuous delivery (CD) pipeline based on `bump2version
<https://pypi.org/project/bump2version/>`__, git tags, and `GitHub Actions <https://docs.github.com/en/actions>`__
* Moved continuous integration (CI) testing from Travis to `GitHub Actions <https://docs.github.com/en/actions>`__
* Moved linting (flake8) and documentation build testing from pytest to the `pre-commit
<https://pre-commit.com>`__ framework
* Added automated pre-commit local testing using `tox <https://tox.readthedocs.io/en/latest/>`__
* Added continuous integration (CI) testing on macOS platform

3.0.3

Not secure
=============
2020-12-21

⚠ Breaking Changes
------------------
* Compatibility with *urlwatch* 2.22, including the ⚠ breaking change of removing the ability to write custom filters
that do not take a subfilter as argument (see `here
<https://urlwatch.readthedocs.io/en/latest/deprecated.html#filters-without-subfilters-since-2-22>`__ upstream)
* Inadvertently released as a PATCH instead of a MAJOR release as it should have been under `Semantic Versioning
<https://semver.org/spec/v2.0.0.html#semantic-versioning-200>`__ rules given the incompatible API change upstream (see
discussion `here <https://github.com/thp/urlwatch/pull/600#issuecomment-754525630>`__ upstream)

Added
-----
* New job sub-directive ``user_visible_url`` to replace the URL in reports, useful e.g. if the watched URL is a REST
API endpoint but you want to link to the webpage instead ( `590 <https://github.com/thp/urlwatch/pull/590>`__
upstream by `huxiba <https://github.com/huxiba>`__)

Changed
-------
* The Markdown reporter now supports limiting the report length via the ``max_length`` parameter of the ``submit``
method. The length limiting logic is smart in the sense that it will try trimming the details first, followed by
omitting them completely, followed by omitting the summary. If a part of the report is omitted, a note about this is
added to the report. ( `572 <https://github.com/thp/urlwatch/issues/572>`__ upstream by `Denis Kasak
<https://github.com/dkasak>`__)

Fixed
-----
* Make imports thread-safe. This might increase startup times a bit, as dependencies are imported on boot instead of
when first used, but importing in Python is not (yet) thread-safe, so we cannot import new modules from the parallel
worker threads reliably ( `559 <https://github.com/thp/urlwatch/issues/559>`__ upstream by `Scott MacVicar
<https://github.com/scottmac>`__)
* Write Unicode-compatible YAML files

Internals
---------
* Upgraded to use of `subprocess.run <https://docs.python.org/3/library/subprocess.html#subprocess.run>`__

3.0.2

Not secure
=============
2020-12-06

Fixed
-----
* Logic error in reading ``EDITOR`` environment variable ( `1 <https://github.com/mborsetti/webchanges/issues/1>`__
contributed by `MazdaFunSun <https://github.com/mazdafunsunn>`__)

Page 8 of 9

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.