Skip to content

Latest commit

 

History

History
75 lines (48 loc) · 6.32 KB

File metadata and controls

75 lines (48 loc) · 6.32 KB

Changelog

All notable changes to rs-embed will be documented in this file.

The project keeps this changelog as the canonical release record. GitHub Releases should summarize the same versioned changes rather than introducing a second source of truth.

The format is based on Keep a Changelog, and the project follows Semantic Versioning with extra care around model and embedding semantics.

0.1.2 - 2026-04-03

This release rolls up upstream-alignment work and correctness fixes that may change default embedding behavior for some model adapters compared with 0.1.1. Users who need strict reproducibility across versions should review the model-specific changes below and pin explicit options where needed.

Changed

  • Standardised NumPy docstrings across all public functions and classes in export.py, inspect.py, writers.py, and the tools/ and providers/ layers. No behaviour changes.

Added

  • Versioned documentation with a version selector powered by mike and MkDocs Material. Each release tag deploys a pinned version; pushes to main update a dev alias. The mike, mkdocs-material, and pymdown-extensions packages are now included in the [dev] optional group.

  • load_export(path) reader API that loads any export produced by export_batch(...) — both combined (single file) and per-item (directory) layouts — and returns a structured ExportResult. Failed points are NaN-filled rather than dropped, partial model runs are surfaced via status="partial", and ExportResult.embedding(model) provides a typed shortcut to the embedding array.

Changed

  • anysat now defaults grid output to native dense features while keeping pooled output on patch-grid pooling by default, with new AnySat-specific switches for grid_feature_mode (dense/patch) and pooled_source (patch/tile).
  • galileo now aligns more closely with the upstream NASA Harvest runtime: grid output prefers Galileo's own patch-level token averaging path, automatic NDVI derivation has been removed, and the default normalization mode is now none with an official_stats option for upstream pretraining statistics.
  • satvision_toa now uses the vendored official SatVision runtime as its only model path and narrows provider-side preprocessing to the default MODIS proxy route (MOD09GA reflectance + MOD21A1D thermal proxy). Custom collections are no longer treated as implicit GEE fallbacks; callers should pass calibrated input_chw directly for non-default inputs.

Fixed

  • device="auto" now correctly selects MPS on Apple Silicon instead of silently falling back to CPU. Follows the PyTorch-recommended priority (cuda > mps > cpu), giving an approximately 4x speedup on Apple M-series hardware for all API calls that use the default device.
  • galileo month overrides now use the official zero-based month indexing expected by Galileo embeddings, fixing the previous one-month offset in RS_EMBED_GALILEO_MONTH.
  • satvision_toa grid output now consistently extracts spatial features from the official-style SwinV2 path instead of misinterpreting pooled vectors as token grids, and the tightened fetch path records explicit proxy provenance in metadata.
  • scalemae now follows the official feature-extraction path more closely: the adapter unwraps common rshf wrappers to call the nested ScaleMAE backbone's forward_features(...) instead of falling back to wrapper forward(), uses ImageNet eval preprocessing (Resize(short side) + CenterCrop + Normalize) with effective post-preprocess input_res_m, and fixes the declarative input metadata to reflect raw Sentinel-2 SR inputs plus adapter-managed preprocessing.
  • satmaepp and satmaepp_s2_10b now align more closely with the official SatMAE++ preprocessing paths. The RGB adapter now defaults to rgb channel order for the published fMoW-RGB checkpoint and no longer pre-resizes provider/input overrides before the official eval transform, while the Sentinel-2 10-band adapter no longer sanitizes inputs with adapter-side clip / nan_to_num before the source-style SentinelNormalize -> ToTensor -> Resize(short side) -> CenterCrop pipeline.

0.1.1 - 2026-04-01

Added

  • Automated pull request changelog enforcement with a skip-changelog escape hatch for docs, tests, CI, and other internal-only changes.
  • Tag-driven GitHub Release publishing that uses the matching CHANGELOG.md section as the release notes.
  • Trusted Publishing release automation for PyPI and TestPyPI, including a manual TestPyPI dry run and install smoke test.

Changed

  • The contribution and release workflow now treats CHANGELOG.md as the canonical source for user-visible release notes.
  • The tag-triggered release flow now validates src/rs_embed/_version.py, publishes to PyPI, and only then creates the GitHub Release.
  • The tag-triggered release flow now validates the matching CHANGELOG.md entry before publishing to PyPI, so a missing release-notes section fails early instead of after package upload.
  • The base package installation now includes the Copernicus GeoTIFF runtime (tifffile and imagecodecs) instead of requiring a separate extra.
  • The public docs now default to pip install rs-embed for published releases while keeping editable installs documented for repository development.

Deprecated

Removed

Fixed

  • The TestPyPI smoke test now verifies package importability and the rs-embed CLI entry point, not just installability and version metadata.

0.1.0 - 2026-03-31

Added

  • Initial public alpha release of rs-embed.
  • Unified ROI to embedding API centered on get_embedding(...), get_embeddings_batch(...), export_batch(...), and inspect_provider_patch(...).
  • Support for precomputed embedding products including tessera, gse, and copernicus.
  • Support for on-the-fly model adapters including satmae, satmaepp, satmaepp_s2_10b, prithvi, scalemae, remoteclip, dofa, satvision, anysat, galileo, wildsat, fomo, terramind, terrafm, thor, and agrifm.
  • Documentation site covering quickstart, model behavior, API contracts, and extension guidance.