Stand alone: split out of the alloy repo
Extracted with git subtree so the crate's history came with it rather
than starting from a copy. It was a workspace member inheriting edition,
authors, and its dependency versions from alloy; those are now declared
here.
Bento releases one crate per repo, so a workspace member could not be
published through it -- alloy_tui was the last crate still hand-published
without a preflight gate.
Version 0.1.1: 0.1.0 shipped with repository pointing at the alloy
workspace, which is now the wrong repo for this crate and immutable on
crates.io. This corrects it going forward.
5 files changed,
+56 insertions,
-9 deletions
|
1 |
+ |
/target
|
|
2 |
+ |
/Cargo.lock
|
|
3 |
+ |
|
|
4 |
+ |
# Claude Code instructions (project-local; not for the public repo)
|
|
5 |
+ |
CLAUDE.md
|
| 1 |
1 |
|
[package]
|
| 2 |
2 |
|
name = "alloy_tui"
|
| 3 |
|
- |
version = "0.1.0"
|
|
3 |
+ |
version = "0.1.1"
|
| 4 |
4 |
|
description = "Alloy design system: makeover intents rendered as ratatui Color/Style, plus themed widgets for the alloy console and siblings."
|
| 5 |
|
- |
edition.workspace = true
|
| 6 |
|
- |
rust-version.workspace = true
|
|
5 |
+ |
edition = "2024"
|
|
6 |
+ |
rust-version = "1.86"
|
| 7 |
7 |
|
license = "MIT"
|
| 8 |
|
- |
repository.workspace = true
|
| 9 |
|
- |
authors.workspace = true
|
|
8 |
+ |
repository = "https://git.sr.ht/~maxmj/alloy_tui"
|
|
9 |
+ |
authors = ["Max Johnson <me@maxj.phd>"]
|
| 10 |
10 |
|
|
| 11 |
11 |
|
[dependencies]
|
| 12 |
|
- |
ratatui.workspace = true
|
| 13 |
|
- |
makeover.workspace = true
|
|
12 |
+ |
ratatui = "0.30"
|
|
13 |
+ |
makeover = "0.10.0"
|
| 46 |
46 |
|
|
| 47 |
47 |
|
MIT.
|
| 48 |
48 |
|
|
| 49 |
|
- |
The rest of the [Alloy](https://git.sr.ht/~maxmj/alloy) repository is
|
|
49 |
+ |
Split out of the [Alloy](https://git.sr.ht/~maxmj/alloy) repository, which is
|
| 50 |
50 |
|
GPLv3-or-later. This crate is permissive on purpose: it is the reusable design
|
| 51 |
|
- |
system, not the application.
|
|
51 |
+ |
system, not the application, and other terminal UIs should be able to adopt the
|
|
52 |
+ |
look without inheriting copyleft.
|
|
1 |
+ |
# How Bento releases alloy_tui. Lives here rather than in the daemon's config so
|
|
2 |
+ |
# it is versioned with the code it describes.
|
|
3 |
+ |
|
|
4 |
+ |
# A crate, not an app: one publish.rhai rather than a recipe per platform, and
|
|
5 |
+ |
# the target below names the host that uploads rather than a build matrix.
|
|
6 |
+ |
kind = "library"
|
|
7 |
+ |
|
|
8 |
+ |
targets = ["linux/x86_64"]
|
|
1 |
+ |
// Publish this crate to crates.io.
|
|
2 |
+ |
//
|
|
3 |
+ |
// A library has no per-platform artifact, so this is the whole release: one
|
|
4 |
+ |
// recipe, run on whichever host the manifest names.
|
|
5 |
+ |
//
|
|
6 |
+ |
// The preflight step is the point of routing this through Bento. crates.io
|
|
7 |
+ |
// versions can be yanked but never edited, so a wrong repository URL, a
|
|
8 |
+ |
// missing license, or a duplicate version is permanent the moment it uploads.
|
|
9 |
+ |
// pter 0.1.0 went out with a dead repository link and could only be corrected
|
|
10 |
+ |
// by releasing again.
|
|
11 |
+ |
|
|
12 |
+ |
let h = build_host();
|
|
13 |
+ |
let r = repo();
|
|
14 |
+ |
let v = version();
|
|
15 |
+ |
|
|
16 |
+ |
step("checkout");
|
|
17 |
+ |
sh_ok(h, "cd " + r + " && git pull --ff-only");
|
|
18 |
+ |
|
|
19 |
+ |
step("build");
|
|
20 |
+ |
sh_ok(h, "cd " + r + " && cargo test " + feature_flags());
|
|
21 |
+ |
|
|
22 |
+ |
step("verify");
|
|
23 |
+ |
// Credentials are checked here too, and deliberately not passed through Bento:
|
|
24 |
+ |
// the token stays in cargo's own 0600 store on the publishing host, where cargo
|
|
25 |
+ |
// finds it. Handing it to a shell command would put it in the process list for
|
|
26 |
+ |
// the length of the upload, and ops-exec renders env pairs into the shell line.
|
|
27 |
+ |
// Aborts the run with the specific problems if anything is wrong.
|
|
28 |
+ |
log(crate_preflight());
|
|
29 |
+ |
sh_ok(h, "cd " + r + " && cargo publish --dry-run " + feature_flags());
|
|
30 |
+ |
|
|
31 |
+ |
step("publish");
|
|
32 |
+ |
sh_ok(h, "cd " + r + " && cargo publish " + feature_flags());
|
|
33 |
+ |
log("published " + v + " to crates.io");
|