feat(dist): crates.io + binstall + Windows install.ps1 + license files
ci / gate (push) Successful in 3m14s
ci / gate (push) Successful in 3m14s
Distribution prep on the road to public availability (plan steps 2–3a). - Cargo.toml: publish-ready (drop publish=false; homepage/keywords/ categories/exclude) + [package.metadata.binstall] with per-target overrides (linux-gnu->musl, windows-msvc->gnu/gnullvm). dry-run clean. - scripts/install.ps1: Windows `irm | iex` one-liner — written but untested here (no PowerShell; validate on Windows). README Windows block. - README.md (new); LICENSE-MIT + LICENSE-APACHE (dual, (c) Lazy Evaluation Ltd); CONTRIBUTING.md (inbound=outbound dual-license note). - ADR-0055 Amendment 1 (install.ps1), ADR-0056 (crates.io/binstall), README index + plan updates. The actual `cargo publish` remains a gated maintainer step (token, irreversible) at a new tagged release; real cargo-binstall validation pending.
This commit is contained in:
+40
-1
@@ -5,8 +5,17 @@ edition = "2024"
|
||||
description = "A cross-platform TUI playground for learning relational databases."
|
||||
license = "MIT OR Apache-2.0"
|
||||
repository = "https://git.lazyeval.net/oli/rdbms-playground"
|
||||
homepage = "https://relplay.org"
|
||||
readme = "README.md"
|
||||
publish = false
|
||||
keywords = ["database", "sql", "tui", "learning", "playground"]
|
||||
categories = ["command-line-utilities", "database"]
|
||||
# Keep the published crate to the code that builds the binary — the website,
|
||||
# decision records, and CI plumbing are repo-only (ADR-0056).
|
||||
exclude = ["/website", "/docs", "/.gitea", "/.codegraph"]
|
||||
# `publish = false` removed (ADR-0056): the crate is intended for
|
||||
# crates.io. The actual `cargo publish` is a deliberate, irreversible
|
||||
# maintainer step (needs the crates.io token) — do it at a tagged release
|
||||
# whose assets the binstall metadata below points at.
|
||||
|
||||
[dependencies]
|
||||
anyhow = "1.0.102"
|
||||
@@ -85,3 +94,33 @@ nursery = { level = "warn", priority = -1 }
|
||||
module_name_repetitions = "allow"
|
||||
missing_errors_doc = "allow"
|
||||
missing_panics_doc = "allow"
|
||||
|
||||
# cargo-binstall (ADR-0056): let `cargo binstall rdbms-playground` fetch the
|
||||
# prebuilt release binary instead of compiling from source. Our release assets
|
||||
# are BARE binaries (no archive) named `rdbms-playground-v<version>-<target>`
|
||||
# (`.exe` on Windows) with `.sha256` sidecars (ADR-ci-003), so `pkg-fmt = "bin"`.
|
||||
# `{ version }` excludes the leading `v`, so the template spells `v{ version }`.
|
||||
#
|
||||
# Target mapping: macOS host triples match our asset triples directly. But we
|
||||
# ship the fully-static *-linux-MUSL build (glibc hosts are *-linux-gnu) and
|
||||
# *-windows-GNU/GNULLVM (most Windows hosts are *-msvc), so those common host
|
||||
# triples need explicit overrides pointing at the asset we actually publish.
|
||||
#
|
||||
# NOTE: unverified against a real `cargo binstall` run (binstall isn't a dep and
|
||||
# nothing is on crates.io yet) — validate at the first publish + matching release.
|
||||
[package.metadata.binstall]
|
||||
pkg-url = "{ repo }/releases/download/v{ version }/{ name }-v{ version }-{ target }{ archive-suffix }"
|
||||
pkg-fmt = "bin"
|
||||
bin-dir = "{ bin }{ binary-ext }"
|
||||
|
||||
[package.metadata.binstall.overrides.x86_64-unknown-linux-gnu]
|
||||
pkg-url = "{ repo }/releases/download/v{ version }/{ name }-v{ version }-x86_64-unknown-linux-musl"
|
||||
|
||||
[package.metadata.binstall.overrides.aarch64-unknown-linux-gnu]
|
||||
pkg-url = "{ repo }/releases/download/v{ version }/{ name }-v{ version }-aarch64-unknown-linux-musl"
|
||||
|
||||
[package.metadata.binstall.overrides.x86_64-pc-windows-msvc]
|
||||
pkg-url = "{ repo }/releases/download/v{ version }/{ name }-v{ version }-x86_64-pc-windows-gnu.exe"
|
||||
|
||||
[package.metadata.binstall.overrides.aarch64-pc-windows-msvc]
|
||||
pkg-url = "{ repo }/releases/download/v{ version }/{ name }-v{ version }-aarch64-pc-windows-gnullvm.exe"
|
||||
|
||||
Reference in New Issue
Block a user