patch-hub is a TUI that streamlines the interaction with software patches
🔧 sent through mailing lists 📨 in the development context
👩💻. These mailing lists are archived on
lore.kernel.org, and their development context is the
Linux kernel and Linux-adjacent projects.
patch-hub is a sub-project of the kw DAWS (Developer Automation Workflow
System). kw has a more straightforward (not simpler) mission. To quote from the README,
"reduce the setup overhead of working with the Linux kernel and provide tools
to support developers in their daily tasks". Although it can be used as a
standalone tool, we recommend you use patch-hub as part of the kw tool
suite. Check out the kw repository.
-
Mailing List Selection: Fetch the set of mailing lists archived on lore.kernel.org and visualize it dynamically.
-
Latest Patchsets from: Consult the flow of the latest patchsets from a target mailing list.
-
Patchset Details and Actions: See details about patchsets, which include the patchset metadata (title, author, version, number of total patches, last updated, and so on) and individual patch contents, as well as apply actions based on patchsets, like bookmarking/unbookmarking and replying to the entire series with the
Reviewed-bytag. -
Patchset Rendering: Use external tools like
bat,delta,diff-so-fancyto render the patch details and have a better preview screen with colors, layouts and even syntax highlight. If you don't wish to use external dependencies, you can opt for the vanilla renderer (denominateddefault). -
Bookmarked Patchsets: Keep track of specific patchsets by bookmarking them for later consult.
More features coming!
Note
Actions like applying a patchset against a Linux kernel tree, compiling from
this applied version, and installing it to a target machine (the last two are
covered by the kw suite) will be progressively added.
In order to use patch-hub you must install:
b4git-email(git send-emailcommand)bat,deltaand/ordiff-so-fancyoptional but highly recommended patchset renderers to enhance previewing patches
You can find pre-compiled patch-hub binaries on our releases page.
There are two versions of the binary: -x86_64-unknown-linux-gnu (dynamically linked) and -x86_64-unknown-linux-musl (statically linked). The first uses the GNU C library (glibc), while the second uses the musl C library (musl libc). In a nutshell, -x86_64-unknown-linux-gnu is more compatible with various Linux distributions due to its reliance on the widely used glibc. At the same time, x86_64-unknown-linux-musl produces more portable and self-contained binaries because it includes all necessary libraries within the binary itself.
If you wish to compile the project from source, just clone this repository in your local machine and invoke
cargo build [--release]
to generate a patch-hub binary in target/debug (or target/release).
For this to work, you'll need to have rustc and cargo installed on your
system.
We are still structuring an organized contribution process, but we more than welcome proposed changes through Pull-Requests. For cataloged issues, you can check our issues page.
In the meanwhile, you can check kw's contributor
guidelines for some
reference. Some things translate, due to patch-hub being a "child" of kw,
like the master and unstable branches scheme, but bear in mind that others
don't (e.g., kw is in Bash, while patch-hub is in Rust).
