Releases: bart-oz/sqlite_crypto
Releases · bart-oz/sqlite_crypto
v2.0.2 - Fix generator auto-discovery and schema loading
🐛 Fixed
- Generator autodiscovery: Moved install generator to
lib/generators/sqlite_crypto/install/to follow Rails convention. Previouslyrails generate sqlite_crypto:installcould not find the generator (bug since v2.0.0) - Schema loading: Moved
uuid/ulidhelper includes from require-time into railtie initializer. The previousif defined?guard ran before ActiveRecord was loaded, causingNameError: undefined method 'uuid'when loading schema.rb (bug since v2.0.1) - Rails 8+ compatibility: Include schema helpers into
ActiveRecord::Schema::Definitionwhere schema.rb blocks are evaluated in Rails 8+
📦 Upgrade
bundle update sqlite_cryptoAdded
- Schema round-trip integration test (dump, reload, verify)
Acknowledgements
v2.0.1 - Security and improvements
🔒 Security Fixes
- CRITICAL:
- Fixed regex anchor vulnerability in UUID/ULID validators
- Fixed action_text-trix XSS vulnerability (updated to >= 2.1.16)
⚡ Performance Improvements
- Extract regex patterns to frozen constants (
UUID_PATTERN,ULID_PATTERN) - Cache Ruby version check in
V7_AVAILABLEconstant - Add lazy loading with
ActiveSupport.on_load(:active_record)hook - Memoize primary key type detection in migrations
✨ Improvements
- Eager configuration validation: Setting
uuid_version = :v7on Ruby < 3.3 now fails at boot time with clear error message - Namespace cleanup:
uuidandulidschema helpers now scoped toActiveRecord::Schemainstead of globalObject
🗑️ Removed
- Unused
SqliteCrypto::Errorclass - Unused
SqliteCrypto.load_extensionsplaceholder method
📦 Upgrade
bundle update sqlite_cryptov2.0.0 - UUIDv7 support
🚀 Changes:
- Add uuid_version config option (:v7 default, :v4 for compatibility)
- Create unified UUID generator with Ruby version detection
- Update generates_uuid to use centralized generator
- Add install generator for initializer creation
- UUIDv7 requires Ruby 3.3+ (clear error on older versions)
- Ruby 3.1/3.2 users can continue using v4
- Default UUID version changed from v4 to v7
📦 Upgrade
bundle update sqlite_cryptov1.0.3 - Ruby 4.0.0 compatibility
🚀 Changes
Dependencies:
- Added compatibility with Ruby 4.0.0 released on December 25, 2025
- Added
benchmarkgem as test dependency (removed from Ruby 4.0.0 stdlib) - Reorganized gemspec to include only runtime dependencies
- Moved development and test dependencies to Gemfile
📦 Upgrade
bundle update sqlite_cryptov1.0.2 - Schema Definitions
🐛 Fixed
- Schema Definitions:
- Added global
uuidandulidhelper methods for schema.rb - Fixes
NameError: undefined local variable or method 'uuid'when loading schema.rb - Schema dumper now outputs
id: uuidwhich correctly resolves to:uuidsymbol - Allows schema.rb to be loaded without errors
- Added global
📦 Upgrade
bundle update sqlite_cryptov1.0.1 - Schema Dumper Bugfix
🐛 Fixed
- Schema Dumper Compatibility: Fixed "Unknown type 'uuid'" errors when using
schema_format = :ruby(Rails default) - UUID/ULID columns now correctly create
varchar(36)andvarchar(26)in migrations - Added
native_database_typesregistration for proper SQLite column type mapping
📦 Upgrade
bundle update sqlite_crypto🙏 Thanks
This fix was discovered during real-world usage testing in production apps. Thanks to the community for the quick feedback!
Full Changelog: CHANGELOG.md
v1.0.0 - Initial Release
sqlite_crypto v1.0.0 - Initial Release
Seamless UUID and ULID primary key support for Rails with SQLite3.
🎯 Features
- UUID & ULID Primary Keys: Full support for non-integer primary keys in SQLite
- Migration Helpers: Clean DSL with
t.uuid,t.ulid, and automatic foreign key detection - Model Extensions:
generates_uuidandgenerates_ulidfor any string column - Schema Dumper: Clean, readable
db/schema.rboutput - Zero Configuration: Works out of the box with Rails 7.1-8.1
📊 Compatibility
- Ruby 3.1+
- Rails 7.1, 7.2, 8.0, 8.1
- SQLite3 1.6.0+
📈 Quality Metrics
- ✅ 99.01% test coverage (51 examples)
- ✅ Multi-version CI/CD testing
- ✅ Performance benchmarks included
- ✅ StandardRB compliant
📦 Installation
gem “sqlite_crypto"📚 Documentation
See the README for complete usage examples, migration patterns, and performance benchmarks.
📋 Full Changelog
—> CHANGELOG.md