On Tue, Mar 23, 2021 at 6:56 AM Greg Kroah-Hartman gregkh@linuxfoundation.org wrote:
On Tue, Mar 16, 2021 at 02:31:33PM -0700, Nick Desaulniers wrote:
A common recurring mistake made when backporting patches to stable is forgetting to check for additional commits tagged with `Fixes:`. This script validates that local commits have a `commit <sha40> upstream.` line in their commit message, and whether any additional `Fixes:` shas exist in the `master` branch but were not included. It can not know about fixes yet to be discovered, or fixes sent to the mailing list but not yet in mainline.
To save time, it avoids checking all of `master`, stopping early once we've reached the commit time of the earliest backport. It takes 0.5s to validate 2 patches to linux-5.4.y when master is v5.12-rc3 and 5s to validate 27 patches to linux-4.19.y. It does not recheck dependencies of found fixes; the user is expected to run this script to a fixed point. It depnds on pygit2 python library for working with git, which can be installed via: $ pip3 install pygit2
It's expected to be run from a stable tree with commits applied. For example, consider 3cce9d44321e which is a fix for f77ac2e378be. Let's say I cherry picked f77ac2e378be into linux-5.4.y but forgot 3cce9d44321e (true story). If I ran:
$ ./scripts/stable/check_backports.py Checking 1 local commits for additional Fixes: in master Please consider backporting 3cce9d44321e as a fix for f77ac2e378be
While interesting, I don't use a git tree for the stable queue, so this doesn't really fit into my workflow, sorry.
Well, what is your workflow?
And we do have other "stable tree helper" scripts in the stable-queue.git repo, perhaps that's a better place for this than the main kernel repo?
Sure, here it is moved over to there. Let me know if there's a preferred way to send it.