The Linux half of the packaging trial, run on this machine and in Debian, Fedora and Arch containers, and the recipes it produced (docs/packaging.md holds the table and what it found): - mise.toml pins cargo-packager 0.11.8 and cargo-generate-rpm 0.21.1, now that `just package-linux` calls them. cargo-packager-updater is a library, not a tool, so it is not pinned (update.rs does the checking with minisign-verify, which is what the updater uses). - deploy/packaging/: packager.toml (.deb, AppImage, the pacman tarball and its PKGBUILD), the rpm table in crates/ledger-cli/Cargo.toml, the AUR's own PKGBUILD (repacks the release tarball), build-linux.sh, repo-indexes.sh (the apt and dnf indexes, unsigned until the signing step), local-release.sh (a throwaway-keyed feed to try `update`), test-linux-packages.sh (linux_packages_install_and_upgrade: install 0.1.0, open books as an ordinary user, upgrade to 0.1.1, check the host restarted onto the new file, the books' last journal line unchanged and `update` refuses; passes on Debian trixie, Fedora and Arch). A package marks itself package-managed with share/wanderbooks/install-method. - The icon is a placeholder square (the AppImage cannot be built without one). - .github/workflows/release.yml: on a version tag, build on ubuntu-24.04 (the oldest glibc the packages claim: a program linked on this machine needs GLIBC_2.43 and does not start on Debian 13), attach the packages to the release, and add them to the apt and dnf repositories on gh-pages. No signing and no macOS or Windows job yet. - The release profile strips symbols. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HS8WZziDnyxunC23MUxrLp
30 lines
1.2 KiB
TOML
30 lines
1.2 KiB
TOML
# Everything needed to build, test, prove, and ship wanderbooks.
|
|
# `mise install` in this directory, then `just` lists the recipes.
|
|
|
|
[tools]
|
|
# Workspace toolchain (clippy and rustfmt for `just check`).
|
|
rust = [
|
|
{ version = "1.99", components = "clippy,rustfmt" },
|
|
# Fuzzing (cargo-fuzz) and Miri need nightly; pinned so runs repeat.
|
|
{ version = "nightly-2026-10-01", components = "miri,rust-src" },
|
|
]
|
|
just = "1"
|
|
# `just deploy` runs the Netlify CLI through npx.
|
|
node = "26"
|
|
# `just prove`: Kani model-checks the accounting kernel. Kani fetches its
|
|
# own pinned nightly and CBMC under ~/.kani on first run.
|
|
"cargo:kani-verifier" = "0.68.0"
|
|
# `just prove`: Lean proves the accounting laws (verify/lean). Matches
|
|
# verify/lean/lean-toolchain.
|
|
"github:leanprover/lean4" = "4.34.1"
|
|
# Mutation testing and fuzzing (docs/oracle.md).
|
|
"cargo:cargo-mutants" = "27.1.0"
|
|
"cargo:cargo-fuzz" = "0.13.2"
|
|
# A compile cache shared by every jj workspace's target dir: point
|
|
# cargo's build.rustc-wrapper at it (~/.cargo/config.toml).
|
|
sccache = "0.18.0"
|
|
# `just package-linux` (docs/packaging.md): the AppImage and .deb by
|
|
# cargo-packager, the .rpm by cargo-generate-rpm (D-25).
|
|
"cargo:cargo-packager" = "0.11.8"
|
|
"cargo:cargo-generate-rpm" = "0.21.1"
|