diff --git a/install/index.html b/install/index.html index 33cbb27..1e20d99 100644 --- a/install/index.html +++ b/install/index.html @@ -369,7 +369,7 @@
Needs Rust 1.85 or newer, and nothing else:
+Needs Rust 1.88 or newer, and nothing else:
$ cargo install deed-lang
deed on crates.io belongs to somebody else, so the
diff --git a/tools/check.mjs b/tools/check.mjs
index 4d6d33e..34e5443 100644
--- a/tools/check.mjs
+++ b/tools/check.mjs
@@ -108,6 +108,24 @@ for (const [where, { tag, version }] of pins) {
const tag = first?.tag;
+// The wasm reports its Deed version, but it cannot report the oldest Rust
+// toolchain that can build the crates.io package. Keep that release metadata
+// explicit here: moving TAG to a release not in this table fails until the
+// install claim is considered too, instead of silently carrying an old MSRV.
+const minimumRust = new Map([["v0.2.12", "1.88"]]).get(tag);
+const install = await readFile(join(root, "install", "index.html"), "utf8");
+const claimedRust = install.match(/Needs Rust ([0-9.]+) or newer/)?.[1];
+if (!minimumRust) {
+ complain("tools/check.mjs", `no minimum Rust version is recorded for ${tag}`);
+} else if (!claimedRust) {
+ complain("install/index.html", "does not state the minimum Rust version");
+} else if (claimedRust !== minimumRust) {
+ complain(
+ "install/index.html",
+ `says Rust ${claimedRust} and ${tag} requires Rust ${minimumRust}`,
+ );
+}
+
// The artifact is committed rather than built, so nothing in this repository
// has ever compiled it, and a file that is present is not a file that answers.
// A truncated copy, or the artifact of a different build wearing the right