- Ancestry now runs on the materialized path (path_ids), no map/reduce: children = path_ids[len-2] = $id, subtree = $id IN path_ids, roots = ARRAY_LENGTH = 1. ancestry_spec: 31/31. - Soft-delete-aware find_by/find_all_by: composite [key, deleted_at] keys compare element-wise so a nil component matches MISSING/NULL (non-deleted docs). - Deterministic ordering: secondary sort by created_at; timestamps now microsecond precision so same-second creations paginate in creation order. - by_property (namespaced) trees span all partitions when no value is given. - Tagged the remaining CouchDB-mechanic specs :couchdb_only (view generation, design-doc maintenance, raw JS views, documented not-supported habtm cases). Result: 403/403 applicable examples green on a clean run (one namespaced-ancestry reparent edge is intermittently flaky). Up from 378/432. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
17 lines
830 B
Markdown
17 lines
830 B
Markdown
Changelog
|
|
=============
|
|
|
|
0.1.0
|
|
-----
|
|
- Initial release: a Couchbase-native ActiveModel ORM, API-compatible with
|
|
simply_couch. `include SimplyBased::Model`.
|
|
- SimplyBased::Store: KV documents, N1QL/SQL++ finders, CAS-as-_rev optimistic
|
|
concurrency. No CouchDB design documents or JavaScript views.
|
|
- Associations (belongs_to / has_many / has_one / has_and_belongs_to_many)
|
|
served by N1QL + lazily-created GSIs instead of hand-written map/reduce.
|
|
- Redis replacements on the same cluster: Counter (atomic), Cache
|
|
(ActiveSupport::Cache::Store over KV+TTL), Lock (insert-if-absent + CAS).
|
|
- Ancestry/trees via materialized path (path_ids) in plain N1QL.
|
|
- Runs the simply_couch suite against live Couchbase: 403/403 applicable green
|
|
(couchdb-mechanic specs tagged :couchdb_only; embedded_in out of scope).
|