|
| 1 | +# `patch-hub`: _TUI for lore.kernel.org_ |
| 2 | + |
| 3 | +[](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) |
| 4 | + |
| 5 | +## :information_source: About |
| 6 | + |
| 7 | +`patch-hub` is a TUI that streamlines the interaction with **software patches** |
| 8 | +:wrench: sent through **mailing lists** :incoming_envelope: in the **development context** |
| 9 | +:woman_technologist:. These mailing lists are archived on |
| 10 | +[lore.kernel.org](https://lore.kernel.org), and their development context is the |
| 11 | +Linux kernel and Linux-adjacent projects. |
| 12 | + |
| 13 | +`patch-hub` is a sub-project of the `kw` _DAWS_ (Developer Automation Workflow |
| 14 | +System). `kw` has a more straightforward (not simpler) mission. To quote from the `README`, |
| 15 | +_"reduce the setup overhead of working with the Linux kernel and provide tools |
| 16 | +to support developers in their daily tasks"_. Although it can be used as a |
| 17 | +standalone tool, we recommend you use `patch-hub` as part of the `kw` tool |
| 18 | +suite. Check out the [`kw` repository](https://github.com/kworkflow/kworkflow). |
| 19 | + |
| 20 | +## :star: Features |
| 21 | + |
| 22 | +<img src="assets/patch-hub-demo-v0.1.0.gif" width="100%" alt="patch-hub-demo-v0.1.0"> |
| 23 | + |
| 24 | +1. _Mailing List Selection_: Fetch the set of mailing lists archived on |
| 25 | +[lore.kernel.org](https://lore.kernel.org) and visualize it dynamically. |
| 26 | + |
| 27 | +2. _Latest Patchsets from_: Consult the flow of the latest patchsets from a |
| 28 | +target mailing list. |
| 29 | + |
| 30 | +3. _Patchset Details and Actions_: See details about patchsets, which include |
| 31 | +the patchset metadata (title, author, version, number of total patches, last |
| 32 | +updated, and so on) and individual patch contents, as well as apply actions |
| 33 | +based on patchsets, like bookmarking/unbookmarking and replying to the entire |
| 34 | +series with the `Reviewed-by` tag. |
| 35 | + |
| 36 | +4. _Bookmarked Patchsets_: Keep track of specific patchsets by bookmarking them |
| 37 | +for later consult. |
| 38 | + |
| 39 | +**More features coming!** |
| 40 | + |
| 41 | +> [!NOTE] |
| 42 | +> Actions like applying a patchset against a Linux kernel tree, compiling from |
| 43 | +> this applied version, and installing it to a target machine (the last two are |
| 44 | +> covered by the `kw` suite) will be progressively added. |
| 45 | +
|
| 46 | +## :package: How To Install |
| 47 | + |
| 48 | +### pre-compiled binaries |
| 49 | + |
| 50 | +You can find pre-compiled `patch-hub` binaries on our [releases |
| 51 | +page](https://github.com/kworkflow/patch-hub/releases). On this page, the |
| 52 | +binaries will be in compressed files with the pattern |
| 53 | +`x86_64-unknown-linux-[gnu|musl].tar.xz`, so you only need to decompress the |
| 54 | +desired file (don't forget to validate the correspondent checksum) and add the |
| 55 | +`patch-hub` executable to your `PATH`. |
| 56 | + |
| 57 | +Currently, we only support the target `x86_64-unknown-linux-gnu`, which should |
| 58 | +work well with most Linux systems, but we aim to bring support to the |
| 59 | +`x86_64-unknown-linux-musl` target for more portability. |
| 60 | + |
| 61 | +### compiling from source |
| 62 | + |
| 63 | +If you wish to compile the project from source, just clone this repository in |
| 64 | +your local machine and invoke |
| 65 | + |
| 66 | +``` |
| 67 | +cargo build [--release] |
| 68 | +``` |
| 69 | + |
| 70 | +to generate a `patch-hub` binary in `target/debug` (or `target/release`). |
| 71 | + |
| 72 | +For this to work, you'll need to have `rustc` and `cargo` installed on your |
| 73 | +system. |
| 74 | + |
| 75 | +## :handshake: How To Contribute |
| 76 | + |
| 77 | +We are still structuring an organized contribution process, but we more than |
| 78 | +welcome proposed changes through Pull-Requests. For cataloged issues, you can |
| 79 | +check our [issues page](https://github.com/kworkflow/patch-hub/issues). |
0 commit comments