Geronimo v0.5.0 Release Notes
This release focuses on ML pipeline rigor and data composition. We've added a comprehensive suite of declarative specifications for splitting, calibrating, and combining data — along with a full rewrite of the GDC backend and a new development philosophy.
🚀 New Features
Model Training Specifications
-
ObjectiveSpec: Declare a model's training objective (loss function) as an optional class attribute onModel. Supports named objectives ("mse","mae","binary_crossentropy","categorical_crossentropy") resolved to sklearn-compatible loss identifiers, as well as custom callables validated for signature compatibility. WhenNone(the default), backward-compatible behavior is preserved. -
CalibrationSpec: Opt-in probability calibration for classification models via scikit-learn'sCalibratedClassifierCV. Supports Platt scaling ("sigmoid") and isotonic regression. Declared as an optional attribute onModel— whenNone, models train and predict exactly as before. A held-out internal 80/20 split is used for calibration data.
Data Pipeline Specifications
-
SplitSpec: Declare how aDataSourceshould be split into training and evaluation sets. Supports two strategies:"random"— deterministic random row split by ratio and seed (default 80/20, seed 42)."time"— time-based split using adatetime_columnandcutofftimestamp.
Accessible viadata_source.split(), returning(train_df, eval_df).
-
ConcatSpec: Specify row-wise concatenation of multipleDataSourceinstances with the same schema. Sources are loaded in declaration order and stacked. Useful for combining data from multiple time windows, regions, or upstream sources. -
OutputSpec: Declare where and in what format batch pipeline outputs should be written. SupportsDestination.LOCALandDestination.S3withFormat.CSVandFormat.PARQUET. Attaches as theoutputattribute onBatchPipeline, keeping pipeline declarations self-contained and inspectable before execution.
Enhanced Feature System
-
Required/Optional Feature Validation: Features can now be declared as
required=True(default) orrequired=False. Missing required features raiseValueErrorat transform time. Optional features with adefaultvalue substitute the default and log a warning; optional features without a default pass throughNaN. -
Data Type Enforcement: Features now accept an optional
data_typeparameter (e.g.,float,int,str). When set,fit()/transform()validate and coerce incoming data to the declared type. Coercible data emits a logging warning; non-coercible data raisesTypeError. When not set, no type checking occurs (backward-compatible). -
args/kwargs for Derived Features:
Featureconstructors now acceptargsandkwargsthat are bound toderived_feature_fnat definition time. The function signature must acceptdfas the first argument, followed by the bound positional and keyword arguments. This enables parameterized derived features without changing the SDK invocation pattern.
GDC Backend Rewrite
-
Unified GDC Client: The
deploy_cloudbackend has been fully refactored into a unifiedGDC(Geronimo Deploy Cloud) client with a clean REST API interface. Features login verification, project deployment (create → upload → trigger), status polling, log retrieval, teardown, and key synchronization — all through a singleGeronimoCloudClient. -
Generalized Storage Buckets: The concept of storage buckets has been generalized and unified across backends, reducing scattered deploy logic into a single
gdc/target.py. -
Artifact Store Backends: New artifact backends including
GDCBackend,MLFlowBackend,S3Backend, andLocalBackendwith a sharedArtifactStoreProtocolfor interchangeability.
Project Generation Improvements
-
Experiments Package: The
experiments/package is now auto-generated at project startup. This is the designated space for ad-hoc testing and iteration during development, intentionally excluded from production code paths. -
Pulumi as Default Dependency: Pulumi is now included as a default project dependency, enabling infrastructure-as-code deployments out of the box.
Development Philosophy
-
Karpathy Philosophy: A new
CLAUDE.mdcodifies a development philosophy emphasizing thinking before coding, simplicity first, surgical changes, and goal-driven execution. This guides AI-assisted development within the project. -
AGENTS.md: A companion file providing project-specific guidance for AI agents, covering architecture, common commands, and data source quirks.
🐛 Bug Fixes
- Fixed CLI keys bug in testing environment.
- Corrected default configuration values from AWS to GDC.
- Resolved GDC refactoring bugs in deployment and authentication flows.
- Fixed merge conflict tags in
.gitignore. - Corrected boto3 not-installed emulation.
- Fixed project name validation regex to allow single-character names and names ending in numbers.