Skip to content

chore(release): v1.19.3 - parser robustness improvements

Choose a tag to compare

@tonthatvu tonthatvu released this 16 Mar 23:40
· 19 commits to main since this release
Eliminate all 16 critical unwraps in parser that could panic on malformed user input.
Replace with proper error handling for production-ready parser reliability.

## Changes

### Parser Fixes (16 critical unwraps eliminated)

src/parser/grl_no_regex.rs (9 fixes):
- Fix date parsing: .and_hms_opt().unwrap() → proper Result propagation
- Fix string find: contains() + find().unwrap() → if let Some()
- Fix iterator unwraps: Add descriptive .expect() with invariants
- Fix char access: Handle empty strings gracefully
- Fix operator validation: Check for empty operator strings

src/parser/grl.rs (7 fixes):
- Apply same fixes to regex-based parser
- Ensure consistency between parser implementations

### Version & Documentation

- Cargo.toml: version 1.19.2 → 1.19.3
- README.md: Add v1.19.3 release notes
- src/lib.rs: Update version documentation
- Create comprehensive release documentation

## Testing

✅ All 436 unit tests passing
✅ All 29 examples passing (100% success rate)
✅ Zero clippy warnings
✅ Zero breaking changes
✅ Zero functional regressions

## Impact

Before v1.19.3:
- 16 locations that could panic on bad input
- Generic panic messages
- Parser crash = application crash

After v1.19.3:
- 0 locations that panic on bad input
- Descriptive ParseError messages
- Graceful error handling

## Documentation

- EXAMPLE_TEST_REPORT_v1.19.3.md - Example test results
- VERSION_1.19.3_RELEASE_NOTES.md - Release documentation
- PARSER_UNWRAP_FIXES.md - Technical implementation details

Addresses HIGH PRIORITY Issue #9 from technical review