Skip to content

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 30 Jul 05:45
· 23 commits to main since this release
204b54b

Breaking changes

  • Error handling: All access methods now return Result<T> instead of mixed Option<T>/Result<T> patterns
  • Error types: Changed from anyhow::Error to structured BgpkitCommonsError enum with specific error variants
  • Dependencies: Removed anyhow dependency completely - now using only thiserror 2.0 for error handling

Feature flags

  • Added individual feature flags for each module (asinfo, as2rel, bogons, countries, mrt_collectors, rpki)
  • Made all dependencies optional except thiserror - dependencies are only compiled when their respective features are
    enabled
  • Added all convenience feature that enables all modules (set as default for backwards compatibility)
  • Removed native-tls and rustls feature flags - oneio now uses rustls by default
  • Updated GitHub Actions workflow to test all feature combinations

Bug fixes

  • Fixed RPKI module to properly handle multiple ROAs for the same prefix
  • Added duplicate prevention for ROAs based on (prefix, asn, max_length) triplet
  • Enhanced RPKI module documentation with multiple ROAs support details

Code improvements

  • Cleaned up lib.rs by using full paths instead of feature-gated imports
  • Enhanced CI testing with comprehensive feature combination validation
  • Significantly improved lib.rs documentation with comprehensive usage examples
  • Added feature flag documentation and minimal build examples
  • Enhanced module descriptions with clear feature requirements
  • Updated lib.rs with detailed functionality descriptions including load methods, access methods, data sources, and
    capabilities for each module
  • Standardized error handling across all modules - all access methods now return Result<T> with clear error messages
    instead of mixed Option<T> and Result<T> patterns
  • Unified error message format across all modules with consistent "Data not loaded. Call load_xxx() first." pattern
  • Added LazyLoadable trait interface for consistent reloading and status checking across all data modules
  • Added loading_status() method to BgpkitCommons for inspecting which modules are currently loaded
  • Replaced anyhow with thiserror for structured error handling - introduced BgpkitCommonsError with specific error types
    for module loading failures, data source errors, and invalid formats
  • Added comprehensive error constants and helper methods for consistent error creation across modules
  • Eliminated all anyhow! macro calls in favor of structured error types with specific context and guidance
  • Added From implementations for common parsing errors (ParseIntError, ParseFloatError) to support automatic error
    conversion
  • Successfully removed anyhow dependency completely - now using only thiserror 2.0 for all error handling