chore(release): v0.1.0

This commit is contained in:
swaits committed 2026-04-29 20:38:13 -06:00
1 parent ce291af06a
commit 5ccfc523c2
4 files changed
+1399 -104

No files matched your search

Generated
+1282 -103
View File
File diff suppressed because it is too large. Load diff
+9 -1
View File
@@ -2,7 +2,15 @@
name = "bshelper"
version = "0.1.0"
edition = "2024"
authors = ["Stephen Waits <steve@waits.net>"]
description = "Friendly TUI for reporting good / bad / skip / abort verdicts during jj bisect run (works with git bisect run too)."
license = "MIT"
repository = "https://github.com/swaits/bshelper"
homepage = "https://github.com/swaits/bshelper"
readme = "README.md"
keywords = ["jj", "bisect", "tui", "git", "vcs"]
categories = ["command-line-utilities", "development-tools"]
[dependencies]
anyhow = "1"
ratatui = "0.29"
ratatui = "0.30"
+21
View File
@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2026 Stephen Waits
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+87
View File
@@ -0,0 +1,87 @@
# bshelper
A tiny TUI for reporting **good / bad / skip / abort** verdicts during a
manual bisect.
Designed for `jj bisect run`, but works equally well with `git bisect run`
since both use the same exit-code contract.
## Why
`jj bisect run` (and `git bisect run`) hand verdicts back through the
process exit code: `0`, `1`, `125`, `127`. For automated tests that's fine,
but for *manual* bisects you end up typing `exit 125` and remembering which
code is which. `bshelper` replaces that with a small modal picker that says
the words out loud.
```
┌─ bshelper · jj ─────────────────────────────────┐
│ │
│ Commit k7q4mzpw 78fa1c2b │
│ Author Steve Waits <steve@waits.net> │
│ Date 2026-04-29 14:22 │
│ │
│ Refactor parser to remove redundant clones │
│ ───────────────────────────────────────────── │
│ │
│ GOOD build / test passed │
│ BAD build / test failed │
│ ▶ SKIP can't tell — mark indecisive │
│ ABORT stop the bisection now │
│ │
│ ───────────────────────────────────────────── │
│ ↑/k ↓/j navigate · Enter commits: SKIP │
└─────────────────────────────────────────────────┘
```
## Install
```sh
cargo install bshelper
```
## Use
With Jujutsu (preferred):
```sh
jj bisect run --range 'a..b' -- bshelper
```
With Git:
```sh
git bisect start <bad> <good>
git bisect run bshelper
```
bshelper detects the VCS at runtime: jj first, git as a fallback. The
selected verdict is reported via the process exit code so the parent
`bisect run` keeps walking the history.
## Verdicts
| Verdict | Exit | Meaning |
| ------- | ---- | ------------------------------------ |
| GOOD | 0 | build / test passed |
| BAD | 1 | build / test failed |
| SKIP | 125 | can't tell — mark indecisive |
| ABORT | 127 | stop the bisection now |
These match the `git bisect run` / `jj bisect run` contract exactly.
## Keys
| Key | Action |
| --------- | --------------------- |
| `↑` / `k` | move highlight up |
| `↓` / `j` | move highlight down |
| `Enter` | commit the highlight |
The default highlight is **SKIP** — a stray `Enter` wastes a step but never
poisons the bisect. There is no second escape hatch: to abort, navigate to
`ABORT` and press Enter.
## License
MIT — see [LICENSE](LICENSE).