Hey all, 

Responding here to several things from both Reid and Francesco. I wanted to 
step back slightly to set some context. I proposed the project that Chris 
has posted and some of the points that Reid brought up are really source 
from my proposal so I wanted to take the blame as it were for anything in 
the original proposal that sucked - not his fault. :) 

My intention in the proposal was not that it necessarily capture everything 
but really convey the core idea. I expected that working through all the 
details *is* the project and would be done as an iterative process talking 
to me and other experts (like Reid and Francesco!!). I should also mention 
that another student has already submitted a proposal to GSOC for this 
project and only one student can work on it. I'm still not exactly sure how 
that is supposed to get resolved.

Anyhow, more comments below. I may also try to dig out some of the longer 
form work I've done on this since it seems to have interest now.

On Tuesday, March 17, 2015 at 9:07:00 AM UTC-5, Francesco Bellomi wrote:
>
> Hi Christopher,
>
> I'm Francesco, the maintainer of crossclj.info
>
> I think it's a very interesting project. Some comments on your proposal:
>
> 1) I think the information model is by far most important deliverable. I 
> agree with Reid that a sound "coordinate system" is very important
>

Totally agreed, and I've said this to both Chris and the other student. 

I do not think what's on the proposal page captures many of the important 
aspects of the problem. Even focusing just on vars ignores what I consider 
to be equally important pieces like records and protocols. I think it's 
important to capture the parts of the source that are needed to *use* a 
project, either as a consumer or as an extender. Some of these fringes are 
particularly the places where the various existing indexers vary.

The coordinate system is particularly important and tricky and I think 
keeping multiple serialization formats (text-based and Datomic-backed are 
two reasonably different targets) in mind is a good way to avoid tailoring 
it to closely to your output needs (html pages). This is indeed the part 
I've spent the most time hammocking on. I know you guys have as well.
 

> 2) The toolchain you want to implement is in part already there. 
> Almost all the metadata you list in your current model are already 
> extracted by codox; codox already separates the extraction phase from the 
> output phase, so you could simply implement the "indexing library" by 
> providing a different output module, in order to generate your model 
> instead of HTML; the internal representation used by codox is already 
> (somehow) a list of namespaces, each one with a list of vars; codox has a 
> rich set of tools (lein plugin, etc.) which would be immediately reusable. 
> Outputting JSON instead of EDN is a one-liner with Cheshire.
>

I don't think JSON is a valuable serialization target. :)  I'd defer any 
notion of toolchain until there is some consensus on model.

3) I'm not sure about the choice of storing "artifact coordinates" as part 
> of a namespace's metadata. Currently it's not the case, the publishing 
> recipe is kept separated (say, in project.clj or in a POM file), and a 
> namespace at runtime has no notion of its coordinates. I think it's the 
> same for all JVM languages. Are we providing extra flexibility, or are we 
> simply complecting two different kind of information?
>

Yeah, that doesn't make sense to me either. I think versioning needs to 
happen at a higher level that can sync up with maven coords. 

>
> 4) One relevant use case is IDE integration: IDEs cannot evaluate source 
> code at runtime in order to generate the relevant metadata (it's not safe), 
> so having this kind of static info would be really useful, ie. for 
> providing users hints on vars generated by macros
>
> Francesco
>
>
>  
>
>
> On Monday, March 16, 2015 at 7:53:53 PM UTC+1, Christopher Medrela wrote:
>>
>> Hello! My name is Christopher Medrela and I'd like to work at "source 
>> metadata
>> information model" project mentored by Alex Miller at Google Summer of 
>> Code. I
>> hope that this mailing list is the right place to discuss such projects 
>> (if I'm
>> wrong, correct me).
>>
>>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to