Heya Franck, we are certainly thrilled about plugins, sorry about the radio-silence so far.
Like you point out, writing CouchDB plugins isn’t much different from CouchDB internals. That’s a good thing, now the bad thing is that CouchDB internals aren’t as well documented. The good thing again is, that they are relatively straightforward if you work from the HTTP API downwards. We have an [email protected] mailing list to discuss these kinds of things and I did a write up there a year ago that explains what happens when you write a document top to bottom: http://mail-archives.apache.org/mod_mbox/couchdb-erlang/201211.mbox/%[email protected]%3e There is also https://github.com/apache/couchdb/blob/master/src/my-first-couchdb-plugin/README.md but I assume you found that already. It’s a good start, but it is not yet complete, e.g. the fun bits are missing :) There is of course lots more, and the best way forward is to just dive in and try things out, look at how existing code does its thing and then just post questions here on erlang@ (either is fine). Good luck and let us know how it goes! :) Best Jan -- On 14 Dec 2013, at 10:02 , Franck Eyraud <[email protected]> wrote: > Hello, > > It seems that plugin discussions don't create passionate debates... It's a > pity because it is really a good feature, and since from what I understood > taht the couchdb core might be reduced in the future, plugins will be always > used more. > > Maybe creating a plugin is not a in itself problem. I watched the interesting > talk[1] from Jason Smith which is a very good start. And it made me realize > that writing a plugin is in fact equivalent to writing a bit of code in > couchdb core. > > So what I need is to learn what a couchdb developer knows : couchdb > architecture and API. > > Is there any resource online where I can learn this stuff ? A quick start > guide to develop in couchdb (especially for people who never used erlang > before) ? Or is the only way to dig inside couchdb git tree and try to > understand ? Before doing this, I want to be sure I won't loose too much > time. So please people who entered the couchdb project later, how did you > reach your level ? > > Thanks for your help, > > Franck > > [1] > http://www.youtube.com/watch?v=saNjXpE1h1Y&list=PLJa_sXrJUZb8ZuaQShicg6oWI682Bavjb&index=9 > On 05/12/2013 19:05, Franck Eyraud wrote: >> Hello, >> >> I cross post this since it seems better to follow up on the developers >> mailing list. >> >> I started to work from Jan's my-first-couchdb-plugin to adapt the LDAP >> feature from chao into a couchDB plugin. >> https://github.com/franck-eyraud/ldap-auth-couchdb-plugin >> >> Up to now, I managed to do it, by adding an auth handler. >> >> But in order to develop a plugin, I would need to know where it is possible >> to hook to change behaviour. >> >> I'd say that a list of pluggable points of the code, from people who know >> very well the couchdb architecture, would be very useful. I didn't find such >> resource on the web, and I have the feeling that it doesn't exist. Would it >> be possible to have such a list, even in draft version just to begin. I can >> then contribute to the documentation to help future plugin developers. >> >> Up to now I only counted three public plugins, including two real ones : >> CouchPerUser, GeoCouch and MyFirstCouchdbPlugin (and the new born LdapAuth) >> >> I would like to know for instance if features that act more deep inside the >> couchdb engine, such as the validate_doc_read function, could be made as >> plugin ? >> >> Thank you for your help, >> >> Franck >> >> On 15/09/2013 14:45, Jason Smith wrote: >>> Hi, Aurélien. >>> >>> I think LDAP is a great candidate to convert to a plugin. The foundation is >>> there however it is still more developer-focused than user-focused. >>> >>> Probably the best starting place is Jan's example plugin: >>> >>> https://github.com/janl/my-first-couchdb-plugin >>> >>> On Sun, Sep 15, 2013 at 7:38 PM, Aurélien Bénel <[email protected]> >>> wrote: >>>> No idea? >>>> Any plugin expert out there? >>>> >>>>> Hi everyone, >>>>> >>>>> In version 1.4, the feature that excites me the most is the plugin >>>>> system. I see it as a way to foster innovation on CouchDB, letting people >>>>> test unstable features, without having to weaken the core of CouchDB. >>>>> >>>>> However, I haven't found much on the Web about what can be done exactly >>>>> as a plugin, and how difficult it is to turn a "feature hidden in some >>>>> developer’s git repository" into a plugin. >>>>> >>>>> As an example of a long forgotten (yet needed) feature, let's take the >>>>> LDAP authentication handler ( >>>>> https://github.com/chao/couchdb/commits/ldap_auth). Could it be turned >>>>> into >>>>> a plugin? Would it be easy? >>>>> >>>>> >>>>> Regards, >>>>> >>>>> Aurélien >> >
signature.asc
Description: Message signed with OpenPGP using GPGMail
