Installs the required system libraries (libopus-dev, libasound2-dev, libsoapysdr-dev — soapysdr is a default feature), caches the cargo
registry and target, and installs the toolchain via rustup (with a
fallback that runs rustup-init if the runner image lacks it).
PATH handling is self-contained: each step that needs it prepends $HOME/.cargo/bin to PATH directly, rather than relying on $GITHUB_PATH propagation, which is not dependable on the Gitea act_runner.
Tracker — aidocs/wip.md
Records all ten improvement areas across three tiers (infrastructure,
robustness, product) with a per-item Status column. aidocs/** is
registered in REUSE.toml alongside docs/**.
Runner assumptions
An act_runner registered with an ubuntu-latest label.
GitHub-action proxying enabled (needed by actions/checkout, actions/cache, and fsfe/reuse-action).
Notes
rustfmt is clean and the sampled core crates are clippy-clean, so -D warnings is enforced. If the first full --all-features run
surfaces a warning in a less-travelled crate, fix it (preferred) or
temporarily soften that step.
Commits
[chore] add Gitea Actions CI pipeline
[docs] track improvement areas in aidocs/wip.md
[chore] fix Rust PATH handling in CI (drop GITHUB_PATH reliance)
## Summary
Introduces the project's first CI pipeline (Gitea Actions) and a tracker
for the broader improvement backlog discovered in the July 2026 repo scan.
### CI — `.gitea/workflows/ci.yml`
Runs on push to `main` and on pull requests, with three jobs:
- **lint** — `cargo fmt --all --check` and
`cargo clippy --workspace --all-targets --all-features -- -D warnings`
- **test** — `cargo build` and `cargo test` (`--workspace --locked`)
- **reuse** — `fsfe/reuse-action@v5` license-compliance check
Installs the required system libraries (`libopus-dev`, `libasound2-dev`,
`libsoapysdr-dev` — `soapysdr` is a default feature), caches the cargo
registry and `target`, and installs the toolchain via rustup (with a
fallback that runs `rustup-init` if the runner image lacks it).
PATH handling is self-contained: each step that needs it prepends
`$HOME/.cargo/bin` to `PATH` directly, rather than relying on
`$GITHUB_PATH` propagation, which is not dependable on the Gitea
`act_runner`.
### Tracker — `aidocs/wip.md`
Records all ten improvement areas across three tiers (infrastructure,
robustness, product) with a per-item **Status** column. `aidocs/**` is
registered in `REUSE.toml` alongside `docs/**`.
## Runner assumptions
- An `act_runner` registered with an `ubuntu-latest` label.
- GitHub-action proxying enabled (needed by `actions/checkout`,
`actions/cache`, and `fsfe/reuse-action`).
## Notes
- `rustfmt` is clean and the sampled core crates are clippy-clean, so
`-D warnings` is enforced. If the first full `--all-features` run
surfaces a warning in a less-travelled crate, fix it (preferred) or
temporarily soften that step.
## Commits
- `[chore]` add Gitea Actions CI pipeline
- `[docs]` track improvement areas in `aidocs/wip.md`
- `[chore]` fix Rust PATH handling in CI (drop `GITHUB_PATH` reliance)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_01NFpGtGTWUEYXLwZeZs2RAV
Introduce CI running on push to main and pull requests. Three jobs:
lint (rustfmt check + clippy with -D warnings), test (build and test the
workspace with --locked), and REUSE compliance. Installs the required
system libraries (opus, alsa, soapysdr) and caches the cargo registry
and target directory.
Assisted-By: Claude Code (claude-opus-4)
Claude-Session: https://claude.ai/code/session_01NFpGtGTWUEYXLwZeZs2RAV
Signed-off-by: Stan Grams <sjg@haxx.space>
Record the three-tier improvement backlog (infrastructure, robustness,
product) with a per-item progress status column, so the work discovered
in the July 2026 repo scan is tracked. Register aidocs/** in REUSE.toml
alongside docs/**.
Assisted-By: Claude Code (claude-opus-4)
Claude-Session: https://claude.ai/code/session_01NFpGtGTWUEYXLwZeZs2RAV
Signed-off-by: Stan Grams <sjg@haxx.space>
The Set up Rust step wrote the cargo bin dir to GITHUB_PATH, which does
not help within the same step and is not relied upon across steps on the
Gitea act_runner. Prepend $HOME/.cargo/bin to PATH directly in the setup
and each cargo step instead, so rustup and cargo resolve regardless of
GITHUB_PATH support.
Assisted-By: Claude Code (claude-opus-4)
Claude-Session: https://claude.ai/code/session_01NFpGtGTWUEYXLwZeZs2RAV
Signed-off-by: Stan Grams <sjg@haxx.space>
soapysdr-sys builds bindings with bindgen, which needs libclang at build
time. Add clang and libclang-dev to the system dependencies so the
soapysdr backend (a default feature) compiles under CI.
Assisted-By: Claude Code (claude-opus-4)
Claude-Session: https://claude.ai/code/session_01NFpGtGTWUEYXLwZeZs2RAV
Signed-off-by: Stan Grams <sjg@haxx.space>
The CI lint job runs clippy with -D warnings, which surfaced a set of
existing warnings across decoders, the client, and the soapysdr backend.
Resolve them so the workspace is clean under the enforced lint level:
- collapsible_match / identity_op / needless_range_loop / same_item_push
in trx-rds, trx-wspr, trx-vdes, trx-wefax, trx-aprs (mostly tests)
- field_reassign_with_default -> struct-update syntax in trx-client config
tests
- assign_op_pattern, useless vec!, and test-module ordering picked up by
cargo clippy --fix in trx-client and the soapysdr WFM tests
No behaviour changes; all affected crates' tests pass.
Assisted-By: Claude Code (claude-opus-4)
Claude-Session: https://claude.ai/code/session_01NFpGtGTWUEYXLwZeZs2RAV
Signed-off-by: Stan Grams <sjg@haxx.space>
CI runs a newer clippy (1.97) than was available locally, which flagged
three lints in trx-ftx not caught earlier:
- question_mark: replace the Some/None match in CallsignHashTable::lookup
with `self.entries[idx].as_ref()?`
- collapsible_match: fold the nested `if` in text.rs char/nchar into match
guards on the AlphanumSpaceSlash arm
Behaviour is unchanged; verified clean with nightly clippy (1.93).
Assisted-By: Claude Code (claude-opus-4)
Claude-Session: https://claude.ai/code/session_01NFpGtGTWUEYXLwZeZs2RAV
Signed-off-by: Stan Grams <sjg@haxx.space>
get_uint returns Option<u32>, so `? as u32` is an unnecessary same-type
cast flagged by clippy under -D warnings (rust 1.97).
Assisted-By: Claude Code (claude-opus-4)
Claude-Session: https://claude.ai/code/session_01NFpGtGTWUEYXLwZeZs2RAV
Signed-off-by: Stan Grams <sjg@haxx.space>
clippy needless_range_loop (rust 1.97) flagged the loops in ldpc_check
and ldpc_decode that use a range only to index one array. Replace them
with iterator/enumerate forms. The belief-propagation loops that index
several arrays by the same variable are left as-is (not flagged).
Behaviour is unchanged; the transformations are index-for-index
equivalent. Verified the lib compiles and is clippy-clean; the crate's
LDPC tests run in the CI test job (they need a dev-dependency not
available in the local offline sandbox).
Assisted-By: Claude Code (claude-opus-4)
Claude-Session: https://claude.ai/code/session_01NFpGtGTWUEYXLwZeZs2RAV
Signed-off-by: Stan Grams <sjg@haxx.space>
sjg
merged commit 4b17b4ac1d into main2026-07-18 12:39:58 +02:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Introduces the project's first CI pipeline (Gitea Actions) and a tracker
for the broader improvement backlog discovered in the July 2026 repo scan.
CI —
.gitea/workflows/ci.ymlRuns on push to
mainand on pull requests, with three jobs:cargo fmt --all --checkandcargo clippy --workspace --all-targets --all-features -- -D warningscargo buildandcargo test(--workspace --locked)fsfe/reuse-action@v5license-compliance checkInstalls the required system libraries (
libopus-dev,libasound2-dev,libsoapysdr-dev—soapysdris a default feature), caches the cargoregistry and
target, and installs the toolchain via rustup (with afallback that runs
rustup-initif the runner image lacks it).PATH handling is self-contained: each step that needs it prepends
$HOME/.cargo/bintoPATHdirectly, rather than relying on$GITHUB_PATHpropagation, which is not dependable on the Giteaact_runner.Tracker —
aidocs/wip.mdRecords all ten improvement areas across three tiers (infrastructure,
robustness, product) with a per-item Status column.
aidocs/**isregistered in
REUSE.tomlalongsidedocs/**.Runner assumptions
act_runnerregistered with anubuntu-latestlabel.actions/checkout,actions/cache, andfsfe/reuse-action).Notes
rustfmtis clean and the sampled core crates are clippy-clean, so-D warningsis enforced. If the first full--all-featuresrunsurfaces a warning in a less-travelled crate, fix it (preferred) or
temporarily soften that step.
Commits
[chore]add Gitea Actions CI pipeline[docs]track improvement areas inaidocs/wip.md[chore]fix Rust PATH handling in CI (dropGITHUB_PATHreliance)🤖 Generated with Claude Code
https://claude.ai/code/session_01NFpGtGTWUEYXLwZeZs2RAV