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) <noreply@anthropic.com>
This commit is contained in:
swaitsandClaude Opus 4.6 committed 2026-04-01 11:57:44 -06:00
1 parent d01de9d14d
commit 405f4f2f13
5 files changed
+66 -39

No files matched your search

Generated
+13 -11
View File
@@ -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",
+37 -19
View File
@@ -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]
+7 -7
View File
@@ -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}}
+8 -1
View File
@@ -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
+1 -1
View File
@@ -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"