Skip to content

Commit

Permalink
Version 3.13
Browse files Browse the repository at this point in the history
  • Loading branch information
mborsetti committed Aug 28, 2023
1 parent bf1dee2 commit b1de2ac
Show file tree
Hide file tree
Showing 5 changed files with 54 additions and 52 deletions.
46 changes: 23 additions & 23 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -33,40 +33,40 @@ can check out the `wish list <https://github.com/mborsetti/webchanges/blob/main/
Internals, for changes that don't affect users. [triggers a minor patch]
Version 3.13rc2
Version 3.13
===================
Unreleased
2023-08-28

Notice
------
Support for Python 3.8 will be removed on or about 5 October 2023. Older Python versions are supported for 3 years
after being obsoleted by a new major release.
Support for Python 3.8 will be removed on or about 5 October 2023. A reminder that older Python versions are
supported for 3 years after being obsoleted by a new major release (i.e. about 4 years since their original release).

Added
-----
* New ``adjacent`` sub-directive to the ``remove_duplicates`` filter enables the de-duplication of non-adjacent lines
or items.
* New ``retries`` directive for ``url`` jobs without ``use_browser`` sets the number of times to retry a url before
giving up. Using ``retries: 1`` or higher will often solve the ``('Connection aborted.', ConnectionResetError(104,
'Connection reset by peer'))`` error received from a misconfigured server at the first connection.
* ``css`` and ``xpath`` filters now accept a ``sort`` subfilter to sort matched elements lexicographically.
* New ``separate`` configuration option for reporters to split reports into one-per-job.
* ``command`` jobs now have improved error reporting which includes the error text from the failed command.
* Reports have a new ``separate`` configuration option to split reports into one-per-job.
* ``url`` jobs without ``use_browser`` have a new ``retries`` directive to specify the number of times to retry a
job that errors before giving up. Using ``retries: 1`` or higher will often solve the ``('Connection aborted.',
ConnectionResetError(104, 'Connection reset by peer'))`` error received from a misconfigured server at the first
connection.
* ``remove_duplicates`` filter has a new ``adjacent`` sub-directive to de-duplicate non-adjacent lines or items.
* ``css`` and ``xpath`` have a new ``sort`` subfilter to sort matched elements lexicographically.
* Command line arguments:

* New ``--footnote`` adds a custom footnote to reports.
* New ``--change-location`` allows to keep job history when the ``url`` or ``command changes``.
* ``--gc-database`` and ``--clean-database`` now have optional argument ``RETAIN-LIMIT`` to to allow increasing
the number of old snapshots to retain when cleaning up the database for the default of 1.
* New ``--detailed-versions`` displays detailed version and system information inclusive of the versions of
dependencies and, in certain Linux distributions (e.g. Debian), of dependency system libraries. Also reports
available memory and disk space.
* New ``--footnote`` to add a custom footnote to reports.
* New ``--change-location`` to keep job history when the ``url`` or ``command`` changes.
* ``--gc-database`` and ``--clean-database`` now have optional argument ``RETAIN-LIMIT`` to allow increasing
the number of retained snapshots from the default of 1.
* New ``--detailed-versions`` to display detailed version and system information, inclusive of the versions of
dependencies and, in certain Linux distributions (e.g. Debian), of system libraries. It also reports available
memory and disk space.

Changed
-------
* ``command`` jobs now have improved error reporting which includes the error text from the failed command.
* ``--rollback-database`` now confirms the date (in ISO-8601 format) to roll back the database to and, if
**webchanges** is being run in interactive mode, will ask for human confirmation before proceeding with the
unrecoverable deletion.
**webchanges** is being run in interactive mode, the user will be asked for positive confirmation before proceeding
with the un-reversible deletion.

Internals
---------
Expand All @@ -76,8 +76,8 @@ Internals
* Exclude tests from being recognized as package during build (contributed by `Max
<https://github.com/aragon999>`__ in `#54 <https://github.com/mborsetti/webchanges/pull/54>`__).
* Refactored and cleaned up some tests.
* Initial testing with Python 3.12, but a reported bug in 3.12.0-rc1 ``typing.TypeVar`` prevents ``pyee`` dependency
of ``playwright`` from loading; awaiting for 3.12.0-rc2.
* Initial testing with Python 3.12.0-rc1, but a reported bug in ``typing.TypeVar`` prevents the ``pyee`` dependency
of ``playwright`` from loading, causing a failure. Awaiting for fix in Python 3.12.0-rc2 to retry.


Version 3.12
Expand Down
42 changes: 21 additions & 21 deletions RELEASE.rst
Original file line number Diff line number Diff line change
@@ -1,33 +1,33 @@
Notice
------
Support for Python 3.8 will be removed on or about 5 October 2023. Older Python versions are supported for 3 years
after being obsoleted by a new major release.
Support for Python 3.8 will be removed on or about 5 October 2023. A reminder that older Python versions are
supported for 3 years after being obsoleted by a new major release (i.e. about 4 years since their original release).

Added
-----
* New ``adjacent`` sub-directive to the ``remove_duplicates`` filter enables the de-duplication of non-adjacent lines
or items.
* New ``retries`` directive for ``url`` jobs without ``use_browser`` sets the number of times to retry a url before
giving up. Using ``retries: 1`` or higher will often solve the ``('Connection aborted.', ConnectionResetError(104,
'Connection reset by peer'))`` error received from a misconfigured server at the first connection.
* ``css`` and ``xpath`` filters now accept a ``sort`` subfilter to sort matched elements lexicographically.
* New ``separate`` configuration option for reporters to split reports into one-per-job.
* ``command`` jobs now have improved error reporting which includes the error text from the failed command.
* Reports have a new ``separate`` configuration option to split reports into one-per-job.
* ``url`` jobs without ``use_browser`` have a new ``retries`` directive to specify the number of times to retry a
job that errors before giving up. Using ``retries: 1`` or higher will often solve the ``('Connection aborted.',
ConnectionResetError(104, 'Connection reset by peer'))`` error received from a misconfigured server at the first
connection.
* ``remove_duplicates`` filter has a new ``adjacent`` sub-directive to de-duplicate non-adjacent lines or items.
* ``css`` and ``xpath`` have a new ``sort`` subfilter to sort matched elements lexicographically.
* Command line arguments:

* New ``--footnote`` adds a custom footnote to reports.
* New ``--change-location`` allows to keep job history when the ``url`` or ``command changes``.
* ``--gc-database`` and ``--clean-database`` now have optional argument ``RETAIN-LIMIT`` to to allow increasing
the number of old snapshots to retain when cleaning up the database for the default of 1.
* New ``--detailed-versions`` displays detailed version and system information inclusive of the versions of
dependencies and, in certain Linux distributions (e.g. Debian), of dependency system libraries. Also reports
available memory and disk space.
* New ``--footnote`` to add a custom footnote to reports.
* New ``--change-location`` to keep job history when the ``url`` or ``command`` changes.
* ``--gc-database`` and ``--clean-database`` now have optional argument ``RETAIN-LIMIT`` to allow increasing
the number of retained snapshots from the default of 1.
* New ``--detailed-versions`` to display detailed version and system information, inclusive of the versions of
dependencies and, in certain Linux distributions (e.g. Debian), of system libraries. It also reports available
memory and disk space.

Changed
-------
* ``command`` jobs now have improved error reporting which includes the error text from the failed command.
* ``--rollback-database`` now confirms the date (in ISO-8601 format) to roll back the database to and, if
**webchanges** is being run in interactive mode, will ask for human confirmation before proceeding with the
unrecoverable deletion.
**webchanges** is being run in interactive mode, the user will be asked for positive confirmation before proceeding
with the un-reversible deletion.

Internals
---------
Expand All @@ -37,5 +37,5 @@ Internals
* Exclude tests from being recognized as package during build (contributed by `Max
<https://github.com/aragon999>`__ in `#54 <https://github.com/mborsetti/webchanges/pull/54>`__).
* Refactored and cleaned up some tests.
* Initial testing with Python 3.12, but a reported bug in 3.12.0-rc1 ``typing.TypeVar`` prevents ``pyee`` dependency
of ``playwright`` from loading; awaiting for 3.12.0-rc2.
* Initial testing with Python 3.12.0-rc1, but a reported bug in ``typing.TypeVar`` prevents the ``pyee`` dependency
of ``playwright`` from loading, causing a failure. Awaiting for fix in Python 3.12.0-rc2 to retry.
14 changes: 8 additions & 6 deletions docs/upgrading.rst
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@ Upgrading from a :program:`urlwatch` 2.28 setup is automatic (see more below), a
* Other legibility improvements
* Improved ``telegram`` reporter that uses MarkdownV2 and preserves most formatting of HTML sites including clickable
links, bolding, underlining, italics and strikethrough.
* The use of Playwright instead of Pyppeteer and (old version of) Chromium for browsing jobs to render JavaScript
(called ``navigate`` in :program:`urlwatch`), including:
* A more complete use of Playwright for browsing jobs to render JavaScript (called ``navigate`` in
:program:`urlwatch`), including:

* Upgraded browser engine to the latest released version of Google Chrome
* Higher stability by optimizing of concurrency
Expand All @@ -60,9 +60,10 @@ Upgrading from a :program:`urlwatch` 2.28 setup is automatic (see more below), a
* The support of Unicode throughout, including in filters and in the jobs and configuration YAML files
* The fixing of the ``format-json`` filter from unexpectedly reordering contents of dictionaries, now controllable by
the new sub-directive ``sort_keys``
* The ability to undo mistakes by rolling back the database using ``--rollback-database``.
* More reliable releases due to:

* A 39 percentage point increase in code testing coverage (to 81%)
* A 39 percentage point increase in code testing coverage (to ~81%)
* Completely new continuous integration (CI) and continuous delivery (CD) pipeline (GitHub Actions with pre-commit)
* Uses of flake8 and doc8 linters and pre-commit checks
* Code security checks using bandit
Expand Down Expand Up @@ -107,7 +108,8 @@ Playwright:
webchanges --install-chrome
You can free up disk space if no other packages use Pyppeteer by, in order:
If upgrading from :program:`urlwatch` 2.27 or earlier, you can free up disk space if no other packages use Pyppeteer
by, in order:

1) Removing the downloaded Chromium images by deleting the entire *directory* (and its subdirectories) shown by running:

Expand Down Expand Up @@ -316,7 +318,7 @@ Relative to :program:`urlwatch` 2.28:
* Unicode is supported throughout, including in filters and jobs and configuration YAML files.
* Implemented `pathlib <https://docs.python.org/3/library/pathlib.html>`__ (new in Python 3.4) for better
code readability and functionality.
* A 39 percentage point increase in code testing coverage (to 81%), a completely new continuous integration
* A 39 percentage point increase in code testing coverage (to ~81%), a completely new continuous integration
(CI) and continuous delivery (CD) pipeline (`GitHub Actions <https://github.com/features/actions>`__), and testing
on Ubuntu and macOS (with Windows 10 x64 to come) increases reliability of new releases.
* Using `flake8 <https://pypi.org/project/flake8/>`__ to check PEP-8 compliance and more.
Expand Down Expand Up @@ -447,4 +449,4 @@ File. In. Every. Single. Directory; the above notice is amply sufficient.
[follows full text of the urlwatch license]

While a lot of improvements have been made from urlwatch 2.21, there's no lack of proper acknowledgement of the
package's roots in Thomas Perl's code -- in multiple ways -- and of its full, explicit licensing.
package's use of Thomas Perl's code -- in multiple ways -- and of its full, explicit licensing.
2 changes: 1 addition & 1 deletion webchanges/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
# * MINOR version when you add functionality in a backwards compatible manner, and
# * MICRO or PATCH version when you make backwards compatible bug fixes. We no longer use '0'
# If unsure on increments, use pkg_resources.parse_version to parse
__version__ = '3.13rc2'
__version__ = '3.13'
__description__ = (
'Check web (or command output) for changes since last run and notify.\n'
'\n'
Expand Down
2 changes: 1 addition & 1 deletion webchanges/storage.py
Original file line number Diff line number Diff line change
Expand Up @@ -751,7 +751,7 @@ def load(self, *args: Any) -> None:
f'The configuration file {self.filename} is missing directive(s); the following default '
f'values are being used:\n'
f'{yaml.safe_dump(missing)}'
f'See documentation at {__docs_url__}/en/stable/configuration.html'
f'See documentation at {__docs_url__}en/stable/configuration.html'
)
config = self.dict_deep_merge(config or {}, DEFAULT_CONFIG)
logger.info(f'Loaded configuration from {self.filename}')
Expand Down

0 comments on commit b1de2ac

Please sign in to comment.