Repository navigation
Reminder
Older Python versions are supported for 3 years after being obsoleted by a new major release. As Python 3.13 was
released on 7 October 2024, the codebase will be streamlined by removing support for Python 3.12 on or after 7
October 2027.
Added
- Command line arguments that take a job (a joblist,
--test,--test-differ,--dump-history,
--delete,--delete-snapshot,--change-locationetc.) also select it by itsname. See
https://webchanges.readthedocs.io/en/stable/cli.html#job-subset. - New
ignore_incomplete_readsjob directive forurljobs: ignores the error raised when the server closes the
connection before sending the complete response. See
https://webchanges.readthedocs.io/en/stable/jobs.html#ignore-incomplete-reads. - New
reply_tosub-directive of theemailreporter, setting theReply-Toheader of the email. - New
--enableand--disablecommand line arguments, which set a job'senableddirective.
They rewrite the jobs file, so all its remarks are lost. See
https://webchanges.readthedocs.io/en/stable/cli.html#enable-disable. - New
stderrdirective forcommandjobs:ignore(the default),forward,
failandstdoutto handle the command's standard error output. See
https://webchanges.readthedocs.io/en/stable/jobs.html#stderr. - New
treat_new_as_changedjob directive (for backward compatibility): reports a new job as changed, with its
content shown as a diff from empty content, so that its differ anddiff_filtersapply from the first run. See
https://webchanges.readthedocs.io/en/stable/jobs.html#treat-new-as-changed. - Better backward compatibility: the legacy
useragent,browserandwait_fordirectives ofnavigate
jobs are translated into aUser-Agentheader,use_browserandwait_for_selector(wait_forused to
fail the job), and the legacymattermostreporter runs as awebhookone with Markdown; all print a
deprecation warning. See https://webchanges.readthedocs.io/en/stable/upgrading.html.
Changed
- A job selected by URL/command (or name) that matches more than one job is now an error listing the jobs matched,
instead of silently selecting the first one; select the job by its index number instead. - The
html2textfilter'slynxmethod (for backward compatibility) no longer fails the job: it runs the default
method instead (ignoringlynx's options) and prints a deprecation warning.
Fixed
- A job selected more than once in a joblist (e.g. a new job selected with
--prepare-jobs, which also adds the new
jobs) ran more than once. - The debug log reported a negative number of disabled jobs.
- The
ntfyreporter published only the first job of a report, raising
RuntimeError: Cannot reopen a client instance, once it has been closed.on the second one (or aNameError
ifhttpxis not installed). A failed publication no longer prevents the other jobs from being published. - The
ntfyreporter no longer adds an "Open URL" action to the messages ofcommandjobs. - With the same
RuntimeError, theiftttreporter sent only the first job of a report, and thewebhook(as
well as the deprecatedslackandmattermost) anddiscordreporters only the first part of a report too
long for one message. - On the first run, legacy jobs, configuration and hooks files are now also found and copied from the legacy
platform-specific configuration directory (e.g.~/.config/urlwatchon Linux), and not only from
~/.urlwatch. - The deprecated
shellreporter (for backward compatibility) crashed withKeyError: 'max_message_length'; it now
pipes the report to its command's standard input. - The deprecated
slackreporter (for backward compatibility) was silently ignored; it now runs as awebhook
reporter. - The
run_commandreporter did not set the documentedWEBCHANGES_CHANGED_JOBS_JSONenvironment variable; it
now holds the directives of the jobs reported on. - The subject (or title) of a report with a single change read "1 changes" instead of "1 change".
- Jobs with the deprecated
navigatedirective failed when run with
"Directive 'navigate' is deprecated with Playwright", although the directive was translated intourland
use_browser: true. - Rewriting the jobs file (with
--add,--deleteor--change-location) dropped the directives set to false
or 0, such asenabled: falseorcontextlines: 0. --deleteand--change-locationcrashed withEOFErrorat their confirmation prompt when no input was
available (e.g.--change-locationrun bycron, or standard input redirected from the null device, which
Windows reports as a terminal); they now leave the jobs file unmodified.