In-tree Python tools (patman, buildman, binman, etc.)
Simon Glass
sjg at chromium.org
Thu May 21 02:38:17 CEST 2026
Hi,
On Mon, 4 May 2026 at 07:16, Simon Glass <sjg at chromium.org> wrote:
>
> Hi,
>
> As you know, I maintain several tools which are part of the U-Boot tree.
>
> Tom has previously suggested that it would be better to move patman
> out of the U-Boot tree, e.g. to its own Github project. It is a
> general tool which can be used with Linux and other
> mailing-list/patchwork-based projects. I have never been keen on
> taking on the extra effort required, but I've recently added more
> features and am wondering whether now might be a good time to do this.
>
> Buildman is quite obviously designed specifically for U-Boot. I have
> made some improvements recently (a large code refactor and distributed
> builds). I would like to push those changes to mainline. Do people
> think it should be in a separate tree somewhere?
>
> Binman was written with U-Boot in mind but supports other projects
> (such as Zephyr). It is generic enough that it could be separated. The
> impact would be harder code review.
>
> We also have smaller things like qconfig (which I have substantially
> rewritten to make it fast) and dtoc, which is very tailored to U-Boot.
>
> What do people think? Of all of these, patman would be the easiest to
> move, with the least impact on existing workflows.
Thank you to those who have commented on this thread.
Quentin, I think there is a mailing-list patch for the pygit2 problem. For
qconfig, your feature should be easy enough to implement. If you suggest a
syntax I could take a look.
I am considering moving all the major tools I wrote out of U-Boot, each
into its own project. As Neha points out, Binman is useful as a general
tool. Patman clearly is too. This leaves Buildman which is U-Boot-specific
in many ways, but it hardly seems sensible to keep just that one in-tree,
plus I have a substantial code-refactor and new feature to figure out how
to upstream. With some adjustments it could be used in other projects. The
qconfig tool is in a similar boat, particularly now that it can rebuild the
database in two seconds instead of a minute.
I also have some other tools I have written recently, both of which might
have generic application:
- pickman, an AI-powered cherry picker which could be applied to other
projects such as Linux (but it currently is tied to gitlab)
- codman, a simple source-code analyser which tells you what files and code
lines are actually built for a board
If I do take this path, I will need to figure out a way to make it easy to
install the tools for use with U-Boot. This could involve using 'pip
install, cloning a repo, or some other mechanism. I could use a PR workflow
rather than the mailing list, if that is easier.
Please do continue to send your thoughts on this. I cannot attend the call
next week but hope to join the next one.
Regards,
Simon
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.denx.de/pipermail/u-boot-custodians/attachments/20260520/7dc4cad8/attachment.htm>
More information about the U-Boot-Custodians
mailing list