Releases: Crecto/crecto
Releases · Crecto/crecto
Release v0.14.0
Release v0.14.0
Added
- Enhanced association safety with bounds checking to prevent IndexError (#133, #195)
- Association foreign key validation in changesets (#249, #195)
- Comprehensive test suite for association safety
- Transaction support with savepoints for nested operations (#249)
- Enhanced changeset validation with association support
Fixed
- IndexError in belongs_to associations (#133, #195)
- IndexError in has_many associations (#133, #195)
- IndexError in has_one associations (#133, #195)
- Query string interpolation corruption (#217)
- Multi-transaction association operations (#249)
- Association foreign key validation (#249, #195)
Improved
- Query and transaction testing coverage
- Live transaction enhancements for better consistency
- Safe array access patterns to all association macros
v0.13.0
v0.13.0 Release
Summary
This release brings significant improvements to Crecto's infrastructure, including comprehensive test coverage, new error types, UUID support, and performance optimizations. It establishes a solid foundation for future user story implementations.
Features
Test Infrastructure
- Comprehensive Test Coverage: Added extensive test coverage for core functionality including:
- Bulk configuration handling (
spec/bulk_config_spec.cr) - Error type handling and validation (
spec/error_types_spec.cr) - Prepared statement cache behavior (
spec/prepared_statement_cache_spec.cr) - Query iteration and result processing (
spec/query_iterator_spec.cr)
- Bulk configuration handling (
Quality Infrastructure
- UUID Type Support: Added UUID type support to schema field types with
UUID_FORMATconstant - Enhanced Error Types: Implemented comprehensive error handling with:
BulkErrorfor bulk operation errorsAssociationErrorfor association-related errorsIteratorErrorfor query iteration errors
- Bulk Configuration: Created
BulkConfigsingleton for managing operation thresholds - Performance Optimizations: Added
PreparedStatementCacheinfrastructure for improved query performance - Query Iterator: Implemented
QueryIterator(T)base class for memory-efficient large dataset processing
Type System Improvements
- Enhanced Type Checking: Improved overall type checking system robustness
- Type Cleanup: Removed duplicate
Int64type definition
Development Experience
- Multi-Database Testing: Added comprehensive test database configurations
- Example Repository: Created example spec repository for easier testing
- Flexible Updates: Enhanced
update_from_hashmethod for greater flexibility
Bug Fixes
- Type System: Fixed duplicate
Int64type definition intypes.cr
Documentation
- Agent Documentation: Added
AGENTS.mdwith comprehensive agent workflow documentation - Project Instructions: Created
CLAUDE.mdwith project-specific development guidelines - Enhanced README: Updated README with improved documentation and structure
- Test Configuration: Added comprehensive multi-database testing setup in
spec/test_repos.cr
Breaking Changes
None - this is a minor release with backward-compatible improvements.
Upcoming
This release establishes the foundation for Phase 3 user story implementations including:
- Bulk operations with configurable thresholds
- Prepared statement caching for performance optimization
- Memory-efficient query iteration for large datasets
- Enhanced error handling and reporting
Note: All tests pass across all supported databases (PostgreSQL, MySQL, SQLite3).
v0.12.1, 2021-08-27
- Fixed multi error checking, thanks @hutou
- Fixed installing via shards command
v0.12.0, 2021-06-11
- Update for crystal 1.0
v0.11.3, 2020-04-25
Update for crystal 0.34.0
v0.11.2, 2019-11-01
- Fix shard version/git tag version mismatch
v0.11.1, 2019-09-27
- Updated for crystal 0.31.0
v0.11.0, 2019-09-13
- Fixed breaking bug
- Updated all dependencies to latest versions
- Updated to Crystal 0.30.1
v0.10.1, 2018-11-3
- Update to crystal 0.27.0 - [@drujensen]https://github.com/drujensen
v0.10.0, 2018-10-25
- Updated to crystal 0.26.1
- Allow defining models without any fields - @jreinert
- Queries in preloads
- Live transactions with
Repo#transaction!- @jreinert - Changed model to use
JSON::Serializable- @jreinert - Fields now correctly compare
nil- @shiba-hiro - Added
Repo#joinmethod override with string argument - @shiba-hiro - Added more
whereandor_wheremethod signatures - @jreinert - Added
int8andint16suppoert - @jianghengle - Improved performance using
String::Builderto build query strings - @jreinert - Added
Repo#get_bymethod overloads to use Query objects - @jreinert - Compiler improvements by only including associations when used - @jianghengle
- Updated to use new crystal time / timezone format - @wontruefree
- Handle single-column updates for postgres 10.x - @faultyserver
- Added
Schema#castandSchema#cast!mass assignment methods - @jreinert - Fixed has_one preloads - @jreinert