From 405f4f2f13a407f6a035d1f06e9c753c1e8a8f20 Mon Sep 17 00:00:00 2001 From: Stephen Waits Date: Wed, 1 Apr 2026 11:57:44 -0600 Subject: [PATCH] chore: tooling improvements - Add cargo-binutils to mise.toml (needed for `just size`) - Remove jj from mise.toml (optional, not a build dependency) - Silence `mise install` output when tools are current (--quiet) - Add `just outdated` recipe with embassy-executor exclusion (esp-rtos 0.2 pins embassy-executor ^0.9; 0.10 renamed arch-* features to platform-*, which crashes cargo-outdated) Co-Authored-By: Claude Opus 4.6 (1M context) --- Cargo.lock | 24 ++++++++++---------- Cargo.toml | 56 +++++++++++++++++++++++++++++++---------------- examples/justfile | 14 ++++++------ justfile | 9 +++++++- mise.toml | 2 +- 5 files changed, 66 insertions(+), 39 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d86c4dee..5a109f06 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1782,18 +1782,18 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "1.1.0+spec-1.1.0" +version = "1.1.1+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97251a7c317e03ad83774a8752a7e81fb6067740609f75ea2b585b569a59198f" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" dependencies = [ "serde_core", ] [[package]] name = "toml_edit" -version = "0.25.8+spec-1.1.0" +version = "0.25.9+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16bff38f1d86c47f9ff0647e6838d7bb362522bdf44006c7068c2b1e606f1f3c" +checksum = "da053d28fe57e2c9d21b48261e14e7b4c8b670b54d2c684847b91feaf4c7dac5" dependencies = [ "indexmap", "toml_datetime", @@ -1803,9 +1803,9 @@ dependencies = [ [[package]] name = "toml_parser" -version = "1.1.0+spec-1.1.0" +version = "1.1.1+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2334f11ee363607eb04df9b8fc8a13ca1715a72ba8662a26ac285c98aabb4011" +checksum = "39ca317ebc49f06bd748bfba29533eac9485569dc9bf80b849024b025e814fb9" dependencies = [ "winnow", ] @@ -1818,7 +1818,9 @@ checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" [[package]] name = "ucobs" -version = "0.3.1" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8e4344120e8d40560381899031725b5b71d5afbb45be9a1cd124eee031492c" [[package]] name = "ufmt-write" @@ -1982,18 +1984,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.47" +version = "0.8.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efbb2a062be311f2ba113ce66f697a4dc589f85e78a4aea276200804cea0ed87" +checksum = "eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.47" +version = "0.8.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e8bc7269b54418e7aeeef514aa68f8690b8c0489a06b0136e5f57c4c5ccab89" +checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index d3a2a18f..275f06b6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -29,7 +29,7 @@ embassy-sync = "0.8" embassy-time = "0.5" embassy-usb = { version = "0.6", features = ["defmt"] } embassy-usb-driver = "0.2" -ucobs = { path = "../ucobs", features = ["legacy-msrv"] } +ucobs = { version = "0.3", features = ["legacy-msrv"] } heapless = "0.9" lora-phy = "3.0" static_cell = "2.1" @@ -44,14 +44,32 @@ embedded-io-async = "0.7" embassy-futures = "0.1" # ESP32-S3 (Heltec V3) — requires esp toolchain (espup) -esp-backtrace = { version = "0.18", optional = true, features = ["esp32s3", "panic-handler", "defmt"] } -esp-hal = { version = "1.0", optional = true, features = ["esp32s3", "unstable"] } -esp-println = { version = "0.16", optional = true, features = ["esp32s3", "defmt-espflash"] } -esp-rtos = { version = "0.2", optional = true, features = ["esp32s3", "embassy"] } +esp-backtrace = { version = "0.18", optional = true, features = [ + "esp32s3", + "panic-handler", + "defmt", +] } +esp-hal = { version = "1.0", optional = true, features = [ + "esp32s3", + "unstable", +] } +esp-println = { version = "0.16", optional = true, features = [ + "esp32s3", + "defmt-espflash", +] } +esp-rtos = { version = "0.2", optional = true, features = [ + "esp32s3", + "embassy", +] } # nRF52840 (RAK 4631) cortex-m-rt = { version = "0.7", optional = true } -embassy-nrf = { version = "0.10", optional = true, features = ["nrf52840", "gpiote", "time-driver-rtc1", "defmt"] } +embassy-nrf = { version = "0.10", optional = true, features = [ + "nrf52840", + "gpiote", + "time-driver-rtc1", + "defmt", +] } panic-probe = { version = "1.0", optional = true, features = ["print-defmt"] } [build-dependencies] @@ -60,23 +78,23 @@ owo-colors = "4.3" [features] heltec_v3 = [ - "dep:esp-backtrace", - "dep:esp-hal", - "dep:esp-println", - "dep:esp-rtos", + "dep:esp-backtrace", + "dep:esp-hal", + "dep:esp-println", + "dep:esp-rtos", ] heltec_v4 = [ - "dep:esp-backtrace", - "dep:esp-hal", - "dep:esp-println", - "dep:esp-rtos", + "dep:esp-backtrace", + "dep:esp-hal", + "dep:esp-println", + "dep:esp-rtos", ] rak_wisblock_4631 = [ - "dep:cortex-m-rt", - "dep:embassy-nrf", - "dep:panic-probe", - "embassy-executor/arch-cortex-m", - "embassy-executor/executor-thread", + "dep:cortex-m-rt", + "dep:embassy-nrf", + "dep:panic-probe", + "embassy-executor/arch-cortex-m", + "embassy-executor/executor-thread", ] [lints.clippy] diff --git a/examples/justfile b/examples/justfile index 47be8cea..e90058c9 100644 --- a/examples/justfile +++ b/examples/justfile @@ -2,28 +2,28 @@ set shell := ["bash", "-c"] # Receive LoRa packets (Ctrl-C to stop) rx *args: - @mise install && uv run {{source_directory()}}/simple_rx.py {{args}} + @mise install --quiet && uv run {{source_directory()}}/simple_rx.py {{args}} # Transmit a single packet tx *args: - @mise install && uv run {{source_directory()}}/simple_tx.py {{args}} + @mise install --quiet && uv run {{source_directory()}}/simple_tx.py {{args}} # Two-dongle ping-pong demo (--role tx|rx) ping-pong *args: - @mise install && uv run {{source_directory()}}/ping_pong.py {{args}} + @mise install --quiet && uv run {{source_directory()}}/ping_pong.py {{args}} # Exercise all DongLoRa commands test-commands *args: - @mise install && uv run {{source_directory()}}/all_commands.py {{args}} + @mise install --quiet && uv run {{source_directory()}}/all_commands.py {{args}} # Two-way LoRa bridge over TCP bridge *args: - @mise install && uv run {{source_directory()}}/lora_bridge.py {{args}} + @mise install --quiet && uv run {{source_directory()}}/lora_bridge.py {{args}} # MeshCore packet decoder/monitor meshcore *args: - @mise install && uv run {{source_directory()}}/meshcore/meshcore_rx.py {{args}} + @mise install --quiet && uv run {{source_directory()}}/meshcore/meshcore_rx.py {{args}} # Run any example by name (e.g. just ex run simple_rx) run script *args: - @mise install && uv run {{source_directory()}}/{{script}}.py {{args}} + @mise install --quiet && uv run {{source_directory()}}/{{script}}.py {{args}} diff --git a/justfile b/justfile index 8da7ed7c..259d1cda 100644 --- a/justfile +++ b/justfile @@ -91,6 +91,13 @@ size board: test: DONGLORA_HOST_TEST=1 cargo test +# Check for outdated dependencies +outdated: + @# embassy-executor 0.10 renamed arch-* → platform-* features. + @# esp-rtos 0.2 still pins embassy-executor ^0.9, blocking the upgrade. + @# cargo-outdated crashes trying to resolve 0.10 with the old feature name. + cargo outdated --exclude embassy-executor + # Example scripts (just ex rx, just ex tx, just ex meshcore, ...) mod ex 'examples/justfile' @@ -99,7 +106,7 @@ mod ex 'examples/justfile' # Install mise-managed tools if any are missing (fast no-op when current) [private] _ensure_tools: - @mise install + @mise install --quiet # Run a cargo command for a board. # Xtensa: nightly cargo + esp rustc (via RUSTC override) + -Zbuild-std=core diff --git a/mise.toml b/mise.toml index 34e64037..edc99e42 100644 --- a/mise.toml +++ b/mise.toml @@ -3,8 +3,8 @@ rust = "1.93" python = "3.14" uv = "latest" just = "latest" -jj = "latest" +"cargo:cargo-binutils" = "latest" # `cargo size`, `cargo objdump`, etc. "cargo:espup" = "0.16" "cargo:espflash" = "3" # 4.x has broken nix dependency on current stable Rust "cargo:probe-rs-tools" = "0.31"