Every WordPress release means editing the same header line in every plugin readme, and doing it by hand is how one of them ends up claiming compatibility with a version from two years ago.
#!/usr/bin/env bash
set -euo pipefail
version="${1:?usage: bump-tested 5.0}"
for readme in plugins/*/readme.txt; do
sed -i -E "s/^(Tested up to: ).*/1${version}/" "$readme"
echo "$(dirname "$readme")"
done
grep -H 'Tested up to' plugins/*/readme.txt
The final grep is the part that makes it trustworthy — a sed that matched nothing exits zero, so without reading the result the script can report success and change nothing. The parameter expansion with :? turns a missing argument into a clear error rather than replacing every version with an empty string. It is ten lines and it removes a recurring twenty-minute task that nobody enjoys and everybody occasionally gets wrong.