The result of this is a fair bit of API breakage — all for the significant better, IMHO. I've compiled a basic accounting of the damage in a partial changelog in the readme[1].
The most significant change — ironically, not in the changelog! — is that you can now use the entire API with *either* a dynamic scope via `with-db`, or you can pass database configuration to any function. e.g. these are equivalent:
(with-db "http://hostname/databasename"
(put-document {:a 5 :b 6} :id "foo"))
(put-document "http://hostname/databasename" {:a 5 :b 6} :id "foo")
For those who are interested, some of the "backstory" of implementing this more flexible configuration interface can read up on it elsewhere[2].
Configuration options have also changed quite a bit, though I'm going to document those properly in the readme instead of ferreting them here.
I know that API breakage always makes things hard on people who have been successfully using a library, but I think the breakage is worth it in this case — all on its own, really, but also as a necessary step to enable other things I have in mind to make working with CouchDB databases from Clojure even easier and transparent.
I'd love to get some reports about "porting" efforts; I'd be happy to help with any snags people run into along the way.
Cheers,
- Chas
[1] https://github.com/ashafa/clutch/tree/0.3.0
[2] http://wp.me/10OJi
https://github.com/ashafa/clutch/tree/0.3.0
- Chas
I'm working through the issue backlog right now, with all fixes going
into 0.3.0. My current thinking is that 0.3.0 will be released after
those are closed, and the documentation is properly refreshed to fully
account for the new API, etc.
Any feedback / unintended breakage / etc most welcome.
Thanks,
- Chas