On 12/18/2013 11:36 AM, Benjamin Young wrote:
Hey Vivek,
Thanks for open sourcing your code!
You are welcome. Please invite me to couchapp, and I will help as per
my capability.
My vote/suggestion is to get the "requirements and interface" of
couchapp (tools) improved/tuned with a broader perspective in mind.
For example if you write significantly complex map functions which use
several "requires" includes, you want to be able to trace history of
changes via version control - and also be able to profile the code and
improve its performance (js is sensitive to how you write the code,
same computation expressed different ways can have big difference in
performance). Some people felt bad last time I expressed the same (and
sorry for that) - but its just that couchapp did not satisfy my
(reasonable) needs properly, and hence I had to develop the tools which
are now refactored and shared with you as casters
https://github.com/vivekpathak/casters
The other issue is whether the tools should work on a design document
level/database level/or server level. I chose the first to ensure
strict compliance with the change detection model in couchdb views - but
this is a technical and usage issue which could benefit from discussion...
I'd love to see if we can collaborate. Benoit passed the baton for
`couchapp` on to me a few weeks back, and I'm working to dust it off a
bit, and get a path in place for it's future. It'd be great if we
could collaborate and work toward lots of little reusable pieces with
a nice command line interface for building, testing, and publishing
CouchApps.
Also, anyone else interested in helping out and moving things forward,
please join in here and on Github:
http://github.com/couchapp/couchapp
Let me know your thoughts!
Benjamin
On 12/14/13, 5:28 AM, Vivek Pathak wrote:
Hi
I had some couchdb projects (since ~ 2007) which had significant
computation within views/lists etc. I had read about couchapp -
which although is totally great - did not serve my purpose
satisfactorily (reasons/details below).
Hence I had developed various scripts which were project specific.
Finally I extracted the code into a standalone program which has the
following main points:
* Code on file system matches exactly code in couchdb (helps version
control and programming - see next)
* Able to create and run test cases (automatically w/o code change)
for view map/reduce functions
* Be able to run the these test cases manually through debugger (eg:
rhino) using a harness
* Be able to instrument these test cases for profiling, for example by
having a debug built js in path
* And finally - just like couchcapp - create canonical directory
structure, as well as push and pull to/from design documents.
The code (single standalone python script) is available here :
https://github.com/vivekpathak/casters
You are welome to try/use/improve
Thanks
Vivek