From 364e8f07a9efe12ba2bb7b6077281584cc072773 Mon Sep 17 00:00:00 2001 From: mikemiles-dev Date: Mon, 21 Sep 2026 23:18:56 -0500 Subject: [PATCH] fix: unbreak nightly fuzzer after setup-rust-toolchain v2 bump setup-rust-toolchain v2 enforces warning-free builds via cargo's build.warnings config (CARGO_BUILD_WARNINGS=deny) instead of RUSTFLAGS="-D warnings". Unlike RUSTFLAGS, that also denies cargo *manifest* lints, which broke the fuzzer job: error: warnings are denied by `build.warnings` configuration Nightly cargo emits cargo::non_kebab_case_bins for the fuzz_target_1 and fuzz_round_trip binaries. Those names cannot be changed: cargo-fuzz requires the target name to match the fuzz_targets/ file stem. Only the fuzzer job failed because it is the sole job on nightly; the lints do not exist in the pinned 1.94.0 stable used elsewhere. Set build-warnings: warn on that job. Nightly cargo adds manifest lints continuously and the job exists to find crashes; lint hygiene stays enforced by the pinned-stable clippy job. Also drop the explicit package.readme key, which cargo infers and newer cargo flags via cargo::manual_readme, to keep the stable jobs from breaking the same way later. Packaging is unaffected: the packaged manifest still contains readme = "README.md". Bump to 1.1.0 and add the release notes. --- .github/workflows/rust.yml | 5 +++++ Cargo.toml | 3 +-- RELEASES.md | 23 +++++++++++++++++++++++ 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index f600af2..5be679c 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -85,6 +85,11 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v2 with: toolchain: nightly # cargo-fuzz requires nightly + # Nightly cargo adds new manifest lints continuously (e.g. + # cargo::non_kebab_case_bins, which the cargo-fuzz naming convention + # requires us to trip). Lint hygiene is enforced by the pinned-stable + # clippy job; this job exists to find crashes. + build-warnings: warn - name: Install cargo-fuzz run: cargo install cargo-fuzz - name: Run fuzzer diff --git a/Cargo.toml b/Cargo.toml index bfe4b02..9d4039e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "netflow_parser" description = "Parser for Netflow Cisco V5, V7, V9, IPFIX" -version = "1.0.6" +version = "1.1.0" edition = "2024" rust-version = "1.88" authors = ["Michael Mileusnich "] @@ -9,7 +9,6 @@ exclude = [".DS_Store", ".github/", ".claude/", ".amazonq/", "openspec/", "rust_ license = "MIT OR Apache-2.0" categories = ["encoding", "network-programming", "parser-implementations",] keywords = ["netflow", "ipfix", "parser", "network", "cisco"] -readme = "README.md" repository = "https://github.com/mikemiles-dev/netflow_parser/" [package.metadata.docs.rs] diff --git a/RELEASES.md b/RELEASES.md index 177978a..cd9ec90 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -1,3 +1,26 @@ +# 1.1.0 + +## Dependencies + +* Bumped `etherparse` from 0.20 to 0.21 (dev-dependency, used by the pcap + examples and tests). + +## Continuous Integration + +* Bumped `actions-rust-lang/setup-rust-toolchain` from v1 to v2. v2 enforces + warning-free builds via cargo's `build.warnings` config instead of + `RUSTFLAGS="-D warnings"`, which additionally denies cargo *manifest* lints. + +* Fixed the nightly fuzzer job, which the above change broke: nightly cargo + emits `cargo::non_kebab_case_bins` for the `fuzz_target_1` and + `fuzz_round_trip` binaries required by the cargo-fuzz naming convention. The + job now sets `build-warnings: warn`; lint hygiene remains enforced by the + pinned-stable clippy job. + +* Dropped the explicit `package.readme` key, which cargo infers from + `README.md` and newer cargo flags via `cargo::manual_readme`. The packaged + manifest is unchanged. + # 1.0.6 ## Features