Skip to content

Conversation

@bug-ops
Copy link
Owner

@bug-ops bug-ops commented Dec 28, 2025

Summary

  • Enforce unwrap_used, expect_used, panic clippy lints as deny at workspace level
  • Configure test exemptions via cfg_attr(test, allow(...))
  • Fix iTunes self-closing tag parsing bug (added is_empty parameter)
  • Refactor parse_channel() from 104 to 66 lines (extracted helper functions)
  • Remove all TODO comments and phase mentions from code/documentation

Changes

Clippy Lints

Added strict lints to Cargo.toml:

[workspace.lints.clippy]
unwrap_used = "deny"
expect_used = "deny"
panic = "deny"

Test Exemptions

Test files have proper allow attributes:

#![allow(clippy::unwrap_used, clippy::expect_used, clippy::panic)]

Bug Fixes

  • Fixed iTunes self-closing tag parsing in parse_item_itunes()

Code Quality

  • Extracted parse_channel_item() and parse_channel_extension() helpers
  • Reduced parse_channel() from 104 to 66 lines
  • Removed stale TODO comments and phase mentions

Test plan

  • All 574 tests pass
  • No clippy warnings for panic/unwrap/expect in production code
  • Test code still allowed to use unwrap/expect for clarity

@github-actions github-actions bot added type: build Build system, dependencies, or tooling type: tooling Development tools, CI/CD, or infrastructure component: core feedparser-rs-core Rust library component: python Python bindings (PyO3) component: node Node.js bindings (napi-rs) component: tests Test suite or test infrastructure component: dependencies Dependency updates or management area: parser Feed parsing logic area: rss RSS 0.9x, 1.0, 2.0 support lang: rust Rust code lang: python Python code lang: javascript JavaScript/TypeScript code size: L Large PR (<500 lines changed) labels Dec 28, 2025
- Add workspace-level clippy lints to deny unwrap_used, expect_used, panic
- Configure test exemptions via cfg_attr(test, allow(...))
- Fix iTunes self-closing tag parsing bug (added is_empty parameter)
- Refactor parse_channel() from 104 to 66 lines (extracted helpers)
- Remove all TODO comments and phase mentions from code/docs
- Update all test files with proper clippy allow attributes
@bug-ops bug-ops force-pushed the fix/enforce-no-panic-unwrap branch from df535a0 to b7ad708 Compare December 28, 2025 16:49
@codecov-commenter
Copy link

Codecov Report

❌ Patch coverage is 86.76471% with 9 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
crates/feedparser-rs-core/src/parser/rss.rs 86.76% 9 Missing ⚠️

Impacted file tree graph

@@            Coverage Diff             @@
##             main      #37      +/-   ##
==========================================
+ Coverage   92.14%   92.19%   +0.05%     
==========================================
  Files          34       34              
  Lines        7446     7481      +35     
==========================================
+ Hits         6861     6897      +36     
+ Misses        585      584       -1     
Flag Coverage Δ
rust-core 92.19% <86.76%> (+0.05%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
crates/feedparser-rs-core/src/lib.rs 20.95% <ø> (ø)
crates/feedparser-rs-core/src/types/generics.rs 94.82% <ø> (ø)
crates/feedparser-rs-core/src/parser/rss.rs 94.93% <86.76%> (+0.15%) ⬆️
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@bug-ops bug-ops merged commit 3672893 into main Dec 28, 2025
31 checks passed
@bug-ops bug-ops deleted the fix/enforce-no-panic-unwrap branch December 28, 2025 16:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: parser Feed parsing logic area: rss RSS 0.9x, 1.0, 2.0 support component: core feedparser-rs-core Rust library component: dependencies Dependency updates or management component: node Node.js bindings (napi-rs) component: python Python bindings (PyO3) component: tests Test suite or test infrastructure lang: javascript JavaScript/TypeScript code lang: python Python code lang: rust Rust code size: L Large PR (<500 lines changed) type: build Build system, dependencies, or tooling type: tooling Development tools, CI/CD, or infrastructure

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants