Skip to content

v8.0.0

Latest

Choose a tag to compare

@nanos nanos released this 04 Aug 14:27

This release restructures FediFetcher internally. If I've done this correctly, then very little will change for you: python find_posts.py works exactly as before, as do the container, the GitHub Action and every configuration option. There are however three breaking changes that might catch you out:

Breaking Changes

1. FediFetcher now needs Python 3.11 or newer

Previously 3.10 was fine.

Check whether you are affected

If you run FediFetcher as a GitHub Action: the workflow now requests Python 3.11, and that change should come along when you sync your fork. But if you edited your own copy of .github/workflows/get_context.yml, you may need to change this line in your workflow after you have synced your fork:

python-version: '3.11'   # was '3.10'

If you run FediFetcher from cron or a shell script (including systemd file, Windows Scheduled Task etc): Check your current version (python --version or python3 --version). If this is lower than 3.11 install a newer Python, or use the container image, which already bundles 3.14.

If you run FediFetcher from the container image: Nothing to do. The image now includes 3.14.

2. Command-line flags now beat the config file

FediFetcher reads settings from three places. The order of precedence has been corrected to what you would expect:

command line  >  environment variables  >  config file  >  defaults

Previously the config file overrode the command line, so this quietly ignored the flag:

python find_posts.py -c config.json --home-timeline-length=200

Check whether you are affected

If you pass flags and a config file, and both set the same option, the flag now wins. Check any wrapper scripts that do both.

3. Options that switch things off now work

--from-lists=0, --backfill-with-context=0 and --backfill-mentioned-users=0 used to enable the relevant behaviour. Any value at all was treated as "on". It now means off, as documented.

All three accept 0/1, true/false, yes/no and on/off.

Check whether you are affected

Check your configuration: If you had any of these set to 0, expecting them to be off, they have been running all along and will now stop. If you actually want them on, set it to 1.

Values that are neither true nor false are now rejected with a clear error rather than being silently treated as "on".

Other changes you may notice

A few minor changes that shouldn't impact anything but listed so you won't be alarmed if you notice them:

  • A failed run no longer throws away its work. Previously, if a run failed part way through (a network problem, an instance timing out, etc) everything it had fetched that run was discarded, and the next run started over. Progress is now saved whether the run succeeds or fails.
  • The instance blocklist is now fully enforced, --instance-blocklist was not being applied when FediFetcher followed a redirect to work out where a post lived. This has been fixed.
  • A malformed value in any source (command line, environment variable or config file) now reports which option was wrong. Previously only the command line was checked, and a bad FF_* environment variable failed with an unhelpful stack trace.
  • A new state_version file appears. It records the format of the other files so future upgrades can migrate them. A directory without one is treated as version 1.
  • recent_context gets much smaller. It used to store an entire copy of every post it had checked; it now keeps only the two timestamps it actually uses.
  • FF_USER now works as environment variable. Previously this setting produced an error.

Full Changelog

  • Update user description to indicate it's optional by @nanos in #219
  • allow using FF_USER for the user setting by @calmh in #217
  • Restructure into a package by @nanos in #220
  • Update dependencies & configure dependabot by @nanos in #222
  • Bump the python-packages group with 2 updates by @dependabot[bot] in #223
  • Bump the github-actions group with 8 updates by @dependabot[bot] in #224
  • test on python 3.14 as well by @nanos in #225
  • run the container on python 3.14 by @nanos in #226

New Contributors

Update instructions

Before upgrading you should check whether you are affected by any of the breaking changes above:

  • Confirm your Python version is 3.11+.
  • Review whether you are defining the same setting as environment variable, CLI flag, and/or in the config file, and review the precedence changes.
  • Review your use of --from-lists=0, --backfill-with-context=0 and --backfill-mentioned-users=0 as their behaviour has changed.

Otherwise, please see the Updating FediFetcher documentation