Edd and I delivered a 3-hour tutorial on Mono at OSCON yesterday. It was a good session, although we easily could have continued for another 3 hours. As a result, I didn’t get to demonstrate DOAP#, my year-old project to embed DOAP metadata in .NET assemblies, and produce the appropriate DOAP RDF from the metadata.
The idea behind DOAP# is that you can use some metadata that’s already in AssemblyInfo.cs — like AssemblyTitle, AssemblyDescription, and AssemblyProduct — and add some additional ones — like BugDatabase, Created, Homepage, License, etc — in the form of C# attributes.
That metadata can then be used to automatically generate a DOAP file for the project.
The first milestone on my new roadmap is to complete the set of attributes that map to the DOAP RDF schema, and then produce a complete DoapWriter that understands all those attributes.
Next, some of the attributes need to determined at make dist time rather than hard-coding them in AssemblyInfo.cs. So I’ll need a tool to do that.
After that, I’ll probably need to build a framework for dynamic extensions to the DOAP schema. I imagine I’ll need to design some generic attributes for that.
The final phase of my world domination plan would be to submit patches to the major .NET/Mono projects to include the DOAP attributes in their AssemblyInfo.cs files, so that they can automatically produce the appropriate DOAP file in their own distributions.
I’m not sure when any of this will happen, but my vague goal is to hit the end of the year.
Am I a dope?