File: README.md

package info (click to toggle)
patch-hub 0.1.7-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 5,616 kB
  • sloc: xml: 142; makefile: 33
file content (130 lines) | stat: -rw-r--r-- 5,478 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
# `patch-hub`

[![License: GPL
v3+](https://img.shields.io/badge/license-GPL%20v2%2B-blue.svg)](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html)

## :information_source: About

`patch-hub` is a terminal-based user interface (TUI) designed to simplify
working with software patches sent through mailing lists in Linux-related
development. It provides an efficient way to navigate and interact with patches
archived on [lore.kernel.org](https://lore.kernel.org), specifically for the
Linux kernel and adjacent projects.

`patch-hub` is a sub-project of `kw`, a Developer Automation Workflow System
(DAWS) for Linux kernel developers. The goal of `kw` is to "reduce the setup
overhead of working with the Linux kernel and provide tools to support
developers in their daily tasks."

While `patch-hub` can be used as a standalone tool, we highly recommend
integrating it with the full `kw` suite for a more seamless developer
experience. Check out the [kw
repository](https://github.com/kworkflow/kworkflow/) to learn more.

## :star: Features

<img src="assets/patch-hub-demo-v0.1.0.gif" width="100%"
alt="patch-hub-demo-v0.1.0">

### Core Features

- **Mailing List Selection** — Dynamically fetch and browse mailing lists
  archived on [lore.kernel.org](https://lore.kernel.org).

- **Latest Patchsets** — View the most recent patchsets from a selected mailing
  list in an organized flow.

- **Patchset Details & Actions** —  View individual patch contents and access
  metadata like title, author, version, number of patches, last update, and
  code-review trailers. Take quick actions like:
  - **Apply patch(set)** to your local kernel tree.
  - **Bookmark** important patches
  - **Reply with `Reviewed-by` tags** to the series.

- **Bookmarking System** — Bookmark patchsets for easy reference
  later.

- **Enhanced Patchset Rendering** — Use external tools such as
  [`bat`](https://github.com/sharkdp/bat),
  [`delta`](https://github.com/dandavison/delta),
  [`diff-so-fancy`](https://github.com/so-fancy/diff-so-fancy) for better
  visualization or use the built-in vanilla renderer (`default`) for a
  dependency-free experience.

### More Features Coming!

Future updates will introduce deeper integration with kw, including:

- Seamlessly compile and deploy patchset versions of the kernel to target
  machines.

## :package: How To Install

Before using `patch-hub`, make sure you have the following packages installed:

- [`b4`](https://github.com/mricon/b4) - Required for working with patches from
  mailing lists.
- [`git-email`](https://git-scm.com/docs/git-send-email) - Provides the `git
  send-email` command for replying to patches.
- **Optional (but recommended) patchset renderers for enhanced previews:**
  - [`bat`](https://github.com/sharkdp/bat)
  - [`delta`](https://github.com/dandavison/delta) 
  - [`diff-so-fancy`](https://github.com/so-fancy/diff-so-fancy)

### `patch-hub` in the `kw` suite

`patch-hub` is a part of `kw` so if you already use kw, you don’t need to
install Patch Hub separately—simply update kw to the latest version: 
```bash
kw self-update 
``` 
After updating `kw`, you can launch `patch-hub` using: 
```bash 
kw patch-hub
```
If you’re not using `kw` yet, consider installing it for a
more fluid experience with `patch-hub` and other useful tools included in `kw`.

### :inbox_tray: Pre-compiled binaries

Download pre-compiled binaries from our [releases
page](https://github.com/kworkflow/patch-hub/releases).

We provide two versions:

- `-x86_64-unknown-linux-gnu` – Dynamically linked, relies on the GNU C Library
  **(glibc)**, making it more compatible across Linux distributions.
- `-x86_64-unknown-linux-musl`– Statically linked, built with **musl libc**,
  producing a more portable and self-contained binary.

### :wrench: Compiling from Source

:pushpin: **Requirements:** Ensure **Rust** (`rustc`) and **Cargo** are
installed on your system.

To build `patch-hub` from source:

:one: Clone the repository: ```bash git clone
https://github.com/kworkflow/patch-hub.git && cd patch-hub ```

:two: Compile
with Cargo: ```bash cargo build --release ```

:three: The compiled binary will
be available at:
- `target/release/patch-hub`
- `target/debug/patch-hub` (default build, without the `--release` option)

Additionally, you can install the binary to make it available anywhere on your
system: ```bash cargo install --path . ```

## :handshake: How To Contribute

We appreciate all contributions, whether it’s fixing bugs, adding features, improving documentation, or suggesting ideas! If you're looking for something to work on, check out our [issues page](https://github.com/kworkflow/patch-hub/issues).

Since patch-hub is a sub-project of kw, some development workflows carry over — such as a similar branching strategy (master and unstable) — but keep in mind that patch-hub is written in Rust, while kw is Bash. For detailed guidelines on setting up your environment, coding standards, and submitting Pull Requests, please refer to our [CONTRIBUTING.md](./CONTRIBUTING.md).

### :pushpin: Quick Contribution Guide
- **Report Issues:** Found a bug or have a feature request? Open an issue [here](https://github.com/kworkflow/patch-hub/issues).
- **Submit a PR:** Fix an issue, improve code, or add a new feature—just follow the steps in [CONTRIBUTING.md](./CONTRIBUTING.md).
- **Improve Documentation:** Enhancements to the README, guides, and comments are always welcome!