Releases: crazy-goat/fdb-php
Releases · crazy-goat/fdb-php
v0.2.1 - FoundationDB Size Limits Tests
What's New
This patch release adds comprehensive integration tests for FoundationDB size limits.
New Test Coverage
Key Size Limits (10KB max)
- Test key at limit succeeds
- Test key exceeding limit throws FDBException (error 2203)
- Verify error is not retryable
Value Size Limits (100KB max)
- Test value at limit succeeds
- Test value exceeding limit throws FDBException (error 2204)
- Verify error is not retryable
Transaction Size Limits (10MB default)
- Test transaction at default limit succeeds
- Test transaction exceeding limit throws FDBException (error 2101)
- Test custom size limit via option
- Verify error is not retryable
Technical Details
All tests verify:
- Correct FDBException error codes (2203, 2204, 2101)
- Error messages contain expected keywords
- Error predicates (retryable/non-retryable)
- Transaction commit behavior for limit violations
v0.2.0
What's New
🏗️ Architecture & Core Features
- AdminClient — cluster administration via Special Keys (list/create/delete tenants, configure processes, exclude/include servers, get cluster status)
- Tenant support —
Tenant::getId(),Database::openTenant() - Database monitoring —
getMainThreadBusyness(),getClientStatus() - Database::close() — explicit lifecycle management
- FoundationDB::openWithConnectionString() — connect without a cluster file
- Error predicates —
FDBException::isRetryable(),isRetryableNotCommitted(),isMaybeCommitted()
📦 API Improvements
- Typed atomic operations —
add(),max(),min(),bitAnd(),bitOr(),bitXor()now acceptintinstead of rawstringbytes getInt()method — read integer values directly fromReadTransaction,Snapshot, andDatabase- Database convenience methods —
getKey(),watch(), atomic ops, range estimates with auto-transact wrappers getRangeAll()/getRangeAllStartsWith()— eager range fetching (returns full array instead of iterator)
🧩 Tuple & Key Utilities
Tuple::compare()— tuple ordering comparisonTuple::hasIncompleteVersionstamp()— versionstamp detectionSubspace::packWithVersionstamp()— versionstamp support in subspacesKeyUtil::printable()/KeyUtil::prefixRange()— key debugging and prefix range helpers
🌍 Locality
- Locality API —
getBoundaryKeys()for data distribution queries
📚 Documentation & Examples
- Comprehensive README with all features, architecture diagram, and correct API examples
- 13 documentation guides covering all major features
- 10 runnable example scripts
📦 Package
- Renamed from
crazy-goat/foundationdbtocrazy-goat/fdb-php
✅ Quality
- 317 unit tests, 574 assertions
- PHPStan level 9, PHPCS, Rector
- Integration tests with 5-node FDB cluster in CI