Hi Brian,

On 5/14/26 3:51 AM, Sune Brian wrote:
Hi Tom,

Sorry to bother you.

I am curious that for me myself I had no issue to follow
the requirements [1] as long as all patches that are
passing the review stage do follow the rules in [1].
However based on most recent commits and reviews
most of those are not even close to what [1] mentioned.

So at the end, reviewers in U-Boot just made their own
standard and requested contributors to follow?

Rather the U-Boot itself should all follow the docs rules?

[1] 
https://docs.u-boot.org/en/latest/develop/sending_patches.html#sending-updated-patch-versions


If you feel like other people's patches aren't properly formatted according to the docs, you have two options:

- review them on the mailing list and tell them to follow the format as specified in the docs, like Simon did for your patch, - suggest updates (or send patches!) to the docs to better match what is followed by the project, - if they aren't about the commit log, you can send follow-up patches to fix the source code to better match what we document, (but you cannot on commit logs as those cannot be modified once merged),

If you do not understand why someone is requesting changes, ask them to explain or point at the documentation. If you disagree with the reasons, you can *politely* tell them that by providing arguments. However, maintainers are free to go the "agree-to-disagree" way and refuse your patch. You have to work with them to get your patches merged, sometimes it means being really patient.

Maintainers are famously overworked in any open-source project you can think of. By following the rules (which sometimes are implicit), you make their life (and the life of reviewers) easier as it's less effort for them to review as it follows some patterns they are used to.

Maintainers are people, like you, like me, they also make mistakes or give some leeway because it's the 15th version of a patch and required changes aren't worth going back and forth with the contributor. This is the *maintainer*'s call, and they're free to decide to do it for one patch of one person or not. It's a fallacy to say "this patch didn't follow a rule and got merged so I'll not follow this rule". At that point, why even write a commit log? Why even have comments? Why even care about the code compiling without warnings? Why care about security holes in the patch since other patches got merged with security issues?

I've learned over the years to not answer when I'm getting angry because someone doesn't understand what I'm writing or they have unreasonable requests. You wait a few hours, or a few days, and you read again the mail with a cold head and you usually read with a different perspective and you can now stay polite with them (and sometimes you understand what you wrote was confusing because it could be understood another way). Getting angry, especially at maintainers, will be a sure way to get people to ignore you. Since they are not your colleagues they perfectly can decide they don't want to work with you. Yes, it's unfair.

Remember also that people are not in your head, so providing context in your patches or emails is really important. The more information and context you can provide, the less the person reading your mail will have to think or guess before they can review your patch.

For example:

- 8f41874f4631 ("fix socfpga GEN5 handoff script path"). When was src variable removed? If I had reviewed that patch, I would have looked for a commit that removed that variable and it may not be obvious so it'll take me time that you likely have already spent yourself. - bb1c2b463265 ("update GCC version check after Kbuild bump"). What errors did you see? Did you test any other toolchain than GCC 10.0.1? - 5b1fe6ef6b81 ("Altera SoCFpga Boot Stall Fix"). Where does it stops in the boot process? What's the boot log? "After testing", what kinds of tests? There's no explanation as to *why* this patch works, only that it's imported from downstream fork from Altera (that you say is "official"). I can understand this as "I don't understand what this is doing but it works", which some maintainers may accept, some may not. - e291277689f6 ("sync socfpga common u-boot dts". The Device Tree node would be present in U-Boot proper. So the issue is that you're missing L2 and memory controllers in xPL stages. Why is it important? What kind of issues does it fix? - 3ba9b1f7bd7e ("Cyclone V Board handsoff script"). No explanation as what this does. Why is it better than the current implementation? What does it bring? From which version of "official" downstream fork of Altera did you import this script? - 1feebc36e588 ("FPGA2SDRAM setup fix"). When does it stall? What's the symptom? What are the bootlogs? What is stalling "from distro"? "This patch fix the issue", but why/how? This sounds like "I tried something and it worked, I don't understand why" which we typically do not like.

Were *I* maintainer, I would have accepted none of those patches in that form and instead asked you to provide more information. By not providing information, you're stripping users the ability to figure out if an issue they experience in an older U-Boot has been fixed in newer versions without having to compile the new version and testing by themselves. They could just look at commit logs (or do a search on the Internet since our mailing list is publicly archived) and see if someone had the same issue and it was patched. This is *not* a theoretical benefit, it happens often in the Linux kernel. With additional information, it helps us figuring out if we can refactor or remove code a few years from now because we could hope to reproduce the problem you fixed and see if it's still fixed after refactoring/deleting code. All that to say, your patches also benefited from not exactly following rules. An obvious one being (specifically the last sentence):

"""
Keep EVERY line under 72 characters. That is, your message should be line-wrapped with line-feeds. However, don’t get carried away and wrap it too short either since this also looks funny.
"""

They also do not adhere (according to me; see the list of questions I would have had on now-merged commits) to:

"""
Detail level: The audience of the commit log message that you should cater to is those familiar with the underlying source code you are modifying, but who are _not_ familiar with the patch you are submitting. They should be able to determine what is being changed and why.
"""

I've noted multiple times that your patches typically do not follow the naming scheme where there could at least be one prefix like "socfpga: ", c.f.:

"""
If applicable, prefix the summary line with a word describing what area of code is being affected followed by a colon. This is a standard adopted by both U-Boot and Linux. [...] The best thing to do is look at the “git log <file>” output to see what others have done so you don’t break conventions.
"""

Though to be fair, some merged socfpga patches don't and it's not always easy to find an appropriate prefix. For arch/arm/mach-socfpga/misc_gen5.c, it could have been "arm: socfgpa: ". For arch/arm/config.mk, "arch: arm: " or "arch: arm: build:" for example. For cmd/Kconfig, "cmd: " at the very least. For the new boards, something like "arm: socfpga: " for example. This is important because people visually filter what they want to review or not. After looking into your patch submissions in the past, I understood that you mostly do stuff related to socfpga which I have no interested in, but since the commit titles don't match what I'm expecting, I now simply ignore all your patches even though I could and likely would have reviewed f26db83ca964 ("fix PL330 CMD supported target") and bb1c2b463265 ("update GCC version check after Kbuild bump").

Cheers,
Quentin

Reply via email to