Skip to content

v0.5.0

Choose a tag to compare

@matth-love matth-love released this 09 Mar 18:42
· 90 commits to main since this release
91599eb

🚨 Breaking Changes in v0.5.0

What's Changed

🚨 Breaking Changes

  1. Base Class Relocations
  • FetchModule has been moved out of fetchez.core and into fetchez.modules.
  • FetchHook remains in fetchez.hooks, but its internal initialization has changed.
  1. Flattened Directory Structure
  • The builtins/ subdirectories have been completely removed.
  • All core modules now live directly in fetchez/modules/ and all core hooks live in fetchez/hooks/.
  1. Module Metadata Overhaul
  • Modules no longer use legacy dlim instance variables in their init (e.g., self.src_srs, self.date, self.resolution, etc.).
  • Modules must now define class-level metadata using the meta_ prefix (e.g., meta_category = "Topography", meta_agency = "NOAA").
  1. Hook Metadata Overhaul
  • Hooks also use class-level meta_ tags (e.g., meta_stage = "post", meta_category = "file-op"). The runtime self.stage is automatically derived from this during initialization.
  1. The New Unified Registry System
  • There is now a single registry at fetchez.registry to unify module/hook/etc registries.
  • fetchez dynamically scans and loads all modules and hooks on startup via PluginRegistry.
  • Third-party plugins no longer need to manually inject themselves into internal lists. They are automatically discovered via ~/.fetchez/modules/ or via standard Python entry_points in their pyproject.toml.
  • Extensions and plugins will have to update from using fetchez.core.FetchModule to fetchez.modules.FetchModule and no longer need to register their modules or hooks as fetchez will auto-discover them now based on the entry-point.

Full Changelog: v0.4.3...v0.5.0