Skip to content

v0.3.5

Latest

Choose a tag to compare

@github-actions github-actions released this 24 Mar 03:46
· 2 commits to main since this release

What's Changed

Ruby 4.0 Compatibility

  • Upgraded magnus from 0.7 to 0.8 and rb-sys for Ruby 4.0 support
  • Migrated from deprecated Magnus APIs (magnus::exception::*, Symbol::new, into_iter) to new Ruby-handle-based APIs (ruby.exception_*, ruby.to_symbol, index-based array iteration)

Major Dependency Upgrades

  • Upgraded Lance from 0.31 to 3.0
  • Upgraded Arrow from 55 to 57
  • These upgrades fix a CI recursion limit error and align with the latest Lance ecosystem

New Features

  • Dataset.open_or_create: Safely open an existing dataset or create a new one, with intelligent handling of existing files, non-dataset directories, and an overwrite mode
  • Dynamic schema introspection: Dataset#schema now reads and returns the actual schema from the Lance dataset instead of a hardcoded placeholder, including vector column dimension info
  • Arrow DataType to Ruby mapping: New datatype_to_ruby_string helper provides clean Ruby-friendly type names for all supported Arrow types
  • Improved #count method: Now properly delegates to Enumerable#count when a block is given, while using the efficient count_rows for the no-argument case

Bug Fixes & Safety

  • Added array bounds checking in convert_batch_to_ruby to prevent potential segfaults
  • Added vector dimension validation to detect data corruption early
  • open_or_create safely fails when a non-dataset directory exists at the given path
  • Fixed create_vector_index and create_text_index return type handling (.map(|_| ()))

Infrastructure

  • Added CI workflow with GitHub Actions
  • Added automated release workflow for gem publishing
  • Added Dependabot configuration for GitHub Actions and Rust dependencies
  • Moved repository from cpetersen/lancelot to scientist-labs/lancelot
  • Removed Gemfile.lock from version control
  • Bumped actions/checkout from 3 to 6 and actions/cache from 3 to 5

Test Suite

  • Added comprehensive dataset specs (499+ lines) covering CRUD operations, schema handling, vector search, text search, filtering, and edge cases
  • Updated specs for Ruby 4.0 compatibility

Pull Requests

Full Changelog: 0.3.0...0.3.5