Skip to content

bump version to 2.3.0#77

Merged
lalepee merged 1 commit intomainfrom
release_v2.3.0
Apr 21, 2026
Merged

bump version to 2.3.0#77
lalepee merged 1 commit intomainfrom
release_v2.3.0

Conversation

@lalepee
Copy link
Copy Markdown
Collaborator

@lalepee lalepee commented Apr 20, 2026

Release Notes - CosmoTech Acceleration Library v2.3.0

Release Date: April 2026

Overview

Version 2.3.0 introduces a new input collection framework for lazily resolving datasets, workspace files, and parameters, as well as native Parquet support in the Store and a new CLI command. This release also includes several important bug fixes for PostgreSQL metadata management and foreign key constraint handling.

✨ New Features

Input Collector Framework

  • New InputCollector abstraction (cosmotech/coal/utils/input_collector.py) — Provides a unified interface for lazily resolving simulation inputs from environment-configured paths
  • DatasetCollector — Resolves dataset files by name from the configured dataset path
  • WorkspaceCollector — Resolves workspace files from the configured workspace path
  • ParameterCollector — Resolves parameter values by name from the configured parameters path
  • ENVIRONMENT_INPUT_COLLECTOR singleton — A ready-to-use collector instance pre-configured from environment variables

Parquet Store Support

  • store_parquet_file — Reads a .parquet file into a Store table with sanitized column names
  • convert_store_table_to_parquet — Exports a Store table to a .parquet file
  • load-parquet-folder CLI command — New csm-data command that loads all .parquet files from a folder into the Store (options: --store-folder, --parquet-folder)

Configuration Enhancements

  • Added output and tmp Cosmo environment variable mappings to the configuration object

🔧 Improvements

Dataset API

  • Dataset part name uses stem — When uploading dataset parts, part_name is now derived from the file name without its extension (Path(file_name).stem), producing cleaner part identifiers

🐛 Bug Fixes

PostgreSQL — Runner Metadata

  • Fixed foreign key constraint violations — Runner metadata deletion now cascades correctly; the add_foreign_key method drops any pre-existing metadata constraint before re-adding it (DROP CONSTRAINT IF EXISTS metadata)
  • Fixed ADD CONSTRAINT SQL syntax — Corrected malformed ALTER TABLE statement in add_foreign_key
  • Added ON DELETE CASCADE to the runner metadata foreign key to automatically clean up dependent rows
  • Schema-qualified referenced table — Foreign key now correctly references the table name with the right schema-qualifier
  • Fixed autocommit flagadd_foreign_key now uses autocommit=False to properly participate in transactions
  • Replaced upsert with DELETE + INSERT — Runner metadata update logic now deletes the existing row by id before inserting to avoid conflicts with the UNIQUE constraint on last_csm_run_id
  • Added UNIQUE constraint on last_csm_run_id in the runner metadata table

Store

  • Fixed execute_query with empty parameters — Queries with no bind parameters no longer raise an error

Code Quality

  • Removed unused log message in runner metadata handling
  • Minor consistency fixes across csv.py, native_python.py, pandas.py, parquet.py, and pyarrow.py store modules following Copilot review

🔄 Breaking Changes

None. This release maintains backward compatibility with version 2.2.x.

@lalepee lalepee requested a review from neomatamune April 20, 2026 16:17
@lalepee lalepee merged commit 8e82f00 into main Apr 21, 2026
7 checks passed
@lalepee lalepee deleted the release_v2.3.0 branch April 21, 2026 08:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants