replikativ / konserve

A clojuresque key-value/document store protocol with core.async.
Eclipse Public License 1.0
298 stars 25 forks source link

cljs fixes #106

Closed pkpkpk closed 9 months ago

whilo commented 10 months ago

@pkpkpk This looks good to me. Lmk when you want to have it merged. Also, are these changes covered by CI/CD tests for cljs?

pkpkpk commented 10 months ago

I want to cut a fress release to silence some warnings and then tweak the tests here to run on advanced builds, do a little more in the browser tests.

@whilo Ill make those changes and then ping you on slack to help get CI running

pkpkpk commented 9 months ago

In Summary

1) fixes macro referencing ambiguity in cljs 2) Decoupled tests from the store being tested. Tests are now function<store> organized by namespaces that test a particular aspect. These namespaces are in test/konserve/tests and can be used by 3rd party implementers as an addendum to the compliance test. The migration test was left as is. 3) Each store runs the same tests (but no sync/CBOR for cljs) . This is a modest increase in coverage for the jvm filestore but a huge gain for cljs and was critical for increasing behavior parity. This closes #93 4) I brain dumped usage details into docs/api-walkthrough.md, hopefully this addresses the ambiguity discussed in #109 and #71 5) update some deps, pruning of old config, & assortment of random fixes, closes #108 6) bin/run-all will run the jvm filestore test and the tests for both indexeddb and nodejs with advanced optimizations, and will log and exit non-zero on failure

./bin/install
./bin/run-all

future work

1) changes to enable record safety path in advanced builds 2) compression tests, LZ4 cljs support 3) CBOR cljs support, handler documentation 4) cljs benchmarks

whilo commented 9 months ago

That sounds good. Is this ready for review/merging? @pkpkpk

pkpkpk commented 9 months ago

Yes I think it's in a good place. Will revisit record handling safety in cljs another time