chore(release): v0.1.0
This commit is contained in:
4 files changed
+1399
-104
No files matched your search
Generated
+1282
-103
File diff suppressed because it is too large.
Load diff
+9
-1
@@ -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"
|
||||
@@ -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.
|
||||
@@ -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).
|
||||
Reference in new issue
Block a user