Changelog

v28.0.0 (2024-11-26)

New Features

  • Added a new tap_schema module designed to deprecate and eventually replace the tap module. This module provides utilities for translating a Felis schema into a TAP_SCHEMA representation. The command felis load-tap-schema can be used to activate this functionality. (DM-45263)

  • Added a check to the data model which ensures that all constraint names are unique within the schema. TAP_SCHEMA uses these names as primary keys in its keys table, so they cannot be duplicated. (DM-45623)

  • Added automatic ID generation for objects in Felis schemas when the --id-generation flag is included on the command line. This is supported for the create and validate commands. Also added a Schema validator function that checks if index names are unique. (DM-45938)

Bug Fixes

  • Fixed a bug where the error locations on constraint objects during validation were reported incorrectly. This was accomplished by replacing the create_constraints() function with a Pydantic discriminated union. (DM-46002)

v27.0.0 (2024-04-17)

New Features

  • Added option for setting TAP_SCHEMA index in load-tap command. (DM-43683)

  • Added option for creating a schema’s database if it does not exist when running the create command. (DM-43108)

  • Added setting of log level and output file in the CLI (DM-43040)

  • Created a validator that will look for redundant datatype specifications. This is activated from the command line with the --check-redundant--datatypes flag. (DM-41247)

API Changes

  • Added a new metadata module for generating SQLAlchemy MetaData from a schema. This replaces the old module that was used in the create command for initializing the database. (DM-43079)

  • Made columns nullable by default in the Pydantic data model. (DM-43753)

  • Refactored the tap module to use the Pydantic data model. (DM-42935)

  • Moved database utilities into a separate package and refactored them. (DM-44721)

An API Removal or Deprecation

  • Removed JSON-LD commands from the CLI and removed pyld from requirements.txt. (DM-43688)

  • Removed outdated modules. (DM-43597)

Documentation Improvements

  • Updated Felis documentation infrastructure. (DM-43787)