On Mon, Nov 23, 2020 at 4:52 PM Jani Nikula [off-list ref] wrote:
On Sat, 21 Nov 2020, James Bottomley [off-list ref] wrote:
quoted
On Sat, 2020-11-21 at 08:50 -0800, trix@redhat.com wrote:
quoted
A difficult part of automating commits is composing the subsystem
preamble in the commit log. For the ongoing effort of a fixer
producing
one or two fixes a release the use of 'treewide:' does not seem
appropriate.
It would be better if the normal prefix was used. Unfortunately
normal is
not consistent across the tree.
D: Commit subsystem prefix
ex/ for FPGA DFL DRIVERS
D: fpga: dfl:
I've got to bet this is going to cause more issues than it solves.
Agreed.
Tom, this a problem only kernel janitors encounter; all other
developers really do not have that issue. The time spent on creating
the patch is much larger than the amount saved if the commit log
header line prefix would be derived automatically. I believe Julia
Lawall, Arnd Bergmann and Nathan Chancellor as long-term
high-frequency janitors do have already scripted approaches to that
issue. Maybe they simply need to share these scripts with you and you
consolidate them and share with everyone?
Also, making clean-up patches cumbersome has a positive side as well;
maintainers are not swamped with fully automated patch submissions.
There have been some bad experiences with some submitters on that in
the past...
quoted
SCSI uses scsi: <driver>: for drivers but not every driver has a
MAINTAINERS entry. We use either scsi: or scsi: core: for mid layer
things, but we're not consistent. Block uses blk-<something>: for all
of it's stuff but almost no <somtehing>s have a MAINTAINERS entry. So
the next thing you're going to cause is an explosion of suggested
MAINTAINERs entries.
On the one hand, adoption of new MAINTAINERS entries has been really
slow. Look at B, C, or P, for instance. On the other hand, if this were
to get adopted, you'll potentially get conflicting prefixes for patches
touching multiple files. Then what?
I'm guessing a script looking at git log could come up with better
suggestions for prefixes via popularity contest than manually maintained
MAINTAINERS entries. It might not always get it right, but then human
outsiders aren't going to always get it right either.
Now you'll only need Someone(tm) to write the script. ;)
Something quick like this:
git log --since={1year} --pretty=format:%s -- <FILES> |\
grep -v "^\(Merge\|Revert\)" |\
sed 's/:[^:]*$//' |\
sort | uniq -c | sort -rn | head -5
already gives me results that really aren't worse than some of the
prefixes invented by drive-by contributors.
I agree I do not see the need to introduce something in MAINTAINERS;
from my observations maintaining MAINTAINERS, there is sufficient work
on adoption and maintenance of the existing entries already without
such an yet another additional entry. Some entries are outdated or
wrong and the janitor task of cleaning those up is already enough work
for involved janitors and enough churn for involved maintainers. So a
machine-learned approach as above is probably good enough, but if you
think you need more complex rules try to learn them from the data at
hand... certainly a nice task to do with machine learning on commit
message prefixes.
Lukas